Author: mes
Date: 2011-01-23 16:57:49 -0800 (Sun, 23 Jan 2011)
New Revision: 23567

Modified:
   
core3/presentation-api/trunk/src/main/java/org/cytoscape/view/presentation/property/AbstractVisualLexicon.java
   
core3/presentation-api/trunk/src/main/java/org/cytoscape/view/presentation/property/TwoDVisualLexicon.java
Log:
added rudimentary visual property lookup

Modified: 
core3/presentation-api/trunk/src/main/java/org/cytoscape/view/presentation/property/AbstractVisualLexicon.java
===================================================================
--- 
core3/presentation-api/trunk/src/main/java/org/cytoscape/view/presentation/property/AbstractVisualLexicon.java
      2011-01-24 00:57:18 UTC (rev 23566)
+++ 
core3/presentation-api/trunk/src/main/java/org/cytoscape/view/presentation/property/AbstractVisualLexicon.java
      2011-01-24 00:57:49 UTC (rev 23567)
@@ -11,11 +11,22 @@
 import org.cytoscape.view.model.VisualLexiconNode;
 import org.cytoscape.view.model.VisualProperty;
 
+import org.cytoscape.model.CyNode;
+import org.cytoscape.model.CyEdge;
+import org.cytoscape.model.CyNetwork;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 /**
  * Implementations for common features for all VisualLexicons.
  *
  */
 public abstract class AbstractVisualLexicon implements VisualLexicon {
+
+       private static final Logger logger = 
LoggerFactory.getLogger(AbstractVisualLexicon.class);
+
+       private final Map<Class<?>,Map<String,VisualProperty<?>>> 
identifierLookup;
        
        //
        private final Map<VisualProperty<?>, VisualLexiconNode> 
visualPropertyMap;
@@ -37,6 +48,11 @@
                final VisualLexiconNode rootNode = new 
VisualLexiconNode(rootVisualProperty, null);
                
                visualPropertyMap.put(rootVisualProperty, rootNode);
+
+               this.identifierLookup = new 
HashMap<Class<?>,Map<String,VisualProperty<?>>>();
+               this.identifierLookup.put(CyNode.class,new 
HashMap<String,VisualProperty<?>>());
+               this.identifierLookup.put(CyEdge.class,new 
HashMap<String,VisualProperty<?>>());
+               this.identifierLookup.put(CyNetwork.class,new 
HashMap<String,VisualProperty<?>>());
        }
 
        
@@ -105,4 +121,36 @@
        @Override public VisualLexiconNode getVisualLexiconNode(final 
VisualProperty<?> vp) {
                return this.visualPropertyMap.get(vp);
        }
+
+       @Override public VisualProperty<?> lookup(final Class<?> type, final 
String id) {
+               if ( id == null || type == null )
+                       return null;
+
+               Map<String,VisualProperty<?>> map = identifierLookup.get(type);
+               if ( map == null )
+                       return null;
+
+               return map.get(id.toLowerCase());
+       }
+
+       protected final void addIdentifierMapping(final Class<?> type, final 
String id, final VisualProperty<?> vp) {
+               if ( type == null ) {
+                       logger.warn("attempting to add VisualLexicon identifier 
lookup mapping with null type");
+                       return;
+               }
+               if ( id == null ) {
+                       logger.warn("attempting to add VisualLexicon identifier 
lookup mapping with null id");
+                       return;
+               }
+               if ( vp == null ) {
+                       logger.warn("attempting to add VisualLexicon identifier 
lookup mapping with null visual property");
+                       return;
+               }
+               Map<String,VisualProperty<?>> map = identifierLookup.get(type);
+               if ( map == null ) {
+                       logger.warn("attempting to add VisualLexicon identifier 
lookup mapping with unrecognized type: " + type.getClass().getName() + 
"(expect: " + identifierLookup.keySet().toString() + ")" );
+                       return;
+               }
+               map.put(id,vp);
+       }
 }

Modified: 
core3/presentation-api/trunk/src/main/java/org/cytoscape/view/presentation/property/TwoDVisualLexicon.java
===================================================================
--- 
core3/presentation-api/trunk/src/main/java/org/cytoscape/view/presentation/property/TwoDVisualLexicon.java
  2011-01-24 00:57:18 UTC (rev 23566)
+++ 
core3/presentation-api/trunk/src/main/java/org/cytoscape/view/presentation/property/TwoDVisualLexicon.java
  2011-01-24 00:57:49 UTC (rev 23567)
@@ -221,6 +221,20 @@
                addVisualProperty(EDGE_LABEL_COLOR, EDGE_PAINT);
                addVisualProperty(EDGE_WIDTH, EDGE);
                addVisualProperty(EDGE_LABEL, EDGE_TEXT);
+
+               createLookupMap();
        }
 
+       private void createLookupMap() {
+               addIdentifierMapping(CyNode.class,"color",NODE_COLOR);
+               addIdentifierMapping(CyNode.class,"fill",NODE_COLOR);
+               addIdentifierMapping(CyNode.class,"x",NODE_X_LOCATION);
+               addIdentifierMapping(CyNode.class,"y",NODE_Y_LOCATION);
+               addIdentifierMapping(CyNode.class,"w",NODE_X_SIZE);
+               addIdentifierMapping(CyNode.class,"h",NODE_Y_SIZE);
+               addIdentifierMapping(CyNode.class,"label",NODE_LABEL);
+
+               addIdentifierMapping(CyEdge.class,"fill",EDGE_PAINT);
+               // TODO add more mappings!
+       }
 }

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