Author: kono
Date: 2011-10-07 13:34:22 -0700 (Fri, 07 Oct 2011)
New Revision: 27085

Modified:
   
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/AbstractTableBrowser.java
   
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/AttributeBrowserToolBar.java
   
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/BrowserTable.java
   
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/BrowserTableModel.java
   
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/CyActivator.java
   
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/DefaultTableBrowser.java
   
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/GlobalTableBrowser.java
   
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/TableMetadata.java
Log:
fixes #409 Table-oriented selection mode implemented.  Still need to check 
performance of selection.  It's slow for large network.

Modified: 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/AbstractTableBrowser.java
===================================================================
--- 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/AbstractTableBrowser.java
  2011-10-07 20:32:33 UTC (rev 27084)
+++ 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/AbstractTableBrowser.java
  2011-10-07 20:34:22 UTC (rev 27085)
@@ -23,6 +23,7 @@
 import org.cytoscape.application.swing.CytoPanelComponent;
 import org.cytoscape.application.swing.CytoPanelName;
 import org.cytoscape.equations.EquationCompiler;
+import org.cytoscape.event.CyEventHelper;
 import org.cytoscape.model.CyNetworkManager;
 import org.cytoscape.model.CyNetworkTableManager;
 import org.cytoscape.model.CyTable;
@@ -70,7 +71,7 @@
                        final CyServiceRegistrar serviceRegistrar, final 
EquationCompiler compiler, final OpenBrowser openBrowser,
                        final CyNetworkManager networkManager, final 
TableTaskFactory deleteTableTaskFactoryService,
                        final GUITaskManager guiTaskManagerServiceRef, final 
PopupMenuHelper popupMenuHelper,
-                       final CyApplicationManager applicationManager) {
+                       final CyApplicationManager applicationManager, final 
CyEventHelper eventHelper) {
                this.networkTableManager = networkTableManager;
                this.serviceRegistrar = serviceRegistrar;
                this.compiler = compiler;
@@ -80,7 +81,7 @@
                this.tableToMetadataMap = new HashMap<CyTable, TableMetadata>();
                this.applicationManager = applicationManager;
 
-               this.browserTable = new BrowserTable(openBrowser, compiler, 
popupMenuHelper);
+               this.browserTable = new BrowserTable(openBrowser, compiler, 
popupMenuHelper, applicationManager, eventHelper);
                
                this.setLayout(new BorderLayout());
                
@@ -120,6 +121,7 @@
        
        void showSelectedTable() {
                browserTableModel = new BrowserTableModel(browserTable, 
currentTable, compiler);
+               
                serviceRegistrar.registerAllServices(browserTableModel, new 
Properties());
                browserTable.setUpdateComparators(false);
                browserTable.setModel(browserTableModel);

Modified: 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/AttributeBrowserToolBar.java
===================================================================
--- 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/AttributeBrowserToolBar.java
       2011-10-07 20:32:33 UTC (rev 27084)
+++ 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/AttributeBrowserToolBar.java
       2011-10-07 20:34:22 UTC (rev 27085)
@@ -127,6 +127,7 @@
                this.attrListModel = new AttributeListModel(null);
                serviceRegistrar.registerAllServices(attrListModel, new 
Properties());
 
+               selectionModeButton.setEnabled(false);
                initializeGUI();
        }
 
@@ -140,6 +141,7 @@
                deleteAttributeButton.setEnabled(browserTableModel != null);
                deleteTableButton.setEnabled(browserTableModel != null);
                formulaBuilderButton.setEnabled(browserTableModel != null);
+               selectionModeButton.setEnabled(browserTableModel != null);
        }
 
        private void initializeGUI() {

Modified: 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/BrowserTable.java
===================================================================
--- 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/BrowserTable.java
  2011-10-07 20:32:33 UTC (rev 27084)
+++ 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/BrowserTable.java
  2011-10-07 20:34:22 UTC (rev 27085)
@@ -3,13 +3,14 @@
 
 import java.awt.Color;
 import java.awt.Component;
-import java.awt.Cursor;
 import java.awt.Dimension;
 import java.awt.Font;
 import java.awt.KeyboardFocusManager;
 import java.awt.Rectangle;
 import java.awt.Toolkit;
 import java.awt.Window;
+import java.awt.datatransfer.Clipboard;
+import java.awt.datatransfer.StringSelection;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.awt.event.KeyEvent;
@@ -17,20 +18,17 @@
 import java.awt.event.MouseEvent;
 import java.awt.event.MouseListener;
 import java.awt.event.MouseMotionListener;
-import java.awt.datatransfer.Clipboard;
-import java.awt.datatransfer.StringSelection;
-
 import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;
-
 import java.net.MalformedURLException;
 import java.net.URL;
-
 import java.util.ArrayList;
 import java.util.EventObject;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 import java.util.Vector;
 
 import javax.swing.BorderFactory;
@@ -52,28 +50,30 @@
 import javax.swing.table.TableModel;
 import javax.swing.table.TableRowSorter;
 
+import org.cytoscape.application.CyApplicationManager;
+import org.cytoscape.browser.util.TableBrowserUtil;
 import org.cytoscape.equations.EquationCompiler;
-import org.cytoscape.service.util.CyServiceRegistrar;
+import org.cytoscape.event.CyEventHelper;
+import org.cytoscape.model.CyColumn;
+import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyRow;
 import org.cytoscape.util.swing.OpenBrowser;
-import org.cytoscape.model.CyRow;
-import org.cytoscape.model.CyTable;
-import org.cytoscape.model.CyColumn;
+import org.cytoscape.view.model.CyNetworkView;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.awt.event.FocusListener;
-import java.awt.event.FocusEvent;
-import javax.swing.event.CellEditorListener;
-import javax.swing.event.ChangeEvent;
-import org.cytoscape.browser.util.TableBrowserUtil;
 
+public class BrowserTable extends JTable implements MouseListener, 
ActionListener, MouseMotionListener {
+       
+       
+       private static final long serialVersionUID = 4415856756184765301L;
 
-public class BrowserTable extends JTable
-       implements MouseListener, ActionListener, MouseMotionListener
-{
+       private static final Logger logger = 
LoggerFactory.getLogger(BrowserTable.class);
+       
        private static final Font BORDER_FONT = new Font("Sans-serif", 
Font.BOLD, 12);
        private static final TableCellRenderer cellRenderer = new 
BrowserTableCellRenderer();
        private static final String MAC_OS_ID = "mac";
+       
        private Clipboard systemClipboard;
        private CellEditorRemover editorRemover = null;
        private Map<String, Map<String, String>> linkoutProps;
@@ -89,18 +89,20 @@
        private final EquationCompiler compiler;
        private final PopupMenuHelper popupMenuHelper;
        private boolean updateColumnComparators;
-       private static final Logger logger = 
LoggerFactory.getLogger(BrowserTable.class);
        
+       private final CyApplicationManager applicationManager;
+       private final CyEventHelper eventHelper;
 
        public BrowserTable(final OpenBrowser openBrowser, final 
EquationCompiler compiler,
-                           final PopupMenuHelper popupMenuHelper)
-       {
+                       final PopupMenuHelper popupMenuHelper, final 
CyApplicationManager applicationManager,
+                       final CyEventHelper eventHelper) {
                this.openBrowser     = openBrowser;
                this.compiler        = compiler;
                this.popupMenuHelper = popupMenuHelper;
                this.updateColumnComparators = false;
+               this.applicationManager = applicationManager;
+               this.eventHelper = eventHelper;
 
-//             setColumnModel(new MyTableColumnModel());
                initHeader();
                setCellSelectionEnabled(true);
                setDefaultEditor(Object.class, new MultiLineTableCellEditor());
@@ -133,9 +135,8 @@
 
                final BrowserTable table = this;
 
-               //
+
                // Event handler. Define actions when mouse is clicked.
-               //
                addMouseListener(new MouseAdapter() {
                                public void mouseClicked(MouseEvent e) {
                                        final int column = 
getColumnModel().getColumnIndexAtX(e.getX());
@@ -190,33 +191,58 @@
                                        }
                                } // mouseClicked
 
+                               @Override
                                public void mouseReleased(MouseEvent e) {
-                                       // When the mouse is released, fire 
signal to pass the selected
-                                       // objects in the table.
-                                       // Get selected object names
-                                       final int[] rowsSelected = 
getSelectedRows();
-
-                                       if (rowsSelected.length == 0) {
-                                               return;
-                                       }
-
-                                       final int columnCount = 
getColumnCount();
-                                       int idLocation = 0;
-/*
-                                       // Initialize internal selection table
-                                       ((DataTableModel) 
dataModel).resetSelectionFlags();
-
-                                       setSelectedColor(SELECTED_NODE);
-                                       setSelectedColor(REV_SELECTED_NODE);
-                                       setSelectedColor(SELECTED_EDGE);
-                                       setSelectedColor(REV_SELECTED_EDGE);
-
-                                       resetObjectColor(idLocation);
-                                       paintNodesAndEdges(idLocation);
-*/
+                                       SwingUtilities.invokeLater(new 
Runnable() {
+                                               @Override
+                                               public void run() {
+                                                       selectFromTable();
+                                               }
+                                       });
                                }
                        });
        }
+       
+       
+       private void selectFromTable() {
+               final TableModel model = this.getModel();
+               if(model instanceof BrowserTableModel == false)
+                       return;
+               
+               BrowserTableModel btModel = (BrowserTableModel) model;
+               if(btModel.isShowAll() == false)
+                       return;
+               
+               final int[] rowsSelected = getSelectedRows();
+               if (rowsSelected.length == 0)
+                       return;
+               
+               final int selectedRowCount = getSelectedRowCount();
+               
+               //TODO: performance tuning
+               final Set<CyRow> targetRows = new HashSet<CyRow>();
+               for(int i=0; i<selectedRowCount; i++)
+                       targetRows.add(btModel.getRow(rowsSelected[i]));
+               
+               // Clear selection
+               List<CyRow> allRows = btModel.getDataTable().getAllRows();
+               for(CyRow row: allRows) {
+                       final Boolean val = row.get(CyNetwork.SELECTED, 
Boolean.class);
+                       if(targetRows.contains(row)) {
+                               if(!val)
+                                       row.set(CyNetwork.SELECTED, true);
+                               continue;
+                       }
+                       if(val)
+                               row.set(CyNetwork.SELECTED, false);
+               }
+               
+               final CyNetworkView curView = 
applicationManager.getCurrentNetworkView();
+               if(curView != null) {
+                       eventHelper.flushPayloadEvents();
+                       curView.updateView();
+               }
+       }
 
        private void setKeyStroke() {
                final KeyStroke copy = KeyStroke.getKeyStroke(KeyEvent.VK_C, 
ActionEvent.CTRL_MASK, false);
@@ -498,7 +524,7 @@
        }
 
        @Override
-       public void mouseReleased(MouseEvent event) {
+       public void mouseReleased(MouseEvent event) {           
        }
 
        @Override

Modified: 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/BrowserTableModel.java
===================================================================
--- 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/BrowserTableModel.java
     2011-10-07 20:32:33 UTC (rev 27084)
+++ 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/BrowserTableModel.java
     2011-10-07 20:34:22 UTC (rev 27085)
@@ -35,6 +35,7 @@
 
 public final class BrowserTableModel extends AbstractTableModel implements 
ColumnCreatedListener,
                ColumnDeletedListener, ColumnNameChangedListener, 
RowsSetListener, RowsCreatedListener {
+       
        private static final long serialVersionUID = -517521404005631245L;
        
        private static final int MAX_INITIALLY_VSIBLE_ATTRS = 10;
@@ -43,20 +44,32 @@
        private final CyTable dataTable;
        
        private final EquationCompiler compiler;
-       private boolean tableHasBooleanSelected;
+
+       // If this is FALSE, it's a Global.
+       private boolean regularViewMode;
+       
+       //private boolean showAll = false;
        private List<AttrNameAndVisibility> attrNamesAndVisibilities;
+       
        private Collection<CyRow> selectedRows = null;
 
+
        public BrowserTableModel(final JTable table, final CyTable dataTable, 
final EquationCompiler compiler) {
                this.table = table;
                this.dataTable = dataTable;
                this.compiler = compiler;
                final CyColumn selectedColumn = 
dataTable.getColumn(CyNetwork.SELECTED);
-               this.tableHasBooleanSelected = selectedColumn != null && 
selectedColumn.getType() == Boolean.class;
+               this.regularViewMode = selectedColumn != null && 
selectedColumn.getType() == Boolean.class;
 
                initAttrNamesAndVisibilities();
        }
+       
+       CyTable getDataTable() {
+               return dataTable;
+       }
+       
 
+
        private void initAttrNamesAndVisibilities() {
                attrNamesAndVisibilities = new 
ArrayList<AttrNameAndVisibility>(dataTable.getColumns().size());
                final CyColumn primaryKey = dataTable.getPrimaryKey();
@@ -125,7 +138,8 @@
                if (columns.isEmpty())
                        return 0;
 
-               if (!tableHasBooleanSelected)
+               // Show Global Table OR selection mode is table-oriented
+               if (!regularViewMode)
                        return dataTable.getRowCount();
 
                return dataTable.getMatchingRows(CyNetwork.SELECTED, 
Boolean.valueOf(true)).size();
@@ -156,7 +170,7 @@
        }
 
        private CyRow mapRowIndexToRow(final int rowIndex) {
-               if (tableHasBooleanSelected) {
+               if (regularViewMode) {
                        if (selectedRows == null)
                                selectedRows = 
dataTable.getMatchingRows(CyNetwork.SELECTED, true);
 
@@ -187,7 +201,7 @@
                final Class<?> primaryKeyType = 
dataTable.getPrimaryKey().getType();
 
                int index = 0;
-               if (tableHasBooleanSelected) {
+               if (regularViewMode) {
                        if (selectedRows == null)
                                selectedRows = 
dataTable.getMatchingRows(CyNetwork.SELECTED, true);
 
@@ -301,9 +315,9 @@
        @Override
        public void handleEvent(final RowsSetEvent e) {
                if (e.getSource() != dataTable)
-                       return;
-
-               if (tableHasBooleanSelected) {
+                       return;         
+               
+               if (regularViewMode) {
                        selectedRows = null;
                        boolean foundANonSelectedColumnName = false;
                        for (final RowSetRecord rowSet : 
e.getPayloadCollection()) {
@@ -320,13 +334,32 @@
                }
 
                for (final RowSetRecord rowSet : e.getPayloadCollection())
-                       handleRowValueUpdate(rowSet.getRow(), 
rowSet.getColumn(),
-                                            rowSet.getValue(), 
rowSet.getRawValue());
+                       handleRowValueUpdate(rowSet.getRow(), 
rowSet.getColumn(), rowSet.getValue(), rowSet.getRawValue());
        }
+       
+       /**
+        * Switch view mode.
+        * 
+        * 
+        * @param showAll
+        */
+       void setShowAll(boolean showAll) {
+               if(showAll) {
+                       regularViewMode = false;
+               } else {
+                       regularViewMode = true;
+               }
+               fireTableDataChanged();
+       }
+       
+       boolean isShowAll() {
+               return !regularViewMode;
+       }
 
        private void handleRowValueUpdate(final CyRow row, final String 
columnName, final Object newValue,
                                  final Object newRawValue)
        {
+               
                final int rowIndex = mapRowToRowIndex(row);
                if (rowIndex == -1)
                        return;
@@ -335,7 +368,7 @@
                if (columnIndex == -1)
                        return;
 
-               if (tableHasBooleanSelected && 
columnName.equals(CyNetwork.SELECTED)) {
+               if (regularViewMode && columnName.equals(CyNetwork.SELECTED)) {
 /*
                        final boolean selected = (Boolean)newValue;
                        final int rowIndex = mapRowToRowIndex(row);
@@ -415,6 +448,10 @@
                return cellVect;
        }
        
+       CyRow getRow(final int rowIndex) {
+               return mapRowIndexToRow(rowIndex);
+       }
+       
        @Override
        public void setValueAt(final Object value, final int rowIndex, final 
int columnIndex) {
                final String text = (String)value;

Modified: 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/CyActivator.java
===================================================================
--- 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/CyActivator.java
   2011-10-07 20:32:33 UTC (rev 27084)
+++ 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/CyActivator.java
   2011-10-07 20:34:22 UTC (rev 27085)
@@ -2,6 +2,7 @@
 
 import org.cytoscape.util.swing.OpenBrowser;
 import org.cytoscape.equations.EquationCompiler;
+import org.cytoscape.event.CyEventHelper;
 import org.cytoscape.model.CyNetworkManager;
 import org.cytoscape.application.CyApplicationManager;
 import org.cytoscape.service.util.CyServiceRegistrar;
@@ -43,14 +44,16 @@
                GUITaskManager guiTaskManagerServiceRef = 
getService(bc,GUITaskManager.class);
                CyApplicationManager cyApplicationManagerServiceRef = 
getService(bc,CyApplicationManager.class);
                CyNetworkTableManager cyNetworkTableManagerServiceRef = 
getService(bc,CyNetworkTableManager.class);
+               
+               CyEventHelper cyEventHelperServiceRef = 
getService(bc,CyEventHelper.class);
 
                PopupMenuHelper popupMenuHelper = new 
PopupMenuHelper(guiTaskManagerServiceRef);
                
-               AbstractTableBrowser nodeTableBrowser = new 
DefaultTableBrowser("Node Table", CyNode.class, 
cyTableManagerServiceRef,cyNetworkTableManagerServiceRef,cyServiceRegistrarServiceRef,compilerServiceRef,openBrowserServiceRef,cyNetworkManagerServiceRef,deleteTableTaskFactoryService,guiTaskManagerServiceRef,popupMenuHelper,cyApplicationManagerServiceRef);
-               AbstractTableBrowser edgeTableBrowser = new 
DefaultTableBrowser("Edge Table", CyEdge.class, 
cyTableManagerServiceRef,cyNetworkTableManagerServiceRef,cyServiceRegistrarServiceRef,compilerServiceRef,openBrowserServiceRef,cyNetworkManagerServiceRef,deleteTableTaskFactoryService,guiTaskManagerServiceRef,popupMenuHelper,cyApplicationManagerServiceRef);
-               AbstractTableBrowser networkTableBrowser = new 
DefaultTableBrowser("Network Table", CyNetwork.class, 
cyTableManagerServiceRef,cyNetworkTableManagerServiceRef,cyServiceRegistrarServiceRef,compilerServiceRef,openBrowserServiceRef,cyNetworkManagerServiceRef,deleteTableTaskFactoryService,guiTaskManagerServiceRef,popupMenuHelper,cyApplicationManagerServiceRef);
+               AbstractTableBrowser nodeTableBrowser = new 
DefaultTableBrowser("Node Table", CyNode.class, 
cyTableManagerServiceRef,cyNetworkTableManagerServiceRef,cyServiceRegistrarServiceRef,compilerServiceRef,openBrowserServiceRef,cyNetworkManagerServiceRef,deleteTableTaskFactoryService,guiTaskManagerServiceRef,popupMenuHelper,cyApplicationManagerServiceRef,
 cyEventHelperServiceRef);
+               AbstractTableBrowser edgeTableBrowser = new 
DefaultTableBrowser("Edge Table", CyEdge.class, 
cyTableManagerServiceRef,cyNetworkTableManagerServiceRef,cyServiceRegistrarServiceRef,compilerServiceRef,openBrowserServiceRef,cyNetworkManagerServiceRef,deleteTableTaskFactoryService,guiTaskManagerServiceRef,popupMenuHelper,cyApplicationManagerServiceRef,
 cyEventHelperServiceRef);
+               AbstractTableBrowser networkTableBrowser = new 
DefaultTableBrowser("Network Table", CyNetwork.class, 
cyTableManagerServiceRef,cyNetworkTableManagerServiceRef,cyServiceRegistrarServiceRef,compilerServiceRef,openBrowserServiceRef,cyNetworkManagerServiceRef,deleteTableTaskFactoryService,guiTaskManagerServiceRef,popupMenuHelper,cyApplicationManagerServiceRef,
 cyEventHelperServiceRef);
                
-               AbstractTableBrowser globalTableBrowser = new 
GlobalTableBrowser("Global Table", 
cyTableManagerServiceRef,cyNetworkTableManagerServiceRef,cyServiceRegistrarServiceRef,compilerServiceRef,openBrowserServiceRef,cyNetworkManagerServiceRef,deleteTableTaskFactoryService,guiTaskManagerServiceRef,popupMenuHelper,cyApplicationManagerServiceRef);
+               AbstractTableBrowser globalTableBrowser = new 
GlobalTableBrowser("Global Table", 
cyTableManagerServiceRef,cyNetworkTableManagerServiceRef,cyServiceRegistrarServiceRef,compilerServiceRef,openBrowserServiceRef,cyNetworkManagerServiceRef,deleteTableTaskFactoryService,guiTaskManagerServiceRef,popupMenuHelper,cyApplicationManagerServiceRef,
 cyEventHelperServiceRef);
 
                
                registerAllServices(bc,nodeTableBrowser, new Properties());

Modified: 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/DefaultTableBrowser.java
===================================================================
--- 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/DefaultTableBrowser.java
   2011-10-07 20:32:33 UTC (rev 27084)
+++ 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/DefaultTableBrowser.java
   2011-10-07 20:34:22 UTC (rev 27085)
@@ -16,16 +16,19 @@
 import javax.swing.JList;
 import javax.swing.JToggleButton;
 import javax.swing.ListCellRenderer;
+import javax.swing.event.ChangeListener;
 
 import org.cytoscape.application.CyApplicationManager;
 import org.cytoscape.application.events.SetCurrentNetworkEvent;
 import org.cytoscape.application.events.SetCurrentNetworkListener;
 import org.cytoscape.equations.EquationCompiler;
+import org.cytoscape.event.CyEventHelper;
 import org.cytoscape.model.CyEdge;
 import org.cytoscape.model.CyNetwork;
 import org.cytoscape.model.CyNetworkManager;
 import org.cytoscape.model.CyNetworkTableManager;
 import org.cytoscape.model.CyNode;
+import org.cytoscape.model.CyTable;
 import org.cytoscape.model.CyTableEntry;
 import org.cytoscape.model.CyTableManager;
 import org.cytoscape.model.events.NetworkAboutToBeDestroyedEvent;
@@ -45,14 +48,15 @@
        
        private final JComboBox networkChooser;
        private final Class<? extends CyTableEntry> objType;
+       
 
        public DefaultTableBrowser(String tabTitle, Class<? extends 
CyTableEntry> objType, CyTableManager tableManager,
                        CyNetworkTableManager networkTableManager, 
CyServiceRegistrar serviceRegistrar, EquationCompiler compiler,
                        OpenBrowser openBrowser, CyNetworkManager 
networkManager, TableTaskFactory deleteTableTaskFactoryService,
                        GUITaskManager guiTaskManagerServiceRef, 
PopupMenuHelper popupMenuHelper,
-                       CyApplicationManager applicationManager) {
+                       CyApplicationManager applicationManager, final 
CyEventHelper eventHelper) {
                super(tabTitle, tableManager, networkTableManager, 
serviceRegistrar, compiler, openBrowser, networkManager,
-                               deleteTableTaskFactoryService, 
guiTaskManagerServiceRef, popupMenuHelper, applicationManager);
+                               deleteTableTaskFactoryService, 
guiTaskManagerServiceRef, popupMenuHelper, applicationManager, eventHelper);
 
                this.objType = objType;
 
@@ -74,17 +78,19 @@
 
                selectionModeButton.addMouseListener(new MouseAdapter() {
                                public void mouseClicked(MouseEvent e) {
-                                       
+                                       changeSelectionMode();
                                }
                        });
                
-               
-               
                this.attributeBrowserToolBar = new 
AttributeBrowserToolBar(serviceRegistrar, compiler,
                                deleteTableTaskFactoryService, 
guiTaskManagerServiceRef, networkChooser, selectionModeButton);
 
                add(attributeBrowserToolBar, BorderLayout.NORTH);
        }
+       
+       private void changeSelectionMode() {
+               browserTableModel.setShowAll(selectionModeButton.isSelected());
+       }
 
        
        @Override
@@ -100,16 +106,23 @@
        @Override
        public void handleEvent(final SetCurrentNetworkEvent e) {
                final CyNetwork currentNetwork = e.getNetwork();
-
+               final CyNetwork selectedNetwork = (CyNetwork) 
networkChooser.getSelectedItem();
+               
+               
                if (browserTableModel != null)
                        
serviceRegistrar.unregisterAllServices(browserTableModel);
 
-               if (objType == CyNode.class)
+               if (objType == CyNode.class) {
                        currentTable = currentNetwork.getDefaultNodeTable();
-               else if (objType == CyEdge.class)
+               } else if (objType == CyEdge.class) {
                        currentTable = currentNetwork.getDefaultEdgeTable();
-               else
+               } else {
                        currentTable = currentNetwork.getDefaultNetworkTable();
+               }
+               
+//             if(this.browserTableModel != null && 
browserTableModel.getDataTable() == currentTable)
+//                     return;
+
                networkChooser.setSelectedItem(currentNetwork);
                showSelectedTable();
        }

Modified: 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/GlobalTableBrowser.java
===================================================================
--- 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/GlobalTableBrowser.java
    2011-10-07 20:32:33 UTC (rev 27084)
+++ 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/GlobalTableBrowser.java
    2011-10-07 20:34:22 UTC (rev 27085)
@@ -12,6 +12,7 @@
 import org.cytoscape.application.CyApplicationManager;
 import org.cytoscape.browser.internal.TableChooser.GlobalTableComboBoxModel;
 import org.cytoscape.equations.EquationCompiler;
+import org.cytoscape.event.CyEventHelper;
 import org.cytoscape.model.CyEdge;
 import org.cytoscape.model.CyNetwork;
 import org.cytoscape.model.CyNetworkManager;
@@ -46,9 +47,9 @@
                        CyServiceRegistrar serviceRegistrar, EquationCompiler 
compiler, OpenBrowser openBrowser,
                        CyNetworkManager networkManager, TableTaskFactory 
deleteTableTaskFactoryService,
                        GUITaskManager guiTaskManagerServiceRef, 
PopupMenuHelper popupMenuHelper,
-                       CyApplicationManager applicationManager) {
+                       CyApplicationManager applicationManager, CyEventHelper 
eventHelper) {
                super(tabTitle, tableManager, networkTableManager, 
serviceRegistrar, compiler, openBrowser, networkManager,
-                               deleteTableTaskFactoryService, 
guiTaskManagerServiceRef, popupMenuHelper, applicationManager);
+                               deleteTableTaskFactoryService, 
guiTaskManagerServiceRef, popupMenuHelper, applicationManager, eventHelper);
 
                tableChooser = new TableChooser();
                tableChooser.addActionListener(this);

Modified: 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/TableMetadata.java
===================================================================
--- 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/TableMetadata.java
 2011-10-07 20:32:33 UTC (rev 27084)
+++ 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/TableMetadata.java
 2011-10-07 20:34:22 UTC (rev 27085)
@@ -9,7 +9,6 @@
 import javax.swing.JTable;
 import javax.swing.table.TableColumn;
 import javax.swing.table.TableColumnModel;
-import javax.swing.table.TableModel;
 
 
 class TableMetadata {

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