mev-4.0.01/source/org/tigr/microarray/mev/script/scriptGUI/ScriptAttributeDialog.java

Code
Comments
Other
Rev Date Author Line
2 26 Feb 07 jari 1 /*
2 26 Feb 07 jari 2 Copyright @ 1999-2004, 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  * ScriptInitDialog.java
2 26 Feb 07 jari 7  *
2 26 Feb 07 jari 8  * Created on February 28, 2004, 12:38 AM
2 26 Feb 07 jari 9  */
2 26 Feb 07 jari 10
2 26 Feb 07 jari 11 package org.tigr.microarray.mev.script.scriptGUI;
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.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.text.DateFormat;
2 26 Feb 07 jari 22 import java.util.Date;
2 26 Feb 07 jari 23 import java.util.TimeZone;
2 26 Feb 07 jari 24
2 26 Feb 07 jari 25 import javax.swing.BorderFactory;
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.JScrollPane;
2 26 Feb 07 jari 31 import javax.swing.JTextArea;
2 26 Feb 07 jari 32 import javax.swing.JTextField;
2 26 Feb 07 jari 33 import javax.swing.SwingConstants;
2 26 Feb 07 jari 34 import javax.swing.text.BadLocationException;
2 26 Feb 07 jari 35 import javax.swing.text.Document;
2 26 Feb 07 jari 36
2 26 Feb 07 jari 37 import org.tigr.microarray.mev.cluster.gui.impl.dialogs.AlgorithmDialog;
2 26 Feb 07 jari 38 import org.tigr.microarray.mev.cluster.gui.impl.dialogs.DialogListener;
2 26 Feb 07 jari 39 import org.tigr.microarray.mev.cluster.gui.impl.dialogs.ParameterPanel;
2 26 Feb 07 jari 40 import org.tigr.microarray.mev.cluster.gui.impl.dialogs.dialogHelpUtil.HelpWindow;
2 26 Feb 07 jari 41 import org.tigr.microarray.mev.script.util.ScriptConstants;
2 26 Feb 07 jari 42 /** The ScriptAttributeDialog permits the selection of basic script attributes.
2 26 Feb 07 jari 43  *
2 26 Feb 07 jari 44  * @author braisted
2 26 Feb 07 jari 45  */
2 26 Feb 07 jari 46 public class ScriptAttributeDialog extends AlgorithmDialog {
2 26 Feb 07 jari 47     
2 26 Feb 07 jari 48     private int result = JOptionPane.CANCEL_OPTION;
2 26 Feb 07 jari 49     private JTextField dateField;
2 26 Feb 07 jari 50     private JTextField nameField;
2 26 Feb 07 jari 51     private JTextArea descriptionArea;
2 26 Feb 07 jari 52     private String dateString;
2 26 Feb 07 jari 53     
2 26 Feb 07 jari 54     /** Creates a new instance of ScriptInitDialog */
2 26 Feb 07 jari 55     public ScriptAttributeDialog() {
2 26 Feb 07 jari 56         super(new JFrame(), "Script Attribute Input", true);
2 26 Feb 07 jari 57         
2 26 Feb 07 jari 58         JLabel dateLabel = new JLabel("Creation Date: ");
2 26 Feb 07 jari 59         
2 26 Feb 07 jari 60         Date date  = new Date(System.currentTimeMillis());
2 26 Feb 07 jari 61         TimeZone tz = TimeZone.getDefault();
2 26 Feb 07 jari 62         DateFormat format = DateFormat.getDateTimeInstance();
2 26 Feb 07 jari 63         format.setTimeZone(tz);
2 26 Feb 07 jari 64         dateString = format.format(date);
2 26 Feb 07 jari 65         
2 26 Feb 07 jari 66         dateLabel.setHorizontalAlignment(SwingConstants.RIGHT);
2 26 Feb 07 jari 67         dateField = new JTextField(dateString, 20);
2 26 Feb 07 jari 68         
2 26 Feb 07 jari 69         JLabel nameLabel = new JLabel("Script Name: ");
2 26 Feb 07 jari 70         nameLabel.setHorizontalAlignment(SwingConstants.RIGHT);
2 26 Feb 07 jari 71         nameField = new JTextField(20);
2 26 Feb 07 jari 72         
2 26 Feb 07 jari 73         JLabel descLabel = new JLabel("Description: ");
2 26 Feb 07 jari 74         descLabel.setVerticalAlignment(SwingConstants.TOP);
2 26 Feb 07 jari 75         descLabel.setHorizontalAlignment(SwingConstants.RIGHT);
2 26 Feb 07 jari 76         descriptionArea = new JTextArea(10, 25);
2 26 Feb 07 jari 77         JScrollPane pane = new JScrollPane(descriptionArea);
2 26 Feb 07 jari 78         pane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
2 26 Feb 07 jari 79         //descriptionArea.setLineWrap(true);
2 26 Feb 07 jari 80         descriptionArea.setWrapStyleWord(true);
2 26 Feb 07 jari 81         
2 26 Feb 07 jari 82         ParameterPanel parameterPanel = new ParameterPanel("Script Attributes");
2 26 Feb 07 jari 83         parameterPanel.setLayout(new GridBagLayout());
2 26 Feb 07 jari 84         parameterPanel.add(dateLabel, new GridBagConstraints(0,0,1,1,0,0,GridBagConstraints.CENTER,GridBagConstraints.BOTH, new Insets(0,0,10,0),0,0));
2 26 Feb 07 jari 85         parameterPanel.add(nameLabel, new GridBagConstraints(0,1,1,1,0,0,GridBagConstraints.CENTER,GridBagConstraints.BOTH, new Insets(0,0,10,0),0,0));
2 26 Feb 07 jari 86         parameterPanel.add(descLabel, new GridBagConstraints(0,2,1,1,0,0,GridBagConstraints.CENTER,GridBagConstraints.BOTH, new Insets(0,0,0,0),0,0));
2 26 Feb 07 jari 87         parameterPanel.add(dateField, new GridBagConstraints(1,0,1,1,0,0,GridBagConstraints.WEST,GridBagConstraints.VERTICAL, new Insets(0,0,10,0),0,0));
2 26 Feb 07 jari 88         parameterPanel.add(nameField, new GridBagConstraints(1,1,1,1,0,0,GridBagConstraints.WEST,GridBagConstraints.VERTICAL, new Insets(0,0,10,0),0,0));
2 26 Feb 07 jari 89         parameterPanel.add(pane, new GridBagConstraints(1,2,1,1,0,0,GridBagConstraints.CENTER,GridBagConstraints.BOTH, new Insets(0,0,0,0),0,0));
2 26 Feb 07 jari 90         
2 26 Feb 07 jari 91         JPanel dialogPanel = new JPanel(new GridBagLayout());
2 26 Feb 07 jari 92         dialogPanel.setBackground(Color.white);
2 26 Feb 07 jari 93         dialogPanel.setBorder(BorderFactory.createLineBorder(Color.black));
2 26 Feb 07 jari 94         
2 26 Feb 07 jari 95         dialogPanel.add(parameterPanel, new GridBagConstraints(0,0,1,1,1.0,1.0,GridBagConstraints.CENTER,GridBagConstraints.BOTH, new Insets(5,5,5,5),0,0));
2 26 Feb 07 jari 96         
2 26 Feb 07 jari 97         this.addContent(dialogPanel);
2 26 Feb 07 jari 98         this.setActionListeners(new Listener());
2 26 Feb 07 jari 99         pack();
2 26 Feb 07 jari 100         
2 26 Feb 07 jari 101         nameField.requestFocus();
2 26 Feb 07 jari 102         nameField.selectAll();
2 26 Feb 07 jari 103     }
2 26 Feb 07 jari 104     
2 26 Feb 07 jari 105     
2 26 Feb 07 jari 106     /** Creates a new instance of ScriptInitDialog */
2 26 Feb 07 jari 107     public ScriptAttributeDialog(int id, String name, String description) {
2 26 Feb 07 jari 108         super(new JFrame(), "Script Attribute Modification", true);
2 26 Feb 07 jari 109         
2 26 Feb 07 jari 110         dateField = new JTextField(String.valueOf(id));
2 26 Feb 07 jari 111         dateField.setEditable(false);
2 26 Feb 07 jari 112     }
2 26 Feb 07 jari 113     
2 26 Feb 07 jari 114     /**
2 26 Feb 07 jari 115      * Shows the dialog.
2 26 Feb 07 jari 116      */
2 26 Feb 07 jari 117     public int showModal() {
2 26 Feb 07 jari 118         Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
2 26 Feb 07 jari 119         setLocation((screenSize.width - getSize().width)/2, (screenSize.height - getSize().height)/2);
2 26 Feb 07 jari 120         show();
2 26 Feb 07 jari 121         return result;
2 26 Feb 07 jari 122     }
2 26 Feb 07 jari 123     
2 26 Feb 07 jari 124     private void resetControls() {
2 26 Feb 07 jari 125         dateField.setText(dateString);
2 26 Feb 07 jari 126         nameField.setText("");
2 26 Feb 07 jari 127         descriptionArea.setText("");
2 26 Feb 07 jari 128         nameField.requestFocus();
2 26 Feb 07 jari 129         nameField.selectAll();
2 26 Feb 07 jari 130     }
2 26 Feb 07 jari 131     
2 26 Feb 07 jari 132     /** Returns the creation date
2 26 Feb 07 jari 133      */    
2 26 Feb 07 jari 134     public String getDate() {
2 26 Feb 07 jari 135         return dateField.getText();
2 26 Feb 07 jari 136     }
2 26 Feb 07 jari 137     
2 26 Feb 07 jari 138     
2 26 Feb 07 jari 139     /** returns the script name
2 26 Feb 07 jari 140      */    
2 26 Feb 07 jari 141     public String getName() {
2 26 Feb 07 jari 142         return nameField.getText();
2 26 Feb 07 jari 143     }
2 26 Feb 07 jari 144     
2 26 Feb 07 jari 145     
2 26 Feb 07 jari 146     /** returns a description in a format ready for inclusion
2 26 Feb 07 jari 147      * in the XML.
2 26 Feb 07 jari 148      */    
2 26 Feb 07 jari 149     public String getFormattedDescription() {
2 26 Feb 07 jari 150         String text = descriptionArea.getText();
2 26 Feb 07 jari 151         
2 26 Feb 07 jari 152         //Until we enforce scrict format or wrapping we
2 26 Feb 07 jari 153         // just return the text as written.
2 26 Feb 07 jari 154         
2 26 Feb 07 jari 155         String formatText = "", line;
2 26 Feb 07 jari 156         int lineCount = descriptionArea.getLineCount();
2 26 Feb 07 jari 157
2 26 Feb 07 jari 158         int startOffset, endOffset;
2 26 Feb 07 jari 159         
2 26 Feb 07 jari 160         if(lineCount < 1)
2 26 Feb 07 jari 161             return null;
2 26 Feb 07 jari 162         
2 26 Feb 07 jari 163         Document doc = descriptionArea.getDocument();
2 26 Feb 07 jari 164         
2 26 Feb 07 jari 165         try {
2 26 Feb 07 jari 166             for(int i = 0; i < lineCount; i++) {
2 26 Feb 07 jari 167                 startOffset = descriptionArea.getLineStartOffset(i);
2 26 Feb 07 jari 168                 endOffset = descriptionArea.getLineEndOffset(i);
2 26 Feb 07 jari 169                 line = doc.getText(startOffset, (endOffset-startOffset));
2 26 Feb 07 jari 170                 if(i>0) 
2 26 Feb 07 jari 171                     formatText += ScriptConstants.MEV_COMMENT_INDENT;
2 26 Feb 07 jari 172                 formatText += line;
2 26 Feb 07 jari 173             }
2 26 Feb 07 jari 174         } catch (BadLocationException ble) {
2 26 Feb 07 jari 175             return null;
2 26 Feb 07 jari 176         }     
2 26 Feb 07 jari 177         return formatText;
2 26 Feb 07 jari 178     }
2 26 Feb 07 jari 179     
2 26 Feb 07 jari 180     /** Returns the description
2 26 Feb 07 jari 181      */    
2 26 Feb 07 jari 182     public String getDescription() {
2 26 Feb 07 jari 183         return this.descriptionArea.getText();
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     /**
2 26 Feb 07 jari 189      * The class to listen to the dialog events.
2 26 Feb 07 jari 190      */
2 26 Feb 07 jari 191     private class Listener extends DialogListener {
2 26 Feb 07 jari 192         
2 26 Feb 07 jari 193         public void actionPerformed(ActionEvent e) {
2 26 Feb 07 jari 194             String command = e.getActionCommand();
2 26 Feb 07 jari 195             if (command.equals("ok-command")) {
2 26 Feb 07 jari 196                 result = JOptionPane.OK_OPTION;
2 26 Feb 07 jari 197                 dispose();
2 26 Feb 07 jari 198             } else if (command.equals("cancel-command")) {
2 26 Feb 07 jari 199                 result = JOptionPane.CANCEL_OPTION;
2 26 Feb 07 jari 200                 dispose();
2 26 Feb 07 jari 201             }else if (command.equals("reset-command")){
2 26 Feb 07 jari 202                 resetControls();
2 26 Feb 07 jari 203             }else if(command.equals("info-command")){
2 26 Feb 07 jari 204                 HelpWindow helpWindow = new HelpWindow(ScriptAttributeDialog.this, "Script Attribute Dialog");
2 26 Feb 07 jari 205                 if(helpWindow.getWindowContent()){
2 26 Feb 07 jari 206                     helpWindow.setSize(450, 600);
2 26 Feb 07 jari 207                     helpWindow.setLocation();
2 26 Feb 07 jari 208                     helpWindow.show();
2 26 Feb 07 jari 209                 }
2 26 Feb 07 jari 210                 else{
2 26 Feb 07 jari 211                     helpWindow.dispose();
2 26 Feb 07 jari 212                 }
2 26 Feb 07 jari 213             }
2 26 Feb 07 jari 214         }
2 26 Feb 07 jari 215         
2 26 Feb 07 jari 216         public void windowClosing(WindowEvent e) {
2 26 Feb 07 jari 217             result = JOptionPane.CLOSED_OPTION;
2 26 Feb 07 jari 218             dispose();
2 26 Feb 07 jari 219         }
2 26 Feb 07 jari 220         
2 26 Feb 07 jari 221     }
2 26 Feb 07 jari 222 }