mev-4.0.01/source/org/tigr/microarray/mev/cluster/gui/impl/lem/LEMRangeSelectionDialog.java

Code
Comments
Other
Rev Date Author Line
2 26 Feb 07 jari 1 /*
2 26 Feb 07 jari 2 Copyright @ 1999-2006, 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  * Created on May 10, 2005
2 26 Feb 07 jari 7  */
2 26 Feb 07 jari 8 package org.tigr.microarray.mev.cluster.gui.impl.lem;
2 26 Feb 07 jari 9
2 26 Feb 07 jari 10 import java.awt.Dimension;
2 26 Feb 07 jari 11 import java.awt.GridBagConstraints;
2 26 Feb 07 jari 12 import java.awt.GridBagLayout;
2 26 Feb 07 jari 13 import java.awt.Insets;
2 26 Feb 07 jari 14 import java.awt.Toolkit;
2 26 Feb 07 jari 15 import java.awt.event.ActionEvent;
2 26 Feb 07 jari 16 import java.awt.event.ActionListener;
2 26 Feb 07 jari 17
2 26 Feb 07 jari 18 import javax.swing.JFrame;
2 26 Feb 07 jari 19 import javax.swing.JLabel;
2 26 Feb 07 jari 20 import javax.swing.JOptionPane;
2 26 Feb 07 jari 21 import javax.swing.JTextField;
2 26 Feb 07 jari 22
2 26 Feb 07 jari 23 import org.tigr.microarray.mev.cluster.gui.impl.dialogs.AlgorithmDialog;
2 26 Feb 07 jari 24 import org.tigr.microarray.mev.cluster.gui.impl.dialogs.ParameterPanel;
2 26 Feb 07 jari 25
2 26 Feb 07 jari 26 /**
2 26 Feb 07 jari 27  * @author braisted
2 26 Feb 07 jari 28  * 
2 26 Feb 07 jari 29  * Allows range selection of loci
2 26 Feb 07 jari 30  */
2 26 Feb 07 jari 31 public class LEMRangeSelectionDialog extends AlgorithmDialog {
2 26 Feb 07 jari 32
2 26 Feb 07 jari 33   private int result = JOptionPane.CANCEL_OPTION;
2 26 Feb 07 jari 34   private JTextField lowField;
2 26 Feb 07 jari 35   private JTextField highField;
2 26 Feb 07 jari 36   private int upperCoord;
2 26 Feb 07 jari 37   
2 26 Feb 07 jari 38   /**
2 26 Feb 07 jari 39    * Contructs the range selection dialog
2 26 Feb 07 jari 40    * @param frame parent component
2 26 Feb 07 jari 41    * @param lowerLimit initial lower limit
2 26 Feb 07 jari 42    * @param upperLimit initial upper limit
2 26 Feb 07 jari 43    */
2 26 Feb 07 jari 44   public LEMRangeSelectionDialog(JFrame frame, int lowerLimit, int upperLimit) {
2 26 Feb 07 jari 45     super(frame, "Locus Range Selection", true);
2 26 Feb 07 jari 46     
2 26 Feb 07 jari 47     upperCoord = upperLimit;    
2 26 Feb 07 jari 48     
2 26 Feb 07 jari 49     JLabel rangeLabel = new JLabel("Base Range Limits in Viewer:  ["+String.valueOf(lowerLimit)+", "+String.valueOf(upperLimit)+"]");
2 26 Feb 07 jari 50     
2 26 Feb 07 jari 51     JLabel lowLabel = new JLabel("Lower Base Location Limit: ");
2 26 Feb 07 jari 52     lowField = new JTextField(12);
2 26 Feb 07 jari 53     Dimension dim = new Dimension(140, 20);
2 26 Feb 07 jari 54     lowField.setPreferredSize(dim);
2 26 Feb 07 jari 55     lowField.setSize(dim);
2 26 Feb 07 jari 56     
2 26 Feb 07 jari 57     JLabel highLabel = new JLabel("Higher Base Location Limit: ");
2 26 Feb 07 jari 58     highField = new JTextField(12);    
2 26 Feb 07 jari 59     highField.setPreferredSize(dim);
2 26 Feb 07 jari 60     highField.setSize(dim);
2 26 Feb 07 jari 61     
2 26 Feb 07 jari 62     ParameterPanel panel = new ParameterPanel("Base Location Limits");
2 26 Feb 07 jari 63     panel.setLayout(new GridBagLayout());
2 26 Feb 07 jari 64
2 26 Feb 07 jari 65     panel.add(rangeLabel, new GridBagConstraints(0,0,2,1,0,0,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(20,0,15,0),0,0));
2 26 Feb 07 jari 66     panel.add(lowLabel, new GridBagConstraints(0,1,1,1,0,0,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(10,0,15,0),0,0));
2 26 Feb 07 jari 67     panel.add(lowField, new GridBagConstraints(1,1,1,1,0,0,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(10,10,15,0),0,0));
2 26 Feb 07 jari 68     panel.add(highLabel, new GridBagConstraints(0,2,1,1,0,0,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0,0,20,0),0,0));
2 26 Feb 07 jari 69     panel.add(highField, new GridBagConstraints(1,2,1,1,0,0,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0,10,20,0),0,0));
2 26 Feb 07 jari 70     
2 26 Feb 07 jari 71     addContent(panel);
2 26 Feb 07 jari 72     setActionListeners(new Listener());
2 26 Feb 07 jari 73     
2 26 Feb 07 jari 74     pack();
2 26 Feb 07 jari 75   }
2 26 Feb 07 jari 76   
2 26 Feb 07 jari 77   /**
2 26 Feb 07 jari 78    * Displays the dialog
2 26 Feb 07 jari 79    * @return returns int values from <code>JOptionPane</code> such as OK_OPTION, CANCEL_OPTION
2 26 Feb 07 jari 80    */
2 26 Feb 07 jari 81   public int showModal() {
2 26 Feb 07 jari 82         Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
2 26 Feb 07 jari 83         setLocation((screenSize.width - getSize().width)/2, (screenSize.height - getSize().height)/2);
2 26 Feb 07 jari 84         show();
2 26 Feb 07 jari 85         return result;
2 26 Feb 07 jari 86   }
2 26 Feb 07 jari 87   
2 26 Feb 07 jari 88   /**
2 26 Feb 07 jari 89    * Returns the selected lower limit
2 26 Feb 07 jari 90    * @return lower limit coord.
2 26 Feb 07 jari 91    */
2 26 Feb 07 jari 92   public int getLowerLimit() {
2 26 Feb 07 jari 93     return Integer.parseInt(lowField.getText());
2 26 Feb 07 jari 94   }
2 26 Feb 07 jari 95
2 26 Feb 07 jari 96   /**
2 26 Feb 07 jari 97    * returns the selected upper limit coord.
2 26 Feb 07 jari 98    * @return upper limit coord.
2 26 Feb 07 jari 99    */
2 26 Feb 07 jari 100   public int getUpperLimit() {
2 26 Feb 07 jari 101     return Integer.parseInt(highField.getText());
2 26 Feb 07 jari 102   }
2 26 Feb 07 jari 103   
2 26 Feb 07 jari 104   /**
2 26 Feb 07 jari 105    * True if limits are valid, else false.
2 26 Feb 07 jari 106    * Checks min < max
2 26 Feb 07 jari 107    * @return true if valid, else false
2 26 Feb 07 jari 108    */
2 26 Feb 07 jari 109   private boolean validateValues() {
2 26 Feb 07 jari 110     boolean valid = true;
2 26 Feb 07 jari 111     int v1, v2;
2 26 Feb 07 jari 112     try {
2 26 Feb 07 jari 113       v1 = Integer.parseInt(lowField.getText());
2 26 Feb 07 jari 114       v2 = Integer.parseInt(highField.getText());
2 26 Feb 07 jari 115       
2 26 Feb 07 jari 116       if(v2 <= v1) {
2 26 Feb 07 jari 117         valid = false;
2 26 Feb 07 jari 118         JOptionPane.showMessageDialog(this, "Range error: Upper Limit must be greater than lower limit.  Please check the entries.", "Range Error", JOptionPane.ERROR_MESSAGE);        
2 26 Feb 07 jari 119       } else if(v1 > upperCoord) {
2 26 Feb 07 jari 120         valid = false;
2 26 Feb 07 jari 121         JOptionPane.showMessageDialog(this, "Range error: The lower limit is off of the supplied base range.  Please check the entries.", "Range Error", JOptionPane.ERROR_MESSAGE);                
2 26 Feb 07 jari 122       } else if(v1 < 0 || v2 < 0) {
2 26 Feb 07 jari 123         valid = false;
2 26 Feb 07 jari 124         JOptionPane.showMessageDialog(this, "Range error: Values should be >= 0.  Please check the entries.", "Range Error", JOptionPane.ERROR_MESSAGE);                        
2 26 Feb 07 jari 125       }
2 26 Feb 07 jari 126       
2 26 Feb 07 jari 127     } catch (NumberFormatException nfe) {
2 26 Feb 07 jari 128       JOptionPane.showMessageDialog(this, "The entered values must be integer values.  Please check the entries.", "Number Format Problem", JOptionPane.ERROR_MESSAGE);
2 26 Feb 07 jari 129       valid = false;
2 26 Feb 07 jari 130     }
2 26 Feb 07 jari 131     return valid;
2 26 Feb 07 jari 132   }
2 26 Feb 07 jari 133   
2 26 Feb 07 jari 134   /**
2 26 Feb 07 jari 135    * @author braisted
2 26 Feb 07 jari 136    *
2 26 Feb 07 jari 137    * Handles dialog events
2 26 Feb 07 jari 138    */
2 26 Feb 07 jari 139   public class Listener implements ActionListener {
2 26 Feb 07 jari 140
2 26 Feb 07 jari 141     public void actionPerformed(ActionEvent ae) {
2 26 Feb 07 jari 142       String command = ae.getActionCommand();
2 26 Feb 07 jari 143       if(command.equals("ok-command")) {
2 26 Feb 07 jari 144         if(validateValues()) {
2 26 Feb 07 jari 145           result = JOptionPane.OK_OPTION;
2 26 Feb 07 jari 146           dispose();
2 26 Feb 07 jari 147         }
2 26 Feb 07 jari 148       } else if(command.equals("cancel-command")) {
2 26 Feb 07 jari 149         result = JOptionPane.CANCEL_OPTION;
2 26 Feb 07 jari 150         dispose();
2 26 Feb 07 jari 151       } else if(command.equals("reset-command")) {
2 26 Feb 07 jari 152         lowField.setText("");
2 26 Feb 07 jari 153         highField.setText("");
2 26 Feb 07 jari 154       } else if(command.equals("info-command")) {
2 26 Feb 07 jari 155         
2 26 Feb 07 jari 156       } 
2 26 Feb 07 jari 157     }
2 26 Feb 07 jari 158     
2 26 Feb 07 jari 159   }
2 26 Feb 07 jari 160   
2 26 Feb 07 jari 161   public static void main(String [] args) {
2 26 Feb 07 jari 162     LEMRangeSelectionDialog dialog = new LEMRangeSelectionDialog(new JFrame(), 154, 12345);
2 26 Feb 07 jari 163     dialog.showModal();
2 26 Feb 07 jari 164   }
2 26 Feb 07 jari 165   
2 26 Feb 07 jari 166 }