mev-4.0.01/source/org/tigr/microarray/mev/cluster/gui/impl/dam/DAMFirstDialog.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  * DAMFirstDialog.java
2 26 Feb 07 jari 7  *
2 26 Feb 07 jari 8  */
2 26 Feb 07 jari 9
2 26 Feb 07 jari 10 package org.tigr.microarray.mev.cluster.gui.impl.dam;
2 26 Feb 07 jari 11
2 26 Feb 07 jari 12 import java.awt.Color;
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.Toolkit;
2 26 Feb 07 jari 17 import java.awt.event.ActionEvent;
2 26 Feb 07 jari 18 import java.awt.event.ActionListener;
2 26 Feb 07 jari 19 import java.awt.event.ItemEvent;
2 26 Feb 07 jari 20 import java.awt.event.ItemListener;
2 26 Feb 07 jari 21 import java.awt.event.WindowAdapter;
2 26 Feb 07 jari 22
2 26 Feb 07 jari 23 import javax.swing.ButtonGroup;
2 26 Feb 07 jari 24 import javax.swing.JCheckBox;
2 26 Feb 07 jari 25 import javax.swing.JFrame;
2 26 Feb 07 jari 26 import javax.swing.JLabel;
2 26 Feb 07 jari 27 import javax.swing.JOptionPane;
2 26 Feb 07 jari 28 import javax.swing.JPanel;
2 26 Feb 07 jari 29 import javax.swing.JRadioButton;
2 26 Feb 07 jari 30 import javax.swing.JTextField;
2 26 Feb 07 jari 31 import javax.swing.border.TitledBorder;
2 26 Feb 07 jari 32
2 26 Feb 07 jari 33 import org.tigr.microarray.mev.cluster.gui.Experiment;
2 26 Feb 07 jari 34 import org.tigr.microarray.mev.cluster.gui.IFramework;
2 26 Feb 07 jari 35 import org.tigr.microarray.mev.cluster.gui.impl.dialogs.AlgorithmDialog;
2 26 Feb 07 jari 36 import org.tigr.microarray.mev.cluster.gui.impl.dialogs.HCLSelectionPanel;
2 26 Feb 07 jari 37
2 26 Feb 07 jari 38 public class DAMFirstDialog extends AlgorithmDialog {
2 26 Feb 07 jari 39     
2 26 Feb 07 jari 40     boolean okPressed = false;  
2 26 Feb 07 jari 41     JRadioButton genesButton, expsButton, createNewTrgSetButton, useExistTrgSetButton;    
2 26 Feb 07 jari 42     JCheckBox useVarianceFilterBox, useCorrelFilterBox;   
2 26 Feb 07 jari 43     JTextField numGenesField, pValueField, numClassesField, numNeighborsField, numPermsField;    
2 26 Feb 07 jari 44     JLabel varLabel, corrLabel, numPermsLabel;    
2 26 Feb 07 jari 45     
2 26 Feb 07 jari 46     HCLSelectionPanel hclOpsPanel;   
2 26 Feb 07 jari 47     
2 26 Feb 07 jari 48     IFramework framework;
2 26 Feb 07 jari 49     Experiment experiment;    
2 26 Feb 07 jari 50     
2 26 Feb 07 jari 51     DAMClassificationEditor damEditor;
2 26 Feb 07 jari 52     
2 26 Feb 07 jari 53     int numExps, numGenes;
2 26 Feb 07 jari 54     
2 26 Feb 07 jari 55     /** Creates a new instance of DAMFirstDialog */
2 26 Feb 07 jari 56     public DAMFirstDialog(JFrame parentFrame, boolean modality, IFramework framework_1) {
2 26 Feb 07 jari 57         super(parentFrame, "DAM Classification", modality);
2 26 Feb 07 jari 58         okButton.setText("Next >");        
2 26 Feb 07 jari 59         setBounds(0, 0, 550, 600);
2 26 Feb 07 jari 60         setBackground(Color.white);
2 26 Feb 07 jari 61         setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
2 26 Feb 07 jari 62         
2 26 Feb 07 jari 63         this.framework = framework_1;
2 26 Feb 07 jari 64   this.experiment = framework.getData().getExperiment();      
2 26 Feb 07 jari 65         
2 26 Feb 07 jari 66         numExps = experiment.getNumberOfSamples();
2 26 Feb 07 jari 67         numGenes = experiment.getNumberOfGenes();
2 26 Feb 07 jari 68         
2 26 Feb 07 jari 69         GridBagLayout gridbag = new GridBagLayout();
2 26 Feb 07 jari 70         GridBagConstraints constraints = new GridBagConstraints();     
2 26 Feb 07 jari 71         
2 26 Feb 07 jari 72         JPanel mainPanel = new JPanel();
2 26 Feb 07 jari 73         mainPanel.setLayout(gridbag);
2 26 Feb 07 jari 74         
2 26 Feb 07 jari 75         useVarianceFilterBox = new JCheckBox("Use variance filter (if unchecked, use all genes)", false);  
2 26 Feb 07 jari 76         useCorrelFilterBox = new JCheckBox("Use correlation filter", false);        
2 26 Feb 07 jari 77         
2 26 Feb 07 jari 78         JPanel genesOrExpsPanel = new JPanel();
2 26 Feb 07 jari 79         genesOrExpsPanel.setBackground(Color.white);
2 26 Feb 07 jari 80         genesOrExpsPanel.setBorder(new TitledBorder("Classify genes or experiments"));
2 26 Feb 07 jari 81         GridBagLayout grid1 = new GridBagLayout();
2 26 Feb 07 jari 82         genesOrExpsPanel.setLayout(grid1);
2 26 Feb 07 jari 83         
2 26 Feb 07 jari 84         genesButton = new JRadioButton("Classify genes", true);
2 26 Feb 07 jari 85         genesButton.setBackground(Color.white);
2 26 Feb 07 jari 86         genesButton.addActionListener(new ActionListener() {
2 26 Feb 07 jari 87         public void actionPerformed(ActionEvent evt) {
2 26 Feb 07 jari 88                 useVarianceFilterBox.setText("Use variance filter (if unchecked, use all genes)");
2 26 Feb 07 jari 89                 varLabel.setText("          Use only the following number of highest-variance genes: ");
2 26 Feb 07 jari 90             }
2 26 Feb 07 jari 91         });
2 26 Feb 07 jari 92         expsButton = new JRadioButton("Classify experiments", false);
2 26 Feb 07 jari 93         expsButton.setBackground(Color.white);
2 26 Feb 07 jari 94         expsButton.addActionListener(new ActionListener() {
2 26 Feb 07 jari 95             public void actionPerformed(ActionEvent evt) {
2 26 Feb 07 jari 96                 useVarianceFilterBox.setText("Use variance filter (if unchecked, use all expts)");
2 26 Feb 07 jari 97                 varLabel.setText("          Use only the following number of highest-variance expts: ");
2 26 Feb 07 jari 98             }
2 26 Feb 07 jari 99         });        
2 26 Feb 07 jari 100         ButtonGroup genesOrExpsGroup = new ButtonGroup();
2 26 Feb 07 jari 101         genesOrExpsGroup.add(genesButton);
2 26 Feb 07 jari 102         genesOrExpsGroup.add(expsButton);
2 26 Feb 07 jari 103         
2 26 Feb 07 jari 104         buildConstraints(constraints, 0, 0, 1, 1, 50, 100);
2 26 Feb 07 jari 105         grid1.setConstraints(genesButton, constraints);
2 26 Feb 07 jari 106         genesOrExpsPanel.add(genesButton);
2 26 Feb 07 jari 107         
2 26 Feb 07 jari 108         buildConstraints(constraints, 1, 0, 1, 1, 50, 0);
2 26 Feb 07 jari 109         grid1.setConstraints(expsButton, constraints);
2 26 Feb 07 jari 110         genesOrExpsPanel.add(expsButton);   
2 26 Feb 07 jari 111         
2 26 Feb 07 jari 112         buildConstraints(constraints, 0, 0, 1, 1, 100, 10);
2 26 Feb 07 jari 113         constraints.fill = GridBagConstraints.BOTH;
2 26 Feb 07 jari 114         gridbag.setConstraints(genesOrExpsPanel, constraints);
2 26 Feb 07 jari 115         mainPanel.add(genesOrExpsPanel);    
2 26 Feb 07 jari 116         
2 26 Feb 07 jari 117         
2 26 Feb 07 jari 118         constraints.fill = GridBagConstraints.NONE;
2 26 Feb 07 jari 119         
2 26 Feb 07 jari 120         JPanel variancePanel = new JPanel();
2 26 Feb 07 jari 121         variancePanel.setBackground(Color.white);
2 26 Feb 07 jari 122         variancePanel.setBorder(new TitledBorder("Variance filter"));
2 26 Feb 07 jari 123         GridBagLayout grid3 = new GridBagLayout();
2 26 Feb 07 jari 124         variancePanel.setLayout(grid3);
2 26 Feb 07 jari 125         
2 26 Feb 07 jari 126         useVarianceFilterBox.setBackground(Color.white);
2 26 Feb 07 jari 127         varLabel = new JLabel("          Use only the following number of highest-variance genes: ");   
2 26 Feb 07 jari 128         varLabel.setEnabled(false);
2 26 Feb 07 jari 129         numGenesField = new JTextField("1000",7);
2 26 Feb 07 jari 130         numGenesField.setEnabled(false);
2 26 Feb 07 jari 131         numGenesField.setBackground(Color.gray);
2 26 Feb 07 jari 132         
2 26 Feb 07 jari 133         useVarianceFilterBox.addItemListener(new ItemListener() {
2 26 Feb 07 jari 134             public void itemStateChanged(ItemEvent evt) {
2 26 Feb 07 jari 135                 if (evt.getStateChange() == ItemEvent.DESELECTED) {
2 26 Feb 07 jari 136                     varLabel.setEnabled(false);
2 26 Feb 07 jari 137                     numGenesField.setEnabled(false);
2 26 Feb 07 jari 138                     numGenesField.setBackground(Color.gray);
2 26 Feb 07 jari 139                 } else {
2 26 Feb 07 jari 140                     varLabel.setEnabled(true);
2 26 Feb 07 jari 141                     numGenesField.setEnabled(true); 
2 26 Feb 07 jari 142                     numGenesField.setBackground(Color.white);
2 26 Feb 07 jari 143                 }
2 26 Feb 07 jari 144             }
2 26 Feb 07 jari 145         });
2 26 Feb 07 jari 146         
2 26 Feb 07 jari 147         constraints.anchor = GridBagConstraints.WEST;
2 26 Feb 07 jari 148         buildConstraints(constraints, 0, 0, 1, 1, 100, 50);
2 26 Feb 07 jari 149         grid3.setConstraints(useVarianceFilterBox, constraints);
2 26 Feb 07 jari 150         variancePanel.add(useVarianceFilterBox);        
2 26 Feb 07 jari 151         
2 26 Feb 07 jari 152         buildConstraints(constraints, 0, 1, 1, 1, 70, 50);
2 26 Feb 07 jari 153         grid3.setConstraints(varLabel, constraints);
2 26 Feb 07 jari 154         variancePanel.add(varLabel);   
2 26 Feb 07 jari 155         
2 26 Feb 07 jari 156         buildConstraints(constraints, 1, 1, 1, 1, 30, 0);
2 26 Feb 07 jari 157         grid3.setConstraints(numGenesField, constraints);
2 26 Feb 07 jari 158         variancePanel.add(numGenesField);   
2 26 Feb 07 jari 159         
2 26 Feb 07 jari 160         buildConstraints(constraints, 0, 1, 1, 1, 100, 20);
2 26 Feb 07 jari 161         constraints.fill = GridBagConstraints.BOTH;
2 26 Feb 07 jari 162         gridbag.setConstraints(variancePanel, constraints);
2 26 Feb 07 jari 163         mainPanel.add(variancePanel); 
2 26 Feb 07 jari 164         
2 26 Feb 07 jari 165         constraints.fill = GridBagConstraints.NONE;
2 26 Feb 07 jari 166         
2 26 Feb 07 jari 167
2 26 Feb 07 jari 168         JPanel correlPanel = new JPanel();
2 26 Feb 07 jari 169         correlPanel.setBackground(Color.white);
2 26 Feb 07 jari 170         correlPanel.setBorder(new TitledBorder("Correlation filter"));
2 26 Feb 07 jari 171         GridBagLayout grid2 = new GridBagLayout();
2 26 Feb 07 jari 172         correlPanel.setLayout(grid2);
2 26 Feb 07 jari 173         
2 26 Feb 07 jari 174         useCorrelFilterBox.setBackground(Color.white);
2 26 Feb 07 jari 175         corrLabel = new JLabel("          Cutoff p-value for correlation: ");
2 26 Feb 07 jari 176         corrLabel.setEnabled(false);
2 26 Feb 07 jari 177         numPermsLabel = new JLabel("          Number of permutations for correlation test: ");
2 26 Feb 07 jari 178         numPermsLabel.setEnabled(false);
2 26 Feb 07 jari 179         pValueField = new JTextField("0.01",7);
2 26 Feb 07 jari 180         pValueField.setEnabled(false);
2 26 Feb 07 jari 181         pValueField.setBackground(Color.gray);
2 26 Feb 07 jari 182         numPermsField = new JTextField("1000",7);
2 26 Feb 07 jari 183         numPermsField.setEnabled(false);
2 26 Feb 07 jari 184         numPermsField.setBackground(Color.gray);        
2 26 Feb 07 jari 185         
2 26 Feb 07 jari 186         useCorrelFilterBox.addItemListener(new ItemListener() {
2 26 Feb 07 jari 187             public void itemStateChanged(ItemEvent evt) {
2 26 Feb 07 jari 188                 if (evt.getStateChange() == ItemEvent.DESELECTED) {
2 26 Feb 07 jari 189                     corrLabel.setEnabled(false);
2 26 Feb 07 jari 190                     numPermsLabel.setEnabled(false);                    
2 26 Feb 07 jari 191                     pValueField.setEnabled(false);
2 26 Feb 07 jari 192                     pValueField.setBackground(Color.gray);
2 26 Feb 07 jari 193                     numPermsField.setEnabled(false);
2 26 Feb 07 jari 194                     numPermsField.setBackground(Color.gray);                    
2 26 Feb 07 jari 195                 } else {
2 26 Feb 07 jari 196                     corrLabel.setEnabled(true);
2 26 Feb 07 jari 197                     numPermsLabel.setEnabled(true);
2 26 Feb 07 jari 198                     pValueField.setEnabled(true);
2 26 Feb 07 jari 199                     pValueField.setBackground(Color.white);  
2 26 Feb 07 jari 200                     numPermsField.setEnabled(true);
2 26 Feb 07 jari 201                     numPermsField.setBackground(Color.white);                    
2 26 Feb 07 jari 202                 }
2 26 Feb 07 jari 203             }
2 26 Feb 07 jari 204         });
2 26 Feb 07 jari 205         
2 26 Feb 07 jari 206         buildConstraints(constraints, 0, 0, 1, 1, 100, 34);
2 26 Feb 07 jari 207         grid2.setConstraints(useCorrelFilterBox, constraints);
2 26 Feb 07 jari 208         correlPanel.add(useCorrelFilterBox);
2 26 Feb 07 jari 209         
2 26 Feb 07 jari 210         //corrLabel = new JLabel("Cutoff p-value for correlation: ");
2 26 Feb 07 jari 211         buildConstraints(constraints, 0, 1, 1, 1, 70, 33);
2 26 Feb 07 jari 212         grid2.setConstraints(corrLabel, constraints);
2 26 Feb 07 jari 213         correlPanel.add(corrLabel);        
2 26 Feb 07 jari 214         
2 26 Feb 07 jari 215         //pValueField = new JTextField(7);
2 26 Feb 07 jari 216         buildConstraints(constraints, 1, 1, 1, 1, 30, 0);
2 26 Feb 07 jari 217         grid2.setConstraints(pValueField, constraints);
2 26 Feb 07 jari 218         correlPanel.add(pValueField);
2 26 Feb 07 jari 219         
2 26 Feb 07 jari 220         buildConstraints(constraints, 0, 2, 1, 1, 70, 33);
2 26 Feb 07 jari 221         grid2.setConstraints(numPermsLabel, constraints);
2 26 Feb 07 jari 222         correlPanel.add(numPermsLabel);        
2 26 Feb 07 jari 223         
2 26 Feb 07 jari 224         //pValueField = new JTextField(7);
2 26 Feb 07 jari 225         buildConstraints(constraints, 1, 2, 1, 1, 30, 0);
2 26 Feb 07 jari 226         grid2.setConstraints(numPermsField, constraints);
2 26 Feb 07 jari 227         correlPanel.add(numPermsField);        
2 26 Feb 07 jari 228         
2 26 Feb 07 jari 229         buildConstraints(constraints, 0, 2, 1, 1, 100, 20);
2 26 Feb 07 jari 230         constraints.fill = GridBagConstraints.BOTH;
2 26 Feb 07 jari 231         gridbag.setConstraints(correlPanel, constraints);
2 26 Feb 07 jari 232         mainPanel.add(correlPanel);
2 26 Feb 07 jari 233         
2 26 Feb 07 jari 234         constraints.fill = GridBagConstraints.NONE;   
2 26 Feb 07 jari 235         
2 26 Feb 07 jari 236         
2 26 Feb 07 jari 237         JPanel damParamPanel = new JPanel();
2 26 Feb 07 jari 238         damParamPanel.setBackground(Color.white);
2 26 Feb 07 jari 239         damParamPanel.setBorder(new TitledBorder("DAM classification parameters"));
2 26 Feb 07 jari 240         GridBagLayout grid4 = new GridBagLayout();
2 26 Feb 07 jari 241         damParamPanel.setLayout(grid4);
2 26 Feb 07 jari 242         
2 26 Feb 07 jari 243         JLabel numClassesLabel = new JLabel("          Number of classes");
2 26 Feb 07 jari 244         buildConstraints(constraints, 0, 0, 1, 1, 50, 50);
2 26 Feb 07 jari 245         grid4.setConstraints(numClassesLabel, constraints);
2 26 Feb 07 jari 246         damParamPanel.add(numClassesLabel);
2 26 Feb 07 jari 247         
2 26 Feb 07 jari 248         numClassesField = new JTextField("5", 7);
2 26 Feb 07 jari 249         buildConstraints(constraints, 1, 0, 1, 1, 50, 0);
2 26 Feb 07 jari 250         grid4.setConstraints(numClassesField, constraints);
2 26 Feb 07 jari 251         damParamPanel.add(numClassesField);      
2 26 Feb 07 jari 252         
2 26 Feb 07 jari 253         JLabel numNeighborsLabel = new JLabel("          Number of neighbors");
2 26 Feb 07 jari 254         buildConstraints(constraints, 0, 1, 1, 1, 50, 50);
2 26 Feb 07 jari 255         grid4.setConstraints(numNeighborsLabel, constraints);
2 26 Feb 07 jari 256         damParamPanel.add(numNeighborsLabel);   
2 26 Feb 07 jari 257         
2 26 Feb 07 jari 258         numNeighborsField = new JTextField("3", 7);
2 26 Feb 07 jari 259         buildConstraints(constraints, 1, 1, 1, 1, 50, 0);
2 26 Feb 07 jari 260         grid4.setConstraints(numNeighborsField, constraints);
2 26 Feb 07 jari 261         damParamPanel.add(numNeighborsField);  
2 26 Feb 07 jari 262         
2 26 Feb 07 jari 263         buildConstraints(constraints, 0, 3, 1, 1, 100, 20);
2 26 Feb 07 jari 264         constraints.fill = GridBagConstraints.BOTH;
2 26 Feb 07 jari 265         gridbag.setConstraints(damParamPanel, constraints);
2 26 Feb 07 jari 266         mainPanel.add(damParamPanel);   
2 26 Feb 07 jari 267         
2 26 Feb 07 jari 268         constraints.fill = GridBagConstraints.NONE;        
2 26 Feb 07 jari 269         
2 26 Feb 07 jari 270         JPanel makeTrainingSetPanel = new JPanel();
2 26 Feb 07 jari 271         makeTrainingSetPanel.setBackground(Color.white);
2 26 Feb 07 jari 272         makeTrainingSetPanel.setBorder(new TitledBorder("Create / import training set"));
2 26 Feb 07 jari 273         GridBagLayout grid5 = new GridBagLayout();
2 26 Feb 07 jari 274         makeTrainingSetPanel.setLayout(grid5);      
2 26 Feb 07 jari 275         
2 26 Feb 07 jari 276         createNewTrgSetButton = new JRadioButton("Create new training set from data", true);
2 26 Feb 07 jari 277         createNewTrgSetButton.setBackground(Color.white);
2 26 Feb 07 jari 278         useExistTrgSetButton = new JRadioButton("Use previously created training set from file", false);
2 26 Feb 07 jari 279         useExistTrgSetButton.setBackground(Color.white);  
2 26 Feb 07 jari 280         
2 26 Feb 07 jari 281         ButtonGroup newOrExisting = new ButtonGroup();
2 26 Feb 07 jari 282         newOrExisting.add(createNewTrgSetButton);
2 26 Feb 07 jari 283         newOrExisting.add(useExistTrgSetButton);    
2 26 Feb 07 jari 284         
2 26 Feb 07 jari 285         buildConstraints(constraints, 0, 0, 1, 1, 100, 50);
2 26 Feb 07 jari 286         constraints.anchor = GridBagConstraints.CENTER;
2 26 Feb 07 jari 287         grid5.setConstraints(createNewTrgSetButton, constraints);
2 26 Feb 07 jari 288         makeTrainingSetPanel.add(createNewTrgSetButton);        
2 26 Feb 07 jari 289         
2 26 Feb 07 jari 290         buildConstraints(constraints, 0, 1, 1, 1, 0, 50);
2 26 Feb 07 jari 291         grid5.setConstraints(useExistTrgSetButton, constraints);
2 26 Feb 07 jari 292         makeTrainingSetPanel.add(useExistTrgSetButton);   
2 26 Feb 07 jari 293         
2 26 Feb 07 jari 294         buildConstraints(constraints, 0, 4, 1, 1, 100, 20);
2 26 Feb 07 jari 295         constraints.anchor = GridBagConstraints.WEST;        
2 26 Feb 07 jari 296         constraints.fill = GridBagConstraints.BOTH;
2 26 Feb 07 jari 297         gridbag.setConstraints(makeTrainingSetPanel, constraints);
2 26 Feb 07 jari 298         mainPanel.add(makeTrainingSetPanel); 
2 26 Feb 07 jari 299         
2 26 Feb 07 jari 300         constraints.fill = GridBagConstraints.NONE;   
2 26 Feb 07 jari 301         
2 26 Feb 07 jari 302         hclOpsPanel = new HCLSelectionPanel();
2 26 Feb 07 jari 303         buildConstraints(constraints, 0, 5, 1, 1, 100, 10);
2 26 Feb 07 jari 304         constraints.fill = GridBagConstraints.BOTH;
2 26 Feb 07 jari 305         gridbag.setConstraints(hclOpsPanel, constraints);
2 26 Feb 07 jari 306         mainPanel.add(hclOpsPanel);
2 26 Feb 07 jari 307         
2 26 Feb 07 jari 308         constraints.fill = GridBagConstraints.NONE;        
2 26 Feb 07 jari 309         
2 26 Feb 07 jari 310         addContent(mainPanel);
2 26 Feb 07 jari 311         EventListener listener = new EventListener();        
2 26 Feb 07 jari 312         setActionListeners(listener);
2 26 Feb 07 jari 313         this.addWindowListener(listener);        
2 26 Feb 07 jari 314     }
2 26 Feb 07 jari 315     
2 26 Feb 07 jari 316     public void setVisible(boolean visible) {
2 26 Feb 07 jari 317         Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
2 26 Feb 07 jari 318         setLocation((screenSize.width - getSize().width)/2, (screenSize.height - getSize().height)/2);
2 26 Feb 07 jari 319         
2 26 Feb 07 jari 320         super.setVisible(visible);
2 26 Feb 07 jari 321     }    
2 26 Feb 07 jari 322     
2 26 Feb 07 jari 323     void buildConstraints(GridBagConstraints gbc, int gx, int gy,
2 26 Feb 07 jari 324     int gw, int gh, int wx, int wy) {
2 26 Feb 07 jari 325         
2 26 Feb 07 jari 326         gbc.gridx = gx;
2 26 Feb 07 jari 327         gbc.gridy = gy;
2 26 Feb 07 jari 328         gbc.gridwidth = gw;
2 26 Feb 07 jari 329         gbc.gridheight = gh;
2 26 Feb 07 jari 330         gbc.weightx = wx;
2 26 Feb 07 jari 331         gbc.weighty = wy;
2 26 Feb 07 jari 332     } 
2 26 Feb 07 jari 333     
2 26 Feb 07 jari 334     public boolean isOkPressed() {
2 26 Feb 07 jari 335         return okPressed;
2 26 Feb 07 jari 336     }    
2 26 Feb 07 jari 337     
2 26 Feb 07 jari 338     public boolean drawTrees() {
2 26 Feb 07 jari 339         return this.hclOpsPanel.isHCLSelected();
2 26 Feb 07 jari 340     } 
2 26 Feb 07 jari 341     
2 26 Feb 07 jari 342     public boolean classifyGenes() {
2 26 Feb 07 jari 343         return genesButton.isSelected();
2 26 Feb 07 jari 344     }
2 26 Feb 07 jari 345     
2 26 Feb 07 jari 346     public int getNumClasses() {
2 26 Feb 07 jari 347         String s = numClassesField.getText();
2 26 Feb 07 jari 348         return Integer.parseInt(s);
2 26 Feb 07 jari 349     }  
2 26 Feb 07 jari 350     
2 26 Feb 07 jari 351     public boolean createNewTrgSet() {
2 26 Feb 07 jari 352         return createNewTrgSetButton.isSelected();
2 26 Feb 07 jari 353     }
2 26 Feb 07 jari 354     
2 26 Feb 07 jari 355     public boolean useVarianceFilter() {
2 26 Feb 07 jari 356         return useVarianceFilterBox.isSelected();
2 26 Feb 07 jari 357     }
2 26 Feb 07 jari 358     
2 26 Feb 07 jari 359     public int getNumVectors() {
2 26 Feb 07 jari 360         return Integer.parseInt(numGenesField.getText());
2 26 Feb 07 jari 361     }
2 26 Feb 07 jari 362     
2 26 Feb 07 jari 363     public boolean useCorrelFilter() {
2 26 Feb 07 jari 364         return useCorrelFilterBox.isSelected();
2 26 Feb 07 jari 365     }
2 26 Feb 07 jari 366     
2 26 Feb 07 jari 367     public double getCorrPValue() {
2 26 Feb 07 jari 368         return Double.parseDouble(pValueField.getText());
2 26 Feb 07 jari 369     }
2 26 Feb 07 jari 370     
2 26 Feb 07 jari 371     public int getNumPerms() {
2 26 Feb 07 jari 372         return Integer.parseInt(numPermsField.getText());
2 26 Feb 07 jari 373     }
2 26 Feb 07 jari 374     
2 26 Feb 07 jari 375     public int getNumNeighbors() {
2 26 Feb 07 jari 376         return Integer.parseInt(numNeighborsField.getText());
2 26 Feb 07 jari 377     }
2 26 Feb 07 jari 378     
2 26 Feb 07 jari 379     public class EventListener extends WindowAdapter implements ActionListener{
2 26 Feb 07 jari 380         
2 26 Feb 07 jari 381         public void actionPerformed(ActionEvent ae) {
2 26 Feb 07 jari 382             String command = ae.getActionCommand();
2 26 Feb 07 jari 383             if(command.equals("ok-command")){
2 26 Feb 07 jari 384                try {
2 26 Feb 07 jari 385                     if (useVarianceFilterBox.isSelected()) {
2 26 Feb 07 jari 386                         int val = (new Integer(numGenesField.getText())).intValue();
2 26 Feb 07 jari 387                         if (genesButton.isSelected()) {
2 26 Feb 07 jari 388                             if (val <= 0 || val > numGenes) {
2 26 Feb 07 jari 389                                 JOptionPane.showMessageDialog(DAMFirstDialog.this, "Number of highest-variance genes must be > 0 and <= " + numGenes, "Error!", JOptionPane.WARNING_MESSAGE);
2 26 Feb 07 jari 390                                 return;
2 26 Feb 07 jari 391                             }
2 26 Feb 07 jari 392                         } else {
2 26 Feb 07 jari 393                            if (val <= 0 || val > numExps) {
2 26 Feb 07 jari 394                                 JOptionPane.showMessageDialog(DAMFirstDialog.this, "Number of highest-variance expts must be > 0 and <= " + numExps, "Error!", JOptionPane.WARNING_MESSAGE);
2 26 Feb 07 jari 395                                 return;
2 26 Feb 07 jari 396                             }                            
2 26 Feb 07 jari 397                         }
2 26 Feb 07 jari 398                     }
2 26 Feb 07 jari 399                     
2 26 Feb 07 jari 400                     if (useCorrelFilterBox.isSelected()) {
2 26 Feb 07 jari 401                         double val2 = (new Double(pValueField.getText())).doubleValue();
2 26 Feb 07 jari 402                         if (val2 < 0 || val2 > 1) {
2 26 Feb 07 jari 403                             JOptionPane.showMessageDialog(DAMFirstDialog.this, "Correlation p-value must be between 0 and 1", "Error!", JOptionPane.WARNING_MESSAGE);
2 26 Feb 07 jari 404                             return;
2 26 Feb 07 jari 405                         }
2 26 Feb 07 jari 406                         double validateNumPerms = (new Double(numPermsField.getText())).doubleValue();
2 26 Feb 07 jari 407                         if (validateNumPerms <= 0) {
2 26 Feb 07 jari 408                             JOptionPane.showMessageDialog(DAMFirstDialog.this, "Number of permutations must be > 0", "Error!", JOptionPane.WARNING_MESSAGE);
2 26 Feb 07 jari 409                             return;
2 26 Feb 07 jari 410                         }                        
2 26 Feb 07 jari 411                     }
2 26 Feb 07 jari 412                     
2 26 Feb 07 jari 413                     int val3 = (new Integer(numClassesField.getText())).intValue();
2 26 Feb 07 jari 414                     if ( (val3 <= 0 || val3 >= numGenes) && (genesButton.isSelected()) ) {
2 26 Feb 07 jari 415                         JOptionPane.showMessageDialog(DAMFirstDialog.this, "Number of classes must be > 0 and < " + numGenes, "Error!", JOptionPane.WARNING_MESSAGE);
2 26 Feb 07 jari 416                         return;
2 26 Feb 07 jari 417                     }
2 26 Feb 07 jari 418                     if ( (val3 <= 0 || val3 >= numExps) && (expsButton.isSelected()) ) {
2 26 Feb 07 jari 419                         JOptionPane.showMessageDialog(DAMFirstDialog.this, "Number of classes must be > 0 and < " + numExps, "Error!", JOptionPane.WARNING_MESSAGE);
2 26 Feb 07 jari 420                         return;
2 26 Feb 07 jari 421                     }  
2 26 Feb 07 jari 422                     int val4 = (new Integer(numNeighborsField.getText())).intValue();
2 26 Feb 07 jari 423                     if (genesButton.isSelected()) {
2 26 Feb 07 jari 424                         if (val4 <= 0 || val4 > numGenes) {
2 26 Feb 07 jari 425                             JOptionPane.showMessageDialog(DAMFirstDialog.this, "Number of neighbors must be > 0 and <= " + numGenes, "Error!", JOptionPane.WARNING_MESSAGE);
2 26 Feb 07 jari 426                             return;                     
2 26 Feb 07 jari 427                         }
2 26 Feb 07 jari 428                     } else {
2 26 Feb 07 jari 429                         if (val4 <= 0 || val4 > numExps) {
2 26 Feb 07 jari 430                             JOptionPane.showMessageDialog(DAMFirstDialog.this, "Number of neighbors must be > 0 and <= " + numExps, "Error!", JOptionPane.WARNING_MESSAGE);
2 26 Feb 07 jari 431                             return;                     
2 26 Feb 07 jari 432                         }                        
2 26 Feb 07 jari 433                     }
2 26 Feb 07 jari 434                     okPressed = true;
2 26 Feb 07 jari 435                     dispose();                    
2 26 Feb 07 jari 436                 } catch (Exception e) {
2 26 Feb 07 jari 437                     JOptionPane.showMessageDialog(DAMFirstDialog.this, "Invalid format for at least one parameter", "Error!", JOptionPane.WARNING_MESSAGE);
2 26 Feb 07 jari 438                 }            
2 26 Feb 07 jari 439
2 26 Feb 07 jari 440             } else if (command.equals("reset-command")) {
2 26 Feb 07 jari 441                 okPressed = false;
2 26 Feb 07 jari 442                 genesButton.setSelected(true);
2 26 Feb 07 jari 443                 expsButton.setSelected(false);
2 26 Feb 07 jari 444                 useVarianceFilterBox.setSelected(false);
2 26 Feb 07 jari 445                 useCorrelFilterBox.setSelected(false);
2 26 Feb 07 jari 446                 useVarianceFilterBox.setText("Use variance filter (if unchecked, use all genes)");
2 26 Feb 07 jari 447                 //useCorrelFilterBox.setText("Use correlation filter (if unchecked, use all genes)");  
2 26 Feb 07 jari 448                 varLabel.setText("          Use only the following number of highest-variance genes: ");
2 26 Feb 07 jari 449                 numGenesField.setText("1000");
2 26 Feb 07 jari 450                 pValueField.setText("0.01");
2 26 Feb 07 jari 451                 numPermsField.setText("1000");
2 26 Feb 07 jari 452                 numClassesField.setText("5");
2 26 Feb 07 jari 453                 numNeighborsField.setText("3");
2 26 Feb 07 jari 454                 hclOpsPanel.setHCLSelected(false);
2 26 Feb 07 jari 455
2 26 Feb 07 jari 456             } else if (command.equals("cancel-command")) {
2 26 Feb 07 jari 457                 okPressed = false;
2 26 Feb 07 jari 458                 dispose();
2 26 Feb 07 jari 459             } else if (command.equals("info-command")){
2 26 Feb 07 jari 460                 /*
2 26 Feb 07 jari 461                 HelpWindow hw = new HelpWindow(OneWayANOVAInitBox.this, "One Way ANOVA Initialization Dialog");
2 26 Feb 07 jari 462                 okPressed = false;
2 26 Feb 07 jari 463                 if(hw.getWindowContent()){
2 26 Feb 07 jari 464                     hw.setSize(450,600);
2 26 Feb 07 jari 465                     hw.setLocation();
2 26 Feb 07 jari 466                     hw.show();
2 26 Feb 07 jari 467                     return;
2 26 Feb 07 jari 468                  
2 26 Feb 07 jari 469                 }
2 26 Feb 07 jari 470                 else {
2 26 Feb 07 jari 471                     hw.setVisible(false);
2 26 Feb 07 jari 472                     hw.dispose();
2 26 Feb 07 jari 473                     return;
2 26 Feb 07 jari 474                 }
2 26 Feb 07 jari 475                  */
2 26 Feb 07 jari 476     }
2 26 Feb 07 jari 477         }
2 26 Feb 07 jari 478         
2 26 Feb 07 jari 479     }    
2 26 Feb 07 jari 480     
2 26 Feb 07 jari 481 }