mev-4.0.01/source/org/tigr/microarray/mev/cluster/gui/impl/ease/gotree/EaseThresholdDialog.java

Code
Comments
Other
Rev Date Author Line
2 26 Feb 07 jari 1 /*
2 26 Feb 07 jari 2 Copyright @ 1999-2004, The Institute for Genomic Research (TIGR).
2 26 Feb 07 jari 3 All rights reserved.
2 26 Feb 07 jari 4  */
2 26 Feb 07 jari 5 /*
2 26 Feb 07 jari 6  * EaseThresholdPanel.java
2 26 Feb 07 jari 7  *
2 26 Feb 07 jari 8  * Created on August 20, 2004, 2:40 PM
2 26 Feb 07 jari 9  */
2 26 Feb 07 jari 10
2 26 Feb 07 jari 11 package org.tigr.microarray.mev.cluster.gui.impl.ease.gotree;
2 26 Feb 07 jari 12
2 26 Feb 07 jari 13 import java.awt.Dimension;
2 26 Feb 07 jari 14 import java.awt.GridBagConstraints;
2 26 Feb 07 jari 15 import java.awt.GridBagLayout;
2 26 Feb 07 jari 16 import java.awt.Insets;
2 26 Feb 07 jari 17 import java.awt.Toolkit;
2 26 Feb 07 jari 18 import java.awt.event.ActionEvent;
2 26 Feb 07 jari 19 import java.awt.event.WindowEvent;
2 26 Feb 07 jari 20
2 26 Feb 07 jari 21 import javax.swing.JFrame;
2 26 Feb 07 jari 22 import javax.swing.JLabel;
2 26 Feb 07 jari 23 import javax.swing.JOptionPane;
2 26 Feb 07 jari 24 import javax.swing.JTextField;
2 26 Feb 07 jari 25
2 26 Feb 07 jari 26 import org.tigr.microarray.mev.cluster.gui.impl.dialogs.AlgorithmDialog;
2 26 Feb 07 jari 27 import org.tigr.microarray.mev.cluster.gui.impl.dialogs.DialogListener;
2 26 Feb 07 jari 28 import org.tigr.microarray.mev.cluster.gui.impl.dialogs.ParameterPanel;
2 26 Feb 07 jari 29 import org.tigr.microarray.mev.cluster.gui.impl.dialogs.dialogHelpUtil.HelpWindow;
2 26 Feb 07 jari 30
2 26 Feb 07 jari 31 /**
2 26 Feb 07 jari 32  *
2 26 Feb 07 jari 33  * @author  braisted
2 26 Feb 07 jari 34  */
2 26 Feb 07 jari 35 public class EaseThresholdDialog extends AlgorithmDialog {
2 26 Feb 07 jari 36     
2 26 Feb 07 jari 37     private int result = JOptionPane.CANCEL_OPTION;
2 26 Feb 07 jari 38     private double origTOne, origTTwo;
2 26 Feb 07 jari 39     
2 26 Feb 07 jari 40     private JTextField tOneField;
2 26 Feb 07 jari 41     private JTextField tTwoField;
2 26 Feb 07 jari 42     
2 26 Feb 07 jari 43     /** Creates a new instance of EaseThresholdPanel */
2 26 Feb 07 jari 44     public EaseThresholdDialog(JFrame parent, double T1, double T2) {
2 26 Feb 07 jari 45         super(parent, "EASE Tree Thresholds", true);
2 26 Feb 07 jari 46         origTOne = T1;
2 26 Feb 07 jari 47         origTTwo = T2;
2 26 Feb 07 jari 48         ParameterPanel params = new ParameterPanel("Threshold Selection");
2 26 Feb 07 jari 49         params.setLayout(new GridBagLayout());
2 26 Feb 07 jari 50         
2 26 Feb 07 jari 51         JLabel label = new JLabel("Lower Threshold");        
2 26 Feb 07 jari 52         tOneField = new JTextField("0.01", 8);
2 26 Feb 07 jari 53         
2 26 Feb 07 jari 54         params.add(label, new GridBagConstraints(0,0,1,1,0.0,0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(10,0,0,15), 0, 0));
2 26 Feb 07 jari 55         params.add(tOneField, new GridBagConstraints(1,0,1,1,0.0,0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(10,0,0,0), 0, 0));
2 26 Feb 07 jari 56                 
2 26 Feb 07 jari 57         label = new JLabel("Upper Threshold");
2 26 Feb 07 jari 58         tTwoField = new JTextField("0.05", 8);
2 26 Feb 07 jari 59
2 26 Feb 07 jari 60         params.add(label, new GridBagConstraints(0,1,1,1,0.0,0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(15,0,10,15), 0, 0));
2 26 Feb 07 jari 61         params.add(tTwoField, new GridBagConstraints(1,1,1,1,0.0,0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(15,0,10,0), 0, 0));
2 26 Feb 07 jari 62
2 26 Feb 07 jari 63         addContent(params);
2 26 Feb 07 jari 64         setActionListeners(new EventListener());
2 26 Feb 07 jari 65         pack();
2 26 Feb 07 jari 66     }
2 26 Feb 07 jari 67     
2 26 Feb 07 jari 68     
2 26 Feb 07 jari 69     public double getLowerThreshold() {
2 26 Feb 07 jari 70         return Double.parseDouble(tOneField.getText());
2 26 Feb 07 jari 71     }
2 26 Feb 07 jari 72
2 26 Feb 07 jari 73     public double getUpperThreshold() {
2 26 Feb 07 jari 74         return Double.parseDouble(tTwoField.getText());
2 26 Feb 07 jari 75     }
2 26 Feb 07 jari 76
2 26 Feb 07 jari 77     
2 26 Feb 07 jari 78     /** Shows the dialog.
2 26 Feb 07 jari 79      * @return  */
2 26 Feb 07 jari 80     public int showModal() {
2 26 Feb 07 jari 81         Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
2 26 Feb 07 jari 82         setLocation((screenSize.width - getSize().width)/2, (screenSize.height - getSize().height)/2);
2 26 Feb 07 jari 83         show();
2 26 Feb 07 jari 84         return result;
2 26 Feb 07 jari 85     }
2 26 Feb 07 jari 86     
2 26 Feb 07 jari 87     private void resetControls() {
2 26 Feb 07 jari 88         this.tOneField.setText(String.valueOf(this.origTOne));
2 26 Feb 07 jari 89         this.tTwoField.setText(String.valueOf(this.origTTwo));
2 26 Feb 07 jari 90         this.tOneField.grabFocus();
2 26 Feb 07 jari 91         this.tOneField.selectAll();
2 26 Feb 07 jari 92     }
2 26 Feb 07 jari 93     
2 26 Feb 07 jari 94     private boolean validate(String a, String b) {
2 26 Feb 07 jari 95         double t1, t2;
2 26 Feb 07 jari 96         
2 26 Feb 07 jari 97         try {
2 26 Feb 07 jari 98             t1 = Double.parseDouble(a);
2 26 Feb 07 jari 99         } catch (NumberFormatException nfe) {
2 26 Feb 07 jari 100             JOptionPane.showMessageDialog(this, "Number format error, entered value is not recognized as a number", "Input Error", JOptionPane.ERROR_MESSAGE);
2 26 Feb 07 jari 101             this.tOneField.grabFocus();
2 26 Feb 07 jari 102             this.tOneField.selectAll();
2 26 Feb 07 jari 103             return false;
2 26 Feb 07 jari 104         }
2 26 Feb 07 jari 105          
2 26 Feb 07 jari 106         try {
2 26 Feb 07 jari 107             t2 = Double.parseDouble(b);
2 26 Feb 07 jari 108         } catch (NumberFormatException nfe) {
2 26 Feb 07 jari 109             JOptionPane.showMessageDialog(this, "Number format error, entered value is not recognized as a number", "Input Error", JOptionPane.ERROR_MESSAGE);
2 26 Feb 07 jari 110             this.tTwoField.grabFocus();
2 26 Feb 07 jari 111             this.tTwoField.selectAll();
2 26 Feb 07 jari 112             return false;
2 26 Feb 07 jari 113         }
2 26 Feb 07 jari 114         
2 26 Feb 07 jari 115         if(t1 <= 0 || t1 >= 1.0) {
2 26 Feb 07 jari 116             JOptionPane.showMessageDialog(this, "Threshold should be > 0 and < 1.0", "Input Error", JOptionPane.ERROR_MESSAGE);
2 26 Feb 07 jari 117             this.tOneField.grabFocus();
2 26 Feb 07 jari 118             this.tOneField.selectAll();
2 26 Feb 07 jari 119             return false;     
2 26 Feb 07 jari 120         }
2 26 Feb 07 jari 121         
2 26 Feb 07 jari 122         if(t2 <= 0 || t2 >= 1.0) {
2 26 Feb 07 jari 123             JOptionPane.showMessageDialog(this, "Threshold should be > 0 and < 1.0", "Input Error", JOptionPane.ERROR_MESSAGE);
2 26 Feb 07 jari 124             this.tTwoField.grabFocus();
2 26 Feb 07 jari 125             this.tTwoField.selectAll();
2 26 Feb 07 jari 126             return false;     
2 26 Feb 07 jari 127         }
2 26 Feb 07 jari 128         
2 26 Feb 07 jari 129         if(t1 >= t2) {
2 26 Feb 07 jari 130             JOptionPane.showMessageDialog(this, "The lower threshold should be less that the upper threshold.", "Input Error", JOptionPane.ERROR_MESSAGE);
2 26 Feb 07 jari 131             this.tOneField.grabFocus();
2 26 Feb 07 jari 132             this.tOneField.selectAll();
2 26 Feb 07 jari 133             return false;            
2 26 Feb 07 jari 134         }
2 26 Feb 07 jari 135         
2 26 Feb 07 jari 136         return true;
2 26 Feb 07 jari 137     }
2 26 Feb 07 jari 138         
2 26 Feb 07 jari 139     
2 26 Feb 07 jari 140     /**
2 26 Feb 07 jari 141      * The class to listen to the dialog and check boxes items events.
2 26 Feb 07 jari 142      */
2 26 Feb 07 jari 143     private class EventListener extends DialogListener {
2 26 Feb 07 jari 144         
2 26 Feb 07 jari 145         public void actionPerformed(ActionEvent e) {
2 26 Feb 07 jari 146             String command = e.getActionCommand();
2 26 Feb 07 jari 147     
2 26 Feb 07 jari 148             if (command.equals("ok-command")) {
2 26 Feb 07 jari 149                 if(validate(tOneField.getText(), tTwoField.getText())) {
2 26 Feb 07 jari 150                     result = JOptionPane.OK_OPTION;                    
2 26 Feb 07 jari 151                       dispose();
2 26 Feb 07 jari 152                 }
2 26 Feb 07 jari 153             } else if (command.equals("cancel-command")) {
2 26 Feb 07 jari 154                 result = JOptionPane.CANCEL_OPTION;
2 26 Feb 07 jari 155                 dispose();
2 26 Feb 07 jari 156             } else if (command.equals("reset-command")){
2 26 Feb 07 jari 157                 resetControls();
2 26 Feb 07 jari 158                 result = JOptionPane.CANCEL_OPTION;
2 26 Feb 07 jari 159                 return;
2 26 Feb 07 jari 160             } else if (command.equals("info-command")){
2 26 Feb 07 jari 161                 HelpWindow hw = new HelpWindow(EaseThresholdDialog.this, "EASE Threshold Dialog");
2 26 Feb 07 jari 162                 result = JOptionPane.CANCEL_OPTION;
2 26 Feb 07 jari 163                 if(hw.getWindowContent()){
2 26 Feb 07 jari 164                     hw.setSize(450,600);
2 26 Feb 07 jari 165                     hw.setLocation();
2 26 Feb 07 jari 166                     hw.show();
2 26 Feb 07 jari 167                 }
2 26 Feb 07 jari 168                 else {
2 26 Feb 07 jari 169                     hw.setVisible(false);
2 26 Feb 07 jari 170                     hw.dispose();
2 26 Feb 07 jari 171                 }
2 26 Feb 07 jari 172             }
2 26 Feb 07 jari 173         }
2 26 Feb 07 jari 174         
2 26 Feb 07 jari 175         
2 26 Feb 07 jari 176         public void windowClosing(WindowEvent e) {
2 26 Feb 07 jari 177             result = JOptionPane.CLOSED_OPTION;
2 26 Feb 07 jari 178             dispose();
2 26 Feb 07 jari 179         }
2 26 Feb 07 jari 180     }
2 26 Feb 07 jari 181     
2 26 Feb 07 jari 182     
2 26 Feb 07 jari 183     
2 26 Feb 07 jari 184  /*   public static void main(String [] args) {
2 26 Feb 07 jari 185         EaseThresholdDialog dialog = new EaseThresholdDialog();
2 26 Feb 07 jari 186         dialog.showModal();
2 26 Feb 07 jari 187     }   
2 26 Feb 07 jari 188   */ 
2 26 Feb 07 jari 189 }