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

Code
Comments
Other
Rev Date Author Line
2 26 Feb 07 jari 1 /*
2 26 Feb 07 jari 2  * CGHDisplayOrderChanger.java
2 26 Feb 07 jari 3  *
2 26 Feb 07 jari 4  * Created on March 24, 2003, 6:41 PM
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;
2 26 Feb 07 jari 8
2 26 Feb 07 jari 9 import javax.swing.DefaultListModel;
2 26 Feb 07 jari 10
2 26 Feb 07 jari 11 import org.tigr.microarray.mev.cluster.gui.IData;
2 26 Feb 07 jari 12 //import org.abramson.microarray.cgh.CGHFcdObj.CGHMultipleArrayDataFcd;
2 26 Feb 07 jari 13
2 26 Feb 07 jari 14
2 26 Feb 07 jari 15 /**
2 26 Feb 07 jari 16  *
2 26 Feb 07 jari 17  * @author  Adam Margolin
2 26 Feb 07 jari 18  * @author Raktim Sinha
2 26 Feb 07 jari 19  */
2 26 Feb 07 jari 20
2 26 Feb 07 jari 21 public class CGHDisplayOrderChanger extends javax.swing.JDialog {
2 26 Feb 07 jari 22     DisplayOrderObj[] dataObjs;
2 26 Feb 07 jari 23
2 26 Feb 07 jari 24     //This contains the current position in the first dimension, and the
2 26 Feb 07 jari 25     //original position in the second dimension
2 26 Feb 07 jari 26     int[] indicesOrder;
2 26 Feb 07 jari 27     IData data;
2 26 Feb 07 jari 28     boolean cancel;
2 26 Feb 07 jari 29
2 26 Feb 07 jari 30     /** Creates new form CGHDisplayOrderChanger */
2 26 Feb 07 jari 31     public CGHDisplayOrderChanger(java.awt.Frame parent, boolean modal) {
2 26 Feb 07 jari 32         super(parent, modal);
2 26 Feb 07 jari 33         initComponents();
2 26 Feb 07 jari 34     }
2 26 Feb 07 jari 35
2 26 Feb 07 jari 36     public CGHDisplayOrderChanger(IData data, java.awt.Frame parent, boolean modal){
2 26 Feb 07 jari 37         super(parent, modal);
2 26 Feb 07 jari 38         //this.data = fcd.getData();
2 26 Feb 07 jari 39         cancel = false;
2 26 Feb 07 jari 40         this.data = data;
2 26 Feb 07 jari 41         initComponents();
2 26 Feb 07 jari 42
2 26 Feb 07 jari 43         lstData.setModel(new DefaultListModel());
2 26 Feb 07 jari 44         this.data = data;
2 26 Feb 07 jari 45         //initializeIndices();
2 26 Feb 07 jari 46
2 26 Feb 07 jari 47         indicesOrder = data.getSamplesOrder();
2 26 Feb 07 jari 48         for(int i = 0; i < indicesOrder.length; i++){
2 26 Feb 07 jari 49             ((DefaultListModel)lstData.getModel()).addElement(data.getSampleName(indicesOrder[i] ));
2 26 Feb 07 jari 50             //((DefaultListModel)lstData.getModel()).addElement(data.getSampleName(data.getSamplesOrder()[i] ));
2 26 Feb 07 jari 51         }
2 26 Feb 07 jari 52
2 26 Feb 07 jari 53
2 26 Feb 07 jari 54         setSize(400, 400);
2 26 Feb 07 jari 55     }
2 26 Feb 07 jari 56
2 26 Feb 07 jari 57     private void initializeIndices(){
2 26 Feb 07 jari 58         indicesOrder = new int[data.getFeaturesCount()];
2 26 Feb 07 jari 59
2 26 Feb 07 jari 60         int[] experimentIndices = data.getSamplesOrder();
2 26 Feb 07 jari 61         for(int i = 0; i < data.getFeaturesCount(); i++){
2 26 Feb 07 jari 62             indicesOrder[experimentIndices[i]] = i;
2 26 Feb 07 jari 63         }
2 26 Feb 07 jari 64
2 26 Feb 07 jari 65     }
2 26 Feb 07 jari 66
2 26 Feb 07 jari 67     /** This method is called from within the constructor to
2 26 Feb 07 jari 68      * initialize the form.
2 26 Feb 07 jari 69      * WARNING: Do NOT modify this code. The content of this method is
2 26 Feb 07 jari 70      * always regenerated by the Form Editor.
2 26 Feb 07 jari 71      */
2 26 Feb 07 jari 72     private void initComponents() {//GEN-BEGIN:initComponents
2 26 Feb 07 jari 73         jPanel1 = new javax.swing.JPanel();
2 26 Feb 07 jari 74         jScrollPane1 = new javax.swing.JScrollPane();
2 26 Feb 07 jari 75         lstData = new javax.swing.JList();
2 26 Feb 07 jari 76         jPanel2 = new javax.swing.JPanel();
2 26 Feb 07 jari 77         jPanel3 = new javax.swing.JPanel();
2 26 Feb 07 jari 78         btnMoveUp = new javax.swing.JButton();
2 26 Feb 07 jari 79         btnMoveDown = new javax.swing.JButton();
2 26 Feb 07 jari 80         jPanel4 = new javax.swing.JPanel();
2 26 Feb 07 jari 81         btnOk = new javax.swing.JButton();
2 26 Feb 07 jari 82         btnCancel = new javax.swing.JButton();
2 26 Feb 07 jari 83
2 26 Feb 07 jari 84         addWindowListener(new java.awt.event.WindowAdapter() {
2 26 Feb 07 jari 85             public void windowClosing(java.awt.event.WindowEvent evt) {
2 26 Feb 07 jari 86                 closeDialog(evt);
2 26 Feb 07 jari 87             }
2 26 Feb 07 jari 88         });
2 26 Feb 07 jari 89
2 26 Feb 07 jari 90         jPanel1.setLayout(new java.awt.BorderLayout());
2 26 Feb 07 jari 91
2 26 Feb 07 jari 92         jScrollPane1.setViewportView(lstData);
2 26 Feb 07 jari 93
2 26 Feb 07 jari 94         jPanel1.add(jScrollPane1, java.awt.BorderLayout.CENTER);
2 26 Feb 07 jari 95
2 26 Feb 07 jari 96         getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);
2 26 Feb 07 jari 97
2 26 Feb 07 jari 98         jPanel2.setLayout(new javax.swing.BoxLayout(jPanel2, javax.swing.BoxLayout.Y_AXIS));
2 26 Feb 07 jari 99
2 26 Feb 07 jari 100         btnMoveUp.setText("Up");
2 26 Feb 07 jari 101         btnMoveUp.addActionListener(new java.awt.event.ActionListener() {
2 26 Feb 07 jari 102             public void actionPerformed(java.awt.event.ActionEvent evt) {
2 26 Feb 07 jari 103                 btnMoveUpActionPerformed(evt);
2 26 Feb 07 jari 104             }
2 26 Feb 07 jari 105         });
2 26 Feb 07 jari 106
2 26 Feb 07 jari 107         jPanel3.add(btnMoveUp);
2 26 Feb 07 jari 108
2 26 Feb 07 jari 109         btnMoveDown.setText("Down");
2 26 Feb 07 jari 110         btnMoveDown.addActionListener(new java.awt.event.ActionListener() {
2 26 Feb 07 jari 111             public void actionPerformed(java.awt.event.ActionEvent evt) {
2 26 Feb 07 jari 112                 btnMoveDownActionPerformed(evt);
2 26 Feb 07 jari 113             }
2 26 Feb 07 jari 114         });
2 26 Feb 07 jari 115
2 26 Feb 07 jari 116         jPanel3.add(btnMoveDown);
2 26 Feb 07 jari 117
2 26 Feb 07 jari 118         jPanel2.add(jPanel3);
2 26 Feb 07 jari 119
2 26 Feb 07 jari 120         btnOk.setText("Ok");
2 26 Feb 07 jari 121         btnOk.addActionListener(new java.awt.event.ActionListener() {
2 26 Feb 07 jari 122             public void actionPerformed(java.awt.event.ActionEvent evt) {
2 26 Feb 07 jari 123                 btnOkActionPerformed(evt);
2 26 Feb 07 jari 124             }
2 26 Feb 07 jari 125         });
2 26 Feb 07 jari 126
2 26 Feb 07 jari 127         jPanel4.add(btnOk);
2 26 Feb 07 jari 128
2 26 Feb 07 jari 129         btnCancel.setText("Cancel");
2 26 Feb 07 jari 130         btnCancel.addActionListener(new java.awt.event.ActionListener(){
2 26 Feb 07 jari 131             public void actionPerformed(java.awt.event.ActionEvent evt) {
2 26 Feb 07 jari 132                 btnCancelActionPerformed(evt);
2 26 Feb 07 jari 133             }
2 26 Feb 07 jari 134         });
2 26 Feb 07 jari 135
2 26 Feb 07 jari 136         jPanel4.add(btnCancel);
2 26 Feb 07 jari 137
2 26 Feb 07 jari 138         jPanel2.add(jPanel4);
2 26 Feb 07 jari 139
2 26 Feb 07 jari 140         getContentPane().add(jPanel2, java.awt.BorderLayout.SOUTH);
2 26 Feb 07 jari 141
2 26 Feb 07 jari 142         pack();
2 26 Feb 07 jari 143     }//GEN-END:initComponents
2 26 Feb 07 jari 144
2 26 Feb 07 jari 145     private void btnMoveDownActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnMoveDownActionPerformed
2 26 Feb 07 jari 146         // Add your handling code here:
2 26 Feb 07 jari 147         int selectedIndex = lstData.getSelectedIndex();
2 26 Feb 07 jari 148         if(selectedIndex < lstData.getModel().getSize() - 1){
2 26 Feb 07 jari 149             Object obj = ((DefaultListModel)lstData.getModel()).remove(selectedIndex);
2 26 Feb 07 jari 150             ((DefaultListModel)lstData.getModel()).insertElementAt(obj, selectedIndex + 1);
2 26 Feb 07 jari 151             lstData.setSelectedIndex(selectedIndex + 1);
2 26 Feb 07 jari 152
2 26 Feb 07 jari 153             int tmp = indicesOrder[selectedIndex];
2 26 Feb 07 jari 154             indicesOrder[selectedIndex] = indicesOrder[selectedIndex + 1];
2 26 Feb 07 jari 155             indicesOrder[selectedIndex  + 1] = tmp;
2 26 Feb 07 jari 156         }
2 26 Feb 07 jari 157     }//GEN-LAST:event_btnMoveDownActionPerformed
2 26 Feb 07 jari 158
2 26 Feb 07 jari 159     private void btnOkActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnOkActionPerformed
2 26 Feb 07 jari 160         // Add your handling code here:
2 26 Feb 07 jari 161         /*int[] reverseIndices = new int[indicesOrder.length];
2 26 Feb 07 jari 162         for(int i = 0; i < reverseIndices.length; i++){
2 26 Feb 07 jari 163             reverseIndices[indicesOrder[i]] = i;
2 26 Feb 07 jari 164         }
2 26 Feb 07 jari 165
2 26 Feb 07 jari 166         data.setExperimentIndices(reverseIndices);
2 26 Feb 07 jari 167         */
2 26 Feb 07 jari 168         //for(int i = 0; i < reverseIndices.length; i++){
2 26 Feb 07 jari 169         //    System.out.println("Index " + i + " value " + reverseIndices[i]);
2 26 Feb 07 jari 170         //}
2 26 Feb 07 jari 171
2 26 Feb 07 jari 172         setVisible(false);
2 26 Feb 07 jari 173         dispose();
2 26 Feb 07 jari 174     }//GEN-LAST:event_btnOkActionPerformed
2 26 Feb 07 jari 175
2 26 Feb 07 jari 176     private void btnCancelActionPerformed(java.awt.event.ActionEvent evt) {
2 26 Feb 07 jari 177       cancel = true;
2 26 Feb 07 jari 178       dispose();
2 26 Feb 07 jari 179     }
2 26 Feb 07 jari 180     private void btnMoveUpActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnMoveUpActionPerformed
2 26 Feb 07 jari 181         // Add your handling code here:
2 26 Feb 07 jari 182         int selectedIndex = lstData.getSelectedIndex();
2 26 Feb 07 jari 183         if(selectedIndex > 0){
2 26 Feb 07 jari 184             Object obj = ((DefaultListModel)lstData.getModel()).remove(selectedIndex);
2 26 Feb 07 jari 185             ((DefaultListModel)lstData.getModel()).insertElementAt(obj, selectedIndex - 1);
2 26 Feb 07 jari 186             lstData.setSelectedIndex(selectedIndex - 1);
2 26 Feb 07 jari 187
2 26 Feb 07 jari 188             int tmp = indicesOrder[selectedIndex];
2 26 Feb 07 jari 189             indicesOrder[selectedIndex] = indicesOrder[selectedIndex - 1];
2 26 Feb 07 jari 190             indicesOrder[selectedIndex  - 1] = tmp;
2 26 Feb 07 jari 191         }
2 26 Feb 07 jari 192
2 26 Feb 07 jari 193     }//GEN-LAST:event_btnMoveUpActionPerformed
2 26 Feb 07 jari 194
2 26 Feb 07 jari 195     public boolean isCancelled(){
2 26 Feb 07 jari 196       return cancel;
2 26 Feb 07 jari 197     }
2 26 Feb 07 jari 198     /** Closes the dialog */
2 26 Feb 07 jari 199     private void closeDialog(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_closeDialog
2 26 Feb 07 jari 200         setVisible(false);
2 26 Feb 07 jari 201         dispose();
2 26 Feb 07 jari 202     }//GEN-LAST:event_closeDialog
2 26 Feb 07 jari 203
2 26 Feb 07 jari 204     /** Getter for property indicesOrder.
2 26 Feb 07 jari 205      * @return Value of property indicesOrder.
2 26 Feb 07 jari 206      */
2 26 Feb 07 jari 207     public int[] getIndicesOrder() {
2 26 Feb 07 jari 208         generateIndicesOrder();
2 26 Feb 07 jari 209         return this.indicesOrder;
2 26 Feb 07 jari 210     }
2 26 Feb 07 jari 211
2 26 Feb 07 jari 212     private void generateIndicesOrder(){
2 26 Feb 07 jari 213         indicesOrder = new int[dataObjs.length];
2 26 Feb 07 jari 214         for(int i = 0; i < indicesOrder.length; i++){
2 26 Feb 07 jari 215             indicesOrder[ ((DisplayOrderObj)lstData.getModel().getElementAt(i)).getOrigIndex()] = i;
2 26 Feb 07 jari 216         }
2 26 Feb 07 jari 217     }
2 26 Feb 07 jari 218
2 26 Feb 07 jari 219     /** Setter for property indicesOrder.
2 26 Feb 07 jari 220      * @param indicesOrder New value of property indicesOrder.
2 26 Feb 07 jari 221      */
2 26 Feb 07 jari 222     public void setIndicesOrder(int[] indicesOrder) {
2 26 Feb 07 jari 223         this.indicesOrder = indicesOrder;
2 26 Feb 07 jari 224     }
2 26 Feb 07 jari 225
2 26 Feb 07 jari 226     private class DisplayOrderObj {
2 26 Feb 07 jari 227         Object value;
2 26 Feb 07 jari 228         int origIndex;
2 26 Feb 07 jari 229
2 26 Feb 07 jari 230         DisplayOrderObj(Object value, int origIndex){
2 26 Feb 07 jari 231             this.value = value;
2 26 Feb 07 jari 232             this.origIndex = origIndex;
2 26 Feb 07 jari 233         }
2 26 Feb 07 jari 234
2 26 Feb 07 jari 235         /** Getter for property value.
2 26 Feb 07 jari 236          * @return Value of property value.
2 26 Feb 07 jari 237          */
2 26 Feb 07 jari 238         public java.lang.Object getValue() {
2 26 Feb 07 jari 239             return value;
2 26 Feb 07 jari 240         }
2 26 Feb 07 jari 241
2 26 Feb 07 jari 242         /** Setter for property value.
2 26 Feb 07 jari 243          * @param value New value of property value.
2 26 Feb 07 jari 244          */
2 26 Feb 07 jari 245         public void setValue(java.lang.Object value) {
2 26 Feb 07 jari 246             this.value = value;
2 26 Feb 07 jari 247         }
2 26 Feb 07 jari 248
2 26 Feb 07 jari 249         /** Getter for property origIndex.
2 26 Feb 07 jari 250          * @return Value of property origIndex.
2 26 Feb 07 jari 251          */
2 26 Feb 07 jari 252         public int getOrigIndex() {
2 26 Feb 07 jari 253             return origIndex;
2 26 Feb 07 jari 254         }
2 26 Feb 07 jari 255
2 26 Feb 07 jari 256         /** Setter for property origIndex.
2 26 Feb 07 jari 257          * @param origIndex New value of property origIndex.
2 26 Feb 07 jari 258          */
2 26 Feb 07 jari 259         public void setOrigIndex(int origIndex) {
2 26 Feb 07 jari 260             this.origIndex = origIndex;
2 26 Feb 07 jari 261         }
2 26 Feb 07 jari 262
2 26 Feb 07 jari 263         public String toString(){
2 26 Feb 07 jari 264             return value.toString();
2 26 Feb 07 jari 265         }
2 26 Feb 07 jari 266
2 26 Feb 07 jari 267     }
2 26 Feb 07 jari 268
2 26 Feb 07 jari 269     // Variables declaration - do not modify//GEN-BEGIN:variables
2 26 Feb 07 jari 270     private javax.swing.JPanel jPanel4;
2 26 Feb 07 jari 271     private javax.swing.JScrollPane jScrollPane1;
2 26 Feb 07 jari 272     private javax.swing.JButton btnMoveDown;
2 26 Feb 07 jari 273     private javax.swing.JPanel jPanel3;
2 26 Feb 07 jari 274     private javax.swing.JButton btnMoveUp;
2 26 Feb 07 jari 275     private javax.swing.JPanel jPanel2;
2 26 Feb 07 jari 276     private javax.swing.JList lstData;
2 26 Feb 07 jari 277     private javax.swing.JPanel jPanel1;
2 26 Feb 07 jari 278     private javax.swing.JButton btnOk;
2 26 Feb 07 jari 279     private javax.swing.JButton btnCancel;
2 26 Feb 07 jari 280     // End of variables declaration//GEN-END:variables
2 26 Feb 07 jari 281
2 26 Feb 07 jari 282 }