This dialog provides a simple mechanism to add all the formal modules found below a selected folder to an existing baseline set definition.
// Add module to Baseline Set Definition /* Add all modules below the current folder to a baseline set definition. */ pragma runLim, 0 DB dbMain = null DBE dbeParentFolder = null DBE dbeSourceFolder = null DBE dbeBsdList = null DBE dbeResults = null Buffer resBuf = create string dummy[] = {} int modulesAdded = 0 /****************************************************************************** findBsd ******************************************************************************/ BaselineSetDefinition findBsd(Folder f, string bsdName) { BaselineSetDefinition bsd = null for bsd in f do { if (name(bsd) == bsdName) { return(bsd) } } return(null) } /****************************************************************************** addModulesToBsd ******************************************************************************/ void addModulesToBsd(Folder f, BaselineSetDefinition bsd) { string res = "" Item i for i in f do { if (isDeleted(i)) { continue } if (type(i) == "Formal") { res = addModule(module(fullName(i)), bsd) if (res "" == "") { modulesAdded++ } else { resBuf += res ": " fullName(i) "\n" } } else if (type(i) == "Folder" || type(i) == "Project") { addModulesToBsd(folder(fullName(i)), bsd) } } } /****************************************************************************** addAllModulesToBaselineSetDefinition ******************************************************************************/ void addAllModulesToBaselineSetDefinition(string fName, string bsdName, string srcFolder) { Folder f = null string res = "" BaselineSetDefinition bsd = null f = folder(fName) if (null f) { resBuf += "Null folder: " fName return } bsd = findBsd(f, bsdName) if (null bsd) { resBuf += "Could not find BSD \"" bsdName "\" in folder " fName return } res = lock(bsd) if (res "" != "") { resBuf += res } addModulesToBsd(folder(srcFolder), bsd) res = save(bsd) if (res "" != "") { resBuf += res } res = unlock(bsd) if (res "" != "") { resBuf += res } } /****************************************************************************** refreshBsdList ******************************************************************************/ void refreshBsdList(string fName) { BaselineSetDefinition bsd = null int index = 0 empty(dbeBsdList) for bsd in folder(fName) do { insert(dbeBsdList, index, name(bsd)) index++ } set(dbeBsdList, index-1) } /****************************************************************************** doBrowseParent ******************************************************************************/ void doBrowseParent(DBE dbe) { string szFolderName = fnMiniExplorer(dbMain, (current Folder), MINI_EXP_FP, "Select Folder", "Select Folder") if (szFolderName != "" && folder(szFolderName)) { set(dbeParentFolder, szFolderName) refreshBsdList(szFolderName) } } /****************************************************************************** doBrowseSource ******************************************************************************/ void doBrowseSource(DBE dbe) { string szFolderName = fnMiniExplorer(dbMain, (current Folder), MINI_EXP_FP, "Select Folder", "Select Folder") if (szFolderName != "" && folder(szFolderName)) { set(dbeSourceFolder, szFolderName) } } /****************************************************************************** doApply ******************************************************************************/ void doApply(DB db) { string parentFolderName = get(dbeParentFolder) string sourceFolderName = get(dbeSourceFolder) string bsdName = get(dbeBsdList) if (!confirm("You are about to add all formal modules below\n" //- sourceFolderName "\n" //- "to Baseline Set Definition \"" bsdName "\".\n\n" //- "Are you sure you want to continue?")) { return } addAllModulesToBaselineSetDefinition(parentFolderName, bsdName, sourceFolderName) if (stringOf(resBuf) "" == "") { set(dbeResults, modulesAdded " modules were added to the BSD.\nNo errors.") } else { set(dbeResults, modulesAdded " modules were added to the BSD.\nThere were errors:\n" stringOf(resBuf)) } } /****************************************************************************** MAIN ******************************************************************************/ void buildDialog() { dbMain = natsDialog("Add Modules to Baseline Set Definition", styleCentered) label(dbMain, "This utility will add all formal modules below the selected folder to the baseline set definition.\n") dbeParentFolder = field(dbMain, "Folder containing the BSD:", fullName(current Project), 50, true) beside dbMain button(dbMain, "Browse ...", doBrowseParent, styleStandardSize) left dbMain dbeBsdList = choice(dbMain, " Baseline Set Definition:", dummy, 0, 30, false) label(dbMain, " ") dbeSourceFolder = field(dbMain, " Add modules from folder:", fullName(current Folder), 50, true) beside dbMain button(dbMain, "Browse ...", doBrowseSource, styleStandardSize) left dbMain dbeResults = text(dbMain, "", "", 300, 50, false) apply(dbMain, doApply) realize(dbMain) refreshBsdList(fullName(current Project)) block(dbMain) } /****************************************************************************** MAIN ******************************************************************************/ buildDialog()