mev-4.0.01/source/org/tigr/microarray/mev/cluster/gui/impl/tfa/TFAInfoViewer.java

Code
Comments
Other
Rev Date Author Line
2 26 Feb 07 jari 1 /*
2 26 Feb 07 jari 2 Copyright @ 1999-2005, 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: TFAInfoViewer.java,v $
2 26 Feb 07 jari 7  * $Revision: 1.6 $
2 26 Feb 07 jari 8  * $Date: 2006/03/24 15:52:06 $
2 26 Feb 07 jari 9  * $Author: eleanorahowe $
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  * TFAInfoViewer.java
2 26 Feb 07 jari 14  *
2 26 Feb 07 jari 15  * Created on February 27, 2004, 2:10 PM
2 26 Feb 07 jari 16  */
2 26 Feb 07 jari 17
2 26 Feb 07 jari 18 package org.tigr.microarray.mev.cluster.gui.impl.tfa;
2 26 Feb 07 jari 19
2 26 Feb 07 jari 20 import java.awt.Color;
2 26 Feb 07 jari 21 import java.awt.Dimension;
2 26 Feb 07 jari 22 import java.awt.GridBagConstraints;
2 26 Feb 07 jari 23 import java.awt.GridBagLayout;
2 26 Feb 07 jari 24 import java.awt.Insets;
2 26 Feb 07 jari 25
2 26 Feb 07 jari 26 import javax.swing.JComponent;
2 26 Feb 07 jari 27 import javax.swing.JLabel;
2 26 Feb 07 jari 28 import javax.swing.JPanel;
2 26 Feb 07 jari 29 import javax.swing.JTextArea;
2 26 Feb 07 jari 30
2 26 Feb 07 jari 31 import org.tigr.microarray.mev.cluster.gui.impl.ViewerAdapter;
2 26 Feb 07 jari 32
2 26 Feb 07 jari 33 /**
2 26 Feb 07 jari 34  *
2 26 Feb 07 jari 35  * @author  nbhagaba
2 26 Feb 07 jari 36  */
2 26 Feb 07 jari 37 public class TFAInfoViewer extends ViewerAdapter implements java.io.Serializable {
2 26 Feb 07 jari 38     public static final long serialVersionUID = 202020010001L;
2 26 Feb 07 jari 39
2 26 Feb 07 jari 40     private JComponent header;
2 26 Feb 07 jari 41     private JTextArea  content;  
2 26 Feb 07 jari 42     String[] factorNames;
2 26 Feb 07 jari 43     
2 26 Feb 07 jari 44     /** Creates a new instance of TFAInfoViewer */
2 26 Feb 07 jari 45     public TFAInfoViewer(int[][] clusters, int genes, String[] factorNames) {
2 26 Feb 07 jari 46         this.factorNames = factorNames;
2 26 Feb 07 jari 47   header  = createHeader();
2 26 Feb 07 jari 48   content = createContent(clusters, genes);
2 26 Feb 07 jari 49   setMaxWidth(content, header);        
2 26 Feb 07 jari 50     }
2 26 Feb 07 jari 51     public TFAInfoViewer(JTextArea content, JComponent header){
2 26 Feb 07 jari 52       this.content = content;
2 26 Feb 07 jari 53       this.header = header;
2 26 Feb 07 jari 54     setMaxWidth(content, header);        
2 26 Feb 07 jari 55     }
2 26 Feb 07 jari 56     
2 26 Feb 07 jari 57     /**
2 26 Feb 07 jari 58      * Returns component to be inserted into the framework scroll pane.
2 26 Feb 07 jari 59      */
2 26 Feb 07 jari 60     public JComponent getContentComponent() {
2 26 Feb 07 jari 61   return content;
2 26 Feb 07 jari 62     }
2 26 Feb 07 jari 63     
2 26 Feb 07 jari 64     /**
2 26 Feb 07 jari 65      * Returns the viewer header.
2 26 Feb 07 jari 66      */
2 26 Feb 07 jari 67     public JComponent getHeaderComponent() {
2 26 Feb 07 jari 68   return header;
2 26 Feb 07 jari 69     }   
2 26 Feb 07 jari 70     
2 26 Feb 07 jari 71     /**
2 26 Feb 07 jari 72      * Creates the viewer header.
2 26 Feb 07 jari 73      */
2 26 Feb 07 jari 74     private JComponent createHeader() {
2 26 Feb 07 jari 75   JPanel panel = new JPanel(new GridBagLayout());
2 26 Feb 07 jari 76   panel.setBackground(Color.white);
2 26 Feb 07 jari 77   GridBagConstraints gbc = new GridBagConstraints();
2 26 Feb 07 jari 78   gbc.fill = GridBagConstraints.HORIZONTAL;
2 26 Feb 07 jari 79   gbc.insets = new Insets(10, 0, 10, 0);
2 26 Feb 07 jari 80   panel.add(new JLabel("<html><body bgcolor='#FFFFFF'><font face='serif' size='5' color='#000080'><b>Cluster Information</b></font></body></html>"), gbc);
2 26 Feb 07 jari 81   return panel;
2 26 Feb 07 jari 82     }    
2 26 Feb 07 jari 83     
2 26 Feb 07 jari 84     /**
2 26 Feb 07 jari 85      * Creates the viewer content component.
2 26 Feb 07 jari 86      */
2 26 Feb 07 jari 87     private JTextArea createContent(int[][] clusters, int genes) {
2 26 Feb 07 jari 88   JTextArea area = new JTextArea(clusters.length*3, 20);
2 26 Feb 07 jari 89   area.setEditable(false);        
2 26 Feb 07 jari 90         area.setMargin(new Insets(0, 10, 0, 0));        
2 26 Feb 07 jari 91   StringBuffer sb = new StringBuffer(clusters.length*3*10);
2 26 Feb 07 jari 92         String[] clusterLabels = {factorNames[0] + " significant", factorNames[1] + " significant", "Interaction signficant", factorNames[0] + " non-significant", factorNames[1] + " non-significant", "Interaction non-signficant", "Non-significant for all effects"};
2 26 Feb 07 jari 93   for (int counter = 0; counter < clusters.length; counter++) {
2 26 Feb 07 jari 94             sb.append(clusterLabels[counter] + " ");
2 26 Feb 07 jari 95             sb.append("\t");
2 26 Feb 07 jari 96             sb.append("# of Genes: " +clusters[counter].length);
2 26 Feb 07 jari 97             sb.append("\n\t\t");
2 26 Feb 07 jari 98             sb.append("% of Genes out of total: "+Math.round((float)clusters[counter].length/(float)genes*100f)+"%");
2 26 Feb 07 jari 99             sb.append("\n\n");           
2 26 Feb 07 jari 100         }
2 26 Feb 07 jari 101   area.setText(sb.toString());
2 26 Feb 07 jari 102   area.setCaretPosition(0);
2 26 Feb 07 jari 103   return area;        
2 26 Feb 07 jari 104     }
2 26 Feb 07 jari 105     
2 26 Feb 07 jari 106     /**
2 26 Feb 07 jari 107      * Synchronize content and header sizes.
2 26 Feb 07 jari 108      */
2 26 Feb 07 jari 109     private void setMaxWidth(JComponent content, JComponent header) {
2 26 Feb 07 jari 110   int c_width = content.getPreferredSize().width;
2 26 Feb 07 jari 111   int h_width = header.getPreferredSize().width;
2 26 Feb 07 jari 112   if (c_width > h_width) {
2 26 Feb 07 jari 113       header.setPreferredSize(new Dimension(c_width, header.getPreferredSize().height));
2 26 Feb 07 jari 114   } else {
2 26 Feb 07 jari 115       content.setPreferredSize(new Dimension(h_width, content.getPreferredSize().height));
2 26 Feb 07 jari 116   }
2 26 Feb 07 jari 117     }
2 26 Feb 07 jari 118     
2 26 Feb 07 jari 119     /** Returns a component to be inserted into the scroll pane row header
2 26 Feb 07 jari 120      */
2 26 Feb 07 jari 121     public JComponent getRowHeaderComponent() {
2 26 Feb 07 jari 122         return null;
2 26 Feb 07 jari 123     }    
2 26 Feb 07 jari 124     
2 26 Feb 07 jari 125 }