Author: mes
Date: 2012-06-08 17:24:51 -0700 (Fri, 08 Jun 2012)
New Revision: 29516
Modified:
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/CyActivator.java
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/creation/CreateNetworkViewTaskFactoryImpl.java
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/task/TaskFactoryTunableAction.java
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/CytoscapeMenuPopulator.java
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/NetworkPanel.java
Log:
fixes #1033 Instead of adding new enableFor keys, I just updated the
CreateNetworkViewTaskFactory to implement the isReady() method and then tweaked
SwingApplication so that it would use the TaskFactory isReady() method instead
of enableFor if the enableFor key wasn't defined for the TaskFactort service
properties.
Modified:
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/CyActivator.java
===================================================================
---
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/CyActivator.java
2012-06-08 22:27:13 UTC (rev 29515)
+++
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/CyActivator.java
2012-06-09 00:24:51 UTC (rev 29516)
@@ -762,7 +762,7 @@
Properties createNetworkViewTaskFactoryProps = new Properties();
createNetworkViewTaskFactoryProps.setProperty(ID,"createNetworkViewTaskFactory");
-
createNetworkViewTaskFactoryProps.setProperty(ENABLE_FOR,"networkWithoutView");
+ // No ENABLE_FOR because that is handled by the isReady()
methdod of the task factory.
createNetworkViewTaskFactoryProps.setProperty(PREFERRED_MENU,"Edit");
createNetworkViewTaskFactoryProps.setProperty(MENU_GRAVITY,"3.0");
createNetworkViewTaskFactoryProps.setProperty(TITLE,"Create
View");
Modified:
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/creation/CreateNetworkViewTaskFactoryImpl.java
===================================================================
---
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/creation/CreateNetworkViewTaskFactoryImpl.java
2012-06-08 22:27:13 UTC (rev 29515)
+++
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/creation/CreateNetworkViewTaskFactoryImpl.java
2012-06-09 00:24:51 UTC (rev 29516)
@@ -80,4 +80,12 @@
layouts, eventHelper, vmm));
}
+ @Override
+ public boolean isReady(final Collection<CyNetwork> networks) {
+ for ( CyNetwork n : networks )
+ if ( !networkViewManager.getNetworkViews(n).isEmpty() )
+ return false;
+ return true;
+ }
+
}
Modified:
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/task/TaskFactoryTunableAction.java
===================================================================
---
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/task/TaskFactoryTunableAction.java
2012-06-08 22:27:13 UTC (rev 29515)
+++
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/task/TaskFactoryTunableAction.java
2012-06-09 00:24:51 UTC (rev 29516)
@@ -48,13 +48,30 @@
final protected TaskFactory factory;
final protected DialogTaskManager manager;
- final protected CyApplicationManager applicationManager;
- public TaskFactoryTunableAction(final DialogTaskManager manager, final
TaskFactory factory,
- final Map<String, String> serviceProps, final
CyApplicationManager applicationManager, final CyNetworkViewManager
networkViewManager) {
+ /**
+ * This constructor forces the action to use the TaskFactory.isReady()
method
+ * to determine whether the action should be enabled.
+ */
+ public TaskFactoryTunableAction(final DialogTaskManager manager,
+ final TaskFactory factory,
+ final Map<String, String> serviceProps)
{
+ super(serviceProps, factory);
+ this.manager = manager;
+ this.factory = factory;
+ }
+
+ /**
+ * This constructor forces the action to use the "enableFor" property
in serviceProps
+ * to determine whether the action should be enabled.
+ */
+ public TaskFactoryTunableAction(final DialogTaskManager manager,
+ final TaskFactory factory,
+ final Map<String, String> serviceProps,
+ final CyApplicationManager
applicationManager,
+ final CyNetworkViewManager
networkViewManager) {
super(serviceProps, applicationManager, networkViewManager,
factory);
this.manager = manager;
- this.applicationManager = applicationManager;
this.factory = factory;
}
Modified:
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/CytoscapeMenuPopulator.java
===================================================================
---
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/CytoscapeMenuPopulator.java
2012-06-08 22:27:13 UTC (rev 29515)
+++
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/CytoscapeMenuPopulator.java
2012-06-09 00:24:51 UTC (rev 29516)
@@ -99,10 +99,13 @@
public void addTaskFactory(TaskFactory factory, Map props) {
String pref = (String)(props.get("preferredTaskManager"));
- if (pref != null && pref.equals("panel"))
- addFactory(new
CytoPanelTaskFactoryTunableAction(factory, null, panelTaskManager, props,
appManager, networkViewManager, registrar), factory, props);
- else
- addFactory(new
TaskFactoryTunableAction(dialogTaskManager, factory, props, appManager,
networkViewManager), factory, props);
+ if (pref != null && pref.equals("panel")) {
+ addAction(new
CytoPanelTaskFactoryTunableAction(factory, null, panelTaskManager,
+ props,
appManager, networkViewManager, registrar),
+
factory);
+ } else {
+ addFactory(factory, props);
+ }
}
public void removeTaskFactory(TaskFactory factory, Map props) {
@@ -112,7 +115,7 @@
public void addNetworkTaskFactory(NetworkTaskFactory factory, Map
props) {
TaskFactory provisioner = factoryProvisioner.createFor(factory);
provisionerMap.put(factory, provisioner);
- addFactory(new TaskFactoryTunableAction(dialogTaskManager,
provisioner, props, appManager, networkViewManager), provisioner, props);
+ addFactory(provisioner, props);
}
public void removeNetworkTaskFactory(NetworkTaskFactory factory, Map
props) {
@@ -125,7 +128,7 @@
return;
TaskFactory provisioner = factoryProvisioner.createFor(factory);
provisionerMap.put(factory, provisioner);
- addFactory(new TaskFactoryTunableAction(dialogTaskManager,
provisioner, props, appManager, networkViewManager), provisioner, props);
+ addFactory(provisioner, props);
}
public void removeNetworkViewTaskFactory(NetworkViewTaskFactory
factory, Map props) {
@@ -135,7 +138,7 @@
public void
addNetworkViewCollectionTaskFactory(NetworkViewCollectionTaskFactory factory,
Map props) {
TaskFactory provisioner = factoryProvisioner.createFor(factory);
provisionerMap.put(factory, provisioner);
- addFactory(new TaskFactoryTunableAction(dialogTaskManager,
provisioner, props, appManager, networkViewManager), provisioner, props);
+ addFactory(provisioner, props);
}
public void
removeNetworkViewCollectionTaskFactory(NetworkViewCollectionTaskFactory
factory, Map props) {
@@ -145,7 +148,7 @@
public void
addNetworkCollectionTaskFactory(NetworkCollectionTaskFactory factory, Map
props) {
TaskFactory provisioner = factoryProvisioner.createFor(factory);
provisionerMap.put(factory, provisioner);
- addFactory(new TaskFactoryTunableAction(dialogTaskManager,
provisioner, props, appManager, networkViewManager), provisioner, props);
+ addFactory(provisioner, props);
}
public void
removeNetworkCollectionTaskFactory(NetworkCollectionTaskFactory factory, Map
props) {
@@ -155,14 +158,24 @@
public void addTableTaskFactory(TableTaskFactory factory, Map props) {
TaskFactory provisioner = factoryProvisioner.createFor(factory);
provisionerMap.put(factory, provisioner);
- addFactory(new TaskFactoryTunableAction(dialogTaskManager,
provisioner, props, appManager, networkViewManager), provisioner, props);
+ addFactory(provisioner, props);
}
public void removeTableTaskFactory(TableTaskFactory factory, Map props)
{
removeFactory(provisionerMap.get(factory), props);
}
- private <F extends TaskFactory> void addFactory(CyAction action, F
factory, Map props) {
+ private void addFactory(TaskFactory factory, Map props) {
+ CyAction action;
+ if ( props.containsKey("enableFor") )
+ action = new
TaskFactoryTunableAction(dialogTaskManager, factory, props, appManager,
networkViewManager);
+ else
+ action = new
TaskFactoryTunableAction(dialogTaskManager, factory, props);
+
+ addAction(action,factory);
+ }
+
+ private void addAction(CyAction action, TaskFactory factory) {
taskMap.put(factory,action);
app.addAction(action);
}
Modified:
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/NetworkPanel.java
===================================================================
---
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/NetworkPanel.java
2012-06-08 22:27:13 UTC (rev 29515)
+++
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/NetworkPanel.java
2012-06-09 00:24:51 UTC (rev 29516)
@@ -235,7 +235,13 @@
treeTable.addMouseListener(new PopupListener());
}
- private void addFactory(TaskFactory factory, CyAction action) {
+ private void addFactory(TaskFactory factory,
@SuppressWarnings("rawtypes") Map props) {
+ CyAction action;
+ if ( props.containsKey("enableFor") )
+ action = new TaskFactoryTunableAction(taskMgr, factory,
props, appMgr, netViewMgr);
+ else
+ action = new TaskFactoryTunableAction(taskMgr, factory,
props);
+
final JMenuItem item = new JMenuItem(action);
popupMap.put(factory, item);
popupActions.put(factory, action);
@@ -253,18 +259,17 @@
}
public void addTaskFactory(TaskFactory factory,
@SuppressWarnings("rawtypes") Map props) {
- addFactory(factory, new TaskFactoryTunableAction(taskMgr,
factory, props, appMgr, netViewMgr));
+ addFactory(factory, props);
}
public void removeTaskFactory(TaskFactory factory,
@SuppressWarnings("rawtypes") Map props) {
removeFactory(factory);
}
- public void
addNetworkCollectionTaskFactory(NetworkCollectionTaskFactory factory, Map
props) {
+ public void
addNetworkCollectionTaskFactory(NetworkCollectionTaskFactory factory,
@SuppressWarnings("rawtypes") Map props) {
TaskFactory provisioner = factoryProvisioner.createFor(factory);
provisionerMap.put(factory, provisioner);
- addFactory(provisioner, new TaskFactoryTunableAction(taskMgr,
provisioner, props, appMgr,
- netViewMgr));
+ addFactory(provisioner, props);
}
public void
removeNetworkCollectionTaskFactory(NetworkCollectionTaskFactory factory, Map
props) {
@@ -274,8 +279,7 @@
public void
addNetworkViewCollectionTaskFactory(NetworkViewCollectionTaskFactory factory,
Map props) {
TaskFactory provisioner = factoryProvisioner.createFor(factory);
provisionerMap.put(factory, provisioner);
- addFactory(provisioner, new TaskFactoryTunableAction(taskMgr,
provisioner, props, appMgr,
- netViewMgr));
+ addFactory(provisioner, props);
}
public void
removeNetworkViewCollectionTaskFactory(NetworkViewCollectionTaskFactory
factory, Map props) {
@@ -285,8 +289,7 @@
public void addNetworkTaskFactory(NetworkTaskFactory factory,
@SuppressWarnings("rawtypes") Map props) {
TaskFactory provisioner = factoryProvisioner.createFor(factory);
provisionerMap.put(factory, provisioner);
- addFactory(provisioner, new TaskFactoryTunableAction(taskMgr,
provisioner, props, appMgr,
- netViewMgr));
+ addFactory(provisioner, props);
}
public void removeNetworkTaskFactory(NetworkTaskFactory factory,
@SuppressWarnings("rawtypes") Map props) {
@@ -296,8 +299,7 @@
public void addNetworkViewTaskFactory(final NetworkViewTaskFactory
factory, @SuppressWarnings("rawtypes") Map props) {
TaskFactory provisioner = factoryProvisioner.createFor(factory);
provisionerMap.put(factory, provisioner);
- addFactory(provisioner, new TaskFactoryTunableAction(taskMgr,
provisioner, props, appMgr,
- netViewMgr));
+ addFactory(provisioner, props);
}
public void removeNetworkViewTaskFactory(NetworkViewTaskFactory
factory, @SuppressWarnings("rawtypes") Map props) {
--
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.