mev-4.0.01/source/org/tigr/microarray/mev/cluster/gui/impl/svm/SVMProcessInitDialog.java

Code
Comments
Other
Rev Date Author Line
2 26 Feb 07 jari 1 /*
2 26 Feb 07 jari 2 Copyright @ 1999-2003, 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  * $RCSfile: SVMProcessInitDialog.java,v $
2 26 Feb 07 jari 7  * $Revision: 1.3 $
2 26 Feb 07 jari 8  * $Date: 2005/03/10 20:21:56 $
2 26 Feb 07 jari 9  * $Author: braistedj $
2 26 Feb 07 jari 10  * $State: Exp $
2 26 Feb 07 jari 11  */
2 26 Feb 07 jari 12
2 26 Feb 07 jari 13 package org.tigr.microarray.mev.cluster.gui.impl.svm;
2 26 Feb 07 jari 14
2 26 Feb 07 jari 15 import java.awt.Color;
2 26 Feb 07 jari 16 import java.awt.Dimension;
2 26 Feb 07 jari 17 import java.awt.Font;
2 26 Feb 07 jari 18 import java.awt.GridBagConstraints;
2 26 Feb 07 jari 19 import java.awt.Toolkit;
2 26 Feb 07 jari 20 import java.awt.event.ActionEvent;
2 26 Feb 07 jari 21 import java.awt.event.WindowAdapter;
2 26 Feb 07 jari 22 import java.awt.event.WindowEvent;
2 26 Feb 07 jari 23
2 26 Feb 07 jari 24 import javax.swing.ButtonGroup;
2 26 Feb 07 jari 25 import javax.swing.JFrame;
2 26 Feb 07 jari 26 import javax.swing.JOptionPane;
2 26 Feb 07 jari 27 import javax.swing.JPanel;
2 26 Feb 07 jari 28 import javax.swing.JRadioButton;
2 26 Feb 07 jari 29 import javax.swing.UIManager;
2 26 Feb 07 jari 30 import javax.swing.border.EtchedBorder;
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.impl.dialogs.AlgorithmDialog;
2 26 Feb 07 jari 34 import org.tigr.microarray.mev.cluster.gui.impl.dialogs.DialogListener;
2 26 Feb 07 jari 35 import org.tigr.microarray.mev.cluster.gui.impl.dialogs.HCLSelectionPanel;
2 26 Feb 07 jari 36 import org.tigr.microarray.mev.cluster.gui.impl.dialogs.SampleSelectionPanel;
2 26 Feb 07 jari 37 import org.tigr.microarray.mev.cluster.gui.impl.dialogs.dialogHelpUtil.HelpWindow;
2 26 Feb 07 jari 38
2 26 Feb 07 jari 39 public class SVMProcessInitDialog extends AlgorithmDialog {
2 26 Feb 07 jari 40     
2 26 Feb 07 jari 41     int result = JOptionPane.CANCEL_OPTION;
2 26 Feb 07 jari 42         
2 26 Feb 07 jari 43     private SampleSelectionPanel sampleSelectionPanel;
2 26 Feb 07 jari 44     
2 26 Feb 07 jari 45     private JPanel processPanel;
2 26 Feb 07 jari 46     private JRadioButton trainAndClassifyButton;
2 26 Feb 07 jari 47     private JRadioButton trainOnlyButton;
2 26 Feb 07 jari 48     private JRadioButton classifyOnlyButton;
2 26 Feb 07 jari 49     private JRadioButton oneOutValButton;
2 26 Feb 07 jari 50     private ButtonGroup processSelection;
2 26 Feb 07 jari 51     
2 26 Feb 07 jari 52     private HCLSelectionPanel hclOpsPanel;
2 26 Feb 07 jari 53     
2 26 Feb 07 jari 54     /** Creates new form SVMTrain_ClassifierSelectDialog */
2 26 Feb 07 jari 55     public SVMProcessInitDialog(java.awt.Frame parent, boolean modal) {
2 26 Feb 07 jari 56         super(new JFrame(), "SVM Process Initialization" ,modal);
2 26 Feb 07 jari 57         initComponents();
2 26 Feb 07 jari 58         okButton.setText("Continue");
2 26 Feb 07 jari 59         sampleSelectionPanel.setButtonText("Classify Genes", "Classify Samples");
2 26 Feb 07 jari 60         Listener listener = new Listener();
2 26 Feb 07 jari 61         setActionListeners(listener);
2 26 Feb 07 jari 62        pack();
2 26 Feb 07 jari 63        setResizable(false);
2 26 Feb 07 jari 64     }
2 26 Feb 07 jari 65
2 26 Feb 07 jari 66     private void initComponents() {
2 26 Feb 07 jari 67         JPanel mainPanel = new JPanel();
2 26 Feb 07 jari 68         mainPanel.setLayout(new java.awt.GridBagLayout());
2 26 Feb 07 jari 69         mainPanel.setBackground(Color.white);
2 26 Feb 07 jari 70         
2 26 Feb 07 jari 71         processSelection = new ButtonGroup();        
2 26 Feb 07 jari 72         processPanel = new JPanel();
2 26 Feb 07 jari 73         trainAndClassifyButton = new JRadioButton();
2 26 Feb 07 jari 74         trainOnlyButton = new JRadioButton();
2 26 Feb 07 jari 75         classifyOnlyButton = new JRadioButton();    
2 26 Feb 07 jari 76         oneOutValButton = new JRadioButton();
2 26 Feb 07 jari 77         GridBagConstraints gridBagConstraints1;
2 26 Feb 07 jari 78         
2 26 Feb 07 jari 79         setBackground(Color.lightGray);
2 26 Feb 07 jari 80         addWindowListener(new WindowAdapter() {
2 26 Feb 07 jari 81             public void windowClosing(WindowEvent evt) {
2 26 Feb 07 jari 82                 closeDialog(evt);
2 26 Feb 07 jari 83             }
2 26 Feb 07 jari 84         });
2 26 Feb 07 jari 85         
2 26 Feb 07 jari 86         sampleSelectionPanel = new SampleSelectionPanel(Color.white, UIManager.getColor("Label.foreground"),true,"Classification Selection");
2 26 Feb 07 jari 87         
2 26 Feb 07 jari 88         gridBagConstraints1 = new java.awt.GridBagConstraints();
2 26 Feb 07 jari 89         gridBagConstraints1.gridx = 0;
2 26 Feb 07 jari 90         gridBagConstraints1.gridy = 0;
2 26 Feb 07 jari 91         gridBagConstraints1.weightx = 1;
2 26 Feb 07 jari 92         gridBagConstraints1.fill = java.awt.GridBagConstraints.HORIZONTAL;
2 26 Feb 07 jari 93         gridBagConstraints1.insets = new java.awt.Insets(4, 0, 0, 0);
2 26 Feb 07 jari 94         mainPanel.add(sampleSelectionPanel, gridBagConstraints1);
2 26 Feb 07 jari 95         
2 26 Feb 07 jari 96         processPanel.setLayout(new java.awt.GridBagLayout());
2 26 Feb 07 jari 97         java.awt.GridBagConstraints gridBagConstraints2;
2 26 Feb 07 jari 98         
2 26 Feb 07 jari 99         processPanel.setBorder(new javax.swing.border.TitledBorder(new EtchedBorder(EtchedBorder.RAISED), "SVM Process Selection", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, new Font("Dialog", Font.BOLD, 12), Color.black));
2 26 Feb 07 jari 100         processPanel.setBackground(Color.white);
2 26 Feb 07 jari 101         trainAndClassifyButton.setToolTipText("Train SMV then immediately classify");
2 26 Feb 07 jari 102         trainAndClassifyButton.setSelected(true);
2 26 Feb 07 jari 103         trainAndClassifyButton.setText("Train SVM then Classify");
2 26 Feb 07 jari 104         trainAndClassifyButton.setBackground(Color.white);
2 26 Feb 07 jari 105         trainAndClassifyButton.setForeground(UIManager.getColor("Label.foreground"));
2 26 Feb 07 jari 106         processSelection.add(trainAndClassifyButton);
2 26 Feb 07 jari 107         trainAndClassifyButton.setFocusPainted(false);
2 26 Feb 07 jari 108         gridBagConstraints2 = new java.awt.GridBagConstraints();
2 26 Feb 07 jari 109         gridBagConstraints2.gridx = 0;
2 26 Feb 07 jari 110         gridBagConstraints2.gridy = 0;
2 26 Feb 07 jari 111         gridBagConstraints2.fill = GridBagConstraints.HORIZONTAL;
2 26 Feb 07 jari 112         gridBagConstraints2.insets = new java.awt.Insets(5, 0, 5, 0);
2 26 Feb 07 jari 113         processPanel.add(trainAndClassifyButton, gridBagConstraints2);
2 26 Feb 07 jari 114         
2 26 Feb 07 jari 115         trainOnlyButton.setToolTipText("Train SVM only... output are result SVM weights");
2 26 Feb 07 jari 116         trainOnlyButton.setText("Train SVM (skip classify)");
2 26 Feb 07 jari 117         trainOnlyButton.setBackground(Color.white);
2 26 Feb 07 jari 118         trainOnlyButton.setForeground(UIManager.getColor("Label.foreground"));
2 26 Feb 07 jari 119         processSelection.add(trainOnlyButton);
2 26 Feb 07 jari 120         trainOnlyButton.setFocusPainted(false);
2 26 Feb 07 jari 121         gridBagConstraints2 = new java.awt.GridBagConstraints();
2 26 Feb 07 jari 122         gridBagConstraints2.gridx = 0;
2 26 Feb 07 jari 123         gridBagConstraints2.gridy = 1;
2 26 Feb 07 jari 124         gridBagConstraints2.fill = java.awt.GridBagConstraints.HORIZONTAL;
2 26 Feb 07 jari 125         gridBagConstraints2.insets = new java.awt.Insets(5, 0, 5, 0);
2 26 Feb 07 jari 126         processPanel.add(trainOnlyButton, gridBagConstraints2);
2 26 Feb 07 jari 127         
2 26 Feb 07 jari 128         classifyOnlyButton.setToolTipText("Trains current data using and SVM file of weights");
2 26 Feb 07 jari 129         classifyOnlyButton.setText("Classify using existing SVM file");
2 26 Feb 07 jari 130         classifyOnlyButton.setBackground(Color.white);
2 26 Feb 07 jari 131         classifyOnlyButton.setForeground(UIManager.getColor("Label.foreground"));
2 26 Feb 07 jari 132         processSelection.add(classifyOnlyButton);
2 26 Feb 07 jari 133         classifyOnlyButton.setFocusPainted(false);
2 26 Feb 07 jari 134         gridBagConstraints2 = new GridBagConstraints();
2 26 Feb 07 jari 135         gridBagConstraints2.gridx = 0;
2 26 Feb 07 jari 136         gridBagConstraints2.gridy = 2;
2 26 Feb 07 jari 137         gridBagConstraints2.fill = GridBagConstraints.HORIZONTAL;
2 26 Feb 07 jari 138         gridBagConstraints2.insets = new java.awt.Insets(5, 0, 5, 0);
2 26 Feb 07 jari 139         processPanel.add(classifyOnlyButton, gridBagConstraints2);
2 26 Feb 07 jari 140         
2 26 Feb 07 jari 141         oneOutValButton.setToolTipText("One-out Iterative Validation");
2 26 Feb 07 jari 142         oneOutValButton.setText("One-out Iterative Validation * (see information page)");
2 26 Feb 07 jari 143         oneOutValButton.setBackground(Color.white);
2 26 Feb 07 jari 144         oneOutValButton.setForeground(UIManager.getColor("Label.foreground"));
2 26 Feb 07 jari 145         processSelection.add(oneOutValButton);
2 26 Feb 07 jari 146         oneOutValButton.setFocusPainted(false);
2 26 Feb 07 jari 147         gridBagConstraints2 = new GridBagConstraints();
2 26 Feb 07 jari 148         gridBagConstraints2.gridx = 0;
2 26 Feb 07 jari 149         gridBagConstraints2.gridy = 3;
2 26 Feb 07 jari 150         gridBagConstraints2.fill = GridBagConstraints.HORIZONTAL;
2 26 Feb 07 jari 151         gridBagConstraints2.insets = new java.awt.Insets(5, 0, 5, 0);
2 26 Feb 07 jari 152         processPanel.add(oneOutValButton, gridBagConstraints2);        
2 26 Feb 07 jari 153         
2 26 Feb 07 jari 154         
2 26 Feb 07 jari 155         gridBagConstraints1 = new java.awt.GridBagConstraints();
2 26 Feb 07 jari 156         gridBagConstraints1.gridx = 0;
2 26 Feb 07 jari 157         gridBagConstraints1.gridy = 1;
2 26 Feb 07 jari 158         gridBagConstraints1.fill = GridBagConstraints.HORIZONTAL;
2 26 Feb 07 jari 159         mainPanel.add(processPanel, gridBagConstraints1);
2 26 Feb 07 jari 160         
2 26 Feb 07 jari 161         gridBagConstraints1 = new java.awt.GridBagConstraints();
2 26 Feb 07 jari 162         gridBagConstraints1.gridx = 0;
2 26 Feb 07 jari 163         gridBagConstraints1.gridy = 2;
2 26 Feb 07 jari 164         gridBagConstraints1.fill = GridBagConstraints.HORIZONTAL;
2 26 Feb 07 jari 165         
2 26 Feb 07 jari 166         
2 26 Feb 07 jari 167         hclOpsPanel = new HCLSelectionPanel();
2 26 Feb 07 jari 168         mainPanel.add(hclOpsPanel, gridBagConstraints1);
2 26 Feb 07 jari 169         
2 26 Feb 07 jari 170         gridBagConstraints1 = new java.awt.GridBagConstraints();
2 26 Feb 07 jari 171         gridBagConstraints1.gridx = 0;
2 26 Feb 07 jari 172         gridBagConstraints1.gridy = 2;
2 26 Feb 07 jari 173         gridBagConstraints1.fill = GridBagConstraints.HORIZONTAL;
2 26 Feb 07 jari 174         
2 26 Feb 07 jari 175         addContent(mainPanel);
2 26 Feb 07 jari 176     }
2 26 Feb 07 jari 177     
2 26 Feb 07 jari 178     /** Closes the dialog */
2 26 Feb 07 jari 179     private void closeDialog(WindowEvent evt) {
2 26 Feb 07 jari 180         setVisible(false);
2 26 Feb 07 jari 181         dispose();
2 26 Feb 07 jari 182     }
2 26 Feb 07 jari 183     
2 26 Feb 07 jari 184     /**
2 26 Feb 07 jari 185      * Returns true if gene SVM's are to be evaluated
2 26 Feb 07 jari 186      */
2 26 Feb 07 jari 187     public boolean isEvaluateGenesSelected(){
2 26 Feb 07 jari 188         return sampleSelectionPanel.isClusterGenesSelected();
2 26 Feb 07 jari 189     }
2 26 Feb 07 jari 190     
2 26 Feb 07 jari 191     /**
2 26 Feb 07 jari 192      *  Returns a constant indicating which SVM process to run
2 26 Feb 07 jari 193      *  Train and classify, train only, classify only
2 26 Feb 07 jari 194      */
2 26 Feb 07 jari 195     public int getSVMProcessSelection(){
2 26 Feb 07 jari 196         if(this.trainAndClassifyButton.isSelected())
2 26 Feb 07 jari 197             return SVMGUI.TRAIN_AND_CLASSIFY;
2 26 Feb 07 jari 198         else if(this.trainOnlyButton.isSelected())
2 26 Feb 07 jari 199             return SVMGUI.TRAIN_ONLY;
2 26 Feb 07 jari 200         else if(this.classifyOnlyButton.isSelected())
2 26 Feb 07 jari 201             return SVMGUI.CLASSIFY_ONLY;
2 26 Feb 07 jari 202         else
2 26 Feb 07 jari 203             return SVMGUI.ONE_OUT_VALIDATION;
2 26 Feb 07 jari 204     }
2 26 Feb 07 jari 205     
2 26 Feb 07 jari 206     /**
2 26 Feb 07 jari 207      * Returns boolean selection for calculating HCL on SVM results
2 26 Feb 07 jari 208      */
2 26 Feb 07 jari 209     public boolean getHCLSelection(){
2 26 Feb 07 jari 210         return hclOpsPanel.isHCLSelected();
2 26 Feb 07 jari 211     }
2 26 Feb 07 jari 212     
2 26 Feb 07 jari 213     public int showModal() {
2 26 Feb 07 jari 214         Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
2 26 Feb 07 jari 215         setLocation((screenSize.width - getSize().width)/2, (screenSize.height - getSize().height)/2);
2 26 Feb 07 jari 216         show();
2 26 Feb 07 jari 217         return result;
2 26 Feb 07 jari 218     }
2 26 Feb 07 jari 219     
2 26 Feb 07 jari 220     
2 26 Feb 07 jari 221     
2 26 Feb 07 jari 222     /**
2 26 Feb 07 jari 223      * @param args the command line arguments
2 26 Feb 07 jari 224      */
2 26 Feb 07 jari 225     public static void main(String args[]) {
2 26 Feb 07 jari 226         new SVMProcessInitDialog(new javax.swing.JFrame(), true).show();
2 26 Feb 07 jari 227         System.exit(0);
2 26 Feb 07 jari 228     }
2 26 Feb 07 jari 229     
2 26 Feb 07 jari 230     
2 26 Feb 07 jari 231     
2 26 Feb 07 jari 232     
2 26 Feb 07 jari 233     
2 26 Feb 07 jari 234     private class Listener extends DialogListener {
2 26 Feb 07 jari 235         
2 26 Feb 07 jari 236         public void actionPerformed(ActionEvent e) {
2 26 Feb 07 jari 237             String command = e.getActionCommand();
2 26 Feb 07 jari 238             if (command.equals("ok-command")) {
2 26 Feb 07 jari 239                     result = JOptionPane.OK_OPTION;
2 26 Feb 07 jari 240                 dispose();
2 26 Feb 07 jari 241             } else if (command.equals("cancel-command")) {
2 26 Feb 07 jari 242                 result = JOptionPane.CANCEL_OPTION;
2 26 Feb 07 jari 243                 dispose();
2 26 Feb 07 jari 244             } else if (command.equals("reset-command")){
2 26 Feb 07 jari 245                 sampleSelectionPanel.setClusterGenesSelected(true);
2 26 Feb 07 jari 246                 hclOpsPanel.setHCLSelected(false);
2 26 Feb 07 jari 247                 trainAndClassifyButton.setSelected(true);
2 26 Feb 07 jari 248             } else if (command.equals("info-command")){
2 26 Feb 07 jari 249                HelpWindow hw = new HelpWindow(SVMProcessInitDialog.this, "SVM Process Initialization Dialog");
2 26 Feb 07 jari 250                 if(hw.getWindowContent()){
2 26 Feb 07 jari 251                     hw.setSize(450,650);
2 26 Feb 07 jari 252                     hw.setLocation();
2 26 Feb 07 jari 253                     hw.show();
2 26 Feb 07 jari 254                 }
2 26 Feb 07 jari 255                 else {
2 26 Feb 07 jari 256                     hw.setVisible(false);
2 26 Feb 07 jari 257                     hw.dispose();
2 26 Feb 07 jari 258                 }   
2 26 Feb 07 jari 259             }
2 26 Feb 07 jari 260             
2 26 Feb 07 jari 261         }
2 26 Feb 07 jari 262         
2 26 Feb 07 jari 263         public void windowClosing(WindowEvent e) {
2 26 Feb 07 jari 264             result = JOptionPane.CLOSED_OPTION;
2 26 Feb 07 jari 265             dispose();
2 26 Feb 07 jari 266         }
2 26 Feb 07 jari 267         
2 26 Feb 07 jari 268     }
2 26 Feb 07 jari 269     
2 26 Feb 07 jari 270 }
2 26 Feb 07 jari 271