mev-4.0.01/source/org/tigr/microarray/mev/cluster/gui/impl/dialogs/HTMLMessageFileChooser.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  * MessageFileChooser.java
2 26 Feb 07 jari 7  *
2 26 Feb 07 jari 8  * Created on January 10, 2005, 10:31 AM
2 26 Feb 07 jari 9  */
2 26 Feb 07 jari 10
2 26 Feb 07 jari 11 package org.tigr.microarray.mev.cluster.gui.impl.dialogs;
2 26 Feb 07 jari 12
2 26 Feb 07 jari 13 /**
2 26 Feb 07 jari 14  *
2 26 Feb 07 jari 15  * @author  braisted
2 26 Feb 07 jari 16  */
2 26 Feb 07 jari 17
2 26 Feb 07 jari 18 import java.awt.Color;
2 26 Feb 07 jari 19 import java.awt.Dimension;
2 26 Feb 07 jari 20 import java.awt.Frame;
2 26 Feb 07 jari 21 import java.awt.GridBagConstraints;
2 26 Feb 07 jari 22 import java.awt.GridBagLayout;
2 26 Feb 07 jari 23 import java.awt.Insets;
2 26 Feb 07 jari 24 import java.awt.Toolkit;
2 26 Feb 07 jari 25 import java.awt.event.ActionEvent;
2 26 Feb 07 jari 26 import java.awt.event.ActionListener;
2 26 Feb 07 jari 27 import java.io.File;
2 26 Feb 07 jari 28
2 26 Feb 07 jari 29 import javax.swing.BorderFactory;
2 26 Feb 07 jari 30 import javax.swing.JDialog;
2 26 Feb 07 jari 31 import javax.swing.JFileChooser;
2 26 Feb 07 jari 32 import javax.swing.JOptionPane;
2 26 Feb 07 jari 33 import javax.swing.JPanel;
2 26 Feb 07 jari 34 import javax.swing.JTextPane;
2 26 Feb 07 jari 35 import javax.swing.filechooser.FileFilter;
2 26 Feb 07 jari 36
2 26 Feb 07 jari 37 public class HTMLMessageFileChooser extends JDialog {
2 26 Feb 07 jari 38     
2 26 Feb 07 jari 39     private JFileChooser chooser;
2 26 Feb 07 jari 40     private String approveString;
2 26 Feb 07 jari 41     private int result = JOptionPane.CANCEL_OPTION;
2 26 Feb 07 jari 42     private JPanel msgPanel;
2 26 Feb 07 jari 43     
2 26 Feb 07 jari 44     /** Creates a new instance of MessageFileChooser */
2 26 Feb 07 jari 45     public HTMLMessageFileChooser(Frame parent, String title, String msg, String filePath, boolean modal) {
2 26 Feb 07 jari 46         super(parent, title, modal);
2 26 Feb 07 jari 47         chooser = new JFileChooser(filePath);
2 26 Feb 07 jari 48         chooser.setMultiSelectionEnabled(false);        
2 26 Feb 07 jari 49         chooser.addActionListener(new Listener());
2 26 Feb 07 jari 50         
2 26 Feb 07 jari 51         JTextPane pane = new JTextPane();
2 26 Feb 07 jari 52         pane.setEditable(false);
2 26 Feb 07 jari 53         pane.setContentType("text/html");
2 26 Feb 07 jari 54         pane.setBackground(Color.white);
2 26 Feb 07 jari 55        
2 26 Feb 07 jari 56         pane.setText(msg);
2 26 Feb 07 jari 57         
2 26 Feb 07 jari 58         msgPanel = new JPanel(new GridBagLayout());
2 26 Feb 07 jari 59         msgPanel.add(pane, new GridBagConstraints(0,0,1,1,1,1,GridBagConstraints.NORTH, GridBagConstraints.BOTH, new Insets(0,5,10,5), 0,0));
2 26 Feb 07 jari 60         msgPanel.setBackground(Color.white);
2 26 Feb 07 jari 61         msgPanel.setBorder(BorderFactory.createLineBorder(Color.black));
2 26 Feb 07 jari 62         
2 26 Feb 07 jari 63         JPanel contentPanel = new JPanel(new GridBagLayout());
2 26 Feb 07 jari 64         contentPanel.add(msgPanel, new GridBagConstraints(0,0,1,1,1,1,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(5,5,5,5), 0,0));
2 26 Feb 07 jari 65         contentPanel.add(chooser, new GridBagConstraints(0,1,1,1,1,1,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0,0,0,0), 0,0));        
2 26 Feb 07 jari 66         
2 26 Feb 07 jari 67         this.setContentPane(contentPanel);
2 26 Feb 07 jari 68         pack();
2 26 Feb 07 jari 69     }
2 26 Feb 07 jari 70             
2 26 Feb 07 jari 71     public HTMLMessageFileChooser(Frame parent, String title, String msg, File file, boolean modal) {
2 26 Feb 07 jari 72         super(parent, title, modal);
2 26 Feb 07 jari 73         chooser = new JFileChooser(file);
2 26 Feb 07 jari 74         chooser.setMultiSelectionEnabled(false);       
2 26 Feb 07 jari 75         chooser.addActionListener(new Listener());
2 26 Feb 07 jari 76         
2 26 Feb 07 jari 77         JTextPane pane = new JTextPane();
2 26 Feb 07 jari 78         pane.setEditable(false);
2 26 Feb 07 jari 79         pane.setContentType("text/html");
2 26 Feb 07 jari 80         pane.setBackground(Color.white);
2 26 Feb 07 jari 81        
2 26 Feb 07 jari 82         pane.setText(msg);
2 26 Feb 07 jari 83         
2 26 Feb 07 jari 84         JPanel msgPanel = new JPanel(new GridBagLayout());
2 26 Feb 07 jari 85         msgPanel.add(pane, new GridBagConstraints(0,0,1,1,1,1,GridBagConstraints.NORTH, GridBagConstraints.BOTH, new Insets(0,5,10,5), 0,0));
2 26 Feb 07 jari 86         msgPanel.setBackground(Color.white);
2 26 Feb 07 jari 87         msgPanel.setBorder(BorderFactory.createLineBorder(Color.black));
2 26 Feb 07 jari 88         
2 26 Feb 07 jari 89         JPanel contentPanel = new JPanel(new GridBagLayout());
2 26 Feb 07 jari 90         contentPanel.add(msgPanel, new GridBagConstraints(0,0,1,1,0,0,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(5,5,5,5), 0,0));
2 26 Feb 07 jari 91         contentPanel.add(chooser, new GridBagConstraints(0,1,1,1,1,1,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0,0,0,0), 0,0));        
2 26 Feb 07 jari 92         
2 26 Feb 07 jari 93         this.setContentPane(contentPanel);
2 26 Feb 07 jari 94         pack();        
2 26 Feb 07 jari 95     }
2 26 Feb 07 jari 96     
2 26 Feb 07 jari 97     public int showModal() {
2 26 Feb 07 jari 98         Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
2 26 Feb 07 jari 99         setLocation((screenSize.width - getSize().width)/2, (screenSize.height - getSize().height)/2);        
2 26 Feb 07 jari 100         this.setVisible(true);
2 26 Feb 07 jari 101         return result;
2 26 Feb 07 jari 102     }
2 26 Feb 07 jari 103
2 26 Feb 07 jari 104     public File getSelectedFile() {
2 26 Feb 07 jari 105         return chooser.getSelectedFile();
2 26 Feb 07 jari 106     }
2 26 Feb 07 jari 107     
2 26 Feb 07 jari 108     public JFileChooser getFileChooser() {
2 26 Feb 07 jari 109         return chooser;
2 26 Feb 07 jari 110     }
2 26 Feb 07 jari 111     
2 26 Feb 07 jari 112     public void setFileFilter(FileFilter filter) {
2 26 Feb 07 jari 113         this.chooser.setFileFilter(filter);
2 26 Feb 07 jari 114     }
2 26 Feb 07 jari 115     
2 26 Feb 07 jari 116     public void setApproveButtonText(String s) {
2 26 Feb 07 jari 117         chooser.setApproveButtonText(s);
2 26 Feb 07 jari 118         approveString = s;
2 26 Feb 07 jari 119     }
2 26 Feb 07 jari 120     
2 26 Feb 07 jari 121     public void setPreferredMessageSize(Dimension dim) {
2 26 Feb 07 jari 122         this.msgPanel.setSize(dim);
2 26 Feb 07 jari 123         this.msgPanel.setPreferredSize(dim);
2 26 Feb 07 jari 124     }
2 26 Feb 07 jari 125     
2 26 Feb 07 jari 126     private class Listener implements ActionListener {
2 26 Feb 07 jari 127         
2 26 Feb 07 jari 128         public void actionPerformed(ActionEvent ae) {
2 26 Feb 07 jari 129             String cmd = ae.getActionCommand();
2 26 Feb 07 jari 130  
2 26 Feb 07 jari 131             if (cmd.equals(JFileChooser.APPROVE_SELECTION)) {
2 26 Feb 07 jari 132                 result = JFileChooser.APPROVE_OPTION;
2 26 Feb 07 jari 133                 dispose();
2 26 Feb 07 jari 134             } else {
2 26 Feb 07 jari 135                result = JFileChooser.CANCEL_OPTION;                
2 26 Feb 07 jari 136                dispose();                
2 26 Feb 07 jari 137             }
2 26 Feb 07 jari 138         }        
2 26 Feb 07 jari 139     }
2 26 Feb 07 jari 140     
2 26 Feb 07 jari 141     public static void main(String [] args) {
2 26 Feb 07 jari 142         
2 26 Feb 07 jari 143         String msg = "<html><center><h1>Append Sample Annotation</h1></center>";
2 26 Feb 07 jari 144         msg += "A sample annotation file can be selected for import so that alternative labels or ";
2 26 Feb 07 jari 145         msg += "additional sample information can be appended to the exsiting sample annotation.";
2 26 Feb 07 jari 146         msg += "The file should be a tab-delimited text file containing one header row for annotation labels.";
2 26 Feb 07 jari 147         msg += "The file may contain multiple columns of annotation with each column containing a header.";
2 26 Feb 07 jari 148         msg += "The annotation for each sample is organized in rows corresponding to the order of the loaded samples.";
2 26 Feb 07 jari 149         msg += "If annotation is missing for a sample the entry in that sample row can be left blank.";
2 26 Feb 07 jari 150         
2 26 Feb 07 jari 151         HTMLMessageFileChooser mfc = new HTMLMessageFileChooser(new Frame(), "Test Dialog", msg, "C:/Temp", true);
2 26 Feb 07 jari 152         //mfc.setApproveButtonText("Load");
2 26 Feb 07 jari 153         //mfc.setPreferredMessageSize(new Dimension(350,100));
2 26 Feb 07 jari 154         mfc.setSize(new Dimension(500,600));
2 26 Feb 07 jari 155         
2 26 Feb 07 jari 156         mfc.showModal();
2 26 Feb 07 jari 157     }
2 26 Feb 07 jari 158     
2 26 Feb 07 jari 159 }