mev-4.0.01/source/org/tigr/microarray/mev/cgh/CGHGuiObj/CGHBrowser/CGHBrowser.java

Code
Comments
Other
Rev Date Author Line
2 26 Feb 07 jari 1 /*
2 26 Feb 07 jari 2  * CGHBrowser.java
2 26 Feb 07 jari 3  *
2 26 Feb 07 jari 4  * Created on March 26, 2003, 2:17 AM
2 26 Feb 07 jari 5  */
2 26 Feb 07 jari 6
2 26 Feb 07 jari 7 package org.tigr.microarray.mev.cgh.CGHGuiObj.CGHBrowser;
2 26 Feb 07 jari 8
2 26 Feb 07 jari 9 import java.awt.event.ActionListener;
2 26 Feb 07 jari 10
2 26 Feb 07 jari 11 import javax.swing.AbstractAction;
2 26 Feb 07 jari 12 import javax.swing.Action;
2 26 Feb 07 jari 13 import javax.swing.ButtonGroup;
2 26 Feb 07 jari 14 import javax.swing.JMenuItem;
2 26 Feb 07 jari 15 import javax.swing.JOptionPane;
2 26 Feb 07 jari 16 import javax.swing.JRadioButtonMenuItem;
2 26 Feb 07 jari 17 import javax.swing.JTable;
2 26 Feb 07 jari 18
2 26 Feb 07 jari 19 import org.tigr.microarray.mev.cgh.CGHDataModel.CGHBrowserModelAdaptor;
2 26 Feb 07 jari 20 import org.tigr.microarray.mev.cgh.CGHDataModel.CGHChartDataModel;
2 26 Feb 07 jari 21 import org.tigr.microarray.mev.cgh.CGHDataModel.CGHTableDataModel;
2 26 Feb 07 jari 22 import org.tigr.microarray.mev.cgh.CGHDataObj.ICGHDataRegion;
2 26 Feb 07 jari 23 import org.tigr.microarray.mev.cgh.CGHUtil.CGHUtility;
2 26 Feb 07 jari 24 import org.tigr.microarray.mev.cluster.gui.IData;
2 26 Feb 07 jari 25
2 26 Feb 07 jari 26 /**
2 26 Feb 07 jari 27  *
2 26 Feb 07 jari 28  * @author  Adam Margolin
2 26 Feb 07 jari 29  * @author Raktim Sinha
2 26 Feb 07 jari 30  */
2 26 Feb 07 jari 31
2 26 Feb 07 jari 32 public class CGHBrowser extends javax.swing.JFrame implements ActionListener{
2 26 Feb 07 jari 33
2 26 Feb 07 jari 34     private CGHChartPanel chartPanel;
2 26 Feb 07 jari 35     private IData data;
2 26 Feb 07 jari 36     private CGHBrowserModelAdaptor browserModel;
2 26 Feb 07 jari 37
2 26 Feb 07 jari 38     /** Creates new form CGHBrowser */
2 26 Feb 07 jari 39     public CGHBrowser(IData data, CGHChartDataModel chartModel, CGHTableDataModel tableModel) {
2 26 Feb 07 jari 40         this(data, 0, 0, chartModel, tableModel, CGHBrowserModelAdaptor.CLONE_VALUES_DYE_SWAP, true);
2 26 Feb 07 jari 41     }
2 26 Feb 07 jari 42
2 26 Feb 07 jari 43     public CGHBrowser(IData data, int sampleIndex, int chromosomeIndex, CGHChartDataModel chartModel, CGHTableDataModel tableModel, int cloneValueType, boolean hasDyeSwap) {
2 26 Feb 07 jari 44         this.data = data;
2 26 Feb 07 jari 45
2 26 Feb 07 jari 46         browserModel = new CGHBrowserModelAdaptor(data, sampleIndex, chromosomeIndex, cloneValueType);
2 26 Feb 07 jari 47         browserModel.setCloneValueType(cloneValueType);
2 26 Feb 07 jari 48         chartModel.setAdaptor(browserModel);
2 26 Feb 07 jari 49         tableModel.setAdaptor(browserModel);
2 26 Feb 07 jari 50         browserModel.addChangeListener(chartModel);
2 26 Feb 07 jari 51         browserModel.addChangeListener(tableModel);
2 26 Feb 07 jari 52
2 26 Feb 07 jari 53         chartPanel = new CGHChartPanel(sampleIndex, chromosomeIndex, browserModel);
2 26 Feb 07 jari 54         initComponents();
2 26 Feb 07 jari 55         setSize(1000,800);
2 26 Feb 07 jari 56         setChartModel(chartModel);
2 26 Feb 07 jari 57         setTableModel(tableModel);
2 26 Feb 07 jari 58         initCustomComponents();
2 26 Feb 07 jari 59         initMenus(sampleIndex, chromosomeIndex, cloneValueType, hasDyeSwap);
2 26 Feb 07 jari 60
2 26 Feb 07 jari 61     }
2 26 Feb 07 jari 62
2 26 Feb 07 jari 63     /** This method is called from within the constructor to
2 26 Feb 07 jari 64      * initialize the form.
2 26 Feb 07 jari 65      * WARNING: Do NOT modify this code. The content of this method is
2 26 Feb 07 jari 66      * always regenerated by the Form Editor.
2 26 Feb 07 jari 67      */
2 26 Feb 07 jari 68     private void initComponents() {//GEN-BEGIN:initComponents
2 26 Feb 07 jari 69         grpXAxisOrder = new javax.swing.ButtonGroup();
2 26 Feb 07 jari 70         grpXAxisLabels = new javax.swing.ButtonGroup();
2 26 Feb 07 jari 71         grpCloneValues = new javax.swing.ButtonGroup();
2 26 Feb 07 jari 72         grpChartTypes = new javax.swing.ButtonGroup();
2 26 Feb 07 jari 73         pnlMain = new javax.swing.JPanel();
2 26 Feb 07 jari 74         menubar = new javax.swing.JMenuBar();
2 26 Feb 07 jari 75         mnuExperiment = new javax.swing.JMenu();
2 26 Feb 07 jari 76         mnuChromosome = new javax.swing.JMenu();
2 26 Feb 07 jari 77         mnuView = new javax.swing.JMenu();
2 26 Feb 07 jari 78         mnuChartType = new javax.swing.JMenu();
2 26 Feb 07 jari 79         rdoPlot = new javax.swing.JRadioButtonMenuItem();
2 26 Feb 07 jari 80         rdoScatterPlot = new javax.swing.JRadioButtonMenuItem();
2 26 Feb 07 jari 81         rdoBar = new javax.swing.JRadioButtonMenuItem();
2 26 Feb 07 jari 82         rdoArea = new javax.swing.JRadioButtonMenuItem();
2 26 Feb 07 jari 83         mnuXAxisValues = new javax.swing.JMenu();
2 26 Feb 07 jari 84         rdoXAxisByPosition = new javax.swing.JRadioButtonMenuItem();
2 26 Feb 07 jari 85         rdoXAxisByLinearOrder = new javax.swing.JRadioButtonMenuItem();
2 26 Feb 07 jari 86         mnuXAxisLabels = new javax.swing.JMenu();
2 26 Feb 07 jari 87         rdoXAxisLabelsNone = new javax.swing.JRadioButtonMenuItem();
2 26 Feb 07 jari 88         rdoXAxisLabelsByClone = new javax.swing.JRadioButtonMenuItem();
2 26 Feb 07 jari 89         rdoXAxisLabelsByValue = new javax.swing.JRadioButtonMenuItem();
2 26 Feb 07 jari 90         chkShowLegend = new javax.swing.JCheckBoxMenuItem();
2 26 Feb 07 jari 91         chkSmoothUnconfirmed = new javax.swing.JCheckBoxMenuItem();
2 26 Feb 07 jari 92         btnPointSize = new javax.swing.JMenuItem();
2 26 Feb 07 jari 93         btnDisplayRange = new javax.swing.JMenuItem();
2 26 Feb 07 jari 94
2 26 Feb 07 jari 95         addWindowListener(new java.awt.event.WindowAdapter() {
2 26 Feb 07 jari 96             public void windowClosing(java.awt.event.WindowEvent evt) {
2 26 Feb 07 jari 97                 exitForm(evt);
2 26 Feb 07 jari 98             }
2 26 Feb 07 jari 99         });
2 26 Feb 07 jari 100
2 26 Feb 07 jari 101         pnlMain.setLayout(new java.awt.BorderLayout());
2 26 Feb 07 jari 102
2 26 Feb 07 jari 103         getContentPane().add(pnlMain, java.awt.BorderLayout.CENTER);
2 26 Feb 07 jari 104
2 26 Feb 07 jari 105         mnuExperiment.setText("Experiment");
2 26 Feb 07 jari 106         menubar.add(mnuExperiment);
2 26 Feb 07 jari 107         mnuChromosome.setText("Chromosome");
2 26 Feb 07 jari 108         menubar.add(mnuChromosome);
2 26 Feb 07 jari 109         mnuView.setText("View");
2 26 Feb 07 jari 110         mnuChartType.setText("Chart Type");
2 26 Feb 07 jari 111         rdoPlot.setSelected(true);
2 26 Feb 07 jari 112         rdoPlot.setText("Plot");
2 26 Feb 07 jari 113         grpChartTypes.add(rdoPlot);
2 26 Feb 07 jari 114         rdoPlot.addActionListener(new java.awt.event.ActionListener() {
2 26 Feb 07 jari 115             public void actionPerformed(java.awt.event.ActionEvent evt) {
2 26 Feb 07 jari 116                 rdoPlotActionPerformed(evt);
2 26 Feb 07 jari 117             }
2 26 Feb 07 jari 118         });
2 26 Feb 07 jari 119
2 26 Feb 07 jari 120         mnuChartType.add(rdoPlot);
2 26 Feb 07 jari 121         rdoScatterPlot.setText("Scatter Plot");
2 26 Feb 07 jari 122         grpChartTypes.add(rdoScatterPlot);
2 26 Feb 07 jari 123         rdoScatterPlot.addActionListener(new java.awt.event.ActionListener() {
2 26 Feb 07 jari 124             public void actionPerformed(java.awt.event.ActionEvent evt) {
2 26 Feb 07 jari 125                 rdoScatterPlotActionPerformed(evt);
2 26 Feb 07 jari 126             }
2 26 Feb 07 jari 127         });
2 26 Feb 07 jari 128
2 26 Feb 07 jari 129         mnuChartType.add(rdoScatterPlot);
2 26 Feb 07 jari 130         rdoBar.setText("Bar");
2 26 Feb 07 jari 131         grpChartTypes.add(rdoBar);
2 26 Feb 07 jari 132         rdoBar.addActionListener(new java.awt.event.ActionListener() {
2 26 Feb 07 jari 133             public void actionPerformed(java.awt.event.ActionEvent evt) {
2 26 Feb 07 jari 134                 rdoBarActionPerformed(evt);
2 26 Feb 07 jari 135             }
2 26 Feb 07 jari 136         });
2 26 Feb 07 jari 137
2 26 Feb 07 jari 138         mnuChartType.add(rdoBar);
2 26 Feb 07 jari 139         rdoArea.setText("Area");
2 26 Feb 07 jari 140         grpChartTypes.add(rdoArea);
2 26 Feb 07 jari 141         rdoArea.addActionListener(new java.awt.event.ActionListener() {
2 26 Feb 07 jari 142             public void actionPerformed(java.awt.event.ActionEvent evt) {
2 26 Feb 07 jari 143                 rdoAreaActionPerformed(evt);
2 26 Feb 07 jari 144             }
2 26 Feb 07 jari 145         });
2 26 Feb 07 jari 146
2 26 Feb 07 jari 147         mnuChartType.add(rdoArea);
2 26 Feb 07 jari 148         mnuView.add(mnuChartType);
2 26 Feb 07 jari 149         mnuXAxisValues.setText("X Axis Order");
2 26 Feb 07 jari 150         rdoXAxisByPosition.setText("Position");
2 26 Feb 07 jari 151         grpXAxisOrder.add(rdoXAxisByPosition);
2 26 Feb 07 jari 152         rdoXAxisByPosition.addActionListener(new java.awt.event.ActionListener() {
2 26 Feb 07 jari 153             public void actionPerformed(java.awt.event.ActionEvent evt) {
2 26 Feb 07 jari 154                 rdoXAxisByPositionActionPerformed(evt);
2 26 Feb 07 jari 155             }
2 26 Feb 07 jari 156         });
2 26 Feb 07 jari 157
2 26 Feb 07 jari 158         mnuXAxisValues.add(rdoXAxisByPosition);
2 26 Feb 07 jari 159         rdoXAxisByLinearOrder.setSelected(true);
2 26 Feb 07 jari 160         rdoXAxisByLinearOrder.setText("Linear Order");
2 26 Feb 07 jari 161         grpXAxisOrder.add(rdoXAxisByLinearOrder);
2 26 Feb 07 jari 162         rdoXAxisByLinearOrder.addActionListener(new java.awt.event.ActionListener() {
2 26 Feb 07 jari 163             public void actionPerformed(java.awt.event.ActionEvent evt) {
2 26 Feb 07 jari 164                 rdoXAxisByLinearOrderActionPerformed(evt);
2 26 Feb 07 jari 165             }
2 26 Feb 07 jari 166         });
2 26 Feb 07 jari 167
2 26 Feb 07 jari 168         mnuXAxisValues.add(rdoXAxisByLinearOrder);
2 26 Feb 07 jari 169         mnuView.add(mnuXAxisValues);
2 26 Feb 07 jari 170         mnuXAxisLabels.setText("X Axis Labels");
2 26 Feb 07 jari 171         rdoXAxisLabelsNone.setSelected(true);
2 26 Feb 07 jari 172         rdoXAxisLabelsNone.setText("None");
2 26 Feb 07 jari 173         grpXAxisLabels.add(rdoXAxisLabelsNone);
2 26 Feb 07 jari 174         rdoXAxisLabelsNone.addActionListener(new java.awt.event.ActionListener() {
2 26 Feb 07 jari 175             public void actionPerformed(java.awt.event.ActionEvent evt) {
2 26 Feb 07 jari 176                 rdoXAxisLabelsNoneActionPerformed(evt);
2 26 Feb 07 jari 177             }
2 26 Feb 07 jari 178         });
2 26 Feb 07 jari 179
2 26 Feb 07 jari 180         mnuXAxisLabels.add(rdoXAxisLabelsNone);
2 26 Feb 07 jari 181         rdoXAxisLabelsByClone.setText("Clone");
2 26 Feb 07 jari 182         grpXAxisLabels.add(rdoXAxisLabelsByClone);
2 26 Feb 07 jari 183         rdoXAxisLabelsByClone.addActionListener(new java.awt.event.ActionListener() {
2 26 Feb 07 jari 184             public void actionPerformed(java.awt.event.ActionEvent evt) {
2 26 Feb 07 jari 185                 rdoXAxisLabelsByCloneActionPerformed(evt);
2 26 Feb 07 jari 186             }
2 26 Feb 07 jari 187         });
2 26 Feb 07 jari 188
2 26 Feb 07 jari 189         mnuXAxisLabels.add(rdoXAxisLabelsByClone);
2 26 Feb 07 jari 190         rdoXAxisLabelsByValue.setText("Value");
2 26 Feb 07 jari 191         grpXAxisLabels.add(rdoXAxisLabelsByValue);
2 26 Feb 07 jari 192         rdoXAxisLabelsByValue.addActionListener(new java.awt.event.ActionListener() {
2 26 Feb 07 jari 193             public void actionPerformed(java.awt.event.ActionEvent evt) {
2 26 Feb 07 jari 194                 rdoXAxisLabelsByValueActionPerformed(evt);
2 26 Feb 07 jari 195             }
2 26 Feb 07 jari 196         });
2 26 Feb 07 jari 197
2 26 Feb 07 jari 198         mnuXAxisLabels.add(rdoXAxisLabelsByValue);
2 26 Feb 07 jari 199         mnuView.add(mnuXAxisLabels);
2 26 Feb 07 jari 200         chkShowLegend.setText("Show Legend");
2 26 Feb 07 jari 201         chkShowLegend.addActionListener(new java.awt.event.ActionListener() {
2 26 Feb 07 jari 202             public void actionPerformed(java.awt.event.ActionEvent evt) {
2 26 Feb 07 jari 203                 chkShowLegendActionPerformed(evt);
2 26 Feb 07 jari 204             }
2 26 Feb 07 jari 205         });
2 26 Feb 07 jari 206
2 26 Feb 07 jari 207         mnuView.add(chkShowLegend);
2 26 Feb 07 jari 208         chkSmoothUnconfirmed.setText("Smooth Unconfirmed");
2 26 Feb 07 jari 209         chkSmoothUnconfirmed.addActionListener(new java.awt.event.ActionListener() {
2 26 Feb 07 jari 210             public void actionPerformed(java.awt.event.ActionEvent evt) {
2 26 Feb 07 jari 211                 chkSmoothUnconfirmedActionPerformed(evt);
2 26 Feb 07 jari 212             }
2 26 Feb 07 jari 213         });
2 26 Feb 07 jari 214
2 26 Feb 07 jari 215         mnuView.add(chkSmoothUnconfirmed);
2 26 Feb 07 jari 216         btnPointSize.setText("Point Size");
2 26 Feb 07 jari 217         btnPointSize.addActionListener(new java.awt.event.ActionListener() {
2 26 Feb 07 jari 218             public void actionPerformed(java.awt.event.ActionEvent evt) {
2 26 Feb 07 jari 219                 btnPointSizeActionPerformed(evt);
2 26 Feb 07 jari 220             }
2 26 Feb 07 jari 221         });
2 26 Feb 07 jari 222
2 26 Feb 07 jari 223         mnuView.add(btnPointSize);
2 26 Feb 07 jari 224         btnDisplayRange.setText("Set Display Range");
2 26 Feb 07 jari 225         btnDisplayRange.addActionListener(new java.awt.event.ActionListener() {
2 26 Feb 07 jari 226             public void actionPerformed(java.awt.event.ActionEvent evt) {
2 26 Feb 07 jari 227                 btnDisplayRangeActionPerformed(evt);
2 26 Feb 07 jari 228             }
2 26 Feb 07 jari 229         });
2 26 Feb 07 jari 230
2 26 Feb 07 jari 231         mnuView.add(btnDisplayRange);
2 26 Feb 07 jari 232         menubar.add(mnuView);
2 26 Feb 07 jari 233         setJMenuBar(menubar);
2 26 Feb 07 jari 234
2 26 Feb 07 jari 235         pack();
2 26 Feb 07 jari 236     }//GEN-END:initComponents
2 26 Feb 07 jari 237
2 26 Feb 07 jari 238     private void rdoBarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoBarActionPerformed
2 26 Feb 07 jari 239         // Add your handling code here:
2 26 Feb 07 jari 240         chartPanel.setChartType(com.klg.jclass.chart.JCChart.BAR);
2 26 Feb 07 jari 241     }//GEN-LAST:event_rdoBarActionPerformed
2 26 Feb 07 jari 242
2 26 Feb 07 jari 243     private void rdoAreaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoAreaActionPerformed
2 26 Feb 07 jari 244         // Add your handling code here:
2 26 Feb 07 jari 245         chartPanel.setChartType(com.klg.jclass.chart.JCChart.AREA);
2 26 Feb 07 jari 246     }//GEN-LAST:event_rdoAreaActionPerformed
2 26 Feb 07 jari 247
2 26 Feb 07 jari 248     private void rdoPlotActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoPlotActionPerformed
2 26 Feb 07 jari 249         // Add your handling code here:
2 26 Feb 07 jari 250         chartPanel.setChartType(com.klg.jclass.chart.JCChart.PLOT);
2 26 Feb 07 jari 251     }//GEN-LAST:event_rdoPlotActionPerformed
2 26 Feb 07 jari 252
2 26 Feb 07 jari 253     private void rdoScatterPlotActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoScatterPlotActionPerformed
2 26 Feb 07 jari 254         // Add your handling code here:
2 26 Feb 07 jari 255         chartPanel.setChartType(com.klg.jclass.chart.JCChart.SCATTER_PLOT);
2 26 Feb 07 jari 256     }//GEN-LAST:event_rdoScatterPlotActionPerformed
2 26 Feb 07 jari 257
2 26 Feb 07 jari 258     private void btnDisplayRangeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnDisplayRangeActionPerformed
2 26 Feb 07 jari 259         // Add your handling code here:
2 26 Feb 07 jari 260
2 26 Feb 07 jari 261         SetChartRangeDialog crd = new SetChartRangeDialog(this, Float.parseFloat(chartPanel.getChart().getYAxisMin()), Float.parseFloat(chartPanel.getChart().getYAxisMax()));
2 26 Feb 07 jari 262         if (crd.showModal() == JOptionPane.OK_OPTION) {
2 26 Feb 07 jari 263             float min = crd.getMin();
2 26 Feb 07 jari 264             float max = crd.getMax();
2 26 Feb 07 jari 265             chartPanel.setChartDisplayRange(min, max);
2 26 Feb 07 jari 266         }
2 26 Feb 07 jari 267     }//GEN-LAST:event_btnDisplayRangeActionPerformed
2 26 Feb 07 jari 268
2 26 Feb 07 jari 269
2 26 Feb 07 jari 270     private void btnPointSizeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnPointSizeActionPerformed
2 26 Feb 07 jari 271         // Add your handling code here:
2 26 Feb 07 jari 272         String s = (String)JOptionPane.showInputDialog(
2 26 Feb 07 jari 273         null, "Enter Point Size", "Data Point Size", JOptionPane.PLAIN_MESSAGE);
2 26 Feb 07 jari 274
2 26 Feb 07 jari 275         if(s == null || s.length() == 0){
2 26 Feb 07 jari 276             return;
2 26 Feb 07 jari 277         }
2 26 Feb 07 jari 278         try{
2 26 Feb 07 jari 279             int val = Integer.parseInt(s);
2 26 Feb 07 jari 280             chartPanel.setPointSize(val);
2 26 Feb 07 jari 281         }catch (NumberFormatException e){
2 26 Feb 07 jari 282
2 26 Feb 07 jari 283             JOptionPane.showMessageDialog(null, "Input Must Be An Integer", "Number Format Error", JOptionPane.PLAIN_MESSAGE);
2 26 Feb 07 jari 284         }
2 26 Feb 07 jari 285     }//GEN-LAST:event_btnPointSizeActionPerformed
2 26 Feb 07 jari 286
2 26 Feb 07 jari 287     private void rdoXAxisLabelsByValueActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoXAxisLabelsByValueActionPerformed
2 26 Feb 07 jari 288         // Add your handling code here:
2 26 Feb 07 jari 289         chartPanel.setXAxisLabelsByValue();
2 26 Feb 07 jari 290     }//GEN-LAST:event_rdoXAxisLabelsByValueActionPerformed
2 26 Feb 07 jari 291
2 26 Feb 07 jari 292     private void rdoXAxisLabelsByCloneActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoXAxisLabelsByCloneActionPerformed
2 26 Feb 07 jari 293         // Add your handling code here:
2 26 Feb 07 jari 294         chartPanel.setXAxisLabelsByClone();
2 26 Feb 07 jari 295     }//GEN-LAST:event_rdoXAxisLabelsByCloneActionPerformed
2 26 Feb 07 jari 296
2 26 Feb 07 jari 297     private void rdoXAxisLabelsNoneActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoXAxisLabelsNoneActionPerformed
2 26 Feb 07 jari 298         // Add your handling code here:
2 26 Feb 07 jari 299         chartPanel.setXAxisLabelsNone();
2 26 Feb 07 jari 300     }//GEN-LAST:event_rdoXAxisLabelsNoneActionPerformed
2 26 Feb 07 jari 301
2 26 Feb 07 jari 302     private void chkShowLegendActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkShowLegendActionPerformed
2 26 Feb 07 jari 303         // Add your handling code here:
2 26 Feb 07 jari 304         chartPanel.setShowLegend(chkShowLegend.isSelected());
2 26 Feb 07 jari 305     }//GEN-LAST:event_chkShowLegendActionPerformed
2 26 Feb 07 jari 306
2 26 Feb 07 jari 307     private void chkSmoothUnconfirmedActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkSmoothUnconfirmedActionPerformed
2 26 Feb 07 jari 308         // Add your handling code here:
2 26 Feb 07 jari 309         chartPanel.smoothUnconfirmed(chkSmoothUnconfirmed.isSelected());
2 26 Feb 07 jari 310     }//GEN-LAST:event_chkSmoothUnconfirmedActionPerformed
2 26 Feb 07 jari 311
2 26 Feb 07 jari 312     private void rdoXAxisByLinearOrderActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoXAxisByLinearOrderActionPerformed
2 26 Feb 07 jari 313         // Add your handling code here:
2 26 Feb 07 jari 314         chartPanel.setXAxisPositionsByLinearOrder();
2 26 Feb 07 jari 315     }//GEN-LAST:event_rdoXAxisByLinearOrderActionPerformed
2 26 Feb 07 jari 316
2 26 Feb 07 jari 317     private void rdoXAxisByPositionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdoXAxisByPositionActionPerformed
2 26 Feb 07 jari 318         // Add your handling code here:
2 26 Feb 07 jari 319         chartPanel.setXAxisPositionsByChromLocation();
2 26 Feb 07 jari 320     }//GEN-LAST:event_rdoXAxisByPositionActionPerformed
2 26 Feb 07 jari 321
2 26 Feb 07 jari 322     private void initCustomComponents(){
2 26 Feb 07 jari 323
2 26 Feb 07 jari 324         setTitle("CGH Browser");
2 26 Feb 07 jari 325         org.tigr.microarray.mev.cgh.CGHGuiObj.GuiUtil.GuiUtil.center(this);
2 26 Feb 07 jari 326         pnlMain.add(chartPanel, java.awt.BorderLayout.CENTER);
2 26 Feb 07 jari 327
2 26 Feb 07 jari 328         initChart();
2 26 Feb 07 jari 329     }
2 26 Feb 07 jari 330
2 26 Feb 07 jari 331     private void initChart(){
2 26 Feb 07 jari 332         chartPanel.setShowLegend(chkShowLegend.isSelected());
2 26 Feb 07 jari 333         chartPanel.smoothUnconfirmed(chkSmoothUnconfirmed.isSelected());
2 26 Feb 07 jari 334
2 26 Feb 07 jari 335         if(rdoXAxisByLinearOrder.isSelected()){
2 26 Feb 07 jari 336             chartPanel.setXAxisPositionsByLinearOrder();
2 26 Feb 07 jari 337         }else{
2 26 Feb 07 jari 338             chartPanel.setXAxisPositionsByChromLocation();
2 26 Feb 07 jari 339         }
2 26 Feb 07 jari 340
2 26 Feb 07 jari 341         if(rdoXAxisLabelsByValue.isSelected()){
2 26 Feb 07 jari 342             chartPanel.setXAxisLabelsByValue();
2 26 Feb 07 jari 343         }else if(rdoXAxisLabelsByClone.isSelected()){
2 26 Feb 07 jari 344             chartPanel.setXAxisLabelsByClone();
2 26 Feb 07 jari 345         }else if(rdoXAxisLabelsNone.isSelected()){
2 26 Feb 07 jari 346             chartPanel.setXAxisLabelsNone();
2 26 Feb 07 jari 347         }
2 26 Feb 07 jari 348     }
2 26 Feb 07 jari 349
2 26 Feb 07 jari 350     private void initMenus(int sampleIndex, int chromosomeIndex, int cloneValueType, boolean hasDyeSwap){
2 26 Feb 07 jari 351         CGHBrowserMenubar bm = new CGHBrowserMenubar(this);
2 26 Feb 07 jari 352         menubar.add(bm.createCloneValuesMenu(browserModel.getCloneValueType(), hasDyeSwap, data.getDataType() == IData.DATA_TYPE_RATIO_ONLY, data.isLog2Data(), data.hasCloneDistribution()));
2 26 Feb 07 jari 353
2 26 Feb 07 jari 354         ButtonGroup buttonGroup = new ButtonGroup();
2 26 Feb 07 jari 355         for(int exp = 0; exp < data.getFeaturesCount(); exp++){
2 26 Feb 07 jari 356             if(exp == sampleIndex){
2 26 Feb 07 jari 357                 mnuExperiment.add(createJRadioButtonMenuItem(createBrowserSampleSelectedAction(exp), buttonGroup, true));
2 26 Feb 07 jari 358             }else{
2 26 Feb 07 jari 359                 mnuExperiment.add(createJRadioButtonMenuItem(createBrowserSampleSelectedAction(exp), buttonGroup));
2 26 Feb 07 jari 360             }
2 26 Feb 07 jari 361         }
2 26 Feb 07 jari 362
2 26 Feb 07 jari 363         Action action = new SampleSelectedAction("All Experiments");
2 26 Feb 07 jari 364         action.putValue("SelectionIndex", new Integer(CGHBrowserModelAdaptor.ALL_EXPERIMENTS));
2 26 Feb 07 jari 365
2 26 Feb 07 jari 366         if (chromosomeIndex == CGHBrowserModelAdaptor.ALL_EXPERIMENTS){
2 26 Feb 07 jari 367             mnuExperiment.add(createJRadioButtonMenuItem(action, buttonGroup, true));
2 26 Feb 07 jari 368         }else{
2 26 Feb 07 jari 369             mnuExperiment.add(createJRadioButtonMenuItem(action, buttonGroup));
2 26 Feb 07 jari 370         }
2 26 Feb 07 jari 371
2 26 Feb 07 jari 372
2 26 Feb 07 jari 373         buttonGroup = new ButtonGroup();
2 26 Feb 07 jari 374         for(int chrom = 0; chrom < data.getNumChromosomes(); chrom++){
2 26 Feb 07 jari 375             if(chromosomeIndex == chrom){
2 26 Feb 07 jari 376                 mnuChromosome.add(createJRadioButtonMenuItem(createBrowserChromosomeSelectedAction(chrom), buttonGroup, true));
2 26 Feb 07 jari 377             }else{
2 26 Feb 07 jari 378                 mnuChromosome.add(createJRadioButtonMenuItem(createBrowserChromosomeSelectedAction(chrom), buttonGroup));
2 26 Feb 07 jari 379             }
2 26 Feb 07 jari 380         }
2 26 Feb 07 jari 381
2 26 Feb 07 jari 382         action = new ChromosomeSelectedAction("All Chromosomes");
2 26 Feb 07 jari 383         action.putValue("SelectionIndex", new Integer(CGHBrowserModelAdaptor.ALL_CHROMOSOMES));
2 26 Feb 07 jari 384         mnuChromosome.add(createJRadioButtonMenuItem(action, buttonGroup));
2 26 Feb 07 jari 385         /*
2 26 Feb 07 jari 386         switch(cloneValueType){
2 26 Feb 07 jari 387             case CGHBrowserModelAdaptor.CLONE_VALUES_DYE_SWAP:
2 26 Feb 07 jari 388                 rdoCloneValuesDyeSwap.setSelected(true);
2 26 Feb 07 jari 389                 break;
2 26 Feb 07 jari 390             case CGHBrowserModelAdaptor.CLONE_VALUES_LOG_AVERAGE_INVERTED:
2 26 Feb 07 jari 391                 rdoCloneValuesLogAverageInverted.setSelected(true);
2 26 Feb 07 jari 392                 break;
2 26 Feb 07 jari 393             case CGHBrowserModelAdaptor.CLONE_VALUES_LOG_DYE_SWAP:
2 26 Feb 07 jari 394                 rdoCloneValuesLogDyeSwap.setSelected(true);
2 26 Feb 07 jari 395                 break;
2 26 Feb 07 jari 396             case CGHBrowserModelAdaptor.CLONE_VALUES_P_SCORE:
2 26 Feb 07 jari 397                 rdoCloneValuesPScore.setSelected(true);
2 26 Feb 07 jari 398                 break;
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     private Action createBrowserSampleSelectedAction(int index){
2 26 Feb 07 jari 404         Action action = new SampleSelectedAction(data.getSampleName(index));
2 26 Feb 07 jari 405         action.putValue("SelectionIndex", new Integer(index));
2 26 Feb 07 jari 406
2 26 Feb 07 jari 407         return action;
2 26 Feb 07 jari 408     }
2 26 Feb 07 jari 409
2 26 Feb 07 jari 410     private Action createBrowserChromosomeSelectedAction(int index){
2 26 Feb 07 jari 411         String name = CGHUtility.convertChromToLongString(index+1, data.getCGHSpecies());
2 26 Feb 07 jari 412         /*
2 26 Feb 07 jari 413         if(index == 22){
2 26 Feb 07 jari 414             name = "Chromosome X";
2 26 Feb 07 jari 415         }else if(index == 23){
2 26 Feb 07 jari 416             name = "Chromosome Y";
2 26 Feb 07 jari 417         }else{
2 26 Feb 07 jari 418             name = "Chromosome " + (index + 1);
2 26 Feb 07 jari 419         }
2 26 Feb 07 jari 420         */
2 26 Feb 07 jari 421         //Action action = new ChromosomeSelectedAction("Chromosome " + (index + 1));
2 26 Feb 07 jari 422         Action action = new ChromosomeSelectedAction(name);
2 26 Feb 07 jari 423         action.putValue("SelectionIndex", new Integer(index));
2 26 Feb 07 jari 424
2 26 Feb 07 jari 425         return action;
2 26 Feb 07 jari 426     }
2 26 Feb 07 jari 427
2 26 Feb 07 jari 428     /**
2 26 Feb 07 jari 429      * Creates a menu item with specified name and acton command.
2 26 Feb 07 jari 430      */
2 26 Feb 07 jari 431     protected JMenuItem createJMenuItem(String name, String command, ActionListener listener) {
2 26 Feb 07 jari 432         JMenuItem item = new JMenuItem(name);
2 26 Feb 07 jari 433         item.setActionCommand(command);
2 26 Feb 07 jari 434         item.addActionListener(listener);
2 26 Feb 07 jari 435         return item;
2 26 Feb 07 jari 436     }
2 26 Feb 07 jari 437
2 26 Feb 07 jari 438     /**
2 26 Feb 07 jari 439      * Creates a radio button menu item from specified action.
2 26 Feb 07 jari 440      */
2 26 Feb 07 jari 441     protected JMenuItem createJRadioButtonMenuItem(Action action, ButtonGroup buttonGroup) {
2 26 Feb 07 jari 442         return createJRadioButtonMenuItem(action, buttonGroup, false);
2 26 Feb 07 jari 443     }
2 26 Feb 07 jari 444
2 26 Feb 07 jari 445     protected JMenuItem createJRadioButtonMenuItem(Action action, ButtonGroup buttonGroup, boolean isSelected) {
2 26 Feb 07 jari 446         JRadioButtonMenuItem item = new JRadioButtonMenuItem(action);
2 26 Feb 07 jari 447         item.setSelected(isSelected);
2 26 Feb 07 jari 448         if (buttonGroup != null) {
2 26 Feb 07 jari 449             buttonGroup.add(item);
2 26 Feb 07 jari 450         }
2 26 Feb 07 jari 451
2 26 Feb 07 jari 452         return item;
2 26 Feb 07 jari 453     }
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     public void setSelectedRegion(ICGHDataRegion selectedRegion){
2 26 Feb 07 jari 459         chartPanel.setSelectedRegion(selectedRegion);
2 26 Feb 07 jari 460     }
2 26 Feb 07 jari 461
2 26 Feb 07 jari 462
2 26 Feb 07 jari 463     public void setChartModel(CGHChartDataModel chartModel) {
2 26 Feb 07 jari 464         chartPanel.setChartModel(chartModel);
2 26 Feb 07 jari 465     }
2 26 Feb 07 jari 466
2 26 Feb 07 jari 467     /** Getter for property tableModel.
2 26 Feb 07 jari 468      * @return Value of property tableModel.
2 26 Feb 07 jari 469      */
2 26 Feb 07 jari 470     public void setTableModel(CGHTableDataModel tableModel) {
2 26 Feb 07 jari 471         chartPanel.setTableModel(tableModel);
2 26 Feb 07 jari 472     }
2 26 Feb 07 jari 473
2 26 Feb 07 jari 474     public void setCloneValueType(int cloneValueType){
2 26 Feb 07 jari 475         JTable tblData = chartPanel.getTblData();
2 26 Feb 07 jari 476         int[] selectedRows = tblData.getSelectedRows();
2 26 Feb 07 jari 477
2 26 Feb 07 jari 478         browserModel.setCloneValueType(cloneValueType);
2 26 Feb 07 jari 479         if(selectedRows.length > 0){
2 26 Feb 07 jari 480             tblData.setRowSelectionInterval(selectedRows[0], selectedRows[selectedRows.length - 1]);
2 26 Feb 07 jari 481         }
2 26 Feb 07 jari 482     }
2 26 Feb 07 jari 483
2 26 Feb 07 jari 484
2 26 Feb 07 jari 485     /** Exit the Application */
2 26 Feb 07 jari 486     private void exitForm(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_exitForm
2 26 Feb 07 jari 487         setVisible(false);
2 26 Feb 07 jari 488         dispose();
2 26 Feb 07 jari 489     }//GEN-LAST:event_exitForm
2 26 Feb 07 jari 490
2 26 Feb 07 jari 491
2 26 Feb 07 jari 492     public void actionPerformed(java.awt.event.ActionEvent actionEvent) {
2 26 Feb 07 jari 493           String command = actionEvent.getActionCommand();
2 26 Feb 07 jari 494
2 26 Feb 07 jari 495           if (command.equals(CGHBrowserActionManager.CLONE_VALUES_DYE_SWAP)) {
2 26 Feb 07 jari 496             setCloneValueType(CGHBrowserModelAdaptor.CLONE_VALUES_DYE_SWAP);
2 26 Feb 07 jari 497           }else if (command.equals(CGHBrowserActionManager.CLONE_VALUES_LOG_AVERAGE_INVERTED)) {
2 26 Feb 07 jari 498             setCloneValueType(CGHBrowserModelAdaptor.CLONE_VALUES_LOG_AVERAGE_INVERTED);
2 26 Feb 07 jari 499           }else if (command.equals(CGHBrowserActionManager.CLONE_VALUES_LOG_DYE_SWAP)) {
2 26 Feb 07 jari 500             setCloneValueType(CGHBrowserModelAdaptor.CLONE_VALUES_LOG_DYE_SWAP);
2 26 Feb 07 jari 501           }else if (command.equals(CGHBrowserActionManager.CLONE_VALUES_P_VALUES)) {
2 26 Feb 07 jari 502             setCloneValueType(CGHBrowserModelAdaptor.CLONE_VALUES_P_SCORE);
2 26 Feb 07 jari 503           }
2 26 Feb 07 jari 504
2 26 Feb 07 jari 505           else if (command.equals(CGHBrowserActionManager.CLONE_VALUES_LOG_RATIOS)) {
2 26 Feb 07 jari 506             setCloneValueType(CGHBrowserModelAdaptor.CLONE_VALUES_LOG_RATIOS);
2 26 Feb 07 jari 507           }else if (command.equals(CGHBrowserActionManager.CLONE_VALUES_RATIOS)) {
2 26 Feb 07 jari 508             setCloneValueType(CGHBrowserModelAdaptor.CLONE_VALUES_RATIOS);
2 26 Feb 07 jari 509           }else if (command.equals(CGHBrowserActionManager.CLONE_VALUES_P_VALUES)) {
2 26 Feb 07 jari 510             setCloneValueType(CGHBrowserModelAdaptor.CLONE_VALUES_P_SCORE);
2 26 Feb 07 jari 511           }
2 26 Feb 07 jari 512     }
2 26 Feb 07 jari 513
2 26 Feb 07 jari 514     class SampleSelectedAction extends AbstractAction{
2 26 Feb 07 jari 515
2 26 Feb 07 jari 516         public SampleSelectedAction(String name){
2 26 Feb 07 jari 517             super(name);
2 26 Feb 07 jari 518         }
2 26 Feb 07 jari 519         public void actionPerformed(java.awt.event.ActionEvent actionEvent) {
2 26 Feb 07 jari 520             int sampleIndex = ((Integer)getValue("SelectionIndex")).intValue();
2 26 Feb 07 jari 521             chartPanel.setExperimentIndex(sampleIndex);
2 26 Feb 07 jari 522         }
2 26 Feb 07 jari 523
2 26 Feb 07 jari 524     }
2 26 Feb 07 jari 525
2 26 Feb 07 jari 526     class ChromosomeSelectedAction extends AbstractAction{
2 26 Feb 07 jari 527         public ChromosomeSelectedAction(String name){
2 26 Feb 07 jari 528             super(name);
2 26 Feb 07 jari 529         }
2 26 Feb 07 jari 530         public void actionPerformed(java.awt.event.ActionEvent actionEvent) {
2 26 Feb 07 jari 531             int chromosomeIndex = ((Integer)getValue("SelectionIndex")).intValue();
2 26 Feb 07 jari 532             chartPanel.setChromosomeIndex(chromosomeIndex);
2 26 Feb 07 jari 533         }
2 26 Feb 07 jari 534     }
2 26 Feb 07 jari 535
2 26 Feb 07 jari 536     // Variables declaration - do not modify//GEN-BEGIN:variables
2 26 Feb 07 jari 537     private javax.swing.JMenu mnuChromosome;
2 26 Feb 07 jari 538     private javax.swing.JRadioButtonMenuItem rdoXAxisLabelsByClone;
2 26 Feb 07 jari 539     private javax.swing.ButtonGroup grpXAxisOrder;
2 26 Feb 07 jari 540     private javax.swing.JCheckBoxMenuItem chkShowLegend;
2 26 Feb 07 jari 541     private javax.swing.JRadioButtonMenuItem rdoArea;
2 26 Feb 07 jari 542     private javax.swing.JCheckBoxMenuItem chkSmoothUnconfirmed;
2 26 Feb 07 jari 543     private javax.swing.ButtonGroup grpChartTypes;
2 26 Feb 07 jari 544     private javax.swing.JMenuBar menubar;
2 26 Feb 07 jari 545     private javax.swing.JRadioButtonMenuItem rdoXAxisLabelsByValue;
2 26 Feb 07 jari 546     private javax.swing.JRadioButtonMenuItem rdoBar;
2 26 Feb 07 jari 547     private javax.swing.JPanel pnlMain;
2 26 Feb 07 jari 548     private javax.swing.JMenuItem btnPointSize;
2 26 Feb 07 jari 549     private javax.swing.JMenu mnuView;
2 26 Feb 07 jari 550     private javax.swing.JMenu mnuXAxisValues;
2 26 Feb 07 jari 551     private javax.swing.JMenuItem btnDisplayRange;
2 26 Feb 07 jari 552     private javax.swing.JRadioButtonMenuItem rdoXAxisLabelsNone;
2 26 Feb 07 jari 553     private javax.swing.ButtonGroup grpCloneValues;
2 26 Feb 07 jari 554     private javax.swing.ButtonGroup grpXAxisLabels;
2 26 Feb 07 jari 555     private javax.swing.JMenu mnuXAxisLabels;
2 26 Feb 07 jari 556     private javax.swing.JMenu mnuExperiment;
2 26 Feb 07 jari 557     private javax.swing.JRadioButtonMenuItem rdoScatterPlot;
2 26 Feb 07 jari 558     private javax.swing.JRadioButtonMenuItem rdoPlot;
2 26 Feb 07 jari 559     private javax.swing.JRadioButtonMenuItem rdoXAxisByPosition;
2 26 Feb 07 jari 560     private javax.swing.JRadioButtonMenuItem rdoXAxisByLinearOrder;
2 26 Feb 07 jari 561     private javax.swing.JMenu mnuChartType;
2 26 Feb 07 jari 562     // End of variables declaration//GEN-END:variables
2 26 Feb 07 jari 563
2 26 Feb 07 jari 564 }