mev-4.0.01/source/org/tigr/microarray/mev/cluster/clusterUtil/ClusterAttributesDialog.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: ClusterAttributesDialog.java,v $
2 26 Feb 07 jari 7  * $Revision: 1.3 $
2 26 Feb 07 jari 8  * $Date: 2005/03/10 15:48: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 package org.tigr.microarray.mev.cluster.clusterUtil;
2 26 Feb 07 jari 13
2 26 Feb 07 jari 14 import java.awt.Color;
2 26 Feb 07 jari 15 import java.awt.Dimension;
2 26 Feb 07 jari 16 import java.awt.GridBagConstraints;
2 26 Feb 07 jari 17 import java.awt.GridBagLayout;
2 26 Feb 07 jari 18 import java.awt.Insets;
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.ActionListener;
2 26 Feb 07 jari 22
2 26 Feb 07 jari 23 import javax.swing.BorderFactory;
2 26 Feb 07 jari 24 import javax.swing.JButton;
2 26 Feb 07 jari 25 import javax.swing.JColorChooser;
2 26 Feb 07 jari 26 import javax.swing.JFrame;
2 26 Feb 07 jari 27 import javax.swing.JLabel;
2 26 Feb 07 jari 28 import javax.swing.JOptionPane;
2 26 Feb 07 jari 29 import javax.swing.JPanel;
2 26 Feb 07 jari 30 import javax.swing.JTextArea;
2 26 Feb 07 jari 31 import javax.swing.JTextField;
2 26 Feb 07 jari 32 import javax.swing.SwingConstants;
2 26 Feb 07 jari 33 import javax.swing.border.BevelBorder;
2 26 Feb 07 jari 34
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.dialogHelpUtil.HelpWindow;
2 26 Feb 07 jari 37
2 26 Feb 07 jari 38 public class ClusterAttributesDialog extends AlgorithmDialog {
2 26 Feb 07 jari 39     
2 26 Feb 07 jari 40     JTextArea textArea;
2 26 Feb 07 jari 41     JLabel colorLabel;
2 26 Feb 07 jari 42     JTextField clusterLabelField;
2 26 Feb 07 jari 43     int result = JOptionPane.CANCEL_OPTION;
2 26 Feb 07 jari 44     
2 26 Feb 07 jari 45     String clusterLabelStr;
2 26 Feb 07 jari 46     String clusterDescriptionStr;
2 26 Feb 07 jari 47     Color clusterColor;
2 26 Feb 07 jari 48     
2 26 Feb 07 jari 49     public ClusterAttributesDialog(String frameTitle, String analysis, String clusterID){
2 26 Feb 07 jari 50         this(frameTitle, analysis, clusterID, null, null, null);        
2 26 Feb 07 jari 51     }
2 26 Feb 07 jari 52     
2 26 Feb 07 jari 53     
2 26 Feb 07 jari 54     /** Creates new ClusterSaveDialog */
2 26 Feb 07 jari 55     public ClusterAttributesDialog(String frameTitle, String analysis, String clusterID, String clusterLabelStr, String clusterDescription, Color clusterColor) {
2 26 Feb 07 jari 56         super(new JFrame(), frameTitle, true);
2 26 Feb 07 jari 57         this.clusterLabelStr = clusterLabelStr;
2 26 Feb 07 jari 58         this.clusterDescriptionStr = clusterDescription;
2 26 Feb 07 jari 59         this.clusterColor = clusterColor;
2 26 Feb 07 jari 60         JPanel parameters = new JPanel();
2 26 Feb 07 jari 61         parameters.setLayout(new GridBagLayout());
2 26 Feb 07 jari 62         parameters.setBackground(Color.white);
2 26 Feb 07 jari 63         parameters.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
2 26 Feb 07 jari 64         
2 26 Feb 07 jari 65         EventListener listener = new EventListener();
2 26 Feb 07 jari 66         
2 26 Feb 07 jari 67         JLabel analysisName = new JLabel("Analysis Node");
2 26 Feb 07 jari 68         JTextField analysisField = new JTextField(analysis);
2 26 Feb 07 jari 69         analysisField.setEditable(false);
2 26 Feb 07 jari 70         analysisField.setHorizontalAlignment(SwingConstants.CENTER);
2 26 Feb 07 jari 71         
2 26 Feb 07 jari 72         JLabel clusterNode = new JLabel("Cluster Node");
2 26 Feb 07 jari 73         JTextField clusterIDField = new JTextField(clusterID);
2 26 Feb 07 jari 74         clusterIDField.setEditable(false);
2 26 Feb 07 jari 75         clusterIDField.setHorizontalAlignment(SwingConstants.CENTER);
2 26 Feb 07 jari 76         
2 26 Feb 07 jari 77         JLabel clusterLabel = new JLabel("Cluster Label*");
2 26 Feb 07 jari 78         clusterLabelField = new JTextField(15);
2 26 Feb 07 jari 79         if(this.clusterLabelStr != null)
2 26 Feb 07 jari 80             clusterLabelField.setText(this.clusterLabelStr);
2 26 Feb 07 jari 81         
2 26 Feb 07 jari 82         JLabel notes = new JLabel("Remarks: *");
2 26 Feb 07 jari 83         textArea = new JTextArea(2,30);
2 26 Feb 07 jari 84         textArea.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED, Color.lightGray, Color.gray));
2 26 Feb 07 jari 85         textArea.setMargin(new Insets(0,3,0,3));
2 26 Feb 07 jari 86         textArea.setSize(350,50);
2 26 Feb 07 jari 87         textArea.setPreferredSize(new Dimension(370,50));
2 26 Feb 07 jari 88         textArea.setMargin(new Insets(2,3,2,3));
2 26 Feb 07 jari 89         if(this.clusterDescriptionStr != null)
2 26 Feb 07 jari 90             textArea.setText(this.clusterDescriptionStr);
2 26 Feb 07 jari 91         
2 26 Feb 07 jari 92         JButton setColorButton = new JButton("Select Color");
2 26 Feb 07 jari 93         setColorButton.setFocusPainted(false);
2 26 Feb 07 jari 94         setColorButton.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED, Color.gray, Color.darkGray));
2 26 Feb 07 jari 95         setColorButton.setSize(80, 25);
2 26 Feb 07 jari 96         setColorButton.setPreferredSize(new Dimension(100,25));
2 26 Feb 07 jari 97         setColorButton.setActionCommand("set-color-command");
2 26 Feb 07 jari 98         setColorButton.addActionListener(listener);
2 26 Feb 07 jari 99         
2 26 Feb 07 jari 100         colorLabel = new JLabel("Preview: No Color");
2 26 Feb 07 jari 101         colorLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
2 26 Feb 07 jari 102         colorLabel.setBorder(BorderFactory.createLineBorder(Color.black, 2));
2 26 Feb 07 jari 103         colorLabel.setBackground(Color.lightGray);
2 26 Feb 07 jari 104         colorLabel.setOpaque(true);
2 26 Feb 07 jari 105         colorLabel.setEnabled(false);
2 26 Feb 07 jari 106         
2 26 Feb 07 jari 107         if(this.clusterColor != null){
2 26 Feb 07 jari 108             colorLabel.setBackground(clusterColor);
2 26 Feb 07 jari 109             colorLabel.setText(" ");
2 26 Feb 07 jari 110         }
2 26 Feb 07 jari 111         
2 26 Feb 07 jari 112         JLabel optionalLabel = new JLabel("(* = optional fields)");
2 26 Feb 07 jari 113         
2 26 Feb 07 jari 114         parameters.add(analysisName, new GridBagConstraints(0,0,1,1,0,0,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(10,0,20,0),0,0));
2 26 Feb 07 jari 115         parameters.add(analysisField, new GridBagConstraints(1,0,1,1,0,0,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(10,20,20,0),0,0));
2 26 Feb 07 jari 116         parameters.add(clusterNode, new GridBagConstraints(0,1,1,1,0,0,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0,0,20,0),0,0));
2 26 Feb 07 jari 117         parameters.add(clusterIDField, new GridBagConstraints(1,1,1,1,0,0,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0,20,20,0),0,0));
2 26 Feb 07 jari 118         parameters.add(clusterLabel, 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 119         parameters.add(clusterLabelField, new GridBagConstraints(1,2,1,1,0,0,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0,20,20,0),0,0));
2 26 Feb 07 jari 120         parameters.add(notes, new GridBagConstraints(0,3,2,1,0,0,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0,0,5,0),0,0));
2 26 Feb 07 jari 121         parameters.add(textArea, new GridBagConstraints(0,4,2,1,0,0,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0,0,20,0),0,0));
2 26 Feb 07 jari 122         parameters.add(setColorButton, new GridBagConstraints(0,5,1,1,0,0,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0,0,10,0),0,0));
2 26 Feb 07 jari 123         parameters.add(colorLabel, new GridBagConstraints(1,5,1,1,0,0,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0,50,10,50),0,0));
2 26 Feb 07 jari 124         parameters.add(optionalLabel, new GridBagConstraints(0,6,2,1,0,0,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0,0,0,0),0,0));
2 26 Feb 07 jari 125         
2 26 Feb 07 jari 126         addContent(parameters);
2 26 Feb 07 jari 127         setActionListeners(listener);
2 26 Feb 07 jari 128         if(this.clusterColor == null)
2 26 Feb 07 jari 129             okButton.setEnabled(false);
2 26 Feb 07 jari 130         pack();
2 26 Feb 07 jari 131         setResizable(false);
2 26 Feb 07 jari 132     }
2 26 Feb 07 jari 133     
2 26 Feb 07 jari 134     /**
2 26 Feb 07 jari 135      * Shows the dialog.
2 26 Feb 07 jari 136      */
2 26 Feb 07 jari 137     public int showModal() {
2 26 Feb 07 jari 138         Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
2 26 Feb 07 jari 139         setLocation((screenSize.width - getSize().width)/2, (screenSize.height - getSize().height)/2);
2 26 Feb 07 jari 140         show();
2 26 Feb 07 jari 141         return result;
2 26 Feb 07 jari 142     }
2 26 Feb 07 jari 143     
2 26 Feb 07 jari 144     /**
2 26 Feb 07 jari 145      * Returns selected cluster color
2 26 Feb 07 jari 146      */
2 26 Feb 07 jari 147     public Color getColor(){
2 26 Feb 07 jari 148         return this.colorLabel.getBackground();
2 26 Feb 07 jari 149     }
2 26 Feb 07 jari 150     
2 26 Feb 07 jari 151     /**
2 26 Feb 07 jari 152      * Returns the cluster label
2 26 Feb 07 jari 153      */
2 26 Feb 07 jari 154     public String getLabel(){
2 26 Feb 07 jari 155         return this.clusterLabelField.getText();
2 26 Feb 07 jari 156     }
2 26 Feb 07 jari 157     
2 26 Feb 07 jari 158     /**
2 26 Feb 07 jari 159      * Returns the description of the cluster
2 26 Feb 07 jari 160      */
2 26 Feb 07 jari 161     public String getDescription(){
2 26 Feb 07 jari 162         return this.textArea.getText();
2 26 Feb 07 jari 163     }
2 26 Feb 07 jari 164     
2 26 Feb 07 jari 165     public class EventListener implements ActionListener{
2 26 Feb 07 jari 166         
2 26 Feb 07 jari 167         public void actionPerformed(ActionEvent event){
2 26 Feb 07 jari 168             String command = event.getActionCommand();
2 26 Feb 07 jari 169             if(command == "set-color-command"){
2 26 Feb 07 jari 170                 Color color = JColorChooser.showDialog(ClusterAttributesDialog.this, "Cluster Color", null);
2 26 Feb 07 jari 171                 if(color != null){
2 26 Feb 07 jari 172                     okButton.setEnabled(true);
2 26 Feb 07 jari 173                     colorLabel.setEnabled(true);
2 26 Feb 07 jari 174                     colorLabel.setText(" ");
2 26 Feb 07 jari 175                     colorLabel.setBackground(color);
2 26 Feb 07 jari 176                 }
2 26 Feb 07 jari 177                 else{
2 26 Feb 07 jari 178                     if(!colorLabel.isEnabled())
2 26 Feb 07 jari 179                         okButton.setEnabled(false);
2 26 Feb 07 jari 180                 }
2 26 Feb 07 jari 181             } else if(command == "ok-command"){
2 26 Feb 07 jari 182                 result = JOptionPane.OK_OPTION;
2 26 Feb 07 jari 183                 dispose();
2 26 Feb 07 jari 184             } else if(command == "cancel-command"){
2 26 Feb 07 jari 185                 result = JOptionPane.CANCEL_OPTION;
2 26 Feb 07 jari 186                 dispose();
2 26 Feb 07 jari 187             } else if(command == "reset-command"){
2 26 Feb 07 jari 188                 if(clusterDescriptionStr != null){
2 26 Feb 07 jari 189                     textArea.setText(clusterDescriptionStr);
2 26 Feb 07 jari 190                     textArea.selectAll();
2 26 Feb 07 jari 191                 } else {
2 26 Feb 07 jari 192                     textArea.setText("");
2 26 Feb 07 jari 193                 }
2 26 Feb 07 jari 194                 textArea.setCaretPosition(0);
2 26 Feb 07 jari 195                 
2 26 Feb 07 jari 196                 if(clusterColor != null)
2 26 Feb 07 jari 197                     colorLabel.setBackground(clusterColor);
2 26 Feb 07 jari 198                 else{
2 26 Feb 07 jari 199                     colorLabel.setBackground(Color.lightGray);
2 26 Feb 07 jari 200                     colorLabel.setText("Preview: No Color");
2 26 Feb 07 jari 201                     colorLabel.setEnabled(false);
2 26 Feb 07 jari 202                 }
2 26 Feb 07 jari 203                 if(clusterLabelStr != null){
2 26 Feb 07 jari 204                     clusterLabelField.setText(clusterLabelStr);
2 26 Feb 07 jari 205                     clusterLabelField.selectAll();
2 26 Feb 07 jari 206                 } else {
2 26 Feb 07 jari 207                     clusterLabelField.setText("");                    
2 26 Feb 07 jari 208                 }
2 26 Feb 07 jari 209                 clusterLabelField.requestFocus();
2 26 Feb 07 jari 210                 clusterLabelField.setCaretPosition(0);
2 26 Feb 07 jari 211                 
2 26 Feb 07 jari 212             } else if(command == "info-command"){
2 26 Feb 07 jari 213                 HelpWindow hw = new HelpWindow(ClusterAttributesDialog.this, "Cluster Save Dialog");
2 26 Feb 07 jari 214                 result = JOptionPane.CANCEL_OPTION;
2 26 Feb 07 jari 215                 if(hw.getWindowContent()){
2 26 Feb 07 jari 216                     hw.setSize(450,600);
2 26 Feb 07 jari 217                     hw.setLocation();
2 26 Feb 07 jari 218                     hw.show();
2 26 Feb 07 jari 219                     return;
2 26 Feb 07 jari 220                 }
2 26 Feb 07 jari 221                 else {
2 26 Feb 07 jari 222                     hw.setVisible(false);
2 26 Feb 07 jari 223                     hw.dispose();
2 26 Feb 07 jari 224                     return;
2 26 Feb 07 jari 225                 }
2 26 Feb 07 jari 226             }
2 26 Feb 07 jari 227         }
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     public static void main(String [] args){
2 26 Feb 07 jari 233         ClusterAttributesDialog d = new ClusterAttributesDialog("Store Cluster Attributes","KMC-genes (2)", "Cluster 8");
2 26 Feb 07 jari 234         d.show();
2 26 Feb 07 jari 235       //  System.exit(0);
2 26 Feb 07 jari 236     }
2 26 Feb 07 jari 237     
2 26 Feb 07 jari 238     
2 26 Feb 07 jari 239 }