mev-4.0.01/source/org/tigr/microarray/mev/cluster/gui/impl/usc/USCSummaryViewer.java

Code
Comments
Other
Rev Date Author Line
2 26 Feb 07 jari 1 /*
2 26 Feb 07 jari 2  * Created on Jan 14, 2005
2 26 Feb 07 jari 3  */
2 26 Feb 07 jari 4 package org.tigr.microarray.mev.cluster.gui.impl.usc;
2 26 Feb 07 jari 5
2 26 Feb 07 jari 6 import java.awt.Color;
2 26 Feb 07 jari 7 import java.awt.Dimension;
2 26 Feb 07 jari 8 import java.awt.Font;
2 26 Feb 07 jari 9 import java.awt.GridBagConstraints;
2 26 Feb 07 jari 10 import java.awt.GridBagLayout;
2 26 Feb 07 jari 11 import java.awt.event.ActionEvent;
2 26 Feb 07 jari 12 import java.awt.event.ActionListener;
2 26 Feb 07 jari 13 import java.awt.image.BufferedImage;
2 26 Feb 07 jari 14 import java.beans.Expression;
2 26 Feb 07 jari 15 import java.io.File;
2 26 Feb 07 jari 16 import java.io.FileWriter;
2 26 Feb 07 jari 17 import java.io.IOException;
2 26 Feb 07 jari 18
2 26 Feb 07 jari 19 import javax.swing.BorderFactory;
2 26 Feb 07 jari 20 import javax.swing.BoxLayout;
2 26 Feb 07 jari 21 import javax.swing.JButton;
2 26 Feb 07 jari 22 import javax.swing.JComponent;
2 26 Feb 07 jari 23 import javax.swing.JFileChooser;
2 26 Feb 07 jari 24 import javax.swing.JLabel;
2 26 Feb 07 jari 25 import javax.swing.JPanel;
2 26 Feb 07 jari 26 import javax.swing.JScrollPane;
2 26 Feb 07 jari 27 import javax.swing.JTextArea;
2 26 Feb 07 jari 28 import javax.swing.border.Border;
2 26 Feb 07 jari 29 import javax.swing.border.TitledBorder;
2 26 Feb 07 jari 30
2 26 Feb 07 jari 31 import org.tigr.microarray.mev.TMEV;
2 26 Feb 07 jari 32 import org.tigr.microarray.mev.cluster.gui.Experiment;
2 26 Feb 07 jari 33 import org.tigr.microarray.mev.cluster.gui.IData;
2 26 Feb 07 jari 34 import org.tigr.microarray.mev.cluster.gui.IDisplayMenu;
2 26 Feb 07 jari 35 import org.tigr.microarray.mev.cluster.gui.IFramework;
2 26 Feb 07 jari 36 import org.tigr.microarray.mev.cluster.gui.IViewer;
2 26 Feb 07 jari 37
2 26 Feb 07 jari 38 /**
2 26 Feb 07 jari 39  * Should display delta, rho, class assignment, discriminant score, genelist
2 26 Feb 07 jari 40  * 
2 26 Feb 07 jari 41  * @author vu
2 26 Feb 07 jari 42  */
2 26 Feb 07 jari 43 public class USCSummaryViewer extends JPanel implements IViewer, ActionListener {
2 26 Feb 07 jari 44     private JButton saveGeneList;
2 26 Feb 07 jari 45     private JButton anotherDeltaRho;
2 26 Feb 07 jari 46     private USCGene[] genes;
2 26 Feb 07 jari 47     private USCResult result;
2 26 Feb 07 jari 48     transient IFramework framework;
2 26 Feb 07 jari 49     
2 26 Feb 07 jari 50     //EH added for state-saving
2 26 Feb 07 jari 51     private String[] hybNames;
2 26 Feb 07 jari 52     private String[] uniqueClasses;
2 26 Feb 07 jari 53     private String[] params;
2 26 Feb 07 jari 54     
2 26 Feb 07 jari 55     /**
2 26 Feb 07 jari 56      * Constructor
2 26 Feb 07 jari 57      * 
2 26 Feb 07 jari 58      * @param hybNames
2 26 Feb 07 jari 59      * @param resultP
2 26 Feb 07 jari 60      * @param uniqueClasses
2 26 Feb 07 jari 61      * @param params
2 26 Feb 07 jari 62      * @param genesP
2 26 Feb 07 jari 63      * @param frameworkP
2 26 Feb 07 jari 64      */
2 26 Feb 07 jari 65     public USCSummaryViewer(String[] hybNames, USCResult resultP,
2 26 Feb 07 jari 66             String[] uniqueClasses, String[] params, USCGene[] genesP,
2 26 Feb 07 jari 67             IFramework frameworkP) {
2 26 Feb 07 jari 68       this(hybNames, resultP, uniqueClasses, params, genesP);
2 26 Feb 07 jari 69       this.framework = frameworkP;
2 26 Feb 07 jari 70     }
2 26 Feb 07 jari 71     
2 26 Feb 07 jari 72     public USCSummaryViewer(String[] hybNames, USCResult resultP,
2 26 Feb 07 jari 73             String[] uniqueClasses, String[] params, USCGene[] genesP) {
2 26 Feb 07 jari 74       
2 26 Feb 07 jari 75       //EH - added for state-saving
2 26 Feb 07 jari 76         //this.framework = frameworkP;
2 26 Feb 07 jari 77       this.hybNames = hybNames;
2 26 Feb 07 jari 78       this.uniqueClasses = uniqueClasses;
2 26 Feb 07 jari 79       this.params = params;
2 26 Feb 07 jari 80       //EH end state-saving
2 26 Feb 07 jari 81       
2 26 Feb 07 jari 82         this.result = resultP;
2 26 Feb 07 jari 83         this.genes = genesP;
2 26 Feb 07 jari 84
2 26 Feb 07 jari 85         //this.setLayout( new SpringLayout() );
2 26 Feb 07 jari 86         this.setLayout(new GridBagLayout());
2 26 Feb 07 jari 87         GridBagConstraints c1 = new GridBagConstraints();
2 26 Feb 07 jari 88         c1.fill = GridBagConstraints.HORIZONTAL;
2 26 Feb 07 jari 89
2 26 Feb 07 jari 90         JPanel leftPanel = new JPanel();
2 26 Feb 07 jari 91         leftPanel.setLayout(new GridBagLayout());
2 26 Feb 07 jari 92         GridBagConstraints c2 = new GridBagConstraints();
2 26 Feb 07 jari 93         c2.fill = GridBagConstraints.HORIZONTAL;
2 26 Feb 07 jari 94         c2.gridx = 0;
2 26 Feb 07 jari 95         c2.gridy = 0;
2 26 Feb 07 jari 96         leftPanel.add(this.createParamPanel(this.result.getDelta(), this.result
2 26 Feb 07 jari 97                 .getRho(), params, this.result.getNumGenesUsed()), c2);
2 26 Feb 07 jari 98         c2.gridx = 0;
2 26 Feb 07 jari 99         c2.gridy = 1;
2 26 Feb 07 jari 100         leftPanel.add(
2 26 Feb 07 jari 101                 this.createAssPanel(hybNames, this.result, uniqueClasses), c2);
2 26 Feb 07 jari 102         c1.gridx = 0;
2 26 Feb 07 jari 103         c1.gridy = 0;
2 26 Feb 07 jari 104
2 26 Feb 07 jari 105         this.add(leftPanel, c1);
2 26 Feb 07 jari 106
2 26 Feb 07 jari 107         JPanel rightPanel = new JPanel();
2 26 Feb 07 jari 108         rightPanel.add(this.createGenePanel(this.genes));
2 26 Feb 07 jari 109         c1.gridx = 1;
2 26 Feb 07 jari 110         c1.gridy = 0;
2 26 Feb 07 jari 111
2 26 Feb 07 jari 112         this.add(rightPanel, c1);
2 26 Feb 07 jari 113     }//end constructor
2 26 Feb 07 jari 114
2 26 Feb 07 jari 115
2 26 Feb 07 jari 116     /**
2 26 Feb 07 jari 117      * Displays the parameters used for classification
2 26 Feb 07 jari 118      * 
2 26 Feb 07 jari 119      * @param delta
2 26 Feb 07 jari 120      * @param rho
2 26 Feb 07 jari 121      * @return
2 26 Feb 07 jari 122      */
2 26 Feb 07 jari 123     private JPanel createParamPanel(double delta, double rho, String[] params,
2 26 Feb 07 jari 124             int numGenesUsed) {
2 26 Feb 07 jari 125         Border loweredBorder = BorderFactory.createLoweredBevelBorder();
2 26 Feb 07 jari 126
2 26 Feb 07 jari 127         //create a JPanel
2 26 Feb 07 jari 128         JPanel toReturn = new JPanel();
2 26 Feb 07 jari 129         Dimension d = new Dimension(410, 130);
2 26 Feb 07 jari 130         toReturn.setPreferredSize(d);
2 26 Feb 07 jari 131         toReturn.setMaximumSize(d);
2 26 Feb 07 jari 132         toReturn.setMinimumSize(d);
2 26 Feb 07 jari 133         Font font = new Font("Arial", Font.PLAIN, 12);
2 26 Feb 07 jari 134         toReturn.setBorder(BorderFactory.createTitledBorder(loweredBorder,
2 26 Feb 07 jari 135                 "Parameters Used", TitledBorder.LEFT,
2 26 Feb 07 jari 136                 TitledBorder.DEFAULT_POSITION, font, Color.GRAY));
2 26 Feb 07 jari 137
2 26 Feb 07 jari 138         //list the params vertically
2 26 Feb 07 jari 139         BoxLayout bl = new BoxLayout(toReturn, BoxLayout.Y_AXIS);
2 26 Feb 07 jari 140         toReturn.setLayout(bl);
2 26 Feb 07 jari 141
2 26 Feb 07 jari 142         //create the JLabels and add them to the JPanel
2 26 Feb 07 jari 143         String sDelta = new Float(delta).toString();
2 26 Feb 07 jari 144         String sRho = new Float(rho).toString();
2 26 Feb 07 jari 145         JLabel dLabel = new JLabel(new String("  Delta = " + sDelta + "  "));
2 26 Feb 07 jari 146         JLabel rLabel = new JLabel(new String("  Rho = " + sRho + "  "));
2 26 Feb 07 jari 147         JLabel binLabel = new JLabel("  # of Bins = " + params[0] + "  ");
2 26 Feb 07 jari 148         JLabel loLabel = new JLabel("  Correlation Low = " + params[1] + "  ");
2 26 Feb 07 jari 149         JLabel hiLabel = new JLabel("  Correlation High = " + params[2] + "  ");
2 26 Feb 07 jari 150         JLabel stepLabel = new JLabel("  Correlation Step = " + params[3]
2 26 Feb 07 jari 151                 + "  ");
2 26 Feb 07 jari 152         toReturn.add(dLabel);
2 26 Feb 07 jari 153         toReturn.add(rLabel);
2 26 Feb 07 jari 154         toReturn.add(binLabel);
2 26 Feb 07 jari 155         toReturn.add(loLabel);
2 26 Feb 07 jari 156         toReturn.add(hiLabel);
2 26 Feb 07 jari 157         toReturn.add(stepLabel);
2 26 Feb 07 jari 158
2 26 Feb 07 jari 159         return toReturn;
2 26 Feb 07 jari 160     }//createDRPanel()
2 26 Feb 07 jari 161
2 26 Feb 07 jari 162
2 26 Feb 07 jari 163     /**
2 26 Feb 07 jari 164      * Display the assignments and the discriminant scores
2 26 Feb 07 jari 165      * 
2 26 Feb 07 jari 166      * @param testHybNames
2 26 Feb 07 jari 167      * @param result
2 26 Feb 07 jari 168      * @param uniqueClasses
2 26 Feb 07 jari 169      * @return
2 26 Feb 07 jari 170      */
2 26 Feb 07 jari 171     private JPanel createAssPanel(String[] testHybNames, USCResult resultP,
2 26 Feb 07 jari 172             String[] uniqueClasses) {
2 26 Feb 07 jari 173         Border loweredBorder = BorderFactory.createLoweredBevelBorder();
2 26 Feb 07 jari 174         StringBuffer sbAss = new StringBuffer();
2 26 Feb 07 jari 175         StringBuffer sbDScore = new StringBuffer();
2 26 Feb 07 jari 176
2 26 Feb 07 jari 177         //should list the test hybs and the class to which they were assigned
2 26 Feb 07 jari 178         for( int h = 0; h < testHybNames.length; h++ ) {
2 26 Feb 07 jari 179             int iClass = resultP.getAssignedClassIndex(h);
2 26 Feb 07 jari 180
2 26 Feb 07 jari 181             String sAss = new String("  " + testHybNames[h] + " >>> "
2 26 Feb 07 jari 182                     + uniqueClasses[iClass] + "  ");
2 26 Feb 07 jari 183
2 26 Feb 07 jari 184             String dScore = Double.toString(resultP.getDiscScores()[h][iClass]);
2 26 Feb 07 jari 185
2 26 Feb 07 jari 186             sbAss.append(this.formatLine(sAss, dScore));
2 26 Feb 07 jari 187             sbAss.append(USCGUI.END_LINE);
2 26 Feb 07 jari 188         }//end h
2 26 Feb 07 jari 189
2 26 Feb 07 jari 190         JPanel toReturn = new JPanel();
2 26 Feb 07 jari 191
2 26 Feb 07 jari 192         JTextArea assArea = new JTextArea(testHybNames.length, 15);
2 26 Feb 07 jari 193         assArea.setBackground(toReturn.getBackground());
2 26 Feb 07 jari 194         assArea.setText(sbAss.toString());
2 26 Feb 07 jari 195         JScrollPane jspAss = new JScrollPane(assArea);
2 26 Feb 07 jari 196         Dimension d = new Dimension(410, 385);
2 26 Feb 07 jari 197         jspAss.setPreferredSize(d);
2 26 Feb 07 jari 198         jspAss.setMaximumSize(d);
2 26 Feb 07 jari 199         jspAss.setMinimumSize(d);
2 26 Feb 07 jari 200
2 26 Feb 07 jari 201         toReturn.setSize(410, 365);
2 26 Feb 07 jari 202         toReturn.add(jspAss);
2 26 Feb 07 jari 203         return toReturn;
2 26 Feb 07 jari 204     }//USCSummaryViewer()
2 26 Feb 07 jari 205
2 26 Feb 07 jari 206
2 26 Feb 07 jari 207     /**
2 26 Feb 07 jari 208      * 
2 26 Feb 07 jari 209      * @param genes
2 26 Feb 07 jari 210      * @return
2 26 Feb 07 jari 211      */
2 26 Feb 07 jari 212     private JPanel createGenePanel(USCGene[] genesP) {
2 26 Feb 07 jari 213         Border loweredBorder = BorderFactory.createLoweredBevelBorder();
2 26 Feb 07 jari 214
2 26 Feb 07 jari 215         String genesUsed = new String(genesP.length + " Genes Used");
2 26 Feb 07 jari 216
2 26 Feb 07 jari 217         JPanel toReturn = new JPanel();
2 26 Feb 07 jari 218         Font font = new Font("Arial", Font.PLAIN, 12);
2 26 Feb 07 jari 219         toReturn.setBorder(BorderFactory.createTitledBorder(loweredBorder,
2 26 Feb 07 jari 220                 genesUsed, TitledBorder.LEFT, TitledBorder.DEFAULT_POSITION,
2 26 Feb 07 jari 221                 font, Color.GRAY));
2 26 Feb 07 jari 222         Dimension d = new Dimension(210, 525);
2 26 Feb 07 jari 223         toReturn.setPreferredSize(d);
2 26 Feb 07 jari 224         toReturn.setMaximumSize(d);
2 26 Feb 07 jari 225         toReturn.setMinimumSize(d);
2 26 Feb 07 jari 226
2 26 Feb 07 jari 227         StringBuffer sbGenes = new StringBuffer();
2 26 Feb 07 jari 228         for( int i = 0; i < genesP.length; i++ ) {
2 26 Feb 07 jari 229             sbGenes.append(genesP[i].getGeneName());
2 26 Feb 07 jari 230             sbGenes.append(USCGUI.END_LINE);
2 26 Feb 07 jari 231         }
2 26 Feb 07 jari 232         JTextArea geneArea = new JTextArea(genesP.length, 15);
2 26 Feb 07 jari 233         geneArea.setBackground(toReturn.getBackground());
2 26 Feb 07 jari 234         geneArea.setText(sbGenes.toString());
2 26 Feb 07 jari 235         JScrollPane jsp = new JScrollPane(geneArea);
2 26 Feb 07 jari 236         //jsp.setPreferredSize( new Dimension( 190, 460 ) );
2 26 Feb 07 jari 237         jsp.setPreferredSize(new Dimension(190, 430));
2 26 Feb 07 jari 238         jsp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
2 26 Feb 07 jari 239         jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
2 26 Feb 07 jari 240         toReturn.add(jsp);
2 26 Feb 07 jari 241
2 26 Feb 07 jari 242         this.saveGeneList = new JButton("Save GeneList");
2 26 Feb 07 jari 243         Dimension dButton = new Dimension(200, 30);
2 26 Feb 07 jari 244         saveGeneList.setPreferredSize(dButton);
2 26 Feb 07 jari 245         saveGeneList.setMaximumSize(dButton);
2 26 Feb 07 jari 246         saveGeneList.setMinimumSize(dButton);
2 26 Feb 07 jari 247         this.saveGeneList.addActionListener(this);
2 26 Feb 07 jari 248         toReturn.add(this.saveGeneList);
2 26 Feb 07 jari 249         /*
2 26 Feb 07 jari 250          * this.anotherDeltaRho = new JButton( "Test With Different Params" );
2 26 Feb 07 jari 251          * saveGeneList.setPreferredSize( dButton );
2 26 Feb 07 jari 252          * saveGeneList.setMaximumSize( dButton ); saveGeneList.setMinimumSize(
2 26 Feb 07 jari 253          * dButton ); this.anotherDeltaRho.addActionListener( this );
2 26 Feb 07 jari 254          * toReturn.add( this.anotherDeltaRho );
2 26 Feb 07 jari 255          */
2 26 Feb 07 jari 256         return toReturn;
2 26 Feb 07 jari 257     }//createGenePanel()
2 26 Feb 07 jari 258
2 26 Feb 07 jari 259
2 26 Feb 07 jari 260     private void onAnotherDeltaRho() {
2 26 Feb 07 jari 261         System.out.println("onAnotherDeltaRho()");
2 26 Feb 07 jari 262     }//onAnotherDeltaRho()
2 26 Feb 07 jari 263
2 26 Feb 07 jari 264
2 26 Feb 07 jari 265     /**
2 26 Feb 07 jari 266      * 
2 26 Feb 07 jari 267      *  
2 26 Feb 07 jari 268      */
2 26 Feb 07 jari 269     private void onSaveGeneList() {
2 26 Feb 07 jari 270         String currentPath = TMEV.getDataPath();
2 26 Feb 07 jari 271         USCTextFileFilter textFilter = new USCTextFileFilter();
2 26 Feb 07 jari 272         JFileChooser chooser = new JFileChooser(currentPath);
2 26 Feb 07 jari 273         chooser.addChoosableFileFilter(textFilter);
2 26 Feb 07 jari 274         if( chooser.showSaveDialog(this) == JFileChooser.APPROVE_OPTION ) {
2 26 Feb 07 jari 275             File saveFile;
2 26 Feb 07 jari 276
2 26 Feb 07 jari 277             if( chooser.getFileFilter() == textFilter ) {
2 26 Feb 07 jari 278                 //make sure to add .txt
2 26 Feb 07 jari 279                 String path = chooser.getSelectedFile().getPath();
2 26 Feb 07 jari 280                 if( path.toLowerCase().endsWith("txt") ) {
2 26 Feb 07 jari 281                     //great, already ok
2 26 Feb 07 jari 282                     saveFile = new File(path);
2 26 Feb 07 jari 283                 } else {
2 26 Feb 07 jari 284                     //add it
2 26 Feb 07 jari 285                     String subPath;
2 26 Feb 07 jari 286                     int period = path.lastIndexOf(".");
2 26 Feb 07 jari 287                     if( period != -1 ) {
2 26 Feb 07 jari 288                         System.out.println("period  = -1");
2 26 Feb 07 jari 289                         subPath = path.substring(0, period);
2 26 Feb 07 jari 290                     } else {
2 26 Feb 07 jari 291                         subPath = path;
2 26 Feb 07 jari 292                     }
2 26 Feb 07 jari 293                     String newPath = subPath + ".txt";
2 26 Feb 07 jari 294                     saveFile = new File(newPath);
2 26 Feb 07 jari 295                 }
2 26 Feb 07 jari 296             } else {
2 26 Feb 07 jari 297                 saveFile = chooser.getSelectedFile();
2 26 Feb 07 jari 298             }
2 26 Feb 07 jari 299             StringBuffer sb = new StringBuffer();
2 26 Feb 07 jari 300             
2 26 Feb 07 jari 301             for( int i = 0; i < this.genes.length; i++ ) {
2 26 Feb 07 jari 302               USCGene gene = this.genes[ i ];
2 26 Feb 07 jari 303               
2 26 Feb 07 jari 304                 sb.append(gene.getGeneName());
2 26 Feb 07 jari 305         
2 26 Feb 07 jari 306         for( int e = 0; e < gene.getExtraFieldSize(); e ++ ) {
2 26 Feb 07 jari 307           sb.append( USCGUI.TAB );
2 26 Feb 07 jari 308           sb.append( gene.getExtraField( e ) );
2 26 Feb 07 jari 309         }
2 26 Feb 07 jari 310         
2 26 Feb 07 jari 311         sb.append( USCGUI.END_LINE );
2 26 Feb 07 jari 312             }
2 26 Feb 07 jari 313             
2 26 Feb 07 jari 314             this.writeFile(saveFile, sb.toString());
2 26 Feb 07 jari 315         } else {
2 26 Feb 07 jari 316             System.out.println("User cancelled Gene List Save");
2 26 Feb 07 jari 317         }
2 26 Feb 07 jari 318     }//onSaveGeneList()
2 26 Feb 07 jari 319
2 26 Feb 07 jari 320
2 26 Feb 07 jari 321     /**
2 26 Feb 07 jari 322      * Write the String s to File f
2 26 Feb 07 jari 323      * 
2 26 Feb 07 jari 324      * @param f
2 26 Feb 07 jari 325      * @param s
2 26 Feb 07 jari 326      */
2 26 Feb 07 jari 327     private void writeFile(File f, String s) {
2 26 Feb 07 jari 328         try {
2 26 Feb 07 jari 329             FileWriter fw = new FileWriter(f);
2 26 Feb 07 jari 330             fw.write(s);
2 26 Feb 07 jari 331             fw.flush();
2 26 Feb 07 jari 332             fw.close();
2 26 Feb 07 jari 333         } catch( IOException e ) {
2 26 Feb 07 jari 334             e.printStackTrace();
2 26 Feb 07 jari 335         }
2 26 Feb 07 jari 336     }//writeFile()
2 26 Feb 07 jari 337
2 26 Feb 07 jari 338
2 26 Feb 07 jari 339     public void actionPerformed(ActionEvent e) {
2 26 Feb 07 jari 340         if( e.getSource() == this.saveGeneList ) {
2 26 Feb 07 jari 341             this.onSaveGeneList();
2 26 Feb 07 jari 342         } else if( e.getSource() == this.anotherDeltaRho ) {
2 26 Feb 07 jari 343             this.onAnotherDeltaRho();
2 26 Feb 07 jari 344         }
2 26 Feb 07 jari 345     }
2 26 Feb 07 jari 346
2 26 Feb 07 jari 347
2 26 Feb 07 jari 348     /**
2 26 Feb 07 jari 349      * 
2 26 Feb 07 jari 350      * @param assLine
2 26 Feb 07 jari 351      * @param dScore
2 26 Feb 07 jari 352      * @return
2 26 Feb 07 jari 353      */
2 26 Feb 07 jari 354     private String formatLine(String assLine, String dScore) {
2 26 Feb 07 jari 355         int width = 70;
2 26 Feb 07 jari 356
2 26 Feb 07 jari 357         int assKount = assLine.length();
2 26 Feb 07 jari 358         int dKount = dScore.length();
2 26 Feb 07 jari 359
2 26 Feb 07 jari 360         int diff = width - assKount - dKount;
2 26 Feb 07 jari 361
2 26 Feb 07 jari 362         StringBuffer sb = new StringBuffer(assLine);
2 26 Feb 07 jari 363         for( int i = 0; i < diff; i++ ) {
2 26 Feb 07 jari 364             sb.append("-");
2 26 Feb 07 jari 365         }
2 26 Feb 07 jari 366         sb.append(dScore);
2 26 Feb 07 jari 367
2 26 Feb 07 jari 368         return sb.toString();
2 26 Feb 07 jari 369     }
2 26 Feb 07 jari 370
2 26 Feb 07 jari 371
2 26 Feb 07 jari 372     public JComponent getContentComponent() {
2 26 Feb 07 jari 373         return this;
2 26 Feb 07 jari 374     }//getContentComponent()
2 26 Feb 07 jari 375
2 26 Feb 07 jari 376
2 26 Feb 07 jari 377     public JComponent getHeaderComponent() {
2 26 Feb 07 jari 378         return null;
2 26 Feb 07 jari 379     }
2 26 Feb 07 jari 380
2 26 Feb 07 jari 381
2 26 Feb 07 jari 382     public JComponent getRowHeaderComponent() {
2 26 Feb 07 jari 383         return null;
2 26 Feb 07 jari 384     }
2 26 Feb 07 jari 385
2 26 Feb 07 jari 386
2 26 Feb 07 jari 387     public JComponent getCornerComponent(int cornerIndex) {
2 26 Feb 07 jari 388         return null;
2 26 Feb 07 jari 389     }
2 26 Feb 07 jari 390
2 26 Feb 07 jari 391
2 26 Feb 07 jari 392     public void onSelected(IFramework framework) {
2 26 Feb 07 jari 393       //EH
2 26 Feb 07 jari 394       this.framework = framework;
2 26 Feb 07 jari 395     }
2 26 Feb 07 jari 396
2 26 Feb 07 jari 397
2 26 Feb 07 jari 398     public void onDataChanged(IData data) {
2 26 Feb 07 jari 399
2 26 Feb 07 jari 400     }
2 26 Feb 07 jari 401
2 26 Feb 07 jari 402
2 26 Feb 07 jari 403     public void onMenuChanged(IDisplayMenu menu) {
2 26 Feb 07 jari 404
2 26 Feb 07 jari 405     }
2 26 Feb 07 jari 406
2 26 Feb 07 jari 407
2 26 Feb 07 jari 408     public void onDeselected() {
2 26 Feb 07 jari 409
2 26 Feb 07 jari 410     }
2 26 Feb 07 jari 411
2 26 Feb 07 jari 412
2 26 Feb 07 jari 413     public void onClosed() {
2 26 Feb 07 jari 414
2 26 Feb 07 jari 415     }
2 26 Feb 07 jari 416
2 26 Feb 07 jari 417
2 26 Feb 07 jari 418     public BufferedImage getImage() {
2 26 Feb 07 jari 419         return null;
2 26 Feb 07 jari 420     }
2 26 Feb 07 jari 421
2 26 Feb 07 jari 422
2 26 Feb 07 jari 423     public int[][] getClusters() {
2 26 Feb 07 jari 424         return null;
2 26 Feb 07 jari 425     }
2 26 Feb 07 jari 426
2 26 Feb 07 jari 427
2 26 Feb 07 jari 428     public Experiment getExperiment() {
2 26 Feb 07 jari 429         return null;
2 26 Feb 07 jari 430     }
2 26 Feb 07 jari 431
2 26 Feb 07 jari 432
2 26 Feb 07 jari 433     /* (non-Javadoc)
2 26 Feb 07 jari 434      * @see org.tigr.microarray.mev.cluster.gui.IViewer#getViewerType()
2 26 Feb 07 jari 435      */
2 26 Feb 07 jari 436     public int getViewerType() {
2 26 Feb 07 jari 437         return 0;
2 26 Feb 07 jari 438     }
2 26 Feb 07 jari 439
2 26 Feb 07 jari 440
2 26 Feb 07 jari 441   /** implemented only to satisfy the IViewer interface
2 26 Feb 07 jari 442    * @see org.tigr.microarray.mev.cluster.gui.IViewer#setExperiment(org.tigr.microarray.mev.cluster.gui.Experiment)
2 26 Feb 07 jari 443    */
2 26 Feb 07 jari 444   public void setExperiment(Experiment e) {
2 26 Feb 07 jari 445     //do nothing
2 26 Feb 07 jari 446   }
2 26 Feb 07 jari 447
2 26 Feb 07 jari 448
2 26 Feb 07 jari 449   /**
2 26 Feb 07 jari 450    * @see org.tigr.microarray.mev.cluster.gui.IViewer#getExperimentID()
2 26 Feb 07 jari 451    */
2 26 Feb 07 jari 452   public int getExperimentID() {
2 26 Feb 07 jari 453     return 0;
2 26 Feb 07 jari 454   }
2 26 Feb 07 jari 455
2 26 Feb 07 jari 456
2 26 Feb 07 jari 457   /** 
2 26 Feb 07 jari 458    * This method is implemented only to satisfy the IViewer interface
2 26 Feb 07 jari 459    * @see org.tigr.microarray.mev.cluster.gui.IViewer#setExperimentID(int)
2 26 Feb 07 jari 460    */
2 26 Feb 07 jari 461   public void setExperimentID(int id) {
2 26 Feb 07 jari 462     ;
2 26 Feb 07 jari 463   }
2 26 Feb 07 jari 464
2 26 Feb 07 jari 465
2 26 Feb 07 jari 466   /**
2 26 Feb 07 jari 467    * @see org.tigr.microarray.mev.cluster.gui.IViewer#getExpression()
2 26 Feb 07 jari 468    */
2 26 Feb 07 jari 469   public Expression getExpression() {
2 26 Feb 07 jari 470     return new Expression(this, this.getClass(), "new", 
2 26 Feb 07 jari 471         new Object[]{this.hybNames, this.result, this.uniqueClasses, this.params, this.genes});
2 26 Feb 07 jari 472   }
2 26 Feb 07 jari 473 //  java.lang.RuntimeException: failed to evaluate: <unbound>=USCSummaryViewer.new(
2 26 Feb 07 jari 474 //      StringArray0, USCResult0, StringArray1, StringArray2, USCGeneArray0);  
2 26 Feb 07 jari 475   
2 26 Feb 07 jari 476 }//end class
2 26 Feb 07 jari 477
2 26 Feb 07 jari 478 /*
2 26 Feb 07 jari 479  * public JPanel createAssPanelTest() { String[] testHybNames = new String[ 20 ];
2 26 Feb 07 jari 480  * String[] dScores = new String[ 20 ]; for( int i = 0; i < testHybNames.length;
2 26 Feb 07 jari 481  * i ++ ) { testHybNames[ i ] = ( i + ".txt" ); dScores[ i ] = ( "0." + i ); }
2 26 Feb 07 jari 482  * 
2 26 Feb 07 jari 483  * Border loweredBorder = BorderFactory.createLoweredBevelBorder();
2 26 Feb 07 jari 484  * 
2 26 Feb 07 jari 485  * JPanel assPanel = new JPanel(); Dimension d = new Dimension( 315, 385 );
2 26 Feb 07 jari 486  * assPanel.setPreferredSize( d ); assPanel.setMaximumSize( d );
2 26 Feb 07 jari 487  * assPanel.setMinimumSize( d ); Font font = new Font( "Arial", Font.PLAIN, 12 );
2 26 Feb 07 jari 488  * assPanel.setBorder( BorderFactory.createTitledBorder( loweredBorder, "Class
2 26 Feb 07 jari 489  * Assignments", TitledBorder.LEFT, TitledBorder.DEFAULT_POSITION, font,
2 26 Feb 07 jari 490  * Color.GRAY ) );
2 26 Feb 07 jari 491  * 
2 26 Feb 07 jari 492  * BoxLayout bl = new BoxLayout( assPanel, BoxLayout.Y_AXIS );
2 26 Feb 07 jari 493  * assPanel.setLayout( bl );
2 26 Feb 07 jari 494  * 
2 26 Feb 07 jari 495  * JPanel dPanel = new JPanel(); Dimension dD = new Dimension( 95, 385 );
2 26 Feb 07 jari 496  * dPanel.setPreferredSize( dD ); dPanel.setMaximumSize( dD );
2 26 Feb 07 jari 497  * dPanel.setMinimumSize( dD ); dPanel.setBorder(
2 26 Feb 07 jari 498  * BorderFactory.createTitledBorder( loweredBorder, "D-Score",
2 26 Feb 07 jari 499  * TitledBorder.CENTER, TitledBorder.DEFAULT_POSITION, font, Color.GRAY ) );
2 26 Feb 07 jari 500  * 
2 26 Feb 07 jari 501  * BoxLayout bl2 = new BoxLayout( dPanel, BoxLayout.Y_AXIS ); dPanel.setLayout(
2 26 Feb 07 jari 502  * bl2 );
2 26 Feb 07 jari 503  * 
2 26 Feb 07 jari 504  * //should list the test hybs and the class to which they were assigned for(
2 26 Feb 07 jari 505  * int h = 0; h < testHybNames.length; h ++ ) { String sAss = new String( " " +
2 26 Feb 07 jari 506  * testHybNames[ h ] + " >> " + h + " " );
2 26 Feb 07 jari 507  * 
2 26 Feb 07 jari 508  * JLabel label = new JLabel( sAss ); assPanel.add( label );
2 26 Feb 07 jari 509  * 
2 26 Feb 07 jari 510  * JLabel dLabel = new JLabel( dScores[ h ] ); dPanel.add( dLabel ); }//end h
2 26 Feb 07 jari 511  * 
2 26 Feb 07 jari 512  * JPanel toReturn = new JPanel(); toReturn.setLayout( new SpringLayout() );
2 26 Feb 07 jari 513  * toReturn.setSize( 410, 385 ); toReturn.add( assPanel ); toReturn.add( dPanel );
2 26 Feb 07 jari 514  * SpringUtilities.makeCompactGrid( toReturn, 1, 2, 0, 0, 0, 0 ); return
2 26 Feb 07 jari 515  * toReturn; }//
2 26 Feb 07 jari 516  */
2 26 Feb 07 jari 517
2 26 Feb 07 jari 518 /*
2 26 Feb 07 jari 519  * //for testing purposes public static void main( String[] args ) {
2 26 Feb 07 jari 520  * System.out.println( "invoked by main" ); USCSummaryViewer usv = new
2 26 Feb 07 jari 521  * USCSummaryViewer(); JFrame jf = new JFrame(); jf.setSize( 800, 620 );
2 26 Feb 07 jari 522  * jf.getContentPane().add( usv ); jf.show(); } public USCSummaryViewer() {
2 26 Feb 07 jari 523  * this.setLayout( new SpringLayout() );
2 26 Feb 07 jari 524  * 
2 26 Feb 07 jari 525  * String[] params = new String[ 4 ]; params[ 0 ] = "50"; params[ 1 ] = "0.5";
2 26 Feb 07 jari 526  * params[ 2 ] = "1.0"; params[ 3 ] = "0.1";
2 26 Feb 07 jari 527  * 
2 26 Feb 07 jari 528  * String[] g = new String[ 600 ]; for( int i = 0; i < g.length; i ++ ) { g[ i ] =
2 26 Feb 07 jari 529  * new String( i + " 0123456789012345678" ); }
2 26 Feb 07 jari 530  * 
2 26 Feb 07 jari 531  * JPanel leftPanel = new JPanel(); leftPanel.setLayout( new SpringLayout() );
2 26 Feb 07 jari 532  * leftPanel.add( this.createParamPanel( 0.4f, 0.9f, params ) ); leftPanel.add(
2 26 Feb 07 jari 533  * this.createAssPanelTest() );
2 26 Feb 07 jari 534  * 
2 26 Feb 07 jari 535  * JPanel rightPanel = new JPanel(); rightPanel.setLayout( new SpringLayout() );
2 26 Feb 07 jari 536  * rightPanel.add( this.createGenePanel( g ) );
2 26 Feb 07 jari 537  * 
2 26 Feb 07 jari 538  * this.add( leftPanel ); this.add( rightPanel );
2 26 Feb 07 jari 539  * 
2 26 Feb 07 jari 540  * SpringUtilities.makeCompactGrid( this, 1, 2, 10, 10, 10, 10 );
2 26 Feb 07 jari 541  * SpringUtilities.makeCompactGrid( leftPanel, 2, 1, 10, 10, 10, 10 );
2 26 Feb 07 jari 542  * SpringUtilities.makeCompactGrid( rightPanel, 1, 1, 10, 10, 10, 10 ); }
2 26 Feb 07 jari 543  */