mev-4.0.01/source/org/tigr/microarray/mev/file/SuperExpressionFileLoader.java

Code
Comments
Other
Rev Date Author Line
7 24 Aug 07 jari 1 // $Id$
7 24 Aug 07 jari 2
2 26 Feb 07 jari 3 /*
2 26 Feb 07 jari 4  Copyright @ 1999-2005, The Institute for Genomic Research (TIGR).
2 26 Feb 07 jari 5  All rights reserved.
2 26 Feb 07 jari 6  */
2 26 Feb 07 jari 7 /*
2 26 Feb 07 jari 8  * $RCSfile: SuperExpressionFileLoader.java,v $
2 26 Feb 07 jari 9  * $Revision: 1.16 $
2 26 Feb 07 jari 10  * $Date: 2006/05/15 20:30:08 $
2 26 Feb 07 jari 11  * $Author: eleanorahowe $
2 26 Feb 07 jari 12  * $State: Exp $
2 26 Feb 07 jari 13  */
2 26 Feb 07 jari 14 package org.tigr.microarray.mev.file;
2 26 Feb 07 jari 15
2 26 Feb 07 jari 16 import java.awt.Color;
2 26 Feb 07 jari 17 import java.awt.Container;
2 26 Feb 07 jari 18 import java.awt.Dimension;
2 26 Feb 07 jari 19 import java.awt.GradientPaint;
2 26 Feb 07 jari 20 import java.awt.Graphics;
2 26 Feb 07 jari 21 import java.awt.Graphics2D;
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 import java.awt.Toolkit;
2 26 Feb 07 jari 26 import java.awt.event.ActionEvent;
2 26 Feb 07 jari 27 import java.awt.event.ActionListener;
2 26 Feb 07 jari 28 import java.awt.event.KeyEvent;
2 26 Feb 07 jari 29 import java.io.File;
2 26 Feb 07 jari 30 import java.util.StringTokenizer;
2 26 Feb 07 jari 31 import java.util.Vector;
2 26 Feb 07 jari 32
2 26 Feb 07 jari 33 import javax.swing.BorderFactory;
2 26 Feb 07 jari 34 import javax.swing.ImageIcon;
2 26 Feb 07 jari 35 import javax.swing.JButton;
2 26 Feb 07 jari 36 import javax.swing.JComboBox;
2 26 Feb 07 jari 37 import javax.swing.JFrame;
2 26 Feb 07 jari 38 import javax.swing.JLabel;
2 26 Feb 07 jari 39 import javax.swing.JMenu;
2 26 Feb 07 jari 40 import javax.swing.JMenuBar;
2 26 Feb 07 jari 41 import javax.swing.JMenuItem;
2 26 Feb 07 jari 42 import javax.swing.JPanel;
2 26 Feb 07 jari 43 import javax.swing.JSplitPane;
2 26 Feb 07 jari 44 import javax.swing.JTextField;
2 26 Feb 07 jari 45 import javax.swing.border.BevelBorder;
2 26 Feb 07 jari 46 import javax.swing.filechooser.FileFilter;
2 26 Feb 07 jari 47
2 26 Feb 07 jari 48 import org.tigr.microarray.mev.AcknowlegementDialog;
2 26 Feb 07 jari 49 import org.tigr.microarray.mev.ISlideData;
2 26 Feb 07 jari 50 import org.tigr.microarray.mev.MultipleArrayViewer;
2 26 Feb 07 jari 51 import org.tigr.microarray.mev.TMEV;
2 26 Feb 07 jari 52 import org.tigr.microarray.mev.cluster.gui.IData;
2 26 Feb 07 jari 53 import org.tigr.microarray.mev.cluster.gui.impl.dialogs.dialogHelpUtil.HelpWindow;
2 26 Feb 07 jari 54 import org.tigr.microarray.mev.cluster.gui.impl.dialogs.dialogHelpUtil.HelpWindowDialog;
2 26 Feb 07 jari 55 import org.tigr.microarray.mev.file.agilent.AgilentMevFileLoader;
2 26 Feb 07 jari 56
2 26 Feb 07 jari 57 // Loads expression data in various file formats
2 26 Feb 07 jari 58
2 26 Feb 07 jari 59 public class SuperExpressionFileLoader {
2 26 Feb 07 jari 60
2 26 Feb 07 jari 61   public static String DATA_PATH = TMEV.getDataPath();
2 26 Feb 07 jari 62
2 26 Feb 07 jari 63   public final static ImageIcon ICON_COMPUTER = new ImageIcon(Toolkit
2 26 Feb 07 jari 64       .getDefaultToolkit().getImage(
2 26 Feb 07 jari 65           SuperExpressionFileLoader.class.getClassLoader()
2 26 Feb 07 jari 66               .getResource("org/tigr/images/PCIcon.gif")));
2 26 Feb 07 jari 67
2 26 Feb 07 jari 68   public final static ImageIcon ICON_DISK = new ImageIcon(Toolkit
2 26 Feb 07 jari 69       .getDefaultToolkit().getImage(
2 26 Feb 07 jari 70           SuperExpressionFileLoader.class.getClassLoader()
2 26 Feb 07 jari 71               .getResource("org/tigr/images/disk.gif")));
2 26 Feb 07 jari 72
2 26 Feb 07 jari 73   public final static ImageIcon ICON_FOLDER = new ImageIcon(Toolkit
2 26 Feb 07 jari 74       .getDefaultToolkit().getImage(
2 26 Feb 07 jari 75           SuperExpressionFileLoader.class.getClassLoader()
2 26 Feb 07 jari 76               .getResource("org/tigr/images/Directory.gif")));
2 26 Feb 07 jari 77
2 26 Feb 07 jari 78   public final static ImageIcon ICON_EXPANDEDFOLDER = new ImageIcon(Toolkit
2 26 Feb 07 jari 79       .getDefaultToolkit().getImage(
2 26 Feb 07 jari 80           SuperExpressionFileLoader.class.getClassLoader()
2 26 Feb 07 jari 81               .getResource("org/tigr/images/expandedfolder.gif")));
2 26 Feb 07 jari 82
2 26 Feb 07 jari 83   protected ExpressionFileLoader[] fileLoaders;
2 26 Feb 07 jari 84
2 26 Feb 07 jari 85   protected ExpressionFileLoader selectedFileLoader;
2 26 Feb 07 jari 86
2 26 Feb 07 jari 87   protected FileFilter[] fileFilters;
2 26 Feb 07 jari 88
2 26 Feb 07 jari 89   protected FileFilter selectedFileFilter;
2 26 Feb 07 jari 90
2 26 Feb 07 jari 91   protected JFrame mainFrame;
2 26 Feb 07 jari 92
2 26 Feb 07 jari 93   protected JPanel fileFilterPanel;
2 26 Feb 07 jari 94
2 26 Feb 07 jari 95   protected JLabel fileFilterLabel;
2 26 Feb 07 jari 96
2 26 Feb 07 jari 97   protected JComboBox fileFilterComboBox;
2 26 Feb 07 jari 98
2 26 Feb 07 jari 99   protected JPanel fileLoaderPanel;
2 26 Feb 07 jari 100
2 26 Feb 07 jari 101   protected JButton infoButton;
2 26 Feb 07 jari 102
2 26 Feb 07 jari 103   protected JButton cancelButton;
2 26 Feb 07 jari 104
2 26 Feb 07 jari 105   protected JButton loadButton;
2 26 Feb 07 jari 106
2 26 Feb 07 jari 107   protected JPanel buttonPanel;
2 26 Feb 07 jari 108
2 26 Feb 07 jari 109   protected JPanel selectionPanel;
2 26 Feb 07 jari 110
2 26 Feb 07 jari 111   protected JSplitPane mainSplitPane;
2 26 Feb 07 jari 112
2 26 Feb 07 jari 113   protected GBA gba;
2 26 Feb 07 jari 114
2 26 Feb 07 jari 115   protected EventListener eventListener;
2 26 Feb 07 jari 116
2 26 Feb 07 jari 117   protected MultipleArrayViewer viewer;
2 26 Feb 07 jari 118
2 26 Feb 07 jari 119   protected Loader loader;
2 26 Feb 07 jari 120
2 26 Feb 07 jari 121   protected int loaderIndex = 0;
2 26 Feb 07 jari 122   protected JMenuBar menuBar;
2 26 Feb 07 jari 123   protected JMenu menu1,menu2;
2 26 Feb 07 jari 124   protected JMenuItem menuItem[];
2 26 Feb 07 jari 125   protected JMenuItem subMenuItem[];
2 26 Feb 07 jari 126   protected JTextField filetype=null;
2 26 Feb 07 jari 127   
2 26 Feb 07 jari 128   public SuperExpressionFileLoader(MultipleArrayViewer viewer) {
2 26 Feb 07 jari 129     this.viewer = viewer;
2 26 Feb 07 jari 130     loader = new Loader();
2 26 Feb 07 jari 131     initializeFileLoaders();
2 26 Feb 07 jari 132     initializeGUI();
2 26 Feb 07 jari 133   }
2 26 Feb 07 jari 134
2 26 Feb 07 jari 135   public SuperExpressionFileLoader() {
2 26 Feb 07 jari 136     // this.viewer = viewer;
2 26 Feb 07 jari 137     loader = new Loader();
2 26 Feb 07 jari 138     initializeFileLoaders();
2 26 Feb 07 jari 139     initializeGUI();
2 26 Feb 07 jari 140   }
2 26 Feb 07 jari 141
2 26 Feb 07 jari 142   protected void initializeFileLoaders() {
2 26 Feb 07 jari 143
7 24 Aug 07 jari 144     int defaultSelection = 1;
2 26 Feb 07 jari 145
2 26 Feb 07 jari 146
2 26 Feb 07 jari 147     fileLoaders = new ExpressionFileLoader[12];
2 26 Feb 07 jari 148     fileLoaders[0] = new MevFileLoader(this);
2 26 Feb 07 jari 149
7 24 Aug 07 jari 150     fileLoaders[1] = new StanfordFileLoader(this);
2 26 Feb 07 jari 151     fileLoaders[2] = null;
2 26 Feb 07 jari 152     fileLoaders[3] = null;
2 26 Feb 07 jari 153     fileLoaders[4] = null;
2 26 Feb 07 jari 154     fileLoaders[5] = null;
2 26 Feb 07 jari 155     fileLoaders[6] = null;
2 26 Feb 07 jari 156     fileLoaders[7] = null;
2 26 Feb 07 jari 157     fileLoaders[8] = null;
2 26 Feb 07 jari 158     fileLoaders[9] = null;
2 26 Feb 07 jari 159     fileLoaders[10] = null;
2 26 Feb 07 jari 160     fileLoaders[11] = null; /* Raktim, CGH Loader */
2 26 Feb 07 jari 161
2 26 Feb 07 jari 162     selectedFileLoader = fileLoaders[defaultSelection];
2 26 Feb 07 jari 163
2 26 Feb 07 jari 164     fileFilters = new FileFilter[fileLoaders.length];
7 24 Aug 07 jari 165     fileFilters[defaultSelection] =fileLoaders[defaultSelection].getFileFilter();
2 26 Feb 07 jari 166     selectedFileFilter = fileFilters[defaultSelection];
2 26 Feb 07 jari 167   }
2 26 Feb 07 jari 168   public void helpWindow(String st){
2 26 Feb 07 jari 169     HelpWindow hw = new HelpWindow(mainFrame, st);
2 26 Feb 07 jari 170     if (hw.getWindowContent()) {
2 26 Feb 07 jari 171       hw.setSize(750, 650);
2 26 Feb 07 jari 172       hw.setLocation();
2 26 Feb 07 jari 173       hw.show();
2 26 Feb 07 jari 174     } else {
2 26 Feb 07 jari 175       hw.setVisible(false);
2 26 Feb 07 jari 176       hw.dispose();
2 26 Feb 07 jari 177     }  
2 26 Feb 07 jari 178   }
2 26 Feb 07 jari 179   public void menuItem(JMenu jItem,final String st){
2 26 Feb 07 jari 180     menuItem=new JMenuItem[6];
2 26 Feb 07 jari 181     menuItem[0]= new JMenuItem("Tab Delimited, Multiple Sample Files (TDMS) (*.*)");
2 26 Feb 07 jari 182     
2 26 Feb 07 jari 183     menuItem[0].addActionListener(new ActionListener() {
2 26 Feb 07 jari 184       public void actionPerformed(ActionEvent event) {
2 26 Feb 07 jari 185         if(st=="Hint to File Format"){
2 26 Feb 07 jari 186           helpWindow("TDMS");
2 26 Feb 07 jari 187         }else{
2 26 Feb 07 jari 188         changeSelectedFileFilterAndLoader(1);
2 26 Feb 07 jari 189         filetype.setText("Tab Delimited, Multiple Sample Files (TDMS) (*.*)");
2 26 Feb 07 jari 190         }
2 26 Feb 07 jari 191       }
2 26 Feb 07 jari 192     });
2 26 Feb 07 jari 193     jItem.add(menuItem[0]);
2 26 Feb 07 jari 194     
2 26 Feb 07 jari 195     menuItem[1]= new JMenu("TIGR Files");
2 26 Feb 07 jari 196     subMenuItem= new JMenuItem[2];
2 26 Feb 07 jari 197     subMenuItem[0]=new JMenuItem("MeV Files");
2 26 Feb 07 jari 198     subMenuItem[0].addActionListener(new ActionListener() {
2 26 Feb 07 jari 199       public void actionPerformed(ActionEvent event) {
2 26 Feb 07 jari 200         if(st=="File Format Hint"){
2 26 Feb 07 jari 201           HelpWindowDialog hwd= new HelpWindowDialog(mainFrame,HelpWindowDialog.createText("Mev"));
2 26 Feb 07 jari 202         }else{
2 26 Feb 07 jari 203         changeSelectedFileFilterAndLoader(0);
2 26 Feb 07 jari 204         filetype.setText("MeV Files(*.mev)");
2 26 Feb 07 jari 205         }
2 26 Feb 07 jari 206       }
2 26 Feb 07 jari 207     });
2 26 Feb 07 jari 208     menuItem[1].add(subMenuItem[0]);
2 26 Feb 07 jari 209     
2 26 Feb 07 jari 210     subMenuItem[1]=new JMenuItem("TIGR ArrayViewer (*.tav) Files");
2 26 Feb 07 jari 211     subMenuItem[1].addActionListener(new ActionListener() {
2 26 Feb 07 jari 212       public void actionPerformed(ActionEvent event) {
2 26 Feb 07 jari 213         if(st=="Hint to File Format"){
2 26 Feb 07 jari 214             HelpWindowDialog hwd =new HelpWindowDialog(mainFrame,HelpWindowDialog.createText("Tav"));
2 26 Feb 07 jari 215           }else{
2 26 Feb 07 jari 216         changeSelectedFileFilterAndLoader(2);
2 26 Feb 07 jari 217         filetype.setText("TIGR ArrayViewer Files(*.tav)");
2 26 Feb 07 jari 218       }
2 26 Feb 07 jari 219       }
2 26 Feb 07 jari 220     });
2 26 Feb 07 jari 221     menuItem[1].add(subMenuItem[1]);
2 26 Feb 07 jari 222     
2 26 Feb 07 jari 223     jItem.add(menuItem[1]);
2 26 Feb 07 jari 224     
2 26 Feb 07 jari 225     menuItem[2] = new JMenu("Affymetrix Files");
2 26 Feb 07 jari 226     
2 26 Feb 07 jari 227         subMenuItem= new JMenuItem[4];
2 26 Feb 07 jari 228         subMenuItem[0]=new JMenuItem("Affymetrix GCOS(using MAS5)Files");
2 26 Feb 07 jari 229         subMenuItem[0].addActionListener(new ActionListener() {
2 26 Feb 07 jari 230       public void actionPerformed(ActionEvent event) {
2 26 Feb 07 jari 231         if(st=="Hint to File Format"){
2 26 Feb 07 jari 232             helpWindow("GCOS");
2 26 Feb 07 jari 233           }else{
2 26 Feb 07 jari 234         changeSelectedFileFilterAndLoader(7);
2 26 Feb 07 jari 235         filetype.setText("Affymetrix GCOS(using MAS5)Files");
2 26 Feb 07 jari 236           }
2 26 Feb 07 jari 237       }
2 26 Feb 07 jari 238     });
2 26 Feb 07 jari 239     menuItem[2].add(subMenuItem[0]);
2 26 Feb 07 jari 240
2 26 Feb 07 jari 241     subMenuItem[1] = new JMenuItem("dChip/DFCI_Core Format Files");
2 26 Feb 07 jari 242     menuItem[2].add(subMenuItem[1]);
2 26 Feb 07 jari 243     subMenuItem[1].addActionListener(new ActionListener() {
2 26 Feb 07 jari 244       public void actionPerformed(ActionEvent event) {
2 26 Feb 07 jari 245         if(st=="Hint to File Format"){
2 26 Feb 07 jari 246             helpWindow("dChip");
2 26 Feb 07 jari 247           }else{
2 26 Feb 07 jari 248         changeSelectedFileFilterAndLoader(10);
2 26 Feb 07 jari 249         filetype.setText("dChip/DFCI_Core Format Files");
2 26 Feb 07 jari 250       }
2 26 Feb 07 jari 251       }
2 26 Feb 07 jari 252     });
2 26 Feb 07 jari 253     
2 26 Feb 07 jari 254     subMenuItem[2] = new JMenuItem("GW Affymetrix Files");
2 26 Feb 07 jari 255     menuItem[2].add(subMenuItem[2]);
2 26 Feb 07 jari 256     subMenuItem[2].addActionListener(new ActionListener() {
2 26 Feb 07 jari 257       public void actionPerformed(ActionEvent event) {
2 26 Feb 07 jari 258         if(st=="Hint to File Format"){
2 26 Feb 07 jari 259             helpWindow("GW");
2 26 Feb 07 jari 260           }else{
2 26 Feb 07 jari 261         changeSelectedFileFilterAndLoader(6);
2 26 Feb 07 jari 262         filetype.setText("GW Affymetrix Files");
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     subMenuItem[3] = new JMenuItem("Bioconductor(using MAS5) Files");
2 26 Feb 07 jari 268     menuItem[2].add(subMenuItem[3]);
2 26 Feb 07 jari 269     subMenuItem[3].addActionListener(new ActionListener() {
2 26 Feb 07 jari 270       public void actionPerformed(ActionEvent event) {
2 26 Feb 07 jari 271         if(st=="Hint to File Format"){
2 26 Feb 07 jari 272             helpWindow("bioconductor");
2 26 Feb 07 jari 273         }else{
2 26 Feb 07 jari 274         changeSelectedFileFilterAndLoader(5);
2 26 Feb 07 jari 275         filetype.setText("Bioconductor(using MAS5) Files");
2 26 Feb 07 jari 276       }
2 26 Feb 07 jari 277     }
2 26 Feb 07 jari 278     });
2 26 Feb 07 jari 279     
2 26 Feb 07 jari 280     jItem.add(menuItem[2]);
2 26 Feb 07 jari 281   
2 26 Feb 07 jari 282     menuItem[3] = new JMenuItem("CGH");
2 26 Feb 07 jari 283     menuItem[3].addActionListener(new ActionListener() {
2 26 Feb 07 jari 284       public void actionPerformed(ActionEvent event) {
2 26 Feb 07 jari 285         if(st=="Hint to File Format"){
2 26 Feb 07 jari 286             helpWindow("CGH");
2 26 Feb 07 jari 287         }else{
2 26 Feb 07 jari 288         changeSelectedFileFilterAndLoader(11);
2 26 Feb 07 jari 289         filetype.setText("CGH Files");
2 26 Feb 07 jari 290       }
2 26 Feb 07 jari 291     }
2 26 Feb 07 jari 292     });
2 26 Feb 07 jari 293     jItem.add(menuItem[3]);
2 26 Feb 07 jari 294     
2 26 Feb 07 jari 295     menuItem[4]= new JMenu("GEO Files");
2 26 Feb 07 jari 296     subMenuItem= new JMenuItem[2];
2 26 Feb 07 jari 297     subMenuItem[0]=new JMenuItem("GEO SOFT Affymetrix Format Files");
2 26 Feb 07 jari 298     subMenuItem[0].addActionListener(new ActionListener() {
2 26 Feb 07 jari 299       public void actionPerformed(ActionEvent event) {
2 26 Feb 07 jari 300         if(st=="Hint to File Format"){
2 26 Feb 07 jari 301           HelpWindowDialog hwd =new HelpWindowDialog(mainFrame,HelpWindowDialog.createText("GEOaffy"));
2 26 Feb 07 jari 302         }else{
2 26 Feb 07 jari 303         changeSelectedFileFilterAndLoader(8);
2 26 Feb 07 jari 304         filetype.setText("GEO SOFT Affymetrix Format Files");
2 26 Feb 07 jari 305       }
2 26 Feb 07 jari 306       }
2 26 Feb 07 jari 307     });
2 26 Feb 07 jari 308     menuItem[4].add(subMenuItem[0]);
2 26 Feb 07 jari 309     
2 26 Feb 07 jari 310     subMenuItem[1]=new JMenuItem("GEO SOFT Two Channel Format Files");
2 26 Feb 07 jari 311     subMenuItem[1].addActionListener(new ActionListener() {
2 26 Feb 07 jari 312       public void actionPerformed(ActionEvent event) {
2 26 Feb 07 jari 313         if(st=="Hint to File Format"){
2 26 Feb 07 jari 314           HelpWindowDialog hwd =new HelpWindowDialog(mainFrame,HelpWindowDialog.createText("GEOtwo"));
2 26 Feb 07 jari 315         }else{
2 26 Feb 07 jari 316         changeSelectedFileFilterAndLoader(9);
2 26 Feb 07 jari 317         filetype.setText("GEO SOFT Two Channel Format Files");
2 26 Feb 07 jari 318       }
2 26 Feb 07 jari 319     }
2 26 Feb 07 jari 320     });
2 26 Feb 07 jari 321     menuItem[4].add(subMenuItem[1]);
2 26 Feb 07 jari 322     
2 26 Feb 07 jari 323     jItem.add(menuItem[4]);
2 26 Feb 07 jari 324     
2 26 Feb 07 jari 325     menuItem[5]= new JMenu("Other Format Files");
2 26 Feb 07 jari 326     
2 26 Feb 07 jari 327     subMenuItem= new JMenuItem[2];
2 26 Feb 07 jari 328     subMenuItem[0]=new JMenuItem("GenePix Format Files");
2 26 Feb 07 jari 329     subMenuItem[0].addActionListener(new ActionListener() {
2 26 Feb 07 jari 330       public void actionPerformed(ActionEvent event) {
2 26 Feb 07 jari 331         if(st=="Hint to File Format"){
2 26 Feb 07 jari 332           HelpWindowDialog hwd =new HelpWindowDialog(mainFrame,HelpWindowDialog.createText("GenePix"));
2 26 Feb 07 jari 333         }else{
2 26 Feb 07 jari 334         changeSelectedFileFilterAndLoader(3);
2 26 Feb 07 jari 335         filetype.setText("GenePix Format Files");
2 26 Feb 07 jari 336       }
2 26 Feb 07 jari 337     }
2 26 Feb 07 jari 338     });
2 26 Feb 07 jari 339     menuItem[5].add(subMenuItem[0]);
2 26 Feb 07 jari 340     
2 26 Feb 07 jari 341     subMenuItem[1]=new JMenuItem("Agilent Format Files");
2 26 Feb 07 jari 342     subMenuItem[1].addActionListener(new ActionListener() {
2 26 Feb 07 jari 343       public void actionPerformed(ActionEvent event) {
2 26 Feb 07 jari 344         if(st=="Hint to File Format"){
2 26 Feb 07 jari 345           HelpWindowDialog hwd =new HelpWindowDialog(mainFrame,HelpWindowDialog.createText("Agilent"));
2 26 Feb 07 jari 346         }else{
2 26 Feb 07 jari 347         changeSelectedFileFilterAndLoader(4);
2 26 Feb 07 jari 348         filetype.setText("Agilent Format Files");
2 26 Feb 07 jari 349       }
2 26 Feb 07 jari 350     }
2 26 Feb 07 jari 351     });
2 26 Feb 07 jari 352     menuItem[5].add(subMenuItem[1]);
2 26 Feb 07 jari 353     
2 26 Feb 07 jari 354     jItem.add(menuItem[5]);
2 26 Feb 07 jari 355     
2 26 Feb 07 jari 356   }
2 26 Feb 07 jari 357   public void initializeGUI() {
2 26 Feb 07 jari 358     gba = new GBA();
2 26 Feb 07 jari 359     eventListener = new EventListener();
2 26 Feb 07 jari 360
2 26 Feb 07 jari 361     mainFrame = new JFrame("Expression File Loader");
2 26 Feb 07 jari 362     mainFrame.getContentPane().setLayout(new GridBagLayout());
2 26 Feb 07 jari 363
2 26 Feb 07 jari 364     menuBar = new JMenuBar();
2 26 Feb 07 jari 365     
2 26 Feb 07 jari 366     menu1 = new JMenu("Select");
2 26 Feb 07 jari 367     menu1.setMnemonic(KeyEvent.VK_S);
2 26 Feb 07 jari 368     menuItem(menu1,"Select Expression File Type");
2 26 Feb 07 jari 369     menuBar.add(menu1);
2 26 Feb 07 jari 370     
2 26 Feb 07 jari 371     menu2 = new JMenu("File Format Descriptions");
2 26 Feb 07 jari 372     menu1.setMnemonic(KeyEvent.VK_H);
2 26 Feb 07 jari 373     menuItem(menu2,"File Format Hint");
2 26 Feb 07 jari 374     menuBar.add(menu2);
2 26 Feb 07 jari 375     menuBar.setBorderPainted(true);
2 26 Feb 07 jari 376     mainFrame.setJMenuBar(menuBar);
2 26 Feb 07 jari 377     
2 26 Feb 07 jari 378     //HeaderImagePanel header = new HeaderImagePanel();
2 26 Feb 07 jari 379     fileFilterLabel = new JLabel("Selected File Type:");
2 26 Feb 07 jari 380     filetype=new JTextField("Default: MeV Files (*.mev and *.ann)");
2 26 Feb 07 jari 381     filetype.setEditable(false);
2 26 Feb 07 jari 382     fileFilterPanel = new JPanel();
2 26 Feb 07 jari 383     fileFilterPanel.setLayout(new GridBagLayout());
2 26 Feb 07 jari 384     //gba.add(fileFilterPanel, menuBar, 0, 0, 1, 1, 0, 0, GBA.H,
2 26 Feb 07 jari 385       //  GBA.NE, new Insets(5, 5, 5, 5), 0, 0);
2 26 Feb 07 jari 386     gba.add(fileFilterPanel, fileFilterLabel, 0, 0, 1, 1, 0, 0, GBA.H,
2 26 Feb 07 jari 387         GBA.E, new Insets(5, 5, 5, 5), 0, 0);
2 26 Feb 07 jari 388     gba.add(fileFilterPanel, filetype, 1, 0, 1, 1, 1, 0, GBA.H,
2 26 Feb 07 jari 389         GBA.E, new Insets(5, 5, 5, 5), 0, 0);
2 26 Feb 07 jari 390     fileLoaderPanel = selectedFileLoader.getFileLoaderPanel();
2 26 Feb 07 jari 391     fileLoaderPanel.setSize(new Dimension(600, 600));
2 26 Feb 07 jari 392     fileLoaderPanel.setPreferredSize(new Dimension(600, 600));
2 26 Feb 07 jari 393
7 24 Aug 07 jari 394     infoButton = new JButton(null,
7 24 Aug 07 jari 395                              new ImageIcon(this.getClass().getClassLoader().getResource("org/tigr/images/Information24.gif")));
2 26 Feb 07 jari 396     infoButton.setActionCommand("info-command");
2 26 Feb 07 jari 397     infoButton.addActionListener(eventListener);
2 26 Feb 07 jari 398     infoButton.setFocusPainted(false);
2 26 Feb 07 jari 399     infoButton.setBorder(BorderFactory
2 26 Feb 07 jari 400         .createBevelBorder(BevelBorder.RAISED));
2 26 Feb 07 jari 401     cancelButton = new JButton("Cancel");
2 26 Feb 07 jari 402     cancelButton.addActionListener(eventListener);
2 26 Feb 07 jari 403     cancelButton.setBorder(BorderFactory
2 26 Feb 07 jari 404         .createBevelBorder(BevelBorder.RAISED));
2 26 Feb 07 jari 405     cancelButton.setSize(60, 30);
2 26 Feb 07 jari 406     cancelButton.setPreferredSize(new Dimension(60, 30));
2 26 Feb 07 jari 407     cancelButton.setFocusPainted(false);
2 26 Feb 07 jari 408     loadButton = new JButton("Load");
2 26 Feb 07 jari 409     loadButton.addActionListener(eventListener);
2 26 Feb 07 jari 410     loadButton.setBorder(BorderFactory.createBevelBorder(
2 26 Feb 07 jari 411         BevelBorder.RAISED, new Color(240, 240, 240), new Color(180,
2 26 Feb 07 jari 412             180, 180), new Color(10, 0, 0), new Color(10, 10, 10)));
2 26 Feb 07 jari 413     loadButton.setSize(60, 30);
2 26 Feb 07 jari 414     loadButton.setPreferredSize(new Dimension(60, 30));
2 26 Feb 07 jari 415     loadButton.setFocusPainted(false);
2 26 Feb 07 jari 416     loadButton.setEnabled(false);
2 26 Feb 07 jari 417
2 26 Feb 07 jari 418     buttonPanel = new JPanel();
2 26 Feb 07 jari 419     buttonPanel.setLayout(new GridBagLayout());
2 26 Feb 07 jari 420     gba.add(buttonPanel, infoButton, 0, 0, 1, 1, 0, 0, GBA.N, GBA.C,
2 26 Feb 07 jari 421         new Insets(5, 5, 5, 5), 0, 0);
7 24 Aug 07 jari 422     gba.add(buttonPanel,
7 24 Aug 07 jari 423             new JLabel(new ImageIcon(this.getClass().getClassLoader().getResource("org/tigr/images/dialog_button_bar.gif"))),
7 24 Aug 07 jari 424             1, 0, 1, 1, 0, 0, GBA.H, GBA.C, new Insets(5, 5, 5, 5),  0, 0);
2 26 Feb 07 jari 425     gba.add(buttonPanel, cancelButton, 2, 0, 1, 1, 0, 0, GBA.N, GBA.C,
2 26 Feb 07 jari 426         new Insets(5, 5, 5, 5), 0, 0);
2 26 Feb 07 jari 427     gba.add(buttonPanel, loadButton, 3, 0, 1, 1, 0, 0, GBA.N, GBA.C,
2 26 Feb 07 jari 428         new Insets(5, 5, 5, 5), 0, 0);
2 26 Feb 07 jari 429
2 26 Feb 07 jari 430     //gba.add(mainFrame.getContentPane(), header, 0, 0, 1, 1, 1, 0, GBA.H,
2 26 Feb 07 jari 431       //  GBA.C);
2 26 Feb 07 jari 432     gba.add(mainFrame.getContentPane(), fileFilterPanel, 0, 0, 1, 1, 1, 1,
2 26 Feb 07 jari 433         GBA.B, GBA.C);
2 26 Feb 07 jari 434     gba.add(mainFrame.getContentPane(), fileLoaderPanel, 0, 1, 1, 3, 1, 1,
2 26 Feb 07 jari 435         GBA.B, GBA.C);
2 26 Feb 07 jari 436     gba.add(mainFrame.getContentPane(), buttonPanel, 0, 4, 1, 1, 1, 0,
2 26 Feb 07 jari 437         GBA.H, GBA.C);
2 26 Feb 07 jari 438
2 26 Feb 07 jari 439     mainFrame.setSize(1000, 780);
2 26 Feb 07 jari 440     Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
2 26 Feb 07 jari 441     mainFrame.setLocation(
2 26 Feb 07 jari 442         (screenSize.width - mainFrame.getSize().width) / 2,
2 26 Feb 07 jari 443         (screenSize.height - mainFrame.getSize().height) / 2);
2 26 Feb 07 jari 444     mainFrame.setVisible(true);
2 26 Feb 07 jari 445     selectedFileLoader.openDataPath();
2 26 Feb 07 jari 446   }
2 26 Feb 07 jari 447
2 26 Feb 07 jari 448   public void initializeDataPath() {
2 26 Feb 07 jari 449     String newPath = TMEV.getDataPath();
2 26 Feb 07 jari 450     newPath = (new File(newPath)).getPath();
2 26 Feb 07 jari 451
2 26 Feb 07 jari 452     if (newPath == null) {
2 26 Feb 07 jari 453       return;
2 26 Feb 07 jari 454     }
2 26 Feb 07 jari 455
2 26 Feb 07 jari 456     String sep = System.getProperty("file.separator");
2 26 Feb 07 jari 457
2 26 Feb 07 jari 458     // if Linux or Mac / goes in front of the path
2 26 Feb 07 jari 459     if (sep.equals("/"))
2 26 Feb 07 jari 460       newPath = sep + newPath;
2 26 Feb 07 jari 461
2 26 Feb 07 jari 462     File file = new File(newPath);
2 26 Feb 07 jari 463     if (file.exists()) {
2 26 Feb 07 jari 464       DATA_PATH = newPath;
2 26 Feb 07 jari 465     } else {
2 26 Feb 07 jari 466       file = TMEV.getFile("/data");
2 26 Feb 07 jari 467       if (file != null)
2 26 Feb 07 jari 468         DATA_PATH = file.getPath();
2 26 Feb 07 jari 469     }
2 26 Feb 07 jari 470   }
2 26 Feb 07 jari 471
2 26 Feb 07 jari 472   public void setLoadEnabled(boolean state) {
2 26 Feb 07 jari 473     loadButton.setEnabled(state);
2 26 Feb 07 jari 474   }
2 26 Feb 07 jari 475
2 26 Feb 07 jari 476   private ExpressionFileLoader getFileLoader(int target) {
2 26 Feb 07 jari 477
2 26 Feb 07 jari 478     ExpressionFileLoader loader;
2 26 Feb 07 jari 479     if (target >= 0 && target < fileLoaders.length
2 26 Feb 07 jari 480         && fileLoaders[target] != null) {
2 26 Feb 07 jari 481       return fileLoaders[target];
2 26 Feb 07 jari 482     }
2 26 Feb 07 jari 483
2 26 Feb 07 jari 484     switch (target) {
2 26 Feb 07 jari 485     case 0:
2 26 Feb 07 jari 486       loader = fileLoaders[0];
2 26 Feb 07 jari 487       break;
2 26 Feb 07 jari 488     case 1:
2 26 Feb 07 jari 489       loader = new StanfordFileLoader(this);
2 26 Feb 07 jari 490       break;
2 26 Feb 07 jari 491     case 2:
2 26 Feb 07 jari 492       loader = new TavFileLoader(this);
2 26 Feb 07 jari 493       break;
2 26 Feb 07 jari 494     case 3:
2 26 Feb 07 jari 495       loader = new GenePixFileLoader(this);
2 26 Feb 07 jari 496       break;
2 26 Feb 07 jari 497     case 4:
2 26 Feb 07 jari 498       loader = new AgilentMevFileLoader(this);
2 26 Feb 07 jari 499       break;
2 26 Feb 07 jari 500     case 5:
2 26 Feb 07 jari 501       loader = new Mas5FileLoader(this);
2 26 Feb 07 jari 502       break;
2 26 Feb 07 jari 503     
2 26 Feb 07 jari 504     case 6: 
2 26 Feb 07 jari 505       loader = new AffymetrixFileLoader(this);
2 26 Feb 07 jari 506       break;
2 26 Feb 07 jari 507     
2 26 Feb 07 jari 508     case 7:
2 26 Feb 07 jari 509       loader = new AffyGCOSFileLoader(this);
2 26 Feb 07 jari 510       break;  
2 26 Feb 07 jari 511     case 8:
2 26 Feb 07 jari 512       loader = new SOFT_AffyFileLoader(this);
2 26 Feb 07 jari 513       break;    
2 26 Feb 07 jari 514     case 9:
2 26 Feb 07 jari 515       loader = new SOFT_TwoChannelFileLoader(this);
2 26 Feb 07 jari 516       break;  
2 26 Feb 07 jari 517     case 10:
2 26 Feb 07 jari 518       loader = new DFCI_CoreFileLoader(this);
2 26 Feb 07 jari 519       break;  
2 26 Feb 07 jari 520     case 11:
2 26 Feb 07 jari 521             loader = new CGHStanfordFileLoader(this); /* Raktim, for CGH Loader */
2 26 Feb 07 jari 522             break;
2 26 Feb 07 jari 523     default:
2 26 Feb 07 jari 524       loader = new MevFileLoader(this);
2 26 Feb 07 jari 525       break;
2 26 Feb 07 jari 526     }
2 26 Feb 07 jari 527     fileLoaders[target] = loader;
2 26 Feb 07 jari 528     return loader;
2 26 Feb 07 jari 529   }
2 26 Feb 07 jari 530
2 26 Feb 07 jari 531   public void changeSelectedFileFilterAndLoader(int target) {
2 26 Feb 07 jari 532
2 26 Feb 07 jari 533     if (target < 0 || target >= fileLoaders.length
2 26 Feb 07 jari 534         || target >= fileFilters.length)
2 26 Feb 07 jari 535       return;
2 26 Feb 07 jari 536
2 26 Feb 07 jari 537     selectedFileLoader = getFileLoader(target);
2 26 Feb 07 jari 538     this.mainFrame.toFront();
2 26 Feb 07 jari 539     fileFilters[target] = selectedFileLoader.getFileFilter();
2 26 Feb 07 jari 540     selectedFileFilter = fileFilters[target];
2 26 Feb 07 jari 541     loaderIndex = target;
2 26 Feb 07 jari 542     changeFileLoaderPanel(selectedFileLoader);
2 26 Feb 07 jari 543   }
2 26 Feb 07 jari 544
2 26 Feb 07 jari 545   public void changeFileLoaderPanel(ExpressionFileLoader targetFileLoader) {
2 26 Feb 07 jari 546
2 26 Feb 07 jari 547     Container cp = mainFrame.getContentPane();
2 26 Feb 07 jari 548
2 26 Feb 07 jari 549     cp.remove(fileLoaderPanel); // Remove the old fileLoaderPanel
2 26 Feb 07 jari 550     fileLoaderPanel = targetFileLoader.getFileLoaderPanel();
2 26 Feb 07 jari 551     gba.add(cp, fileLoaderPanel, 0, 1, 1, 3, 1, 1, GBA.B, GBA.C);
2 26 Feb 07 jari 552     checkLoadEnable();
2 26 Feb 07 jari 553     cp.validate();
2 26 Feb 07 jari 554     selectedFileLoader.openDataPath();
2 26 Feb 07 jari 555     cp.repaint();
2 26 Feb 07 jari 556   }
2 26 Feb 07 jari 557
2 26 Feb 07 jari 558   /*
2 26 Feb 07 jari 559    * Add the argument FileFilter to the FileFilter JComboBox
2 26 Feb 07 jari 560    */
2 26 Feb 07 jari 561   public void addFileFilter(FileFilter fileFilter) {
2 26 Feb 07 jari 562     if (fileFilter == null) {
2 26 Feb 07 jari 563       return;
2 26 Feb 07 jari 564     }
2 26 Feb 07 jari 565     fileFilterComboBox.addItem(fileFilter.getDescription());
2 26 Feb 07 jari 566   }
2 26 Feb 07 jari 567
2 26 Feb 07 jari 568   public void addFileFilters(FileFilter[] fileFilters) {
2 26 Feb 07 jari 569     for (int i = 0; i < fileFilters.length; i++) {
2 26 Feb 07 jari 570       fileFilterComboBox.addItem(getFileDescription(i));
2 26 Feb 07 jari 571     }
2 26 Feb 07 jari 572   }
2 26 Feb 07 jari 573
2 26 Feb 07 jari 574   public String getFileDescription(int target) {
2 26 Feb 07 jari 575     String desc;
2 26 Feb 07 jari 576     switch (target) {
2 26 Feb 07 jari 577     case 0:
2 26 Feb 07 jari 578       desc = "MeV Files (*.mev and *.ann)";
2 26 Feb 07 jari 579       break;
2 26 Feb 07 jari 580     case 1:
2 26 Feb 07 jari 581       desc = "Tab Delimited, Multiple Sample Files (TDMS) (*.*)";
2 26 Feb 07 jari 582       break;
2 26 Feb 07 jari 583     case 2:
2 26 Feb 07 jari 584       desc = "TIGR ArrayViewer Files (*.tav)";
2 26 Feb 07 jari 585       break;
2 26 Feb 07 jari 586     case 3:
2 26 Feb 07 jari 587       desc = "GenePix Files (*.*)";
2 26 Feb 07 jari 588       break;
2 26 Feb 07 jari 589     case 4:
2 26 Feb 07 jari 590       desc = "Agilent Files (*.*)";
2 26 Feb 07 jari 591       break;
2 26 Feb 07 jari 592     case 5:
2 26 Feb 07 jari 593       desc = "Bioconductor(using MAS5) Files(*.*)";
2 26 Feb 07 jari 594       break;
2 26 Feb 07 jari 595       
2 26 Feb 07 jari 596     case 6:
2 26 Feb 07 jari 597       desc = "Affymetrix Files (*.*)";
2 26 Feb 07 jari 598       break;
2 26 Feb 07 jari 599           
2 26 Feb 07 jari 600     case 7:
2 26 Feb 07 jari 601       desc = "Affymetrix GCOS(using MAS5) Files (*.*)";
2 26 Feb 07 jari 602       break;  
2 26 Feb 07 jari 603     case 8:
2 26 Feb 07 jari 604       desc = "GEO SOFT Affymetrix Format Files (*.*)";
2 26 Feb 07 jari 605       break;
2 26 Feb 07 jari 606     case 9:
2 26 Feb 07 jari 607       desc = "GEO SOFT Two Channel Format Files (*.*)";
2 26 Feb 07 jari 608       break;    
2 26 Feb 07 jari 609     case 10:
2 26 Feb 07 jari 610       desc = "dChip/DFCI_Core Format Files (*.*)";
2 26 Feb 07 jari 611       break;      
2 26 Feb 07 jari 612         case 11:
2 26 Feb 07 jari 613             desc = "CGH Tab Delimited, Multiple Sample Files (*.*)"; /* Raktim, CGH Files */
2 26 Feb 07 jari 614             break;
2 26 Feb 07 jari 615     default:
2 26 Feb 07 jari 616       desc = "MeV Files (*.mev and *.ann)";
2 26 Feb 07 jari 617       break;
2 26 Feb 07 jari 618     }
2 26 Feb 07 jari 619     return desc;
2 26 Feb 07 jari 620   }
2 26 Feb 07 jari 621
2 26 Feb 07 jari 622   public void checkLoadEnable() {
2 26 Feb 07 jari 623     selectedFileLoader.checkLoadEnable();
2 26 Feb 07 jari 624   }
2 26 Feb 07 jari 625
2 26 Feb 07 jari 626   public void onInfo() {
2 26 Feb 07 jari 627     HelpWindow hw = new HelpWindow(SuperExpressionFileLoader.this
2 26 Feb 07 jari 628         .getFrame(), "File Loader");
2 26 Feb 07 jari 629     if (hw.getWindowContent()) {
2 26 Feb 07 jari 630       hw.setSize(450, 650);
2 26 Feb 07 jari 631       hw.setLocation();
2 26 Feb 07 jari 632       hw.show();
2 26 Feb 07 jari 633     } else {
2 26 Feb 07 jari 634       hw.setVisible(false);
2 26 Feb 07 jari 635       hw.dispose();
2 26 Feb 07 jari 636     }
2 26 Feb 07 jari 637   }
2 26 Feb 07 jari 638
2 26 Feb 07 jari 639   public void onCancel() {
2 26 Feb 07 jari 640     clean();
2 26 Feb 07 jari 641   }
2 26 Feb 07 jari 642
2 26 Feb 07 jari 643   public void onLoad() {
2 26 Feb 07 jari 644     this.clean();
2 26 Feb 07 jari 645
2 26 Feb 07 jari 646     Thread thread = new Thread(new Loader());
2 26 Feb 07 jari 647     thread.setPriority(Thread.NORM_PRIORITY);
2 26 Feb 07 jari 648     thread.start();
2 26 Feb 07 jari 649     selectedFileLoader.showModal();
2 26 Feb 07 jari 650   }
2 26 Feb 07 jari 651
2 26 Feb 07 jari 652   public void clean() {
2 26 Feb 07 jari 653     mainFrame.dispose();
2 26 Feb 07 jari 654     // More to clean up?
2 26 Feb 07 jari 655   }
2 26 Feb 07 jari 656
2 26 Feb 07 jari 657   public JFrame getFrame() {
2 26 Feb 07 jari 658     return this.viewer.getFrame();
2 26 Feb 07 jari 659   }
2 26 Feb 07 jari 660
2 26 Feb 07 jari 661   public MultipleArrayViewer getArrayViewer() {
2 26 Feb 07 jari 662     return this.viewer;
2 26 Feb 07 jari 663   }
2 26 Feb 07 jari 664
2 26 Feb 07 jari 665   public static void main(String[] args) {
2 26 Feb 07 jari 666     SuperExpressionFileLoader loader = new SuperExpressionFileLoader();
2 26 Feb 07 jari 667   }
2 26 Feb 07 jari 668
2 26 Feb 07 jari 669   private ISlideData[] toISlideDataArray(Vector dataVector) {
2 26 Feb 07 jari 670     if (dataVector == null || dataVector.size() < 1)
2 26 Feb 07 jari 671       return null;
2 26 Feb 07 jari 672     ISlideData[] data = new ISlideData[dataVector.size()];
2 26 Feb 07 jari 673     for (int i = 0; i < data.length; i++) {
2 26 Feb 07 jari 674       data[i] = (ISlideData) (dataVector.elementAt(i));
2 26 Feb 07 jari 675     }
2 26 Feb 07 jari 676     return data;
2 26 Feb 07 jari 677   }
2 26 Feb 07 jari 678
2 26 Feb 07 jari 679   private void updateDataPath(String dataPath) {
2 26 Feb 07 jari 680     if (dataPath == null)
2 26 Feb 07 jari 681       return;
2 26 Feb 07 jari 682     String renderedSep = "/";
2 26 Feb 07 jari 683     String renderedPath = new String();
2 26 Feb 07 jari 684
2 26 Feb 07 jari 685     String sep = System.getProperty("file.separator");
2 26 Feb 07 jari 686     String lineSep = System.getProperty("line.separator");
2 26 Feb 07 jari 687
2 26 Feb 07 jari 688     StringTokenizer stok = new StringTokenizer(dataPath, sep);
2 26 Feb 07 jari 689
2 26 Feb 07 jari 690     DATA_PATH = new String();
2 26 Feb 07 jari 691
2 26 Feb 07 jari 692     String str;
2 26 Feb 07 jari 693     while (stok.hasMoreTokens() && stok.countTokens() > 1) {
2 26 Feb 07 jari 694       str = stok.nextToken();
2 26 Feb 07 jari 695       renderedPath += str + renderedSep;
2 26 Feb 07 jari 696       DATA_PATH += str + sep;
2 26 Feb 07 jari 697     }
2 26 Feb 07 jari 698     // sets the data path in config to render well
2 26 Feb 07 jari 699     TMEV.updateDataPath(renderedPath);
2 26 Feb 07 jari 700
2 26 Feb 07 jari 701     // sets variable to conform to OS spec.
2 26 Feb 07 jari 702     TMEV.setDataPath(DATA_PATH);
2 26 Feb 07 jari 703   }
2 26 Feb 07 jari 704
2 26 Feb 07 jari 705   /*
2 26 Feb 07 jari 706    * 
2 26 Feb 07 jari 707    * Member Classes
2 26 Feb 07 jari 708    * 
2 26 Feb 07 jari 709    */
2 26 Feb 07 jari 710
2 26 Feb 07 jari 711   private class EventListener implements ActionListener {
2 26 Feb 07 jari 712     public void actionPerformed(ActionEvent event) {
2 26 Feb 07 jari 713       Object source = event.getSource();
2 26 Feb 07 jari 714       if (source == infoButton) {
2 26 Feb 07 jari 715         onInfo();
2 26 Feb 07 jari 716       } else if (source == cancelButton) {
2 26 Feb 07 jari 717         onCancel();
2 26 Feb 07 jari 718       } else if (source == loadButton) {
2 26 Feb 07 jari 719         onLoad();
2 26 Feb 07 jari 720       }
2 26 Feb 07 jari 721     }
2 26 Feb 07 jari 722   }
2 26 Feb 07 jari 723
2 26 Feb 07 jari 724   /**
2 26 Feb 07 jari 725    * The class to allow run loading process in a separate thread.
2 26 Feb 07 jari 726    */
2 26 Feb 07 jari 727   private class Loader implements Runnable {
2 26 Feb 07 jari 728
2 26 Feb 07 jari 729     public Loader() {
2 26 Feb 07 jari 730     }
2 26 Feb 07 jari 731
2 26 Feb 07 jari 732     public void run() {
2 26 Feb 07 jari 733       Vector data = null;
2 26 Feb 07 jari 734       int dataType = 0;
2 26 Feb 07 jari 735       try {
2 26 Feb 07 jari 736         selectedFileLoader.showModal();
2 26 Feb 07 jari 737         data = selectedFileLoader.loadExpressionFiles();
2 26 Feb 07 jari 738         if (loaderIndex == 1 || loaderIndex == 9 || loaderIndex == 11) /* Raktim, added check for 11, CGH Data */
2 26 Feb 07 jari 739           dataType = IData.DATA_TYPE_RATIO_ONLY;
2 26 Feb 07 jari 740         else if(loaderIndex == 5){
2 26 Feb 07 jari 741           dataType = ((Mas5FileLoader)selectedFileLoader)
2 26 Feb 07 jari 742           .getAffyDataType();
2 26 Feb 07 jari 743         }
2 26 Feb 07 jari 744         
2 26 Feb 07 jari 745         else if (loaderIndex == 6) {
2 26 Feb 07 jari 746           dataType = ((AffymetrixFileLoader) selectedFileLoader)
2 26 Feb 07 jari 747               .getAffyDataType();
2 26 Feb 07 jari 748         }
2 26 Feb 07 jari 749         else if (loaderIndex == 7) {
2 26 Feb 07 jari 750           dataType = ((AffyGCOSFileLoader) selectedFileLoader)
2 26 Feb 07 jari 751               .getAffyDataType();
2 26 Feb 07 jari 752         }else if (loaderIndex == 8) {
2 26 Feb 07 jari 753           dataType = ((SOFT_AffyFileLoader) selectedFileLoader)
2 26 Feb 07 jari 754               .getAffyDataType();
2 26 Feb 07 jari 755         }else if (loaderIndex == 10) {
2 26 Feb 07 jari 756           dataType = ((DFCI_CoreFileLoader) selectedFileLoader)
2 26 Feb 07 jari 757           .getAffyDataType();  
2 26 Feb 07 jari 758         }else 
2 26 Feb 07 jari 759           dataType = IData.DATA_TYPE_TWO_INTENSITY;
2 26 Feb 07 jari 760         selectedFileLoader.dispose();
2 26 Feb 07 jari 761         updateDataPath(selectedFileLoader.getFilePath());
2 26 Feb 07 jari 762         if (data != null) {
2 26 Feb 07 jari 763           viewer.fireDataLoaded(toISlideDataArray(data), dataType);          
2 26 Feb 07 jari 764         }
2 26 Feb 07 jari 765       } catch (Exception ioe) {
2 26 Feb 07 jari 766         ioe.printStackTrace();
2 26 Feb 07 jari 767       }
2 26 Feb 07 jari 768     }
2 26 Feb 07 jari 769   }
2 26 Feb 07 jari 770
2 26 Feb 07 jari 771   public class HeaderImagePanel extends JPanel {
2 26 Feb 07 jari 772
2 26 Feb 07 jari 773     public HeaderImagePanel() {
2 26 Feb 07 jari 774       setLayout(new GridBagLayout());
2 26 Feb 07 jari 775       JLabel iconLabel = new JLabel(
2 26 Feb 07 jari 776           new ImageIcon(
2 26 Feb 07 jari 777               Toolkit
2 26 Feb 07 jari 778                   .getDefaultToolkit()
2 26 Feb 07 jari 779                   .getImage(
2 26 Feb 07 jari 780                       ClassLoader
2 26 Feb 07 jari 781                           .getSystemResource("org/tigr/images/dialog_banner2.gif"))));
2 26 Feb 07 jari 782       iconLabel.setOpaque(false);
2 26 Feb 07 jari 783       iconLabel.setAlignmentX(JLabel.LEFT_ALIGNMENT);
2 26 Feb 07 jari 784       FillPanel fillPanel = new FillPanel();
2 26 Feb 07 jari 785       fillPanel.setBackground(Color.blue);
2 26 Feb 07 jari 786       add(iconLabel, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0,
2 26 Feb 07 jari 787           GridBagConstraints.WEST, GridBagConstraints.BOTH,
2 26 Feb 07 jari 788           new Insets(0, 5, 0, 0), 0, 0));
2 26 Feb 07 jari 789       add(fillPanel, new GridBagConstraints(1, 0, 1, 1, 1.0, 0.0,
2 26 Feb 07 jari 790           GridBagConstraints.CENTER, GridBagConstraints.BOTH,
2 26 Feb 07 jari 791           new Insets(0, 0, 0, 0), 0, 0));
2 26 Feb 07 jari 792     }
2 26 Feb 07 jari 793
2 26 Feb 07 jari 794   }
2 26 Feb 07 jari 795
2 26 Feb 07 jari 796   public class FillPanel extends JPanel {
2 26 Feb 07 jari 797     GradientPaint gp;
2 26 Feb 07 jari 798
2 26 Feb 07 jari 799     Color backgroundColor = new Color(25, 25, 169);
2 26 Feb 07 jari 800
2 26 Feb 07 jari 801     Color fadeColor = new Color(140, 220, 240);
2 26 Feb 07 jari 802
2 26 Feb 07 jari 803     public void paint(Graphics g) {
2 26 Feb 07 jari 804       super.paint(g);
2 26 Feb 07 jari 805       Graphics2D g2 = (Graphics2D) g;
2 26 Feb 07 jari 806       Dimension dim = this.getSize();
2 26 Feb 07 jari 807       // gp = new
2 26 Feb 07 jari 808       // GradientPaint(dim.width/2,0,backgroundColor,dim.width/2,dim.height/2,fadeColor);
2 26 Feb 07 jari 809       gp = new GradientPaint(0, dim.height / 2, backgroundColor,
2 26 Feb 07 jari 810           dim.width, dim.height / 2, fadeColor);
2 26 Feb 07 jari 811       g2.setPaint(gp);
2 26 Feb 07 jari 812       g2.fillRect(0, 0, dim.width, dim.height);
2 26 Feb 07 jari 813       g2.setColor(Color.black);
2 26 Feb 07 jari 814     }
2 26 Feb 07 jari 815   }
2 26 Feb 07 jari 816 }