mev-4.0.01/source/org/tigr/microarray/mev/cluster/gui/impl/tfa/TFAInitBox1.java

Code
Comments
Other
Rev Date Author Line
2 26 Feb 07 jari 1 /*
2 26 Feb 07 jari 2 Copyright @ 1999-2005, 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  * TFAInitBox1.java
2 26 Feb 07 jari 7  *
2 26 Feb 07 jari 8  * Created on February 11, 2004, 12:20 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.tfa;
2 26 Feb 07 jari 12
2 26 Feb 07 jari 13 import java.awt.Color;
2 26 Feb 07 jari 14 import java.awt.Dimension;
2 26 Feb 07 jari 15 import java.awt.GridBagConstraints;
2 26 Feb 07 jari 16 import java.awt.GridBagLayout;
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.ActionListener;
2 26 Feb 07 jari 20 import java.awt.event.WindowAdapter;
2 26 Feb 07 jari 21
2 26 Feb 07 jari 22 import javax.swing.JFrame;
2 26 Feb 07 jari 23 import javax.swing.JLabel;
2 26 Feb 07 jari 24 import javax.swing.JOptionPane;
2 26 Feb 07 jari 25 import javax.swing.JPanel;
2 26 Feb 07 jari 26 import javax.swing.JTextField;
2 26 Feb 07 jari 27 import javax.swing.border.EtchedBorder;
2 26 Feb 07 jari 28
2 26 Feb 07 jari 29 import org.tigr.microarray.mev.cluster.gui.impl.dialogs.AlgorithmDialog;
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  nbhagaba
2 26 Feb 07 jari 34  */
2 26 Feb 07 jari 35 public class TFAInitBox1 extends AlgorithmDialog {
2 26 Feb 07 jari 36
2 26 Feb 07 jari 37     boolean okPressed = false;
2 26 Feb 07 jari 38     JTextField factorANameField, factorBNameField, factorALevelsField, factorBLevelsField;
2 26 Feb 07 jari 39     
2 26 Feb 07 jari 40     /** Creates a new instance of TFAInitBox1 */
2 26 Feb 07 jari 41     public TFAInitBox1(JFrame parentFrame, boolean modality) {
2 26 Feb 07 jari 42         super(parentFrame, "TFA - set factor names and levels", modality);
2 26 Feb 07 jari 43         okButton.setText("Next >");
2 26 Feb 07 jari 44         setBounds(0, 0, 600, 200);
2 26 Feb 07 jari 45         setBackground(Color.white);
2 26 Feb 07 jari 46         setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 
2 26 Feb 07 jari 47         
2 26 Feb 07 jari 48         GridBagLayout gridbag = new GridBagLayout();
2 26 Feb 07 jari 49         GridBagConstraints constraints = new GridBagConstraints();
2 26 Feb 07 jari 50         constraints.fill = GridBagConstraints.NONE;
2 26 Feb 07 jari 51         
2 26 Feb 07 jari 52         JPanel pane = new JPanel();
2 26 Feb 07 jari 53         pane.setBackground(Color.white);
2 26 Feb 07 jari 54         pane.setBorder(new EtchedBorder());
2 26 Feb 07 jari 55         pane.setLayout(gridbag);   
2 26 Feb 07 jari 56         
2 26 Feb 07 jari 57         JLabel factorAName = new JLabel("Factor A name: ");
2 26 Feb 07 jari 58         buildConstraints(constraints, 0, 0, 1, 1, 25, 50);
2 26 Feb 07 jari 59         gridbag.setConstraints(factorAName, constraints);
2 26 Feb 07 jari 60         pane.add(factorAName);
2 26 Feb 07 jari 61         
2 26 Feb 07 jari 62         factorANameField = new JTextField("Factor A", 10);
2 26 Feb 07 jari 63         buildConstraints(constraints, 1, 0, 1, 1, 25, 0);
2 26 Feb 07 jari 64         gridbag.setConstraints(factorANameField, constraints);
2 26 Feb 07 jari 65         pane.add(factorANameField);
2 26 Feb 07 jari 66         
2 26 Feb 07 jari 67         JLabel factorALevels = new JLabel("No. of levels of Factor A: ");
2 26 Feb 07 jari 68         buildConstraints(constraints, 2, 0, 1, 1, 25, 0);
2 26 Feb 07 jari 69         gridbag.setConstraints(factorALevels, constraints);
2 26 Feb 07 jari 70         pane.add(factorALevels);
2 26 Feb 07 jari 71         
2 26 Feb 07 jari 72         factorALevelsField = new JTextField(10);
2 26 Feb 07 jari 73         buildConstraints(constraints, 3, 0, 1, 1, 25, 0);
2 26 Feb 07 jari 74         gridbag.setConstraints(factorALevelsField, constraints);
2 26 Feb 07 jari 75         pane.add(factorALevelsField);        
2 26 Feb 07 jari 76         
2 26 Feb 07 jari 77         JLabel factorBName = new JLabel("Factor B name: ");
2 26 Feb 07 jari 78         buildConstraints(constraints, 0, 1, 1, 1, 25, 50);
2 26 Feb 07 jari 79         gridbag.setConstraints(factorBName, constraints);
2 26 Feb 07 jari 80         pane.add(factorBName);   
2 26 Feb 07 jari 81         
2 26 Feb 07 jari 82         factorBNameField = new JTextField("Factor B", 10);
2 26 Feb 07 jari 83         buildConstraints(constraints, 1, 1, 1, 1, 25, 0);
2 26 Feb 07 jari 84         gridbag.setConstraints(factorBNameField, constraints);
2 26 Feb 07 jari 85         pane.add(factorBNameField);
2 26 Feb 07 jari 86         
2 26 Feb 07 jari 87         JLabel factorBLevels = new JLabel("No. of levels of Factor B: ");
2 26 Feb 07 jari 88         buildConstraints(constraints, 2, 1, 1, 1, 25, 0);
2 26 Feb 07 jari 89         gridbag.setConstraints(factorBLevels, constraints);
2 26 Feb 07 jari 90         pane.add(factorBLevels);
2 26 Feb 07 jari 91         
2 26 Feb 07 jari 92         factorBLevelsField = new JTextField(10);
2 26 Feb 07 jari 93         buildConstraints(constraints, 3, 1, 1, 1, 25, 0);
2 26 Feb 07 jari 94         gridbag.setConstraints(factorBLevelsField, constraints);
2 26 Feb 07 jari 95         pane.add(factorBLevelsField);      
2 26 Feb 07 jari 96         
2 26 Feb 07 jari 97         addContent(pane);
2 26 Feb 07 jari 98         EventListener listener = new EventListener();        
2 26 Feb 07 jari 99         setActionListeners(listener);
2 26 Feb 07 jari 100         this.addWindowListener(listener);        
2 26 Feb 07 jari 101     }
2 26 Feb 07 jari 102     
2 26 Feb 07 jari 103     public void setVisible(boolean visible) {
2 26 Feb 07 jari 104         Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
2 26 Feb 07 jari 105         setLocation((screenSize.width - getSize().width)/2, (screenSize.height - getSize().height)/2);
2 26 Feb 07 jari 106         
2 26 Feb 07 jari 107         super.setVisible(visible);
2 26 Feb 07 jari 108     }    
2 26 Feb 07 jari 109     
2 26 Feb 07 jari 110     void buildConstraints(GridBagConstraints gbc, int gx, int gy,
2 26 Feb 07 jari 111     int gw, int gh, int wx, int wy) {
2 26 Feb 07 jari 112         
2 26 Feb 07 jari 113         gbc.gridx = gx;
2 26 Feb 07 jari 114         gbc.gridy = gy;
2 26 Feb 07 jari 115         gbc.gridwidth = gw;
2 26 Feb 07 jari 116         gbc.gridheight = gh;
2 26 Feb 07 jari 117         gbc.weightx = wx;
2 26 Feb 07 jari 118         gbc.weighty = wy;
2 26 Feb 07 jari 119     } 
2 26 Feb 07 jari 120     
2 26 Feb 07 jari 121     public boolean isOkPressed() {
2 26 Feb 07 jari 122         return okPressed;
2 26 Feb 07 jari 123     }  
2 26 Feb 07 jari 124     
2 26 Feb 07 jari 125     public String getFactorAName() {
2 26 Feb 07 jari 126         return factorANameField.getText();
2 26 Feb 07 jari 127     }
2 26 Feb 07 jari 128     
2 26 Feb 07 jari 129     public String getFactorBName() {
2 26 Feb 07 jari 130         return factorBNameField.getText();
2 26 Feb 07 jari 131     } 
2 26 Feb 07 jari 132     
2 26 Feb 07 jari 133     public int getNumFactorALevels() {
2 26 Feb 07 jari 134         return Integer.parseInt(factorALevelsField.getText());
2 26 Feb 07 jari 135     }
2 26 Feb 07 jari 136     
2 26 Feb 07 jari 137     public int getNumFactorBLevels() {
2 26 Feb 07 jari 138         return Integer.parseInt(factorBLevelsField.getText()); 
2 26 Feb 07 jari 139     }
2 26 Feb 07 jari 140     
2 26 Feb 07 jari 141     private boolean isBlank(String str) {
2 26 Feb 07 jari 142         boolean blank = true;
2 26 Feb 07 jari 143         char[] charArr = str.toCharArray();
2 26 Feb 07 jari 144         for (int i = 0; i < charArr.length; i++) {
2 26 Feb 07 jari 145             if (charArr[i] != ' ') {
2 26 Feb 07 jari 146                 blank = false;
2 26 Feb 07 jari 147                 break;
2 26 Feb 07 jari 148             }
2 26 Feb 07 jari 149         }
2 26 Feb 07 jari 150         return blank;
2 26 Feb 07 jari 151     }
2 26 Feb 07 jari 152     
2 26 Feb 07 jari 153     public class EventListener extends WindowAdapter implements ActionListener{
2 26 Feb 07 jari 154         
2 26 Feb 07 jari 155         public void actionPerformed(ActionEvent ae) {
2 26 Feb 07 jari 156             String command = ae.getActionCommand();
2 26 Feb 07 jari 157             if(command.equals("ok-command")){
2 26 Feb 07 jari 158                 try {
2 26 Feb 07 jari 159                     if ((getNumFactorALevels() <= 1)||(getNumFactorBLevels() <= 1)) {
2 26 Feb 07 jari 160                         JOptionPane.showMessageDialog(null, "Invalid number of levels", "Error", JOptionPane.ERROR_MESSAGE);
2 26 Feb 07 jari 161                         return;
2 26 Feb 07 jari 162                     }
2 26 Feb 07 jari 163                     if ( (getFactorAName().length() == 0) || (getFactorBName().length() == 0) || (isBlank(getFactorAName())) || (isBlank(getFactorBName())) ) {
2 26 Feb 07 jari 164                         JOptionPane.showMessageDialog(null, "Enter names for both factors", "Error", JOptionPane.ERROR_MESSAGE);
2 26 Feb 07 jari 165                         return;
2 26 Feb 07 jari 166                     }
2 26 Feb 07 jari 167                     okPressed = true;
2 26 Feb 07 jari 168                     dispose();
2 26 Feb 07 jari 169                 } catch (NumberFormatException nfe) {
2 26 Feb 07 jari 170                     JOptionPane.showMessageDialog(null, "Invalid number of levels", "Error", JOptionPane.ERROR_MESSAGE);
2 26 Feb 07 jari 171                 }
2 26 Feb 07 jari 172             } else if (command.equals("reset-command")) {
2 26 Feb 07 jari 173                 factorANameField.setText("");
2 26 Feb 07 jari 174                 factorBNameField.setText("");
2 26 Feb 07 jari 175                 factorALevelsField.setText("");
2 26 Feb 07 jari 176                 factorBLevelsField.setText("");
2 26 Feb 07 jari 177                 okPressed = false;
2 26 Feb 07 jari 178             } else if (command.equals("cancel-command")) {
2 26 Feb 07 jari 179                 okPressed = false;
2 26 Feb 07 jari 180                 dispose();
2 26 Feb 07 jari 181             } else if (command.equals("info-command")){
2 26 Feb 07 jari 182
2 26 Feb 07 jari 183     }
2 26 Feb 07 jari 184         }
2 26 Feb 07 jari 185         
2 26 Feb 07 jari 186     }     
2 26 Feb 07 jari 187     
2 26 Feb 07 jari 188     public static void main(String[] args) {
2 26 Feb 07 jari 189         
2 26 Feb 07 jari 190     TFAInitBox1 tBox = new TFAInitBox1(new JFrame(), true);
2 26 Feb 07 jari 191     tBox.setVisible(true);
2 26 Feb 07 jari 192     System.out.println("Factor A = " + (tBox.getFactorAName()).length());
2 26 Feb 07 jari 193     //String s = new String();
2 26 Feb 07 jari 194     
2 26 Feb 07 jari 195     }    
2 26 Feb 07 jari 196     
2 26 Feb 07 jari 197 }