Author: kono
Date: 2012-01-09 10:50:28 -0800 (Mon, 09 Jan 2012)
New Revision: 27951

Modified:
   
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/bypass/BypassManager.java
Log:
fixes #556 Visual Property filter applied to the Bypass Context menu.

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-01-07 00:54:04 UTC (rev 27950)
+++ 
core3/impl/trunk/vizmap-gui-impl/src/main/java/org/cytoscape/view/vizmap/gui/internal/bypass/BypassManager.java
     2012-01-09 18:50:28 UTC (rev 27951)
@@ -17,30 +17,23 @@
 import org.cytoscape.view.presentation.property.MinimalVisualLexicon;
 import org.cytoscape.view.vizmap.gui.SelectedVisualStyleManager;
 import org.cytoscape.view.vizmap.gui.editor.EditorManager;
+import org.cytoscape.view.vizmap.gui.internal.util.VisualPropertyFilter;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class BypassManager {
+public final class BypassManager {
 
-       private static final Logger logger = LoggerFactory
-                       .getLogger(BypassManager.class);
+       private static final Logger logger = 
LoggerFactory.getLogger(BypassManager.class);
 
-       // TODO: how can we display compatible VP only?
-       private static final String DEF_RENDERER = "ding";
-
        // TODO: this should be a public string or enum managed in swing app.
        private static final String MENU_KEY = "preferredMenu";
-
        private static final String PARENT_MENU_ITEM = "Visual Bypass";
 
        private final CyServiceRegistrar registrar;
-
        private final EditorManager editorManager;
-
        private final SelectedVisualStyleManager selectedManager;
 
-       public BypassManager(final CyServiceRegistrar registrar,
-                       final EditorManager editorManager,
+       public BypassManager(final CyServiceRegistrar registrar, final 
EditorManager editorManager,
                        final SelectedVisualStyleManager selectedManager) {
                this.registrar = registrar;
                this.editorManager = editorManager;
@@ -57,10 +50,8 @@
                final VisualProperty<?> edgeRoot = MinimalVisualLexicon.EDGE;
 
                // Tree traversal
-               final VisualLexiconNode nodeRootNode = lexicon
-                               .getVisualLexiconNode(nodeRoot);
-               final VisualLexiconNode edgeRootNode = lexicon
-                               .getVisualLexiconNode(edgeRoot);
+               final VisualLexiconNode nodeRootNode = 
lexicon.getVisualLexiconNode(nodeRoot);
+               final VisualLexiconNode edgeRootNode = 
lexicon.getVisualLexiconNode(edgeRoot);
                depthFirst(PARENT_MENU_ITEM, nodeRootNode);
                depthFirst(PARENT_MENU_ITEM, edgeRootNode);
        }
@@ -69,6 +60,11 @@
                final Collection<VisualLexiconNode> children = 
node.getChildren();
                for (VisualLexiconNode child : children) {
                        final VisualProperty<?> vp = child.getVisualProperty();
+                       
+                       // Ignore incompatible VP
+                       if(VisualPropertyFilter.isCompatible(vp) == false)
+                               continue;
+                       
                        final String newMenu = menuText + "." + 
vp.getDisplayName();
                        if (child.getChildren().size() == 0) {
                                // Leaf
@@ -78,17 +74,15 @@
                                vpProp.put("targetVP", vp);
 
                                if 
(vp.getTargetDataType().equals(CyNode.class)) {
-                                       final NodeViewTaskFactory ntf = new 
NodeBypassMenuTaskFactory(
-                                                       null, vp, 
editorManager.getValueEditor(vp
-                                                                       
.getRange().getType()), selectedManager);
+                                       final NodeViewTaskFactory ntf = new 
NodeBypassMenuTaskFactory(null, vp,
+                                                       
editorManager.getValueEditor(vp.getRange().getType()), selectedManager);
                                        registrar.registerService(ntf, 
NodeViewTaskFactory.class, vpProp);
                                } else if 
(vp.getTargetDataType().equals(CyEdge.class)) {
-                                       final EdgeViewTaskFactory etf = new 
EdgeBypassMenuTaskFactory(null, vp, editorManager.getValueEditor(vp
-                                                       .getRange().getType()), 
selectedManager);
+                                       final EdgeViewTaskFactory etf = new 
EdgeBypassMenuTaskFactory(null, vp,
+                                                       
editorManager.getValueEditor(vp.getRange().getType()), selectedManager);
                                        registrar.registerService(etf, 
EdgeViewTaskFactory.class, vpProp);
                                }
-                               logger.debug("Bypass context menu registered: "
-                                               + vp.getDisplayName());
+                               logger.debug("Bypass context menu registered: " 
+ vp.getDisplayName());
                        } else {
                                depthFirst(newMenu, child);
                        }

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