public ChartSetupDialog( final JFrame frame, boolean canLogXAxis, boolean canLogYAxis, int defaultMinXAxisFlag, int defaultMaxXAxisFlag, int defaultMinYAxisFlag, int defaultMaxYAxisFlag) { this.frame = frame; this.canLogXAxis = canLogXAxis; this.canLogYAxis = canLogYAxis; this.defaultMinXAxisFlag = defaultMinXAxisFlag; this.defaultMaxXAxisFlag = defaultMaxXAxisFlag; this.defaultMinYAxisFlag = defaultMinYAxisFlag; this.defaultMaxYAxisFlag = defaultMaxYAxisFlag; logXAxis = new JCheckBox("Log axis"); manualXAxis = new JCheckBox("Manual range"); minXValue = new RealNumberField(); minXValue.setColumns(12); maxXValue = new RealNumberField(); maxXValue.setColumns(12); logYAxis = new JCheckBox("Log axis"); manualYAxis = new JCheckBox("Manual range"); minYValue = new RealNumberField(); minYValue.setColumns(12); maxYValue = new RealNumberField(); maxYValue.setColumns(12); optionPanel = new OptionsPanel(12, 12); optionPanel.addSpanningComponent(new JLabel("X Axis")); if (canLogXAxis) { optionPanel.addComponent(logXAxis); } optionPanel.addComponent(manualXAxis); final JLabel minXLabel = new JLabel("Minimum Value:"); optionPanel.addComponents(minXLabel, minXValue); final JLabel maxXLabel = new JLabel("Maximum Value:"); optionPanel.addComponents(maxXLabel, maxXValue); manualXAxis.addChangeListener( new ChangeListener() { public void stateChanged(ChangeEvent changeEvent) { final boolean xaSelected = manualXAxis.isSelected(); minXLabel.setEnabled(xaSelected); minXValue.setEnabled(xaSelected); maxXLabel.setEnabled(xaSelected); maxXValue.setEnabled(xaSelected); } }); manualXAxis.setSelected(true); manualXAxis.setSelected(false); optionPanel.addSeparator(); optionPanel.addSpanningComponent(new JLabel("Y Axis")); if (canLogYAxis) { optionPanel.addComponent(logYAxis); } optionPanel.addComponent(manualYAxis); final JLabel minYLabel = new JLabel("Minimum Value:"); optionPanel.addComponents(minYLabel, minYValue); final JLabel maxYLabel = new JLabel("Maximum Value:"); optionPanel.addComponents(maxYLabel, maxYValue); manualYAxis.addChangeListener( new ChangeListener() { public void stateChanged(ChangeEvent changeEvent) { final boolean yaSelected = manualYAxis.isSelected(); minYLabel.setEnabled(yaSelected); minYValue.setEnabled(yaSelected); maxYLabel.setEnabled(yaSelected); maxYValue.setEnabled(yaSelected); } }); manualYAxis.setSelected(true); manualYAxis.setSelected(false); }
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"); }