Author: kono
Date: 2012-06-15 18:08:25 -0700 (Fri, 15 Jun 2012)
New Revision: 29594
Added:
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/bypass/ClearBypassTask.java
Modified:
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/bypass/BypassManager.java
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/bypass/BypassTask.java
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/bypass/EdgeBypassMenuTaskFactory.java
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/bypass/NodeBypassMenuTaskFactory.java
Log:
fixes #1118 From this version, bypass menu has two sub menus: clear and set.
Modified:
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/bypass/BypassManager.java
===================================================================
---
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/bypass/BypassManager.java
2012-06-16 00:32:04 UTC (rev 29593)
+++
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/bypass/BypassManager.java
2012-06-16 01:08:25 UTC (rev 29594)
@@ -64,22 +64,20 @@
final VisualLexiconNode nodeRootNode =
lexicon.getVisualLexiconNode(nodeRoot);
final VisualLexiconNode edgeRootNode =
lexicon.getVisualLexiconNode(edgeRoot);
-
registerResetTask(CyNode.class);
registerResetTask(CyEdge.class);
depthFirst(PARENT_MENU_ITEM, nodeRootNode);
depthFirst(PARENT_MENU_ITEM, edgeRootNode);
-
-
+
}
public void removeBypass(RenderingEngineFactory<?> factory, Map props) {
// TODO: implement this
}
-
+
private void registerResetTask(Class<? extends CyIdentifiable> type) {
final Properties vpProp = new Properties();
-
+
if (type.equals(CyNode.class)) {
vpProp.put(ServiceProperties.PREFERRED_MENU,
PARENT_MENU_ITEM + ".Reset All Node Bypass");
final NodeViewTaskFactory ntf = new
ResetNodeBypassTaskFactory(appManager);
@@ -92,14 +90,14 @@
}
private void depthFirst(String menuText, final VisualLexiconNode node) {
-
- double menu_gravity = 1.0;
+
+ double menu_gravity = 1.0;
HashMap<String, String> vpMap = new HashMap<String, String>();
Vector<String> vp_names = new Vector<String>();
-
+
final Collection<VisualLexiconNode> children =
node.getChildren();
-
- //get the list of VP
+
+ // get the list of VP
for (VisualLexiconNode child : children) {
final VisualProperty<?> vp = child.getVisualProperty();
@@ -111,18 +109,18 @@
// Leaf
vp_names.add(vp.getDisplayName());
}
- }
-
+ }
+
// do sorting
Object[] names = vp_names.toArray();
java.util.Arrays.sort(names);
-
- //Assign the menu_gravity for each VP
- for (int i =0; i< names.length; i++){
+
+ // Assign the menu_gravity for each VP
+ for (int i = 0; i < names.length; i++) {
menu_gravity += 1.0;
vpMap.put(names[i].toString(),
Double.toString(menu_gravity));
}
-
+
//
for (VisualLexiconNode child : children) {
final VisualProperty<?> vp = child.getVisualProperty();
@@ -131,28 +129,45 @@
if (PropertySheetUtil.isCompatible(vp) == false)
continue;
- final String newMenu = menuText + "." +
vp.getDisplayName();
+ final String baseString = menuText + "." +
vp.getDisplayName();
if (child.getChildren().size() == 0) {
+ final String newMenu = baseString + ".Set
Value";
+ final String clearMenu = baseString + ".Clear";
// Leaf
final Properties vpProp = new Properties();
vpProp.put(ServiceProperties.PREFERRED_MENU,
newMenu);
vpProp.put("useCheckBoxMenuItem", "true");
vpProp.put("targetVP", vp.getIdString());
vpProp.put(MENU_GRAVITY,
vpMap.get(vp.getDisplayName()));
-
+
+ final Properties clearProp = new Properties();
+ clearProp.put(ServiceProperties.PREFERRED_MENU,
clearMenu);
+ // clearProp.put("useCheckBoxMenuItem", "true");
+ clearProp.put("targetVP", vp.getIdString());
+ clearProp.put(MENU_GRAVITY,
vpMap.get(vp.getDisplayName()));
+
if
(vp.getTargetDataType().equals(CyNode.class)) {
final NodeViewTaskFactory ntf = new
NodeBypassMenuTaskFactory(null, vp,
-
editorManager.getValueEditor(vp.getRange().getType()), vmm);
+
editorManager.getValueEditor(vp.getRange().getType()), vmm, false);
registrar.registerService(ntf,
NodeViewTaskFactory.class, vpProp);
+
+ final NodeViewTaskFactory clearNtf =
new NodeBypassMenuTaskFactory(null, vp,
+
editorManager.getValueEditor(vp.getRange().getType()), vmm, true);
+ registrar.registerService(clearNtf,
NodeViewTaskFactory.class, clearProp);
+
} else if
(vp.getTargetDataType().equals(CyEdge.class)) {
final EdgeViewTaskFactory etf = new
EdgeBypassMenuTaskFactory(null, vp,
-
editorManager.getValueEditor(vp.getRange().getType()), vmm);
+
editorManager.getValueEditor(vp.getRange().getType()), vmm, false);
registrar.registerService(etf,
EdgeViewTaskFactory.class, vpProp);
+
+ final EdgeViewTaskFactory clearEtf =
new EdgeBypassMenuTaskFactory(null, vp,
+
editorManager.getValueEditor(vp.getRange().getType()), vmm, true);
+ registrar.registerService(clearEtf,
EdgeViewTaskFactory.class, clearProp);
}
-
+
logger.debug("Bypass context menu registered: "
+ vp.getDisplayName());
} else {
- depthFirst(newMenu, child);
+ depthFirst(baseString, child);
}
}
}
Modified:
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/bypass/BypassTask.java
===================================================================
---
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/bypass/BypassTask.java
2012-06-16 00:32:04 UTC (rev 29593)
+++
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/bypass/BypassTask.java
2012-06-16 01:08:25 UTC (rev 29594)
@@ -1,17 +1,26 @@
package org.cytoscape.view.vizmap.gui.internal.bypass;
+import static org.cytoscape.work.ServiceProperties.MENU_GRAVITY;
+
import java.awt.Component;
+import java.util.Properties;
import javax.swing.SwingUtilities;
+import org.cytoscape.model.CyEdge;
import org.cytoscape.model.CyIdentifiable;
+import org.cytoscape.model.CyNode;
import org.cytoscape.model.CyRow;
+import org.cytoscape.service.util.CyServiceRegistrar;
+import org.cytoscape.task.EdgeViewTaskFactory;
+import org.cytoscape.task.NodeViewTaskFactory;
import org.cytoscape.view.model.CyNetworkView;
import org.cytoscape.view.model.View;
import org.cytoscape.view.model.VisualProperty;
import org.cytoscape.view.vizmap.VisualMappingManager;
import org.cytoscape.view.vizmap.gui.editor.ValueEditor;
import org.cytoscape.work.AbstractTask;
+import org.cytoscape.work.ServiceProperties;
import org.cytoscape.work.TaskMonitor;
/**
@@ -57,14 +66,8 @@
}
private final void update(final boolean lock) {
- if (!lock) {
- final Object newValue = editor.showEditor(parent,
view.getVisualProperty(vp));
- view.setLockedValue(vp, newValue);
- } else {
- // Unlock it
- view.clearValueLock(vp);
- }
-
+ final Object newValue = editor.showEditor(parent,
view.getVisualProperty(vp));
+ view.setLockedValue(vp, newValue);
final CyRow row =
networkView.getModel().getRow(view.getModel());
vmm.getCurrentVisualStyle().apply(row, view);
networkView.updateView();
Added:
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/bypass/ClearBypassTask.java
===================================================================
---
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/bypass/ClearBypassTask.java
(rev 0)
+++
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/bypass/ClearBypassTask.java
2012-06-16 01:08:25 UTC (rev 29594)
@@ -0,0 +1,34 @@
+package org.cytoscape.view.vizmap.gui.internal.bypass;
+
+import org.cytoscape.model.CyIdentifiable;
+import org.cytoscape.view.model.CyNetworkView;
+import org.cytoscape.view.model.View;
+import org.cytoscape.view.model.VisualProperty;
+import org.cytoscape.work.AbstractTask;
+import org.cytoscape.work.TaskMonitor;
+
+public class ClearBypassTask extends AbstractTask {
+
+ private final View<? extends CyIdentifiable> view;
+ private final VisualProperty<Object> vp;
+
+ private final CyNetworkView networkView;
+
+ public ClearBypassTask(final VisualProperty<?> vp, final View<? extends
CyIdentifiable> view,
+ final CyNetworkView networkView) {
+ this.view = view;
+ this.vp = (VisualProperty<Object>) vp;
+ this.networkView = networkView;
+ }
+
+ @Override
+ public void run(TaskMonitor taskMonitor) throws Exception {
+
+ final boolean lock = view.isValueLocked(vp);
+ if (lock) {
+ view.clearValueLock(vp);
+ networkView.updateView();
+ }
+ }
+
+}
\ No newline at end of file
Modified:
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/bypass/EdgeBypassMenuTaskFactory.java
===================================================================
---
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/bypass/EdgeBypassMenuTaskFactory.java
2012-06-16 00:32:04 UTC (rev 29593)
+++
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/bypass/EdgeBypassMenuTaskFactory.java
2012-06-16 01:08:25 UTC (rev 29594)
@@ -18,17 +18,22 @@
private final Component parent;
private final VisualMappingManager vmm;
+ private final boolean clearOnly;
public EdgeBypassMenuTaskFactory(final Component parent, final
VisualProperty<?> vp, final ValueEditor<?> editor,
- final VisualMappingManager vmm) {
+ final VisualMappingManager vmm, final boolean
clearOnly) {
this.vp = vp;
this.editor = editor;
this.parent = parent;
this.vmm = vmm;
+ this.clearOnly = clearOnly;
}
@Override
public TaskIterator createTaskIterator(View<CyEdge> edgeView,
CyNetworkView netView) {
- return new TaskIterator(new BypassTask<CyEdge>(parent, editor,
vp, edgeView, netView, vmm));
+ if(clearOnly)
+ return new TaskIterator(new ClearBypassTask(vp,
edgeView, netView));
+ else
+ return new TaskIterator(new BypassTask<CyEdge>(parent,
editor, vp, edgeView, netView, vmm));
}
}
Modified:
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/bypass/NodeBypassMenuTaskFactory.java
===================================================================
---
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/bypass/NodeBypassMenuTaskFactory.java
2012-06-16 00:32:04 UTC (rev 29593)
+++
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/bypass/NodeBypassMenuTaskFactory.java
2012-06-16 01:08:25 UTC (rev 29594)
@@ -18,17 +18,24 @@
private final Component parent;
private final VisualMappingManager vmm;
+
+ final boolean clearOnly;
NodeBypassMenuTaskFactory(final Component parent, final
VisualProperty<?> vp, final ValueEditor<?> editor,
- final VisualMappingManager vmm) {
+ final VisualMappingManager vmm, final boolean
clearOnly) {
this.vp = vp;
this.editor = editor;
this.parent = parent;
this.vmm = vmm;
+
+ this.clearOnly = clearOnly;
}
@Override
public TaskIterator createTaskIterator(View<CyNode> nodeView,
CyNetworkView netView) {
- return new TaskIterator(new BypassTask<CyNode>(parent, editor,
vp, nodeView, netView, vmm));
+ if(clearOnly) {
+ return new TaskIterator(new ClearBypassTask(vp,
nodeView, netView));
+ } else
+ return new TaskIterator(new BypassTask<CyNode>(parent,
editor, vp, nodeView, netView, vmm));
}
}
--
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.