Author: pwang
Date: 2011-02-10 15:43:23 -0800 (Thu, 10 Feb 2011)
New Revision: 24092

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/TableChooser.java
Log:
Update browser table after table deletion

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
       2011-02-10 22:16:34 UTC (rev 24091)
+++ 
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/TableBrowser.java
       2011-02-10 23:43:23 UTC (rev 24092)
@@ -22,17 +22,20 @@
 import org.cytoscape.model.CyTableManager;
 import org.cytoscape.model.CyTableRowUpdateService;
 import org.cytoscape.model.events.RowCreatedMicroListener;
+import org.cytoscape.model.events.TableDeletedEvent;
 import org.cytoscape.application.swing.CytoPanelComponent;
 import org.cytoscape.application.swing.CytoPanelName;
 import org.cytoscape.service.util.CyServiceRegistrar;
 import org.cytoscape.util.swing.OpenBrowser;
 import org.cytoscape.view.model.events.NetworkViewAddedEvent;
 import org.cytoscape.view.model.events.NetworkViewAddedListener;
+import org.cytoscape.model.events.TableDeletedListener;
+import javax.swing.table.DefaultTableModel;
 
 
 @SuppressWarnings("serial")
 public class TableBrowser
-       extends JPanel implements CytoPanelComponent, ActionListener, 
NetworkViewAddedListener
+       extends JPanel implements CytoPanelComponent, ActionListener, 
NetworkViewAddedListener, TableDeletedListener
 {
        private final CyTableManager tableManager;
        private final CyServiceRegistrar serviceRegistrar;
@@ -96,6 +99,17 @@
 
        public void actionPerformed(ActionEvent e) {
                final CyTable table = (CyTable)tableChooser.getSelectedItem();
+               if (table == null && table != currentTable){
+                       if (browserTableModel != null) {
+                               browserTableModel.cleanup();
+                               
serviceRegistrar.unregisterAllServices(browserTableModel);
+                       }
+                       currentTable = null;
+                       browserTableModel = null;
+                       browserTable.setModel(new DefaultTableModel());
+                       attributeBrowserToolBar.setBrowserTableModel(null);
+               }
+               
                if (table != null && table != currentTable) {
                        if (browserTableModel != null) {
                                browserTableModel.cleanup();
@@ -118,4 +132,10 @@
                final MyComboBoxModel comboBoxModel = 
(MyComboBoxModel)tableChooser.getModel();
                comboBoxModel.addAndSetSelectedItem(nodeTable);
        }
+       
+       public void handleEvent(TableDeletedEvent e){
+               final CyTable cyTable = e.getTable();
+               final MyComboBoxModel comboBoxModel = 
(MyComboBoxModel)tableChooser.getModel();
+               comboBoxModel.removeItem(cyTable);
+       }
 }
\ No newline at end of file

Modified: 
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/TableChooser.java
===================================================================
--- 
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/TableChooser.java
       2011-02-10 22:16:34 UTC (rev 24091)
+++ 
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/TableChooser.java
       2011-02-10 23:43:23 UTC (rev 24092)
@@ -103,6 +103,27 @@
                }
                setSelectedItem(newTable);
        }
+       
+       
+       public void removeItem(CyTable deletedTable){
+               
+               if (tables.contains(deletedTable)) {
+                       tables.remove(deletedTable);
+                       Collections.sort(tables, tableComparator);
+                       oldSet.clear();
+                       for (final CyTable table : tables)
+                               oldSet.add(table);
+                       updateTableToStringMap();
+                       this.fireIntervalRemoved(this, 0, oldSet.size()+1);
+               }
+               
+               if (oldSet.size() ==0){
+                       setSelectedItem(null);                  
+               }
+               else {
+                       setSelectedItem(tables.get(0));
+               }
+       }
 }
 
 

-- 
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