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.