Пример #1
0
  public void setOptions(BeautiOptions options) {
    this.options = options;

    chainLengthField.setValue(options.chainLength);
    echoEveryField.setValue(options.echoEvery);
    logEveryField.setValue(options.logEvery);

    if (options.fileNameStem != null) {
      fileNameStemField.setText(options.fileNameStem);
    } else {
      fileNameStemField.setText(DEFAULT_FILE_NAME_STEM);
      fileNameStemField.setEnabled(false);
    }

    operatorAnalaysisCheck.setSelected(options.operatorAnalysis);

    updateOtherFileNames(options);

    if (options.contains(Microsatellite.INSTANCE)) {
      samplePriorCheckBox.setSelected(false);
      samplePriorCheckBox.setVisible(false);
    } else {
      samplePriorCheckBox.setVisible(true);
      samplePriorCheckBox.setSelected(options.samplePriorOnly);
    }

    optionsPanel.validate();
    optionsPanel.repaint();
  }
Пример #2
0
  @SuppressWarnings({"unchecked"})
  public SimulationPanel(final MainFrame frame, final PartitionDataList dataList) {

    this.frame = frame;
    this.dataList = dataList;

    optionPanel = new OptionsPanel(12, 12, SwingConstants.CENTER);

    simulationsNumberField = new WholeNumberField(1, Integer.MAX_VALUE);
    simulationsNumberField.setColumns(10);
    simulationsNumberField.setValue(dataList.simulationsCount);
    optionPanel.addComponentWithLabel("Number of simulations:", simulationsNumberField);

    setSeed = new JCheckBox();
    setSeed.addItemListener(new SetSeedCheckBoxListener());
    setSeed.setSelected(dataList.setSeed);
    optionPanel.addComponentWithLabel("Set seed:", setSeed);

    startingSeedNumberField = new WholeNumberField(1, Long.MAX_VALUE);
    startingSeedNumberField.setColumns(10);
    startingSeedNumberField.setValue(dataList.startingSeed);
    startingSeedNumberField.setEnabled(dataList.setSeed);
    optionPanel.addComponentWithLabel("Starting seed:", startingSeedNumberField);

    outputFormat = new JComboBox();
    optionPanel.addComponentWithLabel("Output format:", outputFormat);
    outputFormatModel = new DefaultComboBoxModel(SimpleAlignment.OutputType.values());
    outputFormat.setModel(outputFormatModel);

    outputAncestralSequences = new JCheckBox();
    outputAncestralSequences.addItemListener(new outputAncestralSequencesCheckBoxListener());
    outputAncestralSequences.setSelected(dataList.useParallel);
    optionPanel.addComponentWithLabel("Output ancestral sequences:", outputAncestralSequences);

    useParallel = new JCheckBox();
    useParallel.addItemListener(new UseParallelCheckBoxListener());
    useParallel.setSelected(dataList.useParallel);
    optionPanel.addComponentWithLabel("Use parallel implementation:", useParallel);

    // Buttons holder
    JPanel buttonsHolder = new JPanel();
    buttonsHolder.setOpaque(false);

    // simulate button
    simulate = new JButton("Simulate", Utils.createImageIcon(Utils.BIOHAZARD_ICON));
    simulate.addActionListener(new ListenSimulate());
    buttonsHolder.add(simulate);

    generateXML = new JButton("Generate XML", Utils.createImageIcon(Utils.HAMMER_ICON));
    generateXML.addActionListener(new ListenGenerateXML());
    buttonsHolder.add(generateXML);

    setOpaque(false);
    setLayout(new BorderLayout());
    add(optionPanel, BorderLayout.NORTH);
    add(buttonsHolder, BorderLayout.SOUTH);
  } // END: SimulationPanel
Пример #3
0
  public final void collectSettings() {

    dataList.simulationsCount = simulationsNumberField.getValue();
    if (dataList.setSeed) {
      dataList.startingSeed = startingSeedNumberField.getValue();
    }

    dataList.outputFormat =
        SimpleAlignment.OutputType.parseFromString(outputFormat.getSelectedItem().toString());
  } // END: collectSettings
Пример #4
0
  /**
   * Sets the components up according to the partition model - but does not layout the top level
   * options panel.
   */
  public void setOptions() {

    if (SiteModelsPanel.DEBUG) {
      String modelName = (model == null) ? "null" : model.getName();
      Logger.getLogger("dr.app.beauti").info("ModelsPanel.setModelOptions(" + modelName + ")");
    }

    if (model == null) {
      return;
    }

    int dataType = model.getDataType().getType();
    switch (dataType) {
      case DataType.NUCLEOTIDES:
        nucSubstCombo.setSelectedItem(model.getNucSubstitutionModel());
        frequencyCombo.setSelectedItem(model.getFrequencyPolicy());

        break;

      case DataType.AMINO_ACIDS:
        aaSubstCombo.setSelectedItem(model.getAaSubstitutionModel());

        break;

      case DataType.TWO_STATES:
      case DataType.COVARION:
        binarySubstCombo.setSelectedItem(model.getBinarySubstitutionModel());
        useAmbiguitiesTreeLikelihoodCheck.setSelected(model.isUseAmbiguitiesTreeLikelihood());

        break;

      case DataType.GENERAL:
        discreteTraitSiteModelCombo.setSelectedItem(model.getDiscreteSubstType());
        activateBSSVS.setSelected(model.isActivateBSSVS());
        break;

      case DataType.CONTINUOUS:
        continuousTraitSiteModelCombo.setSelectedItem(model.getContinuousSubstModelType());

        ContinuousComponentOptions component =
            (ContinuousComponentOptions)
                model.getOptions().getComponentOptions(ContinuousComponentOptions.class);

        latLongCheck.setSelected(model.isLatitudeLongitude());
        latLongCheck.setEnabled(model.getContinuousTraitCount() == 2);
        useLambdaCheck.setSelected(component.useLambda(model));
        break;
      case DataType.MICRO_SAT:
        microsatName.setText(model.getMicrosatellite().getName());
        microsatMax.setText(Integer.toString(model.getMicrosatellite().getMax()));
        microsatMin.setText(Integer.toString(model.getMicrosatellite().getMin()));
        shareMicroSatCheck.setSelected(model.getOptions().shareMicroSat);
        rateProportionCombo.setSelectedItem(model.getRatePorportion());
        mutationBiasCombo.setSelectedItem(model.getMutationBias());
        phaseCombo.setSelectedItem(model.getPhase());
        shareMicroSatCheck.setEnabled(
            model.getOptions().getPartitionSubstitutionModels(Microsatellite.INSTANCE).size() > 1);
        break;

      default:
        throw new IllegalArgumentException("Unknown data type");
    }

    if (model.isGammaHetero() && !model.isInvarHetero()) {
      heteroCombo.setSelectedIndex(1);
    } else if (!model.isGammaHetero() && model.isInvarHetero()) {
      heteroCombo.setSelectedIndex(2);
    } else if (model.isGammaHetero() && model.isInvarHetero()) {
      heteroCombo.setSelectedIndex(3);
    } else {
      heteroCombo.setSelectedIndex(0);
    }

    gammaCatCombo.setSelectedIndex(model.getGammaCategories() - 4);

    if (model.getCodonHeteroPattern() == null) {
      codingCombo.setSelectedIndex(0);
    } else if (model.getCodonHeteroPattern().equals("112")) {
      codingCombo.setSelectedIndex(1);
    } else {
      codingCombo.setSelectedIndex(2);
    }

    substUnlinkCheck.setSelected(model.isUnlinkedSubstitutionModel());
    heteroUnlinkCheck.setSelected(model.isUnlinkedHeterogeneityModel());
    freqsUnlinkCheck.setSelected(model.isUnlinkedFrequencyModel());

    dolloCheck.setSelected(model.isDolloModel());
  }
Пример #5
0
  public PartitionModelPanel(final PartitionSubstitutionModel partitionModel) {

    super(12, (OSType.isMac() ? 6 : 24));

    this.model = partitionModel;

    initCodonPartitionComponents();

    PanelUtils.setupComponent(nucSubstCombo);
    nucSubstCombo.addItemListener(
        new ItemListener() {
          public void itemStateChanged(ItemEvent ev) {
            model.setNucSubstitutionModel((NucModelType) nucSubstCombo.getSelectedItem());
          }
        });
    nucSubstCombo.setToolTipText("<html>Select the type of nucleotide substitution model.</html>");

    PanelUtils.setupComponent(aaSubstCombo);
    aaSubstCombo.addItemListener(
        new ItemListener() {
          public void itemStateChanged(ItemEvent ev) {
            AminoAcidModelType type = (AminoAcidModelType) aaSubstCombo.getSelectedItem();
            model.setAaSubstitutionModel(type);
            citationText.setText(type.getCitation().toString());
          }
        });
    aaSubstCombo.setToolTipText("<html>Select the type of amino acid substitution model.</html>");

    PanelUtils.setupComponent(binarySubstCombo);
    binarySubstCombo.addItemListener(
        new ItemListener() {
          public void itemStateChanged(ItemEvent ev) {
            model.setBinarySubstitutionModel((BinaryModelType) binarySubstCombo.getSelectedItem());
            useAmbiguitiesTreeLikelihoodCheck.setSelected(
                binarySubstCombo.getSelectedItem() == BinaryModelType.BIN_COVARION);
            useAmbiguitiesTreeLikelihoodCheck.setEnabled(
                binarySubstCombo.getSelectedItem() != BinaryModelType.BIN_COVARION);
          }
        });
    binarySubstCombo.setToolTipText("<html>Select the type of binary substitution model.</html>");

    PanelUtils.setupComponent(useAmbiguitiesTreeLikelihoodCheck);
    useAmbiguitiesTreeLikelihoodCheck.addItemListener(
        new ItemListener() {
          public void itemStateChanged(ItemEvent ev) {
            model.setUseAmbiguitiesTreeLikelihood(useAmbiguitiesTreeLikelihoodCheck.isSelected());
          }
        });
    useAmbiguitiesTreeLikelihoodCheck.setToolTipText(
        "<html>Detemine useAmbiguities in &lt treeLikelihood &gt .</html>");

    PanelUtils.setupComponent(frequencyCombo);
    frequencyCombo.addItemListener(
        new ItemListener() {
          public void itemStateChanged(ItemEvent ev) {
            model.setFrequencyPolicy((FrequencyPolicyType) frequencyCombo.getSelectedItem());
          }
        });
    frequencyCombo.setToolTipText(
        "<html>Select the policy for determining the base frequencies.</html>");

    PanelUtils.setupComponent(heteroCombo);
    heteroCombo.setToolTipText(
        "<html>Select the type of site-specific rate<br>heterogeneity model.</html>");
    heteroCombo.addItemListener(
        new ItemListener() {
          public void itemStateChanged(ItemEvent ev) {

            boolean gammaHetero =
                heteroCombo.getSelectedIndex() == 1 || heteroCombo.getSelectedIndex() == 3;

            model.setGammaHetero(gammaHetero);
            model.setInvarHetero(
                heteroCombo.getSelectedIndex() == 2 || heteroCombo.getSelectedIndex() == 3);

            if (gammaHetero) {
              gammaCatLabel.setEnabled(true);
              gammaCatCombo.setEnabled(true);
            } else {
              gammaCatLabel.setEnabled(false);
              gammaCatCombo.setEnabled(false);
            }

            if (codingCombo.getSelectedIndex() != 0) {
              heteroUnlinkCheck.setEnabled(heteroCombo.getSelectedIndex() != 0);
              heteroUnlinkCheck.setSelected(heteroCombo.getSelectedIndex() != 0);
            }
          }
        });

    PanelUtils.setupComponent(gammaCatCombo);
    gammaCatCombo.setToolTipText(
        "<html>Select the number of categories to use for<br>the discrete gamma rate heterogeneity model.</html>");
    gammaCatCombo.addItemListener(
        new ItemListener() {
          public void itemStateChanged(ItemEvent ev) {

            model.setGammaCategories(gammaCatCombo.getSelectedIndex() + 4);
          }
        });

    setYang96Button = new JButton("Use Yang96 model");
    setYang96Button.addActionListener(
        new ActionListener() {
          public void actionPerformed(ActionEvent ev) {
            setYang96Model();
          }
        });
    PanelUtils.setupComponent(setYang96Button);
    setYang96Button.setToolTipText(
        "<html>Sets a 3 codon-position model with independent GTR and Gamma as described in<br>"
            + "Yang (1996) <i>J Mol Evol</i> <b>42</b>: 587–596. This model is named 3' in this paper.</html>");

    setSRD06Button = new JButton("Use SRD06 model");
    setSRD06Button.addActionListener(
        new ActionListener() {
          public void actionPerformed(ActionEvent ev) {
            setSRD06Model();
          }
        });
    PanelUtils.setupComponent(setSRD06Button);
    setSRD06Button.setToolTipText(
        "<html>Sets the SRD06 model as described in<br>"
            + "Shapiro, Rambaut & Drummond (2006) <i>MBE</i> <b>23</b>: 7-9.</html>");

    citationText = new JTextArea(1, 40);
    citationText.setLineWrap(true);
    citationText.setWrapStyleWord(true);
    citationText.setEditable(false);
    citationText.setFont(this.getFont());
    citationText.setOpaque(false);
    AminoAcidModelType type = (AminoAcidModelType) aaSubstCombo.getSelectedItem();
    citationText.setText(type.getCitation().toString());

    dolloCheck.addActionListener(
        new ActionListener() {
          public void actionPerformed(ActionEvent actionEvent) {
            if (dolloCheck.isSelected()) {
              binarySubstCombo.setSelectedIndex(0);
              binarySubstCombo.setEnabled(false);
              useAmbiguitiesTreeLikelihoodCheck.setSelected(true);
              useAmbiguitiesTreeLikelihoodCheck.setEnabled(false);
              frequencyCombo.setEnabled(false);
              frequencyCombo.setSelectedItem(FrequencyPolicyType.EMPIRICAL);
              heteroCombo.setSelectedIndex(0);
              heteroCombo.setEnabled(false);
              model.setBinarySubstitutionModel(BinaryModelType.BIN_DOLLO);
              model.setDolloModel(true);
              DolloComponentOptions comp =
                  (DolloComponentOptions)
                      model.getOptions().getComponentOptions(DolloComponentOptions.class);
              comp.createParameters(model.getOptions());
              comp.setActive(true);

            } else {
              binarySubstCombo.setEnabled(true);
              useAmbiguitiesTreeLikelihoodCheck.setEnabled(true);
              frequencyCombo.setEnabled(true);
              heteroCombo.setEnabled(true);
              model.setBinarySubstitutionModel(
                  (BinaryModelType) binarySubstCombo.getSelectedItem());
              model.setDolloModel(false);
            }
          }
        });

    PanelUtils.setupComponent(dolloCheck);
    //        dolloCheck.addChangeListener(new ChangeListener() {
    //            public void stateChanged(ChangeEvent e) {
    //                model.setDolloModel(true);
    //            }
    //        });
    dolloCheck.setEnabled(true);
    dolloCheck.setToolTipText(
        "<html>Activates a Stochastic Dollo model as described in<br>"
            + "Alekseyenko, Lee & Suchard (2008) <i>Syst Biol</i> <b>57</b>: 772-784.</html>");

    PanelUtils.setupComponent(discreteTraitSiteModelCombo);
    discreteTraitSiteModelCombo.addItemListener(
        new ItemListener() {
          public void itemStateChanged(ItemEvent ev) {
            model.setDiscreteSubstType(
                (DiscreteSubstModelType) discreteTraitSiteModelCombo.getSelectedItem());
          }
        });

    PanelUtils.setupComponent(continuousTraitSiteModelCombo);
    continuousTraitSiteModelCombo.setToolTipText(
        "<html>Select the model of continuous random walk, either homogenous<br>"
            + "or relaxed random walk (RRW) with a choice of distributions.</html>");
    continuousTraitSiteModelCombo.addItemListener(
        new ItemListener() {
          public void itemStateChanged(ItemEvent ev) {
            model.setContinuousSubstModelType(
                (ContinuousSubstModelType) continuousTraitSiteModelCombo.getSelectedItem());
          }
        });

    PanelUtils.setupComponent(latLongCheck);
    latLongCheck.setToolTipText(
        "<html>Specify whether this is a geographical trait representing <br>"
            + "latitude and longitude. Provides appropriate statistics to log file.</html>");

    latLongCheck.addItemListener(
        new ItemListener() {
          public void itemStateChanged(ItemEvent ev) {
            model.setIsLatitudeLongitude(latLongCheck.isSelected());
          }
        });
    latLongCheck.setEnabled(false);

    PanelUtils.setupComponent(useLambdaCheck);
    useLambdaCheck.addItemListener(
        new ItemListener() {
          public void itemStateChanged(ItemEvent ev) {
            ContinuousComponentOptions component =
                (ContinuousComponentOptions)
                    model.getOptions().getComponentOptions(ContinuousComponentOptions.class);
            component.setUseLambda(model, useLambdaCheck.isSelected());
          }
        });
    useLambdaCheck.setToolTipText(
        "<html>Estimate degree of phylogenetic correlation in continuous traits using <br>"
            + "a tree transform. Inspired by Pagel (1999), described in Lemey et al (2013) <i>in prep</i></html>");

    PanelUtils.setupComponent(activateBSSVS);
    activateBSSVS.addItemListener(
        new ItemListener() {
          public void itemStateChanged(ItemEvent ev) {
            model.setActivateBSSVS(activateBSSVS.isSelected());
          }
        });
    activateBSSVS.setToolTipText(
        "<html>Activates Bayesian stochastic search variable selection on the rates as described in<br>"
            + "Lemey, Rambaut, Drummond & Suchard (2009) <i>PLoS Computational Biology</i> <b>5</b>: e1000520</html>");

    // ============ micro-sat ================
    microsatName.setColumns(30);
    microsatName.addKeyListener(
        new java.awt.event.KeyListener() {
          public void keyTyped(KeyEvent e) {}

          public void keyPressed(KeyEvent e) {}

          public void keyReleased(KeyEvent e) {
            model.getMicrosatellite().setName(microsatName.getText());
          }
        });
    microsatMax.setColumns(10);
    microsatMax.addKeyListener(
        new java.awt.event.KeyListener() {
          public void keyTyped(KeyEvent e) {}

          public void keyPressed(KeyEvent e) {}

          public void keyReleased(KeyEvent e) {
            model.getMicrosatellite().setMax(Integer.parseInt(microsatMax.getText()));
          }
        });
    microsatMin.setColumns(10);
    microsatMin.addKeyListener(
        new java.awt.event.KeyListener() {
          public void keyTyped(KeyEvent e) {}

          public void keyPressed(KeyEvent e) {}

          public void keyReleased(KeyEvent e) {
            model.getMicrosatellite().setMin(Integer.parseInt(microsatMin.getText()));
          }
        });

    PanelUtils.setupComponent(shareMicroSatCheck);
    shareMicroSatCheck.addActionListener(
        new ActionListener() {
          public void actionPerformed(ActionEvent e) {
            model.getOptions().shareMicroSat = shareMicroSatCheck.isSelected();
            if (shareMicroSatCheck.isSelected()) {
              model.getOptions().shareMicroSat();
            } else {
              model.getOptions().unshareMicroSat();
            }
            setOptions();
          }
        });

    PanelUtils.setupComponent(rateProportionCombo);
    rateProportionCombo.addItemListener(
        new ItemListener() {
          public void itemStateChanged(ItemEvent ev) {
            model.setRatePorportion(
                (MicroSatModelType.RateProportionality) rateProportionCombo.getSelectedItem());
          }
        });
    // rateProportionCombo.setToolTipText("<html>Select the type of microsatellite substitution
    // model.</html>");
    PanelUtils.setupComponent(mutationBiasCombo);
    mutationBiasCombo.addItemListener(
        new ItemListener() {
          public void itemStateChanged(ItemEvent ev) {
            model.setMutationBias(
                (MicroSatModelType.MutationalBias) mutationBiasCombo.getSelectedItem());
          }
        });
    PanelUtils.setupComponent(phaseCombo);
    phaseCombo.addItemListener(
        new ItemListener() {
          public void itemStateChanged(ItemEvent ev) {
            model.setPhase((MicroSatModelType.Phase) phaseCombo.getSelectedItem());
          }
        });

    setupPanel();
    setOpaque(false);
  }
Пример #6
0
  public MCMCPanel(BeautiFrame parent) {
    setLayout(new BorderLayout());

    // Mac OS X components have more spacing round them already
    optionsPanel = new OptionsPanel(12, (OSType.isMac() ? 6 : 24));

    this.frame = parent;

    setOpaque(false);
    optionsPanel.setOpaque(false);

    chainLengthField.setValue(100000);
    chainLengthField.setColumns(10);
    optionsPanel.addComponentWithLabel("Length of chain:", chainLengthField);
    chainLengthField.addKeyListener(
        new java.awt.event.KeyListener() {
          public void keyTyped(KeyEvent e) {}

          public void keyPressed(KeyEvent e) {}

          public void keyReleased(KeyEvent e) {
            options.chainLength = chainLengthField.getValue();
            frame.setDirty();
          }
        });

    optionsPanel.addSeparator();

    echoEveryField.setValue(1000);
    echoEveryField.setColumns(10);
    optionsPanel.addComponentWithLabel("Echo state to screen every:", echoEveryField);
    echoEveryField.addKeyListener(
        new java.awt.event.KeyListener() {
          public void keyTyped(KeyEvent e) {}

          public void keyPressed(KeyEvent e) {}

          public void keyReleased(KeyEvent e) {
            options.echoEvery = echoEveryField.getValue();
            frame.setDirty();
          }
        });

    logEveryField.setValue(100);
    logEveryField.setColumns(10);
    optionsPanel.addComponentWithLabel("Log parameters every:", logEveryField);
    logEveryField.addKeyListener(
        new java.awt.event.KeyListener() {
          public void keyTyped(KeyEvent e) {}

          public void keyPressed(KeyEvent e) {}

          public void keyReleased(KeyEvent e) {
            options.logEvery = logEveryField.getValue();
            frame.setDirty();
          }
        });

    optionsPanel.addSeparator();

    fileNameStemField.setColumns(32);
    optionsPanel.addComponentWithLabel("File name stem:", fileNameStemField);
    fileNameStemField.setEditable(true);
    fileNameStemField.addKeyListener(
        new java.awt.event.KeyListener() {
          public void keyTyped(KeyEvent e) {}

          public void keyPressed(KeyEvent e) {}

          public void keyReleased(KeyEvent e) {
            options.fileNameStem = fileNameStemField.getText();
            updateOtherFileNames(options);
            frame.setDirty();
          }
        });

    optionsPanel.addComponent(addTxt);
    if (OSType.isWindows()) {
      addTxt.setSelected(true);
    } else {
      addTxt.setSelected(false);
    }
    addTxt.addChangeListener(
        new ChangeListener() {
          public void stateChanged(ChangeEvent changeEvent) {
            setOptions(options);
            frame.setDirty();
          }
        });

    optionsPanel.addSeparator();

    logFileNameField.setColumns(32);
    optionsPanel.addComponentWithLabel("Log file name:", logFileNameField);
    logFileNameField.setEditable(false);

    //        optionsPanel.addComponent(allowOverwriteLogCheck);
    //        allowOverwriteLogCheck.setSelected(false);
    //        allowOverwriteLogCheck.addChangeListener(new ChangeListener() {
    //            public void stateChanged(ChangeEvent changeEvent) {
    //            	options.allowOverwriteLog = allowOverwriteLogCheck.isSelected();
    //            }
    //        });

    treeFileNameField.setColumns(32);
    optionsPanel.addComponentWithLabel("Trees file name:", treeFileNameField);
    treeFileNameField.setEditable(false);

    //        addComponent(mapTreeLogCheck);
    //        mapTreeLogCheck.setOpaque(false);
    //        mapTreeLogCheck.addActionListener(new java.awt.event.ActionListener() {
    //            public void actionPerformed(ActionEvent e) {
    //                mapTreeFileNameField.setEnabled(mapTreeLogCheck.isSelected());
    //            }
    //        });
    //
    //        mapTreeFileNameField.setColumns(32);
    //        addComponentWithLabel("MAP tree file name:", mapTreeFileNameField);

    optionsPanel.addComponent(substTreeLogCheck);
    substTreeLogCheck.setOpaque(false);
    substTreeLogCheck.addActionListener(
        new java.awt.event.ActionListener() {
          public void actionPerformed(ActionEvent e) {
            options.substTreeLog = substTreeLogCheck.isSelected();
            updateTreeFileNameList();
            substTreeFileNameField.setEnabled(substTreeLogCheck.isSelected());
            if (substTreeLogCheck.isSelected()) {
              substTreeFileNameField.setText(displayTreeList(options.substTreeFileName));
            } else {
              substTreeFileNameField.setText("");
            }

            frame.setDirty();
          }
        });

    substTreeFileNameField.setColumns(32);
    substTreeFileNameField.setEditable(false);
    substTreeFileNameField.setEnabled(false);
    optionsPanel.addComponentWithLabel("Substitutions trees file name:", substTreeFileNameField);

    optionsPanel.addComponent(operatorAnalaysisCheck);
    operatorAnalaysisCheck.addActionListener(
        new java.awt.event.ActionListener() {
          public void actionPerformed(ActionEvent e) {
            options.operatorAnalysis = operatorAnalaysisCheck.isSelected();

            updateOtherFileNames(options);

            frame.setDirty();
          }
        });

    operatorAnalaysisFileNameField.setColumns(32);
    operatorAnalaysisFileNameField.setEditable(false);
    operatorAnalaysisFileNameField.setEnabled(false);
    optionsPanel.addComponentWithLabel(
        "Operator analysis file name:", operatorAnalaysisFileNameField);

    optionsPanel.addSeparator();

    optionsPanel.addComponent(samplePriorCheckBox);
    samplePriorCheckBox.setOpaque(false);
    samplePriorCheckBox.addChangeListener(
        new ChangeListener() {
          public void stateChanged(ChangeEvent changeEvent) {
            frame.setDirty();
          }
        });

    //        logFileNameField.addKeyListener(listener);
    //        treeFileNameField.addKeyListener(listener);
    // mapTreeFileNameField.addKeyListener(listener);
    //        substTreeFileNameField.addKeyListener(listener);

    //        optionsPanel.setPreferredSize(new java.awt.Dimension(500, 600));

    JPanel panel = new JPanel(new FlowLayout(FlowLayout.CENTER));
    panel.add(optionsPanel, BorderLayout.CENTER);
    panel.setOpaque(false);

    JScrollPane scrollPane =
        new JScrollPane(
            panel,
            JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
            JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
    scrollPane.setOpaque(false);
    scrollPane.setBorder(null);
    scrollPane.getViewport().setOpaque(false);

    add(scrollPane, BorderLayout.CENTER);
  }
Пример #7
0
  public BeastDialog(final JFrame frame, final String titleString, final Icon icon) {
    this.frame = frame;

    optionPanel = new OptionsPanel(12, 12);

    // this.frame = frame;

    JPanel panel = new JPanel(new BorderLayout());
    panel.setOpaque(false);

    final OptionsPanel optionPanel3 = new OptionsPanel(0, 3);

    final JLabel titleIcon = new JLabel();
    titleIcon.setIcon(icon);

    final JLabel titleText = new JLabel(titleString);
    optionPanel3.addComponent(titleText);

    //        final JButton aboutButton = new JButton("About BEAST...");
    //        //aboutButton.setAction();
    //        optionPanel3.addComponent(aboutButton);

    optionPanel.addComponents(titleIcon, optionPanel3);

    final JButton inputFileButton = new JButton("Choose File...");
    final JTextField inputFileNameText = new JTextField("not selected", 16);

    inputFileButton.addActionListener(
        new ActionListener() {
          public void actionPerformed(ActionEvent ae) {
            FileDialog dialog = new FileDialog(frame, "Select target file...", FileDialog.LOAD);

            dialog.setVisible(true);
            if (dialog.getFile() == null) {
              // the dialog was cancelled...
              return;
            }

            inputFile = new File(dialog.getDirectory(), dialog.getFile());
            inputFileNameText.setText(inputFile.getName());
          }
        });
    inputFileNameText.setEditable(false);

    JPanel panel1 = new JPanel(new BorderLayout(0, 0));
    panel1.add(inputFileNameText, BorderLayout.CENTER);
    panel1.add(inputFileButton, BorderLayout.EAST);
    inputFileNameText.setToolTipText(
        "<html>Drag a BEAST XML file here or use the button to<br>"
            + "select one from a file dialog box.</html>");
    inputFileButton.setToolTipText(
        "<html>Drag a BEAST XML file here or use the button to<br>"
            + "select one from a file dialog box.</html>");
    optionPanel.addComponentWithLabel("BEAST XML File: ", panel1);

    Color focusColor = UIManager.getColor("Focus.color");
    Border focusBorder = BorderFactory.createMatteBorder(2, 2, 2, 2, focusColor);
    new FileDrop(
        null,
        inputFileNameText,
        focusBorder,
        new FileDrop.Listener() {
          public void filesDropped(java.io.File[] files) {
            inputFile = files[0];
            inputFileNameText.setText(inputFile.getName());
          } // end filesDropped
        }); // end FileDrop.Listener

    overwriteCheckBox.setToolTipText(
        "<html>Specify whether BEAST will overwrite existing log files<br>"
            + "with the same name.</html>");
    optionPanel.addComponent(overwriteCheckBox);

    optionPanel.addSeparator();

    seedText.setColumns(12);
    seedText.setToolTipText(
        "<html>Specify a particular random number seed to replicate<br>"
            + "precisely the sequence of steps in the MCMC chain. By<br>"
            + "default this uses system information to provide a new<br>"
            + "seed each run.</html>");

    optionPanel.addComponentWithLabel("Random number seed: ", seedText);

    threadsCombo.setToolTipText(
        "<html>Specify how large a thread pool to use.<br>"
            + "In most circumstances this should be set to 'automatic'<br>"
            + "but in some circumstances it may be desirable to restict<br>"
            + "the number of cores being used. 0 will turn off threading</html>");

    optionPanel.addComponentWithLabel("Thread pool size: ", threadsCombo);

    optionPanel.addSeparator();

    optionPanel.addSpanningComponent(beagleCheckBox);
    beagleCheckBox.setSelected(true);

    final OptionsPanel optionPanel1 = new OptionsPanel(0, 6);
    //        optionPanel1.setBorder(BorderFactory.createEmptyBorder());
    optionPanel1.setBorder(new TitledBorder(""));

    OptionsPanel optionPanel2 = new OptionsPanel(0, 3);
    optionPanel2.setBorder(BorderFactory.createEmptyBorder());
    final JLabel label1 =
        optionPanel2.addComponentWithLabel("Prefer use of: ", beagleResourceCombo);
    optionPanel2.addComponent(beagleSSECheckBox);
    beagleSSECheckBox.setSelected(true);
    final JLabel label2 =
        optionPanel2.addComponentWithLabel("Prefer precision: ", beaglePrecisionCombo);
    final JLabel label3 =
        optionPanel2.addComponentWithLabel("Rescaling scheme: ", beagleScalingCombo);
    optionPanel2.addComponent(beagleInfoCheckBox);
    optionPanel2.setBorder(BorderFactory.createEmptyBorder());

    optionPanel1.addComponent(optionPanel2);

    final JEditorPane beagleInfo =
        new JEditorPane(
            "text/html",
            "<html><div style=\"font-family:'helvetica neue light',helvetica,sans-serif;font-size:12;\"><p>BEAGLE is a high-performance phylogenetic library that can make use of<br>"
                + "additional computational resources such as graphics boards. It must be<br>"
                + "downloaded and installed independently of BEAST:</p>"
                + "<pre><a href=\"http://beagle-lib.googlecode.com/\">http://beagle-lib.googlecode.com/</a></pre></div>");
    beagleInfo.setOpaque(false);
    beagleInfo.setEditable(false);
    beagleInfo.addHyperlinkListener(new SimpleLinkListener());
    optionPanel1.addComponent(beagleInfo);
    optionPanel1.setBorder(BorderFactory.createEmptyBorder());
    optionPanel.addSpanningComponent(optionPanel1);

    beagleInfoCheckBox.setEnabled(false);
    beagleCheckBox.addChangeListener(
        new ChangeListener() {
          public void stateChanged(ChangeEvent e) {
            beagleInfo.setEnabled(beagleCheckBox.isSelected());
            beagleInfoCheckBox.setEnabled(beagleCheckBox.isSelected());
            label1.setEnabled(beagleCheckBox.isSelected());
            beagleResourceCombo.setEnabled(beagleCheckBox.isSelected());
            beagleSSECheckBox.setEnabled(beagleCheckBox.isSelected());
            label2.setEnabled(beagleCheckBox.isSelected());
            beaglePrecisionCombo.setEnabled(beagleCheckBox.isSelected());
            label3.setEnabled(beagleCheckBox.isSelected());
            beagleScalingCombo.setEnabled(beagleCheckBox.isSelected());
          }
        });

    beagleCheckBox.setSelected(false);
    beagleResourceCombo.setSelectedItem("CPU");
  }
Пример #8
0
 public void setSeed(long seed) {
   seedText.setValue(seed);
 }
Пример #9
0
 public long getSeed() {
   return seedText.getLongValue();
 }