mev-4.0.01/source/org/tigr/microarray/mev/script/scriptGUI/ScriptTable.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  * ScriptTable.java
2 26 Feb 07 jari 7  *
2 26 Feb 07 jari 8  * Created on February 28, 2004, 12:18 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.event.ActionListener;
2 26 Feb 07 jari 15 import java.awt.event.MouseAdapter;
2 26 Feb 07 jari 16 import java.awt.event.MouseEvent;
2 26 Feb 07 jari 17 import java.util.Vector;
2 26 Feb 07 jari 18
2 26 Feb 07 jari 19 import javax.swing.JComponent;
2 26 Feb 07 jari 20 import javax.swing.JMenuItem;
2 26 Feb 07 jari 21 import javax.swing.JPopupMenu;
2 26 Feb 07 jari 22 import javax.swing.JTable;
2 26 Feb 07 jari 23 import javax.swing.table.AbstractTableModel;
2 26 Feb 07 jari 24
2 26 Feb 07 jari 25 import org.tigr.microarray.mev.cluster.gui.impl.ViewerAdapter;
2 26 Feb 07 jari 26 import org.tigr.microarray.mev.script.Script;
2 26 Feb 07 jari 27 import org.tigr.microarray.mev.script.ScriptDocument;
2 26 Feb 07 jari 28 import org.tigr.microarray.mev.script.ScriptManager;
2 26 Feb 07 jari 29
2 26 Feb 07 jari 30 /**
2 26 Feb 07 jari 31  *
2 26 Feb 07 jari 32  * @author  braisted
2 26 Feb 07 jari 33  */
2 26 Feb 07 jari 34 public class ScriptTable extends ViewerAdapter {
2 26 Feb 07 jari 35     public static final long serialVersionUID = 1000102010301030001L;
2 26 Feb 07 jari 36     
2 26 Feb 07 jari 37     private JTable table;
2 26 Feb 07 jari 38     private Vector data;
2 26 Feb 07 jari 39     private ScriptDataModel dataModel;
2 26 Feb 07 jari 40     private ScriptManager manager;
2 26 Feb 07 jari 41     
2 26 Feb 07 jari 42     private JPopupMenu menu;
2 26 Feb 07 jari 43     
2 26 Feb 07 jari 44     /** Creates a new instance of ScriptTable
2 26 Feb 07 jari 45      * @param manager ScriptManager object to be used to control events in the table.
2 26 Feb 07 jari 46      * @param data Vector
2 26 Feb 07 jari 47      */
2 26 Feb 07 jari 48     public ScriptTable(ScriptManager manager, Vector data) {       
2 26 Feb 07 jari 49         this.manager = manager;
2 26 Feb 07 jari 50         dataModel = new ScriptDataModel(data, constructHeaderNames());
2 26 Feb 07 jari 51         table = new JTable(dataModel);  
2 26 Feb 07 jari 52         table.setBackground(Color.white);
2 26 Feb 07 jari 53         TableListener listener = new TableListener();
2 26 Feb 07 jari 54         menu = createPopupMenu(listener);
2 26 Feb 07 jari 55         table.addMouseListener(listener);
2 26 Feb 07 jari 56         table.setVisible(true);
2 26 Feb 07 jari 57     }
2 26 Feb 07 jari 58     
2 26 Feb 07 jari 59     private Vector constructHeaderNames() {
2 26 Feb 07 jari 60         Vector names = new Vector();
2 26 Feb 07 jari 61         names.add("Row");
2 26 Feb 07 jari 62         names.add("Script ID");
2 26 Feb 07 jari 63         names.add("File Name");
2 26 Feb 07 jari 64         names.add("Script Name");
2 26 Feb 07 jari 65         names.add("Script Description");
2 26 Feb 07 jari 66         return names;
2 26 Feb 07 jari 67     }
2 26 Feb 07 jari 68     
2 26 Feb 07 jari 69     private JPopupMenu createPopupMenu (TableListener listener) {
2 26 Feb 07 jari 70         JPopupMenu menu = new JPopupMenu();
2 26 Feb 07 jari 71         JMenuItem item;
2 26 Feb 07 jari 72         
2 26 Feb 07 jari 73         item = new JMenuItem("Exectute Script");
2 26 Feb 07 jari 74         item.setActionCommand("run-script-cmd");
2 26 Feb 07 jari 75         item.addActionListener(listener);
2 26 Feb 07 jari 76         menu.add(item);
2 26 Feb 07 jari 77         
2 26 Feb 07 jari 78         return menu;
2 26 Feb 07 jari 79     }
2 26 Feb 07 jari 80     
2 26 Feb 07 jari 81
2 26 Feb 07 jari 82     
2 26 Feb 07 jari 83     /**
2 26 Feb 07 jari 84      * @param doc  */    
2 26 Feb 07 jari 85     public void addScriptDoc(ScriptDocument doc) {
2 26 Feb 07 jari 86         data.add(doc);        
2 26 Feb 07 jari 87     }
2 26 Feb 07 jari 88     
2 26 Feb 07 jari 89     public void update() {
2 26 Feb 07 jari 90         
2 26 Feb 07 jari 91     }
2 26 Feb 07 jari 92     
2 26 Feb 07 jari 93     /** Returns the content component to MeV for viewing
2 26 Feb 07 jari 94      */    
2 26 Feb 07 jari 95     public JComponent getContentComponent() {
2 26 Feb 07 jari 96         return table;
2 26 Feb 07 jari 97     }
2 26 Feb 07 jari 98     
2 26 Feb 07 jari 99     /** Returns the header component to mev for viewing
2 26 Feb 07 jari 100      */    
2 26 Feb 07 jari 101     public JComponent getHeaderComponent() {
2 26 Feb 07 jari 102         return table.getTableHeader();
2 26 Feb 07 jari 103     }
2 26 Feb 07 jari 104     
2 26 Feb 07 jari 105     public class ScriptDataModel extends AbstractTableModel  implements java.io.Serializable {
2 26 Feb 07 jari 106
2 26 Feb 07 jari 107         Vector data;
2 26 Feb 07 jari 108         ScriptDocument currentDoc;
2 26 Feb 07 jari 109         Vector headerNames;
2 26 Feb 07 jari 110         
2 26 Feb 07 jari 111         public ScriptDataModel(Vector data, Vector header){ 
2 26 Feb 07 jari 112             this.data = data; 
2 26 Feb 07 jari 113             this.headerNames = header;
2 26 Feb 07 jari 114         }
2 26 Feb 07 jari 115         
2 26 Feb 07 jari 116         public Object getValueAt(int row, int column) {
2 26 Feb 07 jari 117            currentDoc = ((Script)(data.elementAt(row))).getScriptDocument();
2 26 Feb 07 jari 118            Object obj = new String(" "); 
2 26 Feb 07 jari 119            String temp;
2 26 Feb 07 jari 120            
2 26 Feb 07 jari 121            switch( column ){
2 26 Feb 07 jari 122                case 0 : {
2 26 Feb 07 jari 123                     obj = String.valueOf(row+1);
2 26 Feb 07 jari 124                     break;
2 26 Feb 07 jari 125                }
2 26 Feb 07 jari 126                case 1 : {
2 26 Feb 07 jari 127                     obj = new String("Script("+(currentDoc.getDocumentID())+")");
2 26 Feb 07 jari 128                     break;
2 26 Feb 07 jari 129                }
2 26 Feb 07 jari 130                case 2 :{
2 26 Feb 07 jari 131                    temp = currentDoc.getDocumentFileName();
2 26 Feb 07 jari 132                    if(temp == null)
2 26 Feb 07 jari 133                        obj = new String("New Script");
2 26 Feb 07 jari 134                    else
2 26 Feb 07 jari 135                         obj = temp; 
2 26 Feb 07 jari 136                    break;
2 26 Feb 07 jari 137                }
2 26 Feb 07 jari 138                case 3 : {
2 26 Feb 07 jari 139                     obj = currentDoc.getDocumentName();
2 26 Feb 07 jari 140                     break;
2 26 Feb 07 jari 141                }
2 26 Feb 07 jari 142                case 4 : {
2 26 Feb 07 jari 143                     obj = currentDoc.getDescription();
2 26 Feb 07 jari 144                     break;
2 26 Feb 07 jari 145                }                   
2 26 Feb 07 jari 146            }
2 26 Feb 07 jari 147            return obj;          
2 26 Feb 07 jari 148         } 
2 26 Feb 07 jari 149     public String getColumnName(int column) {
2 26 Feb 07 jari 150         return (String)headerNames.elementAt(column);
2 26 Feb 07 jari 151     }
2 26 Feb 07 jari 152     
2 26 Feb 07 jari 153         public int getColumnCount() {
2 26 Feb 07 jari 154             return this.headerNames.size();
2 26 Feb 07 jari 155     }
2 26 Feb 07 jari 156     
2 26 Feb 07 jari 157     public int getRowCount() {
2 26 Feb 07 jari 158         return this.data.size();
2 26 Feb 07 jari 159     }
2 26 Feb 07 jari 160     
2 26 Feb 07 jari 161     }
2 26 Feb 07 jari 162     
2 26 Feb 07 jari 163     public class TableListener extends MouseAdapter implements ActionListener  {
2 26 Feb 07 jari 164         public TableListener() {
2 26 Feb 07 jari 165         }
2 26 Feb 07 jari 166         
2 26 Feb 07 jari 167         public void actionPerformed(java.awt.event.ActionEvent ae) {
2 26 Feb 07 jari 168             String command = ae.getActionCommand();
2 26 Feb 07 jari 169             if(command.equals("run-script-cmd")) {
2 26 Feb 07 jari 170                 int row = table.getSelectedRow();
2 26 Feb 07 jari 171                 if(row > -1)
2 26 Feb 07 jari 172                     manager.runScript(row);
2 26 Feb 07 jari 173             }
2 26 Feb 07 jari 174         }
2 26 Feb 07 jari 175         
2 26 Feb 07 jari 176         public void mousePressed(MouseEvent me) {
2 26 Feb 07 jari 177             if(me.isPopupTrigger()) {
2 26 Feb 07 jari 178                 menu.show(table, me.getX(), me.getY());
2 26 Feb 07 jari 179             }
2 26 Feb 07 jari 180         }
2 26 Feb 07 jari 181         
2 26 Feb 07 jari 182         public void mouseClicked(MouseEvent me) {
2 26 Feb 07 jari 183             
2 26 Feb 07 jari 184         }
2 26 Feb 07 jari 185         
2 26 Feb 07 jari 186         public void mouseReleased(MouseEvent me) {
2 26 Feb 07 jari 187             if(me.isPopupTrigger()) {
2 26 Feb 07 jari 188                 menu.show(table, me.getX(), me.getY());                
2 26 Feb 07 jari 189             }
2 26 Feb 07 jari 190         }
2 26 Feb 07 jari 191         
2 26 Feb 07 jari 192     }
2 26 Feb 07 jari 193     
2 26 Feb 07 jari 194     
2 26 Feb 07 jari 195     
2 26 Feb 07 jari 196 }