mev-4.0.01/source/org/tigr/microarray/mev/cluster/gui/impl/gdm/GDMResultSelectionDialog.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: GDMResultSelectionDialog.java,v $
2 26 Feb 07 jari 7 * $Revision: 1.4 $
2 26 Feb 07 jari 8 * $Date: 2005/12/06 16:29:15 $
2 26 Feb 07 jari 9 * $Author: wwang67 $
2 26 Feb 07 jari 10 * $State: Exp $
2 26 Feb 07 jari 11 */
2 26 Feb 07 jari 12 package org.tigr.microarray.mev.cluster.gui.impl.gdm;
2 26 Feb 07 jari 13
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.Insets;
2 26 Feb 07 jari 18 import java.awt.Toolkit;
2 26 Feb 07 jari 19 import java.awt.event.ActionEvent;
2 26 Feb 07 jari 20 import java.awt.event.WindowEvent;
2 26 Feb 07 jari 21 import java.util.Enumeration;
2 26 Feb 07 jari 22 import java.util.Vector;
2 26 Feb 07 jari 23
2 26 Feb 07 jari 24 import javax.swing.JDialog;
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.JList;
2 26 Feb 07 jari 28 import javax.swing.JOptionPane;
2 26 Feb 07 jari 29 import javax.swing.JScrollPane;
2 26 Feb 07 jari 30
2 26 Feb 07 jari 31 import org.tigr.microarray.mev.cluster.gui.impl.dialogs.AlgorithmDialog;
2 26 Feb 07 jari 32 import org.tigr.microarray.mev.cluster.gui.impl.dialogs.DialogListener;
2 26 Feb 07 jari 33 import org.tigr.microarray.mev.cluster.gui.impl.dialogs.ParameterPanel;
2 26 Feb 07 jari 34 import org.tigr.microarray.mev.cluster.gui.impl.dialogs.dialogHelpUtil.HelpWindow;
2 26 Feb 07 jari 35 import org.tigr.util.QSort;
2 26 Feb 07 jari 36
2 26 Feb 07 jari 37 public class GDMResultSelectionDialog extends AlgorithmDialog {
2 26 Feb 07 jari 38
2 26 Feb 07 jari 39     private int result;
2 26 Feb 07 jari 40     private JList resultList;
2 26 Feb 07 jari 41
2 26 Feb 07 jari 42   
2 26 Feb 07 jari 43     /**
2 26 Feb 07 jari 44      * Constructs a <code>GDMInitDialog</code> with default
2 26 Feb 07 jari 45      * initial parameters.
2 26 Feb 07 jari 46      */
2 26 Feb 07 jari 47     public GDMResultSelectionDialog(JFrame frame, Enumeration nameEnum) {
2 26 Feb 07 jari 48         super(frame, "GDM Result Selection Dialog", true);
2 26 Feb 07 jari 49       
2 26 Feb 07 jari 50         Listener listener = new Listener();
2 26 Feb 07 jari 51         addWindowListener(listener);
2 26 Feb 07 jari 52
2 26 Feb 07 jari 53         ParameterPanel parameters = new ParameterPanel();
2 26 Feb 07 jari 54         parameters.setLayout(new GridBagLayout());
2 26 Feb 07 jari 55
2 26 Feb 07 jari 56         //enumeration is not sorted, sort based on alg index and load 
2 26 Feb 07 jari 57         //into the vector for the JList
2 26 Feb 07 jari 58         Vector v = sortAndLoadResultVector(nameEnum);
2 26 Feb 07 jari 59         
2 26 Feb 07 jari 60         this.resultList = new JList(v);
2 26 Feb 07 jari 61         resultList.setVisibleRowCount(3);
2 26 Feb 07 jari 62         resultList.setSelectedIndex(0);       
2 26 Feb 07 jari 63         
2 26 Feb 07 jari 64         JScrollPane pane = new JScrollPane(resultList);
2 26 Feb 07 jari 65         JLabel label = new JLabel("Select Cluster Result: ");
2 26 Feb 07 jari 66         label.setVerticalAlignment(JLabel.TOP);
2 26 Feb 07 jari 67     
2 26 Feb 07 jari 68         parameters.add(label, new GridBagConstraints(0,0,1,1,0,0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(10,0,30,10),0,0));
2 26 Feb 07 jari 69         parameters.add(pane, new GridBagConstraints(1,0,1,1,0,0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(10,0,30,50),0,0));
2 26 Feb 07 jari 70         
2 26 Feb 07 jari 71         this.addContent(parameters);
2 26 Feb 07 jari 72         this.setActionListeners(listener);
2 26 Feb 07 jari 73         pack();
2 26 Feb 07 jari 74     }
2 26 Feb 07 jari 75
2 26 Feb 07 jari 76     public void resetControls() {
2 26 Feb 07 jari 77         this.resultList.setSelectedIndex(0);
2 26 Feb 07 jari 78     }
2 26 Feb 07 jari 79
2 26 Feb 07 jari 80
2 26 Feb 07 jari 81     /**
2 26 Feb 07 jari 82      * Shows the dialog.
2 26 Feb 07 jari 83      */
2 26 Feb 07 jari 84     public int showModal() {
2 26 Feb 07 jari 85         Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
2 26 Feb 07 jari 86         setLocation((screenSize.width - getSize().width)/2, (screenSize.height - getSize().height)/2);
2 26 Feb 07 jari 87         show();
2 26 Feb 07 jari 88         return result;
2 26 Feb 07 jari 89     }
2 26 Feb 07 jari 90     
2 26 Feb 07 jari 91     /**
2 26 Feb 07 jari 92      *  Returns the selected result name
2 26 Feb 07 jari 93      */
2 26 Feb 07 jari 94     public String getSelectedResult() {
2 26 Feb 07 jari 95         return (String)this.resultList.getSelectedValue();
2 26 Feb 07 jari 96     }
2 26 Feb 07 jari 97
2 26 Feb 07 jari 98     
2 26 Feb 07 jari 99     public static void main (String [] args){
2 26 Feb 07 jari 100         Vector nameVector = new Vector();
2 26 Feb 07 jari 101
2 26 Feb 07 jari 102         nameVector.add("KMC - genes (6)");
2 26 Feb 07 jari 103         nameVector.add("TTEST");
2 26 Feb 07 jari 104         nameVector.add("SOTA Test");
2 26 Feb 07 jari 105         nameVector.add("SOTA - genes (1)");
2 26 Feb 07 jari 106         nameVector.add("QTC - genes (2)");
2 26 Feb 07 jari 107         
2 26 Feb 07 jari 108         GDMResultSelectionDialog dialog = new GDMResultSelectionDialog(new JFrame(), nameVector.elements());
2 26 Feb 07 jari 109         dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
2 26 Feb 07 jari 110         dialog.showModal();
2 26 Feb 07 jari 111         System.out.println("Selected result: "+ dialog.getSelectedResult());
2 26 Feb 07 jari 112     }
2 26 Feb 07 jari 113     
2 26 Feb 07 jari 114  
2 26 Feb 07 jari 115     private Vector sortAndLoadResultVector( Enumeration _enum ) {
2 26 Feb 07 jari 116         Vector results = new Vector();
2 26 Feb 07 jari 117         
2 26 Feb 07 jari 118         while(_enum.hasMoreElements())
2 26 Feb 07 jari 119             results.add(_enum.nextElement());
2 26 Feb 07 jari 120         
2 26 Feb 07 jari 121         //Need to restore order
2 26 Feb 07 jari 122         String [] names = new String[results.size()];
2 26 Feb 07 jari 123         float [] order = new float[results.size()];
2 26 Feb 07 jari 124         int index;
2 26 Feb 07 jari 125         int algIndex;
2 26 Feb 07 jari 126         
2 26 Feb 07 jari 127         for(int i = 0; i < names.length; i++) {
2 26 Feb 07 jari 128             names[i] = (String)results.elementAt(i);
2 26 Feb 07 jari 129             index = names[i].indexOf("(");
2 26 Feb 07 jari 130             if(index != -1){
2 26 Feb 07 jari 131                 try {
2 26 Feb 07 jari 132                     order[i] = Integer.parseInt(names[i].substring(index+1, names[i].indexOf(")")));
2 26 Feb 07 jari 133                 } catch (NumberFormatException nfe) {
2 26 Feb 07 jari 134                     order[i] = 1000+i;
2 26 Feb 07 jari 135                 }
2 26 Feb 07 jari 136             } else {
2 26 Feb 07 jari 137                 order[i] = 1000+i;
2 26 Feb 07 jari 138             }         
2 26 Feb 07 jari 139         }
2 26 Feb 07 jari 140
2 26 Feb 07 jari 141         QSort sorter = new QSort(order);
2 26 Feb 07 jari 142         int [] origOrder = sorter.getOrigIndx();
2 26 Feb 07 jari 143         
2 26 Feb 07 jari 144         results = new Vector();
2 26 Feb 07 jari 145         for(int i = 0; i < origOrder.length; i++){
2 26 Feb 07 jari 146             results.add(names[origOrder[i]]);
2 26 Feb 07 jari 147         }
2 26 Feb 07 jari 148
2 26 Feb 07 jari 149         return results;
2 26 Feb 07 jari 150     }
2 26 Feb 07 jari 151     
2 26 Feb 07 jari 152     /**
2 26 Feb 07 jari 153      * The class to listen to the dialog events.
2 26 Feb 07 jari 154      */
2 26 Feb 07 jari 155     private class Listener extends DialogListener {
2 26 Feb 07 jari 156
2 26 Feb 07 jari 157         public void actionPerformed(ActionEvent e) {
2 26 Feb 07 jari 158             String command = e.getActionCommand();
2 26 Feb 07 jari 159             if (command.equals("ok-command")) {
2 26 Feb 07 jari 160                 result = JOptionPane.OK_OPTION;
2 26 Feb 07 jari 161                 dispose();
2 26 Feb 07 jari 162             } else if (command.equals("cancel-command")) {
2 26 Feb 07 jari 163                 result = JOptionPane.CANCEL_OPTION;
2 26 Feb 07 jari 164                 dispose();
2 26 Feb 07 jari 165             } else if (command.equals("reset-command")) {
2 26 Feb 07 jari 166                 resetControls();
2 26 Feb 07 jari 167             } else if (command.equals("info-command")) {
2 26 Feb 07 jari 168                 HelpWindow hw = new HelpWindow(GDMResultSelectionDialog.this, "GDM Result Selection Dialog");
2 26 Feb 07 jari 169                 if(hw.getWindowContent()){
2 26 Feb 07 jari 170                     hw.setSize(450,650);
2 26 Feb 07 jari 171                     hw.setLocation();
2 26 Feb 07 jari 172                     hw.show();
2 26 Feb 07 jari 173                 }
2 26 Feb 07 jari 174                 else {
2 26 Feb 07 jari 175                     hw.setVisible(false);
2 26 Feb 07 jari 176                     hw.dispose();
2 26 Feb 07 jari 177                 }   
2 26 Feb 07 jari 178             }
2 26 Feb 07 jari 179         }
2 26 Feb 07 jari 180
2 26 Feb 07 jari 181         public void windowClosing(WindowEvent e) {
2 26 Feb 07 jari 182             result = JOptionPane.CLOSED_OPTION;
2 26 Feb 07 jari 183             dispose();
2 26 Feb 07 jari 184         }
2 26 Feb 07 jari 185     }
2 26 Feb 07 jari 186 }