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.