Author: ruschein
Date: 2010-12-29 15:18:48 -0800 (Wed, 29 Dec 2010)
New Revision: 23277

Added:
   
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/ui/DeletionDialog.java
Modified:
   
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/BrowserTableModel.java
   
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/MultiLineTableCellEditor.java
   
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/TableBrowser.java
   
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/ui/AttributeBrowserToolBar.java
Log:
Added deletion of attributes.

Modified: 
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/BrowserTableModel.java
===================================================================
--- 
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/BrowserTableModel.java
  2010-12-29 22:11:28 UTC (rev 23276)
+++ 
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/BrowserTableModel.java
  2010-12-29 23:18:48 UTC (rev 23277)
@@ -146,8 +146,7 @@
                if (raw == null)
                        return null;
 
-               final Map<String, Class<?>> columnNameToTypeMap = 
attrs.getColumnTypeMap();
-               final Object cooked = row.get(columnName, 
columnNameToTypeMap.get(columnName));
+               final Object cooked = getColumnValue(row, columnName);
                if (cooked != null)
                        return new ValidatedObjectAndEditString(cooked, 
raw.toString());
 
@@ -155,6 +154,15 @@
                return new ValidatedObjectAndEditString(cooked, raw.toString(), 
lastInternalError);
        }
 
+       private static Object getColumnValue(final CyRow row, final String 
columnName) {
+               final Class<?> columnType = 
row.getDataTable().getType(columnName);
+               if (columnType == List.class) {
+                       final Class<?> listElementType = 
row.getDataTable().getListElementType(columnName);
+                       return row.getList(columnName, listElementType);
+               } else
+                       return row.get(columnName, columnType);
+       }
+
        @Override
        public void handleEvent(final ColumnCreatedEvent e) {
                fireTableStructureChanged();
@@ -369,7 +377,6 @@
                        try {
                                reader.mark(0);
                                ch = reader.read();
-System.err.println("************** at the top of the for-loop, ch="+(char)ch);
                        } catch (final IOException e) {
                                throw new IllegalStateException("We should 
*never* get here!");
                        }

Modified: 
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/MultiLineTableCellEditor.java
===================================================================
--- 
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/MultiLineTableCellEditor.java
   2010-12-29 22:11:28 UTC (rev 23276)
+++ 
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/MultiLineTableCellEditor.java
   2010-12-29 23:18:48 UTC (rev 23277)
@@ -73,10 +73,8 @@
        public Component getTableCellEditorComponent(final JTable table, final 
Object value, final boolean isSelected,
                                                     final int row, final int 
column)
        {
-//System.err.println("********************* getTableCellEditorComponent(), 
column="+column+", value="+value);
                final String text = (value != null) ? 
((ValidatedObjectAndEditString)value).getEditString() : "";
                textArea.setTable(table);
-System.err.println("********************* text="+text);
                textArea.setText(text);
 
                return textArea;

Modified: 
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/TableBrowser.java
===================================================================
--- 
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/TableBrowser.java
       2010-12-29 22:11:28 UTC (rev 23276)
+++ 
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/TableBrowser.java
       2010-12-29 23:18:48 UTC (rev 23277)
@@ -39,7 +39,6 @@
        TableBrowser(final CyTableManager tableManager, final 
CyServiceRegistrar serviceRegistrar,
                     final CyEventHelper eventHelper, final EqnCompiler 
compiler)
        {
-System.err.println("*******************************************************************************************
 Entering TableBrowser constructor!");
                this.tableManager = tableManager;
                this.serviceRegistrar = serviceRegistrar;
                this.eventHelper = eventHelper;

Modified: 
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/ui/AttributeBrowserToolBar.java
===================================================================
--- 
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/ui/AttributeBrowserToolBar.java
  2010-12-29 22:11:28 UTC (rev 23276)
+++ 
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/ui/AttributeBrowserToolBar.java
  2010-12-29 23:18:48 UTC (rev 23277)
@@ -39,6 +39,7 @@
 
 import javax.swing.ImageIcon;
 import javax.swing.JButton;
+import javax.swing.JFrame;
 import javax.swing.JList;
 import javax.swing.JMenuItem;
 import javax.swing.JOptionPane;
@@ -115,6 +116,7 @@
        public void setAttrs(final CyTable attrs) {
                this.attrs = attrs;
                createNewAttributeButton.setEnabled(attrs != null);
+               deleteAttributeButton.setEnabled(attrs != null);
        }
 
        private void initializeGUI() {
@@ -416,10 +418,11 @@
                                                                
.addPreferredGap(ComponentPlacement.RELATED)
 /*                                                             
.add(getSelectAllButton())
                                                                
.addPreferredGap(ComponentPlacement.RELATED)
-
                                                                
.addComponent(getUnselectAllButton())
+*/
                                                                
.addPreferredGap(ComponentPlacement.RELATED)
                                                                
.addComponent(getDeleteButton())
+/*
                                                                
.addPreferredGap(ComponentPlacement.RELATED,
                                                                                
 28,
                                                                                
 Short.MAX_VALUE)
@@ -460,10 +463,12 @@
                                                                       
javax.swing.GroupLayout.Alignment.CENTER,
                                                                       
javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                       27, 
Short.MAX_VALUE)
+*/
                                                         
.addComponent(deleteAttributeButton,
                                                                       
javax.swing.GroupLayout.Alignment.CENTER,
                                                                       
javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                       27, 
Short.MAX_VALUE)
+/*
                                                         
.addGroup(buttonBarLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
                                                              
.addComponent(matrixButton,
                                                                   
javax.swing.GroupLayout.PREFERRED_SIZE,
@@ -636,14 +641,14 @@
                ImportExpressionMatrixAction matrixAction = new 
ImportExpressionMatrixAction();
                matrixAction.actionPerformed(null);
        }
+*/
 
        private JButton getDeleteButton() {
                if (deleteAttributeButton == null) {
                        deleteAttributeButton = new JButton();
                        deleteAttributeButton.setBorder(null);
                        deleteAttributeButton.setMargin(new java.awt.Insets(0, 
0, 0, 0));
-                       deleteAttributeButton.setIcon(new 
javax.swing.ImageIcon(AttributeBrowser.class
-                                                                               
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                             
.getClass().getClassLoader().getResource("images/stock_delete.png")));
+                       deleteAttributeButton.setIcon(new 
ImageIcon(getClass().getClassLoader().getResource("images/stock_delete.png")));
                        deleteAttributeButton.setToolTipText("Delete 
Attributes...");
 
                        // Create pop-up window for deletion
@@ -652,11 +657,11 @@
                                                removeAttribute(e);
                                        }
                                });
+                       deleteAttributeButton.setEnabled(false);
                }
 
                return deleteAttributeButton;
        }
-*/
 
 /*
        private JButton getSelectAllButton() {
@@ -710,33 +715,16 @@
                return unselectAllAttributesButton;
        }
 
-/*
        private void removeAttribute(final MouseEvent e) {
                final String[] attrArray = getAttributeArray();
 
-               final DeletionDialog dDialog = new 
DeletionDialog(Cytoscape.getDesktop(), true, attrArray,
-                                                                 
attributeType, tableModel);
+               final JFrame frame = (JFrame)SwingUtilities.getRoot(this);
+               final DeletionDialog dDialog = new DeletionDialog(frame, attrs);
 
                dDialog.pack();
                dDialog.setLocationRelativeTo(browserToolBar);
                dDialog.setVisible(true);
-
-               final List<String> atNames = new ArrayList<String>();
-               for (String attName: 
CyAttributesUtils.getVisibleAttributeNames(attrs))
-                       atNames.add(attName);
-               final List<String> toBeRemoved = new ArrayList<String>();
-               for (String colName: orderedCol) {
-                       if (atNames.contains(colName) == false)
-                               toBeRemoved.add(colName);
-               }
-
-               for (String rem: toBeRemoved)
-                       orderedCol.remove(rem);
-
-               tableModel.setTableData(null, orderedCol);
-               
AttributeBrowser.firePropertyChange(AttributeBrowser.RESTORE_COLUMN, null, 
objectType);
        }
-*/
 
 /*
        private JList getSelectedAttributeList() {

Copied: 
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/ui/DeletionDialog.java
 (from rev 21699, 
coreplugins/trunk/browser/src/main/java/browser/ui/DeletionDialog.java)
===================================================================
--- 
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/ui/DeletionDialog.java
                           (rev 0)
+++ 
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/ui/DeletionDialog.java
   2010-12-29 23:18:48 UTC (rev 23277)
@@ -0,0 +1,135 @@
+package org.cytoscape.browser.ui;
+
+
+import java.awt.Frame;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import java.util.Arrays;
+import java.util.Set;
+
+import javax.swing.AbstractListModel;
+import javax.swing.GroupLayout;
+import javax.swing.GroupLayout.Alignment;
+import javax.swing.JDialog;
+import javax.swing.LayoutStyle;
+import javax.swing.LayoutStyle.ComponentPlacement;
+
+
+import org.cytoscape.browser.internal.BrowserTableModel;
+import org.cytoscape.model.CyTable;
+
+
+public class DeletionDialog extends JDialog {
+       private CyTable attributes;
+
+       /** Creates new form DeletionDialog */
+       protected DeletionDialog(final Frame parent, final CyTable attributes) {
+               super(parent, "Delete Attributes", /* modal = */ true);
+
+               this.attributes = attributes;
+               initComponents();
+       }
+
+       /**
+        * This method is called from within the constructor to initialize the 
form.
+        * WARNING: Do NOT modify this code. The content of this method is 
always
+        * regenerated by the Form Editor.
+        */
+
+       // <editor-fold defaultstate="collapsed" desc=" Generated Code ">
+       private void initComponents() {
+               deletionPane = new javax.swing.JScrollPane();
+               attributeList = new javax.swing.JList();
+               deleteButton = new javax.swing.JButton();
+               cancelButton = new javax.swing.JButton();
+               descriptionLabel = new javax.swing.JLabel();
+
+               
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
+               attributeList.setModel(new AbstractListModel() {
+                               public int getSize() {
+                                       return 
attributes.getColumnTypeMap().size();
+                               }
+
+                               public Object getElementAt(int i) {
+                                       final Set<String> columnNames = 
attributes.getColumnTypeMap().keySet();
+                                       final String[] sortedColumnNames = new 
String[columnNames.size()];
+                                       columnNames.toArray(sortedColumnNames);
+                                       Arrays.sort(sortedColumnNames);
+                                       return sortedColumnNames[i];
+                               }
+                       });
+               deletionPane.setViewportView(attributeList);
+
+               deleteButton.setText("Delete");
+               deleteButton.addActionListener(new ActionListener() {
+                               public void 
actionPerformed(java.awt.event.ActionEvent evt) {
+                                       deleteButtonActionPerformed(evt);
+                               }
+                       });
+
+               cancelButton.setText("Cancel");
+               cancelButton.addActionListener(new ActionListener() {
+                               public void 
actionPerformed(java.awt.event.ActionEvent evt) {
+                                       cancelButtonActionPerformed(evt);
+                                       ;
+                               }
+                       });
+
+               descriptionLabel.setText("Please select attributes to be 
deleted:");
+
+               final GroupLayout layout = new GroupLayout(getContentPane());
+               getContentPane().setLayout(layout);
+               
layout.setHorizontalGroup(layout.createParallelGroup(Alignment.LEADING)
+                                               
.addGroup(layout.createSequentialGroup().addContainerGap()
+                                                          
.addGroup(layout.createParallelGroup(Alignment.LEADING)
+                                                                     
.addGroup(Alignment.TRAILING,
+                                                                          
layout.createSequentialGroup()
+                                                                               
 .addComponent(deleteButton)
+                                                                               
 .addPreferredGap(ComponentPlacement.RELATED)
+                                                                               
 .addComponent(cancelButton)
+                                                                               
 .addContainerGap())
+                                                                     
.addGroup(Alignment.TRAILING,
+                                                                          
layout.createSequentialGroup()
+                                                                               
 .addComponent(deletionPane,
+                                                                               
      GroupLayout.DEFAULT_SIZE,
+                                                                               
      229, Short.MAX_VALUE)
+                                                                               
 .addGap(12, 12, 12))
+                                                                     
.addGroup(layout.createSequentialGroup()
+                                                                               
 .addComponent(descriptionLabel)
+                                                                               
 .addContainerGap(26,
+                                                                               
                  Short.MAX_VALUE)))));
+               
layout.setVerticalGroup(layout.createParallelGroup(Alignment.LEADING)
+                                             .addGroup(Alignment.TRAILING,
+                                                  
layout.createSequentialGroup().addContainerGap()
+                                                        
.addComponent(descriptionLabel).addGap(12, 12, 12)
+                                                        
.addComponent(deletionPane,
+                                                             
GroupLayout.DEFAULT_SIZE,
+                                                             200, 
Short.MAX_VALUE)
+                                                        
.addPreferredGap(ComponentPlacement.RELATED)
+                                                        
.addGroup(layout.createParallelGroup(Alignment.BASELINE)
+                                                                   
.addComponent(deleteButton).addComponent(cancelButton))
+                                                        .addContainerGap()));
+               pack();
+       } // </editor-fold>
+
+       private void deleteButtonActionPerformed(ActionEvent evt) {
+               final Object[] selected = attributeList.getSelectedValues();
+               for (int i = 0; i < selected.length; i++)
+                       attributes.deleteColumn(selected[i].toString());
+               dispose();
+       }
+
+       private void cancelButtonActionPerformed(ActionEvent evt) {
+               dispose();
+       }
+
+       // Variables declaration - do not modify
+       private javax.swing.JList attributeList;
+       private javax.swing.JButton cancelButton;
+       private javax.swing.JButton deleteButton;
+       private javax.swing.JScrollPane deletionPane;
+       private javax.swing.JLabel descriptionLabel;
+
+       // End of variables declaration
+}

-- 
You received this message because you are subscribed to the Google Groups 
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/cytoscape-cvs?hl=en.

Reply via email to