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

Code
Comments
Other
Rev Date Author Line
2 26 Feb 07 jari 1 /*
2 26 Feb 07 jari 2  * Created on Jun 18, 2004
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.Frame;
2 26 Feb 07 jari 7 import java.awt.event.ActionEvent;
2 26 Feb 07 jari 8 import java.awt.event.ActionListener;
2 26 Feb 07 jari 9 import java.awt.event.MouseAdapter;
2 26 Feb 07 jari 10 import java.awt.event.MouseEvent;
2 26 Feb 07 jari 11
2 26 Feb 07 jari 12 import javax.swing.JOptionPane;
2 26 Feb 07 jari 13 import javax.swing.JPopupMenu;
2 26 Feb 07 jari 14
2 26 Feb 07 jari 15 import org.tigr.microarray.mev.cluster.gui.Experiment;
2 26 Feb 07 jari 16 import org.tigr.microarray.mev.cluster.gui.helpers.ExperimentClusterViewer;
2 26 Feb 07 jari 17
2 26 Feb 07 jari 18 /**
2 26 Feb 07 jari 19  * @author vu
2 26 Feb 07 jari 20  */
2 26 Feb 07 jari 21 public class USCExperimentClusterViewer extends ExperimentClusterViewer {
2 26 Feb 07 jari 22   private JPopupMenu popup;
2 26 Feb 07 jari 23   
2 26 Feb 07 jari 24
2 26 Feb 07 jari 25   /**
2 26 Feb 07 jari 26    * @param experiment
2 26 Feb 07 jari 27    * @param clusters
2 26 Feb 07 jari 28    * @param centroidName
2 26 Feb 07 jari 29    * @param centroids
2 26 Feb 07 jari 30    */
2 26 Feb 07 jari 31   public USCExperimentClusterViewer(Experiment experiment, int[][] clusters, String centroidName, float[][] centroids) {
2 26 Feb 07 jari 32     super(experiment, clusters, centroidName, centroids);
2 26 Feb 07 jari 33     Listener listener = new Listener();
2 26 Feb 07 jari 34     this.popup = createJPopupMenu(listener);
2 26 Feb 07 jari 35     getContentComponent().addMouseListener(listener);
2 26 Feb 07 jari 36     getHeaderComponent().addMouseListener(listener);
2 26 Feb 07 jari 37   }//end constructor
2 26 Feb 07 jari 38   
2 26 Feb 07 jari 39   
2 26 Feb 07 jari 40   public USCExperimentClusterViewer( Experiment experiment, int[][] clusters ) {
2 26 Feb 07 jari 41     super( experiment, clusters );
2 26 Feb 07 jari 42     Listener listener = new Listener();
2 26 Feb 07 jari 43     this.popup = createJPopupMenu( listener );
2 26 Feb 07 jari 44     this.getContentComponent().addMouseListener( listener );
2 26 Feb 07 jari 45     this.getHeaderComponent().addMouseListener( listener );
2 26 Feb 07 jari 46   }
2 26 Feb 07 jari 47     /**
2 26 Feb 07 jari 48      * @inheritDoc
2 26 Feb 07 jari 49      */
2 26 Feb 07 jari 50     public USCExperimentClusterViewer(Experiment e, int[][] clusters, int[] genesOrder, Boolean drawAnnotations, 
2 26 Feb 07 jari 51         Integer offset){
2 26 Feb 07 jari 52         super(e, clusters, genesOrder, drawAnnotations, offset);
2 26 Feb 07 jari 53         Listener listener = new Listener();
2 26 Feb 07 jari 54         this.popup = createJPopupMenu( listener );
2 26 Feb 07 jari 55         this.getContentComponent().addMouseListener( listener );
2 26 Feb 07 jari 56         this.getHeaderComponent().addMouseListener( listener );
2 26 Feb 07 jari 57     }
2 26 Feb 07 jari 58   
2 26 Feb 07 jari 59   /**
2 26 Feb 07 jari 60    * @param listener
2 26 Feb 07 jari 61    * @return
2 26 Feb 07 jari 62    */
2 26 Feb 07 jari 63   private JPopupMenu createJPopupMenu(Listener listener) {
2 26 Feb 07 jari 64     JPopupMenu popup = new JPopupMenu();
2 26 Feb 07 jari 65     addMenuItems(popup, listener);
2 26 Feb 07 jari 66     return popup;
2 26 Feb 07 jari 67   }
2 26 Feb 07 jari 68     
2 26 Feb 07 jari 69     
2 26 Feb 07 jari 70     /**
2 26 Feb 07 jari 71      * Saves clusters.
2 26 Feb 07 jari 72      */
2 26 Feb 07 jari 73     private void onSaveClusters() {
2 26 Feb 07 jari 74     Frame frame = JOptionPane.getFrameForComponent(getContentComponent());
2 26 Feb 07 jari 75     try {
2 26 Feb 07 jari 76         saveClusters(frame);
2 26 Feb 07 jari 77     } catch (Exception e) {
2 26 Feb 07 jari 78         JOptionPane.showMessageDialog(frame, "Can not save clusters!", e.toString(), JOptionPane.ERROR_MESSAGE);
2 26 Feb 07 jari 79         e.printStackTrace();
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      * Save the viewer cluster.
2 26 Feb 07 jari 85      */
2 26 Feb 07 jari 86     private void onSaveCluster() {
2 26 Feb 07 jari 87     Frame frame = JOptionPane.getFrameForComponent(getContentComponent());
2 26 Feb 07 jari 88     try {
2 26 Feb 07 jari 89         saveCluster(frame);
2 26 Feb 07 jari 90     } catch (Exception e) {
2 26 Feb 07 jari 91         JOptionPane.showMessageDialog(frame, "Can not save cluster!", e.toString(), JOptionPane.ERROR_MESSAGE);
2 26 Feb 07 jari 92         e.printStackTrace();
2 26 Feb 07 jari 93     }
2 26 Feb 07 jari 94     }
2 26 Feb 07 jari 95
2 26 Feb 07 jari 96   /**
2 26 Feb 07 jari 97    * The class to listen to mouse and action events.
2 26 Feb 07 jari 98    */
2 26 Feb 07 jari 99   private class Listener extends MouseAdapter implements ActionListener {
2 26 Feb 07 jari 100     public void actionPerformed(ActionEvent e) {
2 26 Feb 07 jari 101       String command = e.getActionCommand();
2 26 Feb 07 jari 102       if (command.equals(SAVE_CLUSTER_CMD)) {
2 26 Feb 07 jari 103         onSaveCluster();
2 26 Feb 07 jari 104       } else if (command.equals(SAVE_ALL_CLUSTERS_CMD)) {
2 26 Feb 07 jari 105         onSaveClusters();
2 26 Feb 07 jari 106       } else if (command.equals(SET_DEF_COLOR_CMD)) {
2 26 Feb 07 jari 107         //onSetDefaultColor();
2 26 Feb 07 jari 108       } else if (command.equals(STORE_CLUSTER_CMD)) {
2 26 Feb 07 jari 109         storeCluster();
2 26 Feb 07 jari 110       } else if(command.equals(LAUNCH_NEW_SESSION_CMD)){
2 26 Feb 07 jari 111         launchNewSession();
2 26 Feb 07 jari 112       }
2 26 Feb 07 jari 113     }
2 26 Feb 07 jari 114     
2 26 Feb 07 jari 115     public void mouseReleased(MouseEvent event) {
2 26 Feb 07 jari 116       maybeShowPopup(event);
2 26 Feb 07 jari 117     }
2 26 Feb 07 jari 118     
2 26 Feb 07 jari 119     public void mousePressed(MouseEvent event) {
2 26 Feb 07 jari 120       maybeShowPopup(event);
2 26 Feb 07 jari 121     }
2 26 Feb 07 jari 122     
2 26 Feb 07 jari 123     private void maybeShowPopup(MouseEvent e) {      
2 26 Feb 07 jari 124       if (!e.isPopupTrigger() || getCluster() == null || getCluster().length == 0) {
2 26 Feb 07 jari 125         return;
2 26 Feb 07 jari 126       }
2 26 Feb 07 jari 127       popup.show(e.getComponent(), e.getX(), e.getY());
2 26 Feb 07 jari 128     }
2 26 Feb 07 jari 129   }//end Listener class
2 26 Feb 07 jari 130   
2 26 Feb 07 jari 131   
2 26 Feb 07 jari 132   
2 26 Feb 07 jari 133 }//end class