Author: jm
Date: 2012-08-16 13:13:43 -0700 (Thu, 16 Aug 2012)
New Revision: 30207

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/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/DefaultTableBrowser.java
   
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/PopupMenuHelper.java
   
core3/impl/trunk/table-browser-impl/src/test/java/org/cytoscape/browser/internal/BrowserTableTest.java
Log:
Fixes #1370: Adjusted wording so that it's clear that operation will be applied 
to selected nodes or edges

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
  2012-08-16 19:27:22 UTC (rev 30206)
+++ 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/AbstractTableBrowser.java
  2012-08-16 20:13:43 UTC (rev 30207)
@@ -26,6 +26,7 @@
 import org.cytoscape.browser.internal.util.TableColumnStat;
 import org.cytoscape.equations.EquationCompiler;
 import org.cytoscape.event.CyEventHelper;
+import org.cytoscape.model.CyIdentifiable;
 import org.cytoscape.model.CyNetwork;
 import org.cytoscape.model.CyNetworkManager;
 import org.cytoscape.model.CyNetworkTableManager;
@@ -63,6 +64,7 @@
        protected AttributeBrowserToolBar attributeBrowserToolBar;
                
        protected CyTable currentTable;
+       protected Class<? extends CyIdentifiable> currentTableType;
        protected final CyApplicationManager applicationManager;
        protected final CyNetworkManager networkManager;
        private final PopupMenuHelper popupMenuHelper; 
@@ -76,6 +78,7 @@
        private JScrollPane currentScrollPane;
        protected final String appFileName;
 
+
        
        AbstractTableBrowser(final String tabTitle,
                                                 final CyTableManager 
tableManager,
@@ -150,6 +153,7 @@
                
                if (currentTable == cyTable) {
                        currentTable = null;
+                       currentTableType = null;
                }
        }
        
@@ -219,7 +223,7 @@
                if (table == null && currentTable != null) {
                        table = new BrowserTable(compiler, popupMenuHelper,
                                        applicationManager, eventHelper, 
tableManager);
-                       BrowserTableModel model = new 
BrowserTableModel(currentTable, compiler, tableManager);
+                       BrowserTableModel model = new 
BrowserTableModel(currentTable, currentTableType, compiler, tableManager);
                        table.setModel(model);
                        browserTables.put(currentTable, table);
                        return table;

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
  2012-08-16 19:27:22 UTC (rev 30206)
+++ 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/BrowserTable.java
  2012-08-16 20:13:43 UTC (rev 30207)
@@ -204,7 +204,7 @@
                                        final CyColumn cyColumn = 
tableModel.getColumn(modelColumn);
                                        final Object primaryKeyValue = 
((ValidatedObjectAndEditString) tableModel.getValueAt(modelRow,
                                                        
tableModel.getDataTable().getPrimaryKey().getName())).getValidatedObject();
-                                       
popupMenuHelper.createTableCellMenu(cyColumn, primaryKeyValue, table, e.getX(), 
e.getY());
+                                       
popupMenuHelper.createTableCellMenu(cyColumn, primaryKeyValue, 
tableModel.getTableType(), table, e.getX(), e.getY());
                                } else if (SwingUtilities.isLeftMouseButton(e) 
&& (getSelectedRows().length != 0)) {
                                        // Display List menu.
                                        showListContents(modelRow, modelColumn, 
e);
@@ -494,7 +494,7 @@
                                return;
 
                        final CyColumn cyColumn = 
tableModel.getColumn(convertColumnIndexToModel(column));
-                       popupMenuHelper.createColumnHeaderMenu(cyColumn, this, 
event.getX(), event.getY());
+                       popupMenuHelper.createColumnHeaderMenu(cyColumn, 
tableModel.getTableType(), this, event.getX(), event.getY());
                }
        }
 

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
     2012-08-16 19:27:22 UTC (rev 30206)
+++ 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/BrowserTableModel.java
     2012-08-16 20:13:43 UTC (rev 30207)
@@ -15,6 +15,7 @@
 import org.cytoscape.equations.Equation;
 import org.cytoscape.equations.EquationCompiler;
 import org.cytoscape.model.CyColumn;
+import org.cytoscape.model.CyIdentifiable;
 import org.cytoscape.model.CyNetwork;
 import org.cytoscape.model.CyRow;
 import org.cytoscape.model.CyTable;
@@ -28,6 +29,7 @@
        private static final long serialVersionUID = -517521404005631245L;
 
        private final CyTable dataTable;
+       private final Class<? extends CyIdentifiable> tableType;
        private final EquationCompiler compiler;
 
        private final CyTableManager tableManager;
@@ -43,12 +45,14 @@
        private int maxRowIndex;
 
 
-       public BrowserTableModel(final CyTable dataTable, final 
EquationCompiler compiler,
+
+       public BrowserTableModel(final CyTable dataTable, final Class<? extends 
CyIdentifiable> tableType, final EquationCompiler compiler,
                        final CyTableManager tableManager) {
                this.dataTable = dataTable;
                this.compiler = compiler;
                this.regularViewMode = false; 
                this.tableManager = tableManager;
+               this.tableType = tableType;
 
                attrNames = getAttributeNames(dataTable);
                
@@ -396,4 +400,8 @@
        void addColumn(String name) {
                attrNames.add(name);
        }
+
+       public Class<? extends CyIdentifiable> getTableType() {
+               return tableType;
+       }
 }

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
   2012-08-16 19:27:22 UTC (rev 30206)
+++ 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/DefaultTableBrowser.java
   2012-08-16 20:13:43 UTC (rev 30207)
@@ -171,8 +171,10 @@
                        } else {
                                currentTable = 
currentNetwork.getDefaultNetworkTable();
                        }
+                       currentTableType = objType;
                } else {
                        currentTable = null;
+                       currentTableType = null;
                }
                
                SwingUtilities.invokeLater(new Runnable() {

Modified: 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/PopupMenuHelper.java
===================================================================
--- 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/PopupMenuHelper.java
       2012-08-16 19:27:22 UTC (rev 30206)
+++ 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/PopupMenuHelper.java
       2012-08-16 20:13:43 UTC (rev 30207)
@@ -36,9 +36,12 @@
 import javax.swing.AbstractAction;
 import javax.swing.JMenuItem;
 import javax.swing.JPopupMenu;
-import javax.swing.JSeparator;
 
 import org.cytoscape.model.CyColumn;
+import org.cytoscape.model.CyEdge;
+import org.cytoscape.model.CyIdentifiable;
+import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyNode;
 import org.cytoscape.task.TableCellTaskFactory;
 import org.cytoscape.task.TableColumnTaskFactory;
 import org.cytoscape.util.swing.GravityTracker;
@@ -69,7 +72,7 @@
                factoryProvisioner = new StaticTaskFactoryProvisioner();
        }
 
-       public void createColumnHeaderMenu(final CyColumn column, final 
Component invoker, final int x, final int y) {
+       public void createColumnHeaderMenu(final CyColumn column, final Class<? 
extends CyIdentifiable> tableType, final Component invoker, final int x, final 
int y) {
                if (tableColumnFactoryMap.isEmpty())
                        return;
 
@@ -79,13 +82,13 @@
                for (final Map.Entry<TableColumnTaskFactory, Map> mapEntry : 
tableColumnFactoryMap.entrySet()) {
                        TableColumnTaskFactory taskFactory = mapEntry.getKey();
                        TaskFactory provisioner = 
factoryProvisioner.createFor(taskFactory, column);
-                       createMenuItem(provisioner, tracker, 
mapEntry.getValue());
+                       createMenuItem(provisioner, tracker, 
mapEntry.getValue(), tableType);
                }
 
                menu.show(invoker, x, y);
        }
 
-       public void createTableCellMenu(final CyColumn column, final Object 
primaryKeyValue, final Component invoker,
+       public void createTableCellMenu(final CyColumn column, final Object 
primaryKeyValue, final Class<? extends CyIdentifiable> tableType, final 
Component invoker,
                        final int x, final int y) {
                if (tableCellFactoryMap.isEmpty())
                        return;
@@ -102,7 +105,7 @@
                for (final Map.Entry<TableCellTaskFactory, Map> mapEntry : 
tableCellFactoryMap.entrySet()) {
                        TableCellTaskFactory taskFactory = mapEntry.getKey();
                        TaskFactory provisioner = 
factoryProvisioner.createFor(taskFactory, column, primaryKeyValue);
-                       createMenuItem(provisioner, tracker, 
mapEntry.getValue());
+                       createMenuItem(provisioner, tracker, 
mapEntry.getValue(), tableType);
                }
 
                menu.show(invoker, x, y);
@@ -113,7 +116,10 @@
         * "title" and "preferredMenu" keywords, depending on which are present 
in
         * the service properties.
         */
-       private void createMenuItem(final TaskFactory tf, final 
PopupMenuGravityTracker tracker, final Map props) {
+       private void createMenuItem(final TaskFactory tf, final 
PopupMenuGravityTracker tracker, final Map props, final Class<? extends 
CyIdentifiable> tableType) {
+               if (!enabledFor(tableType, props))
+                       return;
+               
                String menuLabel = (String) (props.get("title"));
                if (menuLabel == null)
                        menuLabel = "Unidentified Task: " + 
Integer.toString(tf.hashCode());
@@ -122,6 +128,33 @@
                        tracker.addMenuItem(new JMenuItem(new PopupAction(tf, 
menuLabel)), GravityTracker.USE_ALPHABETIC_ORDER);
        }
 
+       private boolean enabledFor(Class<? extends CyIdentifiable> tableType, 
Map props) {
+               String types = (String) props.get("tableTypes");
+               if (types == null) {
+                       return true;
+               }
+               
+               for (String type : types.split(",")) {
+                       type = type.trim();
+                       if ("all".equals(type)) {
+                               return true;
+                       }
+                       if ("node".equals(type) && 
CyNode.class.equals(tableType)) {
+                               return true;
+                       }
+                       if ("edge".equals(type) && 
CyEdge.class.equals(tableType)) {
+                               return true;
+                       }
+                       if ("network".equals(type) && 
CyNetwork.class.equals(tableType)) {
+                               return true;
+                       }
+                       if ("unassigned".equals(type) && tableType == null) {
+                               return true;
+                       }
+               }
+               return false;
+       }
+
        public void addTableColumnTaskFactory(final TableColumnTaskFactory 
newFactory, final Map properties) {
                tableColumnFactoryMap.put(newFactory, properties);
        }

Modified: 
core3/impl/trunk/table-browser-impl/src/test/java/org/cytoscape/browser/internal/BrowserTableTest.java
===================================================================
--- 
core3/impl/trunk/table-browser-impl/src/test/java/org/cytoscape/browser/internal/BrowserTableTest.java
      2012-08-16 19:27:22 UTC (rev 30206)
+++ 
core3/impl/trunk/table-browser-impl/src/test/java/org/cytoscape/browser/internal/BrowserTableTest.java
      2012-08-16 20:13:43 UTC (rev 30207)
@@ -1,8 +1,13 @@
 package org.cytoscape.browser.internal;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.mock;
+
 import java.awt.event.MouseEvent;
+import java.util.ArrayList;
 import java.util.List;
-import java.util.ArrayList;
 
 import org.cytoscape.application.CyApplicationManager;
 import org.cytoscape.equations.EquationCompiler;
@@ -10,6 +15,7 @@
 import org.cytoscape.event.CyEventHelper;
 import org.cytoscape.event.DummyCyEventHelper;
 import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyNode;
 import org.cytoscape.model.CyRow;
 import org.cytoscape.model.CyTable;
 import org.cytoscape.model.CyTableManager;
@@ -21,9 +27,6 @@
 import org.cytoscape.work.TaskManager;
 import org.junit.Test;
 
-import static org.junit.Assert.*;
-import static org.mockito.Mockito.mock;
-
 public class BrowserTableTest {
        static final String SHARED_NAME  = "shared name";
        
@@ -46,7 +49,7 @@
                createTable();
                assertEquals(4, table.getColumns().size());
                
-               btm = new BrowserTableModel(table, equationCompiler, 
tableManager);
+               btm = new BrowserTableModel(table, CyNode.class, 
equationCompiler, tableManager);
                browserTable.setModel(btm);
                btcm = (BrowserTableColumnModel) browserTable.getColumnModel();
                btcm.setAllColumnsVisible();

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