/*................................................................................................*/ public boolean startJob(String arguments, Object condition, boolean hiredByName) { addMenuItem("Directory for Sample Trees From Directory...", makeCommand("setDirPath", this)); fillerTasks = new Vector(); if (!MesquiteThread .isScripting()) { // enclosed in conditional to avoid hiring query when opening file; should // be handled by snapshot/doCommand when file is opened. String directoryPath = MesquiteFile.chooseDirectory( "Choose directory containing tree files:", previousDirectory); // MesquiteFile.saveFileAsDialog("Base name for files (files will // be named <name>1.nex, <name>2.nex, etc.)", baseName); if (StringUtil.blank(directoryPath)) { // TODO: clean this up? return false; } else { directory = new File(directoryPath); previousDirectory = directory.getParent(); if (directory.exists() && directory.isDirectory()) { return hireFillers(directoryPath); } } } return true; // Add something to make sure directory paths are set up correctly, when not // scripting... }
/*.................................................................................................................*/ public boolean queryOptions() { if (!MesquiteThread.isScripting()) { duplicateExcludedCharacters = !AlertDialog.query( containerOfModule(), "Remove excluded characters?", "Remove excluded characters?", "Yes", "No"); } return true; }
/*.................................................................................................................*/ public boolean startJob(String arguments, Object condition, boolean hiredByName) { if (!MesquiteThread.isScripting()) { int s = MesquiteInteger.queryInteger( containerOfModule(), "Number of taxa to exclude", "Enter the number of randomly chosen taxa to exclude", numExcluded); if (MesquiteInteger.isCombinable(s)) numExcluded = s; else return false; } addMenuItem("Number of Taxa Excluded...", makeCommand("setNumberExcluded", this)); return true; }
/** * Called to provoke any necessary initialization. This helps prevent the module's intialization * queries to the user from happening at inopportune times (e.g., while a long chart calculation * is in mid-progress) */ public void initialize(Taxa taxa) { setPreferredTaxa(taxa); fillerTask.initialize(taxa); if (!fillerTask.hasLimitedTrees(taxa)) { if (!MesquiteThread.isScripting() && !nTreesSet) { int n = MesquiteInteger.queryInteger( containerOfModule(), "Trees per block?", "How many trees to include per tree block?", numTrees); if (MesquiteInteger.isCombinable(n) && n > 0) numTrees = n; nTreesSet = true; } } ntreesItem.setEnabled(!fillerTask.hasLimitedTrees(taxa)); MesquiteTrunk.resetMenuItemEnabling(); }
/** * Called to provoke any necessary initialization. This helps prevent the module's intialization * queries to the user from happening at inopportune times (e.g., while a long chart calculation * is in mid-progress) */ public void initialize(Taxa taxa) { setPreferredTaxa(taxa); fillerTask.initialize(taxa); if (!fillerTask.hasLimitedTrees(taxa)) { if (!MesquiteThread.isScripting() && !nTreesSet) { int n = MesquiteInteger.queryInteger( containerOfModule(), "Trees per block?", "How many trees to include per tree block?", numTrees); if (MesquiteInteger.isCombinable(n) && n > 0) numTrees = n; nTreesSet = true; } } if (enableNumTreesChoice() && ntreesItem == null) ntreesItem = addMenuItem("Number of Trees...", makeCommand("setNumberTrees", this)); if (ntreesItem != null && fillerTask != null) ntreesItem.setEnabled(!fillerTask.hasLimitedTrees(taxa)); MesquiteTrunk.resetMenuItemEnabling(); }
/*.................................................................................................................*/ public boolean startJob(String arguments, Object condition, boolean hiredByName) { if (arguments == null) { if (MesquiteThread.isScripting()) fillerTask = (TreeBlockFiller) hireNamedEmployee(TreeBlockFiller.class, "#StoredTrees"); if (fillerTask == null) fillerTask = (TreeBlockFiller) hireEmployee(TreeBlockFiller.class, "Source of trees for tree blocks"); } else { fillerTask = (TreeBlockFiller) hireNamedEmployee(TreeBlockFiller.class, arguments); if (fillerTask == null) fillerTask = (TreeBlockFiller) hireEmployee(TreeBlockFiller.class, "Source of trees for tree blocks"); } if (fillerTask == null) return sorry(getName() + " couldn't start because no source of trees obtained."); ntreesItem = addMenuItem("Number of Trees...", makeCommand("setNumberTrees", this)); return true; }