Author: kono
Date: 2010-09-20 18:23:44 -0700 (Mon, 20 Sep 2010)
New Revision: 21959

Removed:
   
core3/presentation-api/branches/vp-tree/src/main/java/org/cytoscape/view/presentation/property/AppendableVisualProperty.java
Modified:
   core3/presentation-api/branches/vp-tree/pom.xml
   
core3/presentation-api/branches/vp-tree/src/main/java/org/cytoscape/view/presentation/property/AbstractVisualLexicon.java
   
core3/presentation-api/branches/vp-tree/src/main/java/org/cytoscape/view/presentation/property/BooleanVisualProperty.java
   
core3/presentation-api/branches/vp-tree/src/main/java/org/cytoscape/view/presentation/property/DefaultVisualizableVisualProperty.java
   
core3/presentation-api/branches/vp-tree/src/main/java/org/cytoscape/view/presentation/property/DoubleVisualProperty.java
   
core3/presentation-api/branches/vp-tree/src/main/java/org/cytoscape/view/presentation/property/NullVisualProperty.java
   
core3/presentation-api/branches/vp-tree/src/main/java/org/cytoscape/view/presentation/property/PaintVisualProperty.java
   
core3/presentation-api/branches/vp-tree/src/main/java/org/cytoscape/view/presentation/property/StringVisualProperty.java
   
core3/presentation-api/branches/vp-tree/src/main/java/org/cytoscape/view/presentation/property/ThreeDVisualLexicon.java
   
core3/presentation-api/branches/vp-tree/src/main/java/org/cytoscape/view/presentation/property/TwoDVisualLexicon.java
   
core3/presentation-api/branches/vp-tree/src/test/java/org/cytoscape/view/presentation/AbstractVisualLexiconTest.java
   
core3/presentation-api/branches/vp-tree/src/test/java/org/cytoscape/view/presentation/ThreeDVisualLexiconTest.java
   
core3/presentation-api/branches/vp-tree/src/test/java/org/cytoscape/view/presentation/TwoDVisualLexiconTest.java
Log:
Refactored version of visual property tree.  Tree structure is now managed in 
wrapper object VisualLexiconNode.

Modified: core3/presentation-api/branches/vp-tree/pom.xml
===================================================================
--- core3/presentation-api/branches/vp-tree/pom.xml     2010-09-21 01:22:52 UTC 
(rev 21958)
+++ core3/presentation-api/branches/vp-tree/pom.xml     2010-09-21 01:23:44 UTC 
(rev 21959)
@@ -96,6 +96,12 @@
                        <version>4.8.1</version>
                        <scope>test</scope>
                </dependency>
+               <dependency>
+                       <groupId>org.cytoscape</groupId>
+                       <artifactId>viewmodel-impl</artifactId>
+                       <version>1.0-SNAPSHOT</version>
+                       <scope>test</scope>
+               </dependency>
        </dependencies>
 
 </project>

Modified: 
core3/presentation-api/branches/vp-tree/src/main/java/org/cytoscape/view/presentation/property/AbstractVisualLexicon.java
===================================================================
--- 
core3/presentation-api/branches/vp-tree/src/main/java/org/cytoscape/view/presentation/property/AbstractVisualLexicon.java
   2010-09-21 01:22:52 UTC (rev 21958)
+++ 
core3/presentation-api/branches/vp-tree/src/main/java/org/cytoscape/view/presentation/property/AbstractVisualLexicon.java
   2010-09-21 01:23:44 UTC (rev 21959)
@@ -1,117 +1,131 @@
-package org.cytoscape.view.presentation.property;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-import org.cytoscape.view.model.NullDataType;
-import org.cytoscape.view.model.VisualLexicon;
-import org.cytoscape.view.model.VisualProperty;
-import org.cytoscape.view.model.Visualizable;
-
-
-/**
- * Basic tree implementation of a visual lexicon.  All rendering engine should 
use this class
- * to implement their own version of lexicon.
- * 
- * This tree has minimum set of method required to implement VizMapper.
- * 
- * This is an immutable tree, except the rendering engine's root.
- * 
- * @author kono
- *
- */
-public abstract class AbstractVisualLexicon implements VisualLexicon {
-
-       //
-       private final Map<String, VisualProperty<?>> visualPropertyMap;
-       
-       // Root of this tree.
-       protected final VisualProperty<NullDataType> rootVisualProperty;
-       
-
-       /**
-        * Insert a root node to the tree and build it.
-        * 
-        * @param rootVisualProperty
-        */
-       public AbstractVisualLexicon(final VisualProperty<NullDataType> 
rootVisualProperty) {
-               this.visualPropertyMap = new HashMap<String, 
VisualProperty<?>>();
-               this.rootVisualProperty = rootVisualProperty;
-               
-               visualPropertyMap.put(rootVisualProperty.getIdString(), 
rootVisualProperty);
-       }
-
-       
-       // Returns all visual properties as a set.
-       public Set<VisualProperty<?>> getAllVisualProperties() {
-               return new 
HashSet<VisualProperty<?>>(visualPropertyMap.values());
-       }
-       
-       
-//     /**
-//      * Add a new VP as a leaf.
-//      * 
-//      * @param prop
-//      * @param parent
-//      */
-//     void insertVisualProperty(final VisualProperty<?> prop, final 
VisualProperty<?> parent) {
-//             //Sanity check
-//             if(prop == null)
-//                     throw new NullPointerException("Cannot add null to the 
lexicon tree.");
-//             if(parent == null)
-//                     throw new NullPointerException("Parent Visual Property 
should not be null.");
-//             
-//             if(this.visualPropertyMap.containsValue(prop))
-//                     throw new IllegalArgumentException("The Visual Property 
already exists: " + prop.getDisplayName());
-//             
-//             if(!this.visualPropertyMap.containsValue(parent))
-//                     throw new IllegalArgumentException("Parent Visual 
Property does not exist in the tree.");
-//             
-//             this.visualPropertyMap.put(prop.getIdString(), prop);
-//             parent.getChildren().add(prop);
-//     }
-
-       
-       @Override
-       public Collection<VisualProperty<?>> getAllDescendants(final 
VisualProperty<Visualizable> prop) {
-               if(prop == null)
-                       throw new NullPointerException("Target visual property 
cannot be null.");
-               
-               if(!this.visualPropertyMap.containsValue(prop))
-                       throw new IllegalArgumentException("No such Visual 
Property in the Lexicon.");
-               
-               return getChildNodes(prop);
-       }
-       
-
-       @Override
-       public VisualProperty<NullDataType> getRootVisualProperty() {
-               return this.rootVisualProperty;
-       }
-       
-       
-       private Set<VisualProperty<?>> getChildNodes(VisualProperty<?> prop) {
-               final Set<VisualProperty<?>> children = new 
HashSet<VisualProperty<?>>();
-               
-               // if this is a leaf node, return empty set
-               if(prop.getChildren().size() == 0)
-                       return children;
-               
-               Collection<VisualProperty<?>> currentChildren = 
prop.getChildren();
-               children.addAll(currentChildren);
-               for(VisualProperty<?> vp: currentChildren)
-                       children.addAll(getChildNodes(vp));
-               
-               return children;
-       }
-       
-       protected void addVisualProperty(final VisualProperty<?> vp) {
-               if(this.visualPropertyMap.containsKey(vp.getIdString()))
-                       throw new IllegalStateException("The key " + 
vp.getIdString() + " already exists in the lexicon.");
-               
-               this.visualPropertyMap.put(vp.getIdString(), vp);
-       }
-}
+package org.cytoscape.view.presentation.property;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import org.cytoscape.view.model.NullDataType;
+import org.cytoscape.view.model.VisualLexicon;
+import org.cytoscape.view.model.VisualLexiconNode;
+import org.cytoscape.view.model.VisualLexiconNodeFactory;
+import org.cytoscape.view.model.VisualProperty;
+import org.cytoscape.view.model.Visualizable;
+
+public abstract class AbstractVisualLexicon implements VisualLexicon {
+
+       //
+       private final Map<VisualProperty<?>, VisualLexiconNode> 
visualPropertyMap;
+       
+       // Root of this tree.
+       protected final VisualProperty<NullDataType> rootVisualProperty;
+       
+       protected final VisualLexiconNodeFactory nodeFactory;
+       
+
+       /**
+        * Insert a root node to the tree and build it.
+        * 
+        * @param rootVisualProperty
+        */
+       public AbstractVisualLexicon(final VisualProperty<NullDataType> 
rootVisualProperty, final VisualLexiconNodeFactory nodeFactory) {
+               this.nodeFactory = nodeFactory;
+               
+               this.visualPropertyMap = new HashMap<VisualProperty<?>, 
VisualLexiconNode>();
+               this.rootVisualProperty = rootVisualProperty;
+               final VisualLexiconNode rootNode = 
this.nodeFactory.createNode(rootVisualProperty, null);
+               
+               visualPropertyMap.put(rootVisualProperty, rootNode);
+       }
+
+       
+       // Returns all visual properties as a set.
+       public Set<VisualProperty<?>> getAllVisualProperties() {
+               return new 
HashSet<VisualProperty<?>>(visualPropertyMap.keySet());
+       }
+       
+       
+//     /**
+//      * Add a new VP as a leaf.
+//      * 
+//      * @param prop
+//      * @param parent
+//      */
+//     void insertVisualProperty(final VisualProperty<?> prop, final 
VisualProperty<?> parent) {
+//             //Sanity check
+//             if(prop == null)
+//                     throw new NullPointerException("Cannot add null to the 
lexicon tree.");
+//             if(parent == null)
+//                     throw new NullPointerException("Parent Visual Property 
should not be null.");
+//             
+//             if(this.visualPropertyMap.containsValue(prop))
+//                     throw new IllegalArgumentException("The Visual Property 
already exists: " + prop.getDisplayName());
+//             
+//             if(!this.visualPropertyMap.containsValue(parent))
+//                     throw new IllegalArgumentException("Parent Visual 
Property does not exist in the tree.");
+//             
+//             this.visualPropertyMap.put(prop.getIdString(), prop);
+//             parent.getChildren().add(prop);
+//     }
+
+       
+       @Override
+       public Collection<VisualProperty<?>> getAllDescendants(final 
VisualProperty<Visualizable> prop) {
+               if(prop == null)
+                       throw new NullPointerException("Target visual property 
cannot be null.");
+               
+               if(!this.visualPropertyMap.containsKey(prop))
+                       throw new IllegalArgumentException("No such Visual 
Property in the Lexicon.");
+               
+               return getChildNodes(prop);
+       }
+       
+
+       @Override
+       public VisualProperty<NullDataType> getRootVisualProperty() {
+               return this.rootVisualProperty;
+       }
+       
+       
+       private Set<VisualProperty<?>> getChildNodes(VisualProperty<?> prop) {
+               final VisualLexiconNode node = visualPropertyMap.get(prop);
+               final Set<VisualProperty<?>> children = new 
HashSet<VisualProperty<?>>();
+               
+               
+               // FIXME
+//             // if this is a leaf node, return empty set
+//             if(node.getChildren().size() == 0)
+//                     return children;
+//             
+//             Collection<VisualLexiconNode> currentChildren = 
node.getChildren();
+//             for(VisualLexiconNode nd: currentChildren)
+//                     children.add(nd.getVisualProperty());
+//
+//             for(VisualProperty<?> vp: currentChildren)
+//                     children.addAll(getChildNodes(vp));
+               
+               return children;
+       }
+       
+       protected void addVisualProperty(final VisualProperty<?> vp, final 
VisualProperty<?> parent) {
+               if(this.visualPropertyMap.containsKey(vp))
+                       throw new IllegalStateException("The key " + 
vp.getIdString() + " already exists in the lexicon.");
+               
+               if(parent == null)
+                       throw new NullPointerException("Parent cannot be 
null.");
+               
+               final VisualLexiconNode parentNode = 
this.visualPropertyMap.get(parent);
+               
+               if(parentNode == null)
+                       throw new IllegalArgumentException("Parent does not 
exist in the lexicon: " + parent.getDisplayName());
+               
+               final VisualLexiconNode newNode = 
this.nodeFactory.createNode(vp, parentNode);
+               this.visualPropertyMap.put(vp, newNode);
+       }
+       
+       
+       @Override public VisualLexiconNode getVisualLexiconNode(final 
VisualProperty<?> vp) {
+               return this.visualPropertyMap.get(vp);
+       }
+}

Deleted: 
core3/presentation-api/branches/vp-tree/src/main/java/org/cytoscape/view/presentation/property/AppendableVisualProperty.java
===================================================================
--- 
core3/presentation-api/branches/vp-tree/src/main/java/org/cytoscape/view/presentation/property/AppendableVisualProperty.java
        2010-09-21 01:22:52 UTC (rev 21958)
+++ 
core3/presentation-api/branches/vp-tree/src/main/java/org/cytoscape/view/presentation/property/AppendableVisualProperty.java
        2010-09-21 01:23:44 UTC (rev 21959)
@@ -1,7 +0,0 @@
-package org.cytoscape.view.presentation.property;
-
-import org.cytoscape.view.model.VisualProperty;
-
-public interface AppendableVisualProperty {
-       void setParent(final VisualProperty<?> parent);
-}

Modified: 
core3/presentation-api/branches/vp-tree/src/main/java/org/cytoscape/view/presentation/property/BooleanVisualProperty.java
===================================================================
--- 
core3/presentation-api/branches/vp-tree/src/main/java/org/cytoscape/view/presentation/property/BooleanVisualProperty.java
   2010-09-21 01:22:52 UTC (rev 21958)
+++ 
core3/presentation-api/branches/vp-tree/src/main/java/org/cytoscape/view/presentation/property/BooleanVisualProperty.java
   2010-09-21 01:23:44 UTC (rev 21959)
@@ -36,12 +36,11 @@
 package org.cytoscape.view.presentation.property; 
 
 import org.cytoscape.view.model.AbstractVisualProperty;
-import org.cytoscape.view.model.VisualProperty;
 
 public class BooleanVisualProperty extends AbstractVisualProperty<Boolean> { 
 
-       public BooleanVisualProperty(final Boolean def, final String id, final 
String name, final VisualProperty<?> parent) {
-               super(def,id,name, parent);
+       public BooleanVisualProperty(final Boolean def, final String id, final 
String name) {
+               super(def,id,name);
        }
        
        public String toSerializableString(final Boolean value) {

Modified: 
core3/presentation-api/branches/vp-tree/src/main/java/org/cytoscape/view/presentation/property/DefaultVisualizableVisualProperty.java
===================================================================
--- 
core3/presentation-api/branches/vp-tree/src/main/java/org/cytoscape/view/presentation/property/DefaultVisualizableVisualProperty.java
       2010-09-21 01:22:52 UTC (rev 21958)
+++ 
core3/presentation-api/branches/vp-tree/src/main/java/org/cytoscape/view/presentation/property/DefaultVisualizableVisualProperty.java
       2010-09-21 01:23:44 UTC (rev 21959)
@@ -1,13 +1,12 @@
 package org.cytoscape.view.presentation.property;
 
 import org.cytoscape.view.model.AbstractVisualProperty;
-import org.cytoscape.view.model.VisualProperty;
 import org.cytoscape.view.model.Visualizable;
 
-public class DefaultVisualizableVisualProperty extends 
AbstractVisualProperty<Visualizable> implements AppendableVisualProperty {
+public class DefaultVisualizableVisualProperty extends 
AbstractVisualProperty<Visualizable> {
 
-       public DefaultVisualizableVisualProperty(final String id, final String 
name, final VisualProperty<?> parent) {
-               super(null, id, name, parent);
+       public DefaultVisualizableVisualProperty(final String id, final String 
name) {
+               super(null, id, name);
        }
 
        
@@ -23,8 +22,4 @@
                return null;
        }
 
-       @Override
-       public void setParent(final VisualProperty<?> parent) {
-               this.parent = parent;
-       }
 }
\ No newline at end of file

Modified: 
core3/presentation-api/branches/vp-tree/src/main/java/org/cytoscape/view/presentation/property/DoubleVisualProperty.java
===================================================================
--- 
core3/presentation-api/branches/vp-tree/src/main/java/org/cytoscape/view/presentation/property/DoubleVisualProperty.java
    2010-09-21 01:22:52 UTC (rev 21958)
+++ 
core3/presentation-api/branches/vp-tree/src/main/java/org/cytoscape/view/presentation/property/DoubleVisualProperty.java
    2010-09-21 01:23:44 UTC (rev 21959)
@@ -35,17 +35,16 @@
 package org.cytoscape.view.presentation.property;
 
 import org.cytoscape.view.model.AbstractVisualProperty;
-import org.cytoscape.view.model.VisualProperty;
 
 public class DoubleVisualProperty extends AbstractVisualProperty<Double> {
 
-       public DoubleVisualProperty(final Double def, final String id, final 
String name, final VisualProperty<?> parent) {
-               this(def, id, name, parent, false);
+       public DoubleVisualProperty(final Double def, final String id, final 
String name) {
+               this(def, id, name, false);
        }
 
        public DoubleVisualProperty(final Double def, final String id,
-                       final String name, final VisualProperty<?> parent, 
final boolean ignoreDefault) {
-               super(def, id, name, parent);
+                       final String name, final boolean ignoreDefault) {
+               super(def, id, name);
                this.isIgnoreDefault = ignoreDefault;
        }
 

Modified: 
core3/presentation-api/branches/vp-tree/src/main/java/org/cytoscape/view/presentation/property/NullVisualProperty.java
===================================================================
--- 
core3/presentation-api/branches/vp-tree/src/main/java/org/cytoscape/view/presentation/property/NullVisualProperty.java
      2010-09-21 01:22:52 UTC (rev 21958)
+++ 
core3/presentation-api/branches/vp-tree/src/main/java/org/cytoscape/view/presentation/property/NullVisualProperty.java
      2010-09-21 01:23:44 UTC (rev 21959)
@@ -6,7 +6,7 @@
 public class NullVisualProperty extends AbstractVisualProperty<NullDataType> {
 
        public NullVisualProperty(final String id, final String name) {
-               super(null, id, name, null);
+               super(null, id, name);
        }
 
        public String toSerializableString(final NullDataType value) {

Modified: 
core3/presentation-api/branches/vp-tree/src/main/java/org/cytoscape/view/presentation/property/PaintVisualProperty.java
===================================================================
--- 
core3/presentation-api/branches/vp-tree/src/main/java/org/cytoscape/view/presentation/property/PaintVisualProperty.java
     2010-09-21 01:22:52 UTC (rev 21958)
+++ 
core3/presentation-api/branches/vp-tree/src/main/java/org/cytoscape/view/presentation/property/PaintVisualProperty.java
     2010-09-21 01:23:44 UTC (rev 21959)
@@ -40,12 +40,11 @@
 import java.util.StringTokenizer;
 
 import org.cytoscape.view.model.AbstractVisualProperty;
-import org.cytoscape.view.model.VisualProperty;
 
 public class PaintVisualProperty<T extends Paint> extends 
AbstractVisualProperty<T> { 
 
-       public PaintVisualProperty(final T def, final String id, final String 
name, final VisualProperty<?> parent) {
-               super(def, id, name, parent);
+       public PaintVisualProperty(final T def, final String id, final String 
name) {
+               super(def, id, name);
        }
        
        public String toSerializableString(final T color) {

Modified: 
core3/presentation-api/branches/vp-tree/src/main/java/org/cytoscape/view/presentation/property/StringVisualProperty.java
===================================================================
--- 
core3/presentation-api/branches/vp-tree/src/main/java/org/cytoscape/view/presentation/property/StringVisualProperty.java
    2010-09-21 01:22:52 UTC (rev 21958)
+++ 
core3/presentation-api/branches/vp-tree/src/main/java/org/cytoscape/view/presentation/property/StringVisualProperty.java
    2010-09-21 01:23:44 UTC (rev 21959)
@@ -35,12 +35,11 @@
 package org.cytoscape.view.presentation.property;
 
 import org.cytoscape.view.model.AbstractVisualProperty;
-import org.cytoscape.view.model.VisualProperty;
 
 public class StringVisualProperty extends AbstractVisualProperty<String> {
 
-       public StringVisualProperty(final String def, final String id, final 
String name, final VisualProperty<?> parent) {
-               super(def, id, name, parent);
+       public StringVisualProperty(final String def, final String id, final 
String name) {
+               super(def, id, name);
        }
 
        public String toSerializableString(final String value) {

Modified: 
core3/presentation-api/branches/vp-tree/src/main/java/org/cytoscape/view/presentation/property/ThreeDVisualLexicon.java
===================================================================
--- 
core3/presentation-api/branches/vp-tree/src/main/java/org/cytoscape/view/presentation/property/ThreeDVisualLexicon.java
     2010-09-21 01:22:52 UTC (rev 21958)
+++ 
core3/presentation-api/branches/vp-tree/src/main/java/org/cytoscape/view/presentation/property/ThreeDVisualLexicon.java
     2010-09-21 01:23:44 UTC (rev 21959)
@@ -1,31 +1,32 @@
 package org.cytoscape.view.presentation.property;
 
 import org.cytoscape.view.model.NullDataType;
+import org.cytoscape.view.model.VisualLexiconNodeFactory;
 import org.cytoscape.view.model.VisualProperty;
 
 public class ThreeDVisualLexicon extends TwoDVisualLexicon {
 
        public static final VisualProperty<Double> NODE_Z_LOCATION = new 
DoubleVisualProperty(
-                       0.0, "NODE_Z_LOCATION", "Node Z Location", 
NODE_LOCATION, true);
+                       0.0, "NODE_Z_LOCATION", "Node Z Location", true);
 
        public static final VisualProperty<Double> NODE_Z_SIZE = new 
DoubleVisualProperty(
-                       0.0, "NODE_Z_SIZE", "Node z size (depth)", NODE_SIZE);
+                       0.0, "NODE_Z_SIZE", "Node z size (depth)");
 
        public static final VisualProperty<Double> NETWORK_CENTER_Z_LOCATION = 
new DoubleVisualProperty(
-                       0.0, "NETWORK_CENTER_Z_LOCATION", "Network Center Z 
Location",
-                       NETWORK_CENTER_LOCATION);
+                       0.0, "NETWORK_CENTER_Z_LOCATION", "Network Center Z 
Location");
 
        public static final VisualProperty<Double> NETWORK_DEPTH = new 
DoubleVisualProperty(
-                       0.0, "NETWORK_DEPTH", "Network Depth", NETWORK_SIZE);
+                       0.0, "NETWORK_DEPTH", "Network Depth");
 
-       public ThreeDVisualLexicon(final VisualProperty<NullDataType> root) {
-               super(root);
+       public ThreeDVisualLexicon(final VisualProperty<NullDataType> root,
+                       final VisualLexiconNodeFactory nodeFactory) {
+               super(root, nodeFactory);
 
-               addVisualProperty(NODE_Z_LOCATION);
-               addVisualProperty(NODE_Z_SIZE);
+               addVisualProperty(NODE_Z_LOCATION, NODE_LOCATION);
+               addVisualProperty(NODE_Z_SIZE, NODE_SIZE);
 
-               addVisualProperty(NETWORK_CENTER_Z_LOCATION);
-               addVisualProperty(NETWORK_DEPTH);
+               addVisualProperty(NETWORK_CENTER_Z_LOCATION, 
NETWORK_CENTER_LOCATION);
+               addVisualProperty(NETWORK_DEPTH, NETWORK_SIZE);
 
        }
 }

Modified: 
core3/presentation-api/branches/vp-tree/src/main/java/org/cytoscape/view/presentation/property/TwoDVisualLexicon.java
===================================================================
--- 
core3/presentation-api/branches/vp-tree/src/main/java/org/cytoscape/view/presentation/property/TwoDVisualLexicon.java
       2010-09-21 01:22:52 UTC (rev 21958)
+++ 
core3/presentation-api/branches/vp-tree/src/main/java/org/cytoscape/view/presentation/property/TwoDVisualLexicon.java
       2010-09-21 01:23:44 UTC (rev 21959)
@@ -38,6 +38,7 @@
 import java.awt.Paint;
 
 import org.cytoscape.view.model.NullDataType;
+import org.cytoscape.view.model.VisualLexiconNodeFactory;
 import org.cytoscape.view.model.VisualProperty;
 import org.cytoscape.view.model.Visualizable;
 
@@ -48,158 +49,147 @@
  */
 public class TwoDVisualLexicon extends AbstractVisualLexicon {
 
+       // Top level nodes has null as parent, and will be pointed by parent 
node.
+       // This is because all VPs are static objects.
        public static final VisualProperty<Visualizable> NETWORK = new 
DefaultVisualizableVisualProperty(
-                       "NETWORK", "Network Visual Property", null);
+                       "NETWORK", "Network Visual Property");
 
        public static final VisualProperty<Visualizable> NODE = new 
DefaultVisualizableVisualProperty(
-                       "NODE", "Node Visual Property", NETWORK);
+                       "NODE", "Node Visual Property");
        public static final VisualProperty<Visualizable> EDGE = new 
DefaultVisualizableVisualProperty(
-                       "EDGE", "Edge Visual Property", NETWORK);
+                       "EDGE", "Edge Visual Property");
 
        public static final VisualProperty<Color> NODE_PAINT = new 
PaintVisualProperty<Color>(
-                       Color.gray, "NODE_PAINT", "Node Paint", NODE);
+                       Color.gray, "NODE_PAINT", "Node Paint");
        public static final VisualProperty<Color> NODE_COLOR = new 
PaintVisualProperty<Color>(
-                       Color.RED, "NODE_COLOR", "Node Color", NODE_PAINT);
+                       Color.RED, "NODE_COLOR", "Node Color");
        public static final VisualProperty<Color> NODE_SELECTED_COLOR = new 
PaintVisualProperty<Color>(
-                       Color.YELLOW, "NODE_SELECTED_COLOR", "Node Selected 
Color",
-                       NODE_PAINT);
+                       Color.YELLOW, "NODE_SELECTED_COLOR", "Node Selected 
Color");
        public static final VisualProperty<Color> NODE_LABEL_COLOR = new 
PaintVisualProperty<Color>(
-                       Color.BLACK, "NODE_LABEL_COLOR", "Node Label Color", 
NODE_PAINT);
+                       Color.BLACK, "NODE_LABEL_COLOR", "Node Label Color");
 
        public static final VisualProperty<String> NODE_TEXT = new 
StringVisualProperty(
-                       "", "NODE_TEXT", "Node Text", NODE);
+                       "", "NODE_TEXT", "Node Text");
        public static final VisualProperty<String> NODE_LABEL = new 
StringVisualProperty(
-                       "", "NODE_LABEL", "Node Label", NODE_TEXT);
+                       "", "NODE_LABEL", "Node Label");
 
        public static final VisualProperty<Double> NODE_LOCATION = new 
DoubleVisualProperty(
-                       Double.NaN, "NODE_LOCATION", "Node Location", NODE, 
true);
+                       Double.NaN, "NODE_LOCATION", "Node Location", true);
        public static final VisualProperty<Double> NODE_X_LOCATION = new 
DoubleVisualProperty(
-                       Double.NaN, "NODE_X_LOCATION", "Node X Location", 
NODE_LOCATION,
-                       true);
+                       Double.NaN, "NODE_X_LOCATION", "Node X Location", true);
        public static final VisualProperty<Double> NODE_Y_LOCATION = new 
DoubleVisualProperty(
-                       Double.NaN, "NODE_Y_LOCATION", "Node Y Location", 
NODE_LOCATION,
-                       true);
+                       Double.NaN, "NODE_Y_LOCATION", "Node Y Location", true);
 
        public static final VisualProperty<Double> NODE_SIZE = new 
DoubleVisualProperty(
-                       50.0, "NODE_SIZE", "Node size", NODE);
+                       50.0, "NODE_SIZE", "Node size");
        public static final VisualProperty<Double> NODE_X_SIZE = new 
DoubleVisualProperty(
-                       50.0, "NODE_X_SIZE", "Node X size (width)", NODE_SIZE);
+                       50.0, "NODE_X_SIZE", "Node X size (width)");
        public static final VisualProperty<Double> NODE_Y_SIZE = new 
DoubleVisualProperty(
-                       30.0, "NODE_Y_SIZE", "Node y size (height)", NODE_SIZE);
+                       30.0, "NODE_Y_SIZE", "Node y size (height)");
 
        public static final VisualProperty<Boolean> NODE_VISIBLE = new 
BooleanVisualProperty(
-                       true, "NODE_VISIBLE", "Node Visible", NODE);
+                       true, "NODE_VISIBLE", "Node Visible");
 
        public static final VisualProperty<Boolean> NODE_SELECTED = new 
BooleanVisualProperty(
-                       false, "NODE_SELECTED", "Node Selected", NODE);
+                       false, "NODE_SELECTED", "Node Selected");
 
        public static final VisualProperty<? extends Paint> EDGE_PAINT = new 
PaintVisualProperty<Color>(
-                       Color.gray, "EDGE_PAINT", "Edge Paint", EDGE);
+                       Color.gray, "EDGE_PAINT", "Edge Paint");
        public static final VisualProperty<? extends Paint> EDGE_COLOR = new 
PaintVisualProperty<Color>(
-                       Color.gray, "EDGE_COLOR", "Edge Color", EDGE_PAINT);
+                       Color.gray, "EDGE_COLOR", "Edge Color");
        public static final VisualProperty<? extends Paint> EDGE_LABEL_COLOR = 
new PaintVisualProperty<Color>(
-                       Color.BLACK, "EDGE_LABEL_COLOR", "Edge Label Color", 
EDGE_PAINT);
+                       Color.BLACK, "EDGE_LABEL_COLOR", "Edge Label Color");
 
        public static final VisualProperty<String> EDGE_TEXT = new 
StringVisualProperty(
-                       "", "EDGE_TEXT", "Edge Text", EDGE);
+                       "", "EDGE_TEXT", "Edge Text");
        public static final VisualProperty<String> EDGE_LABEL = new 
StringVisualProperty(
-                       "", "EDGE_LABEL", "Edge Label", EDGE_TEXT);
+                       "", "EDGE_LABEL", "Edge Label");
 
-       public static final VisualProperty<Double> EDGE_SIZE = new 
DoubleVisualProperty(
-                       1d, "EDGE_SIZE", "Edge Size", EDGE);
        public static final VisualProperty<Double> EDGE_WIDTH = new 
DoubleVisualProperty(
-                       1d, "EDGE_WIDTH", "Edge Width", EDGE_SIZE);
+                       1d, "EDGE_WIDTH", "Edge Width");
 
        public static final VisualProperty<Boolean> EDGE_VISIBLE = new 
BooleanVisualProperty(
-                       true, "EDGE_VISIBLE", "Edge Visible", EDGE);
+                       true, "EDGE_VISIBLE", "Edge Visible");
 
        public static final VisualProperty<Boolean> EDGE_SELECTED = new 
BooleanVisualProperty(
-                       false, "EDGE_SELECTED", "Edge Selected", EDGE);
+                       false, "EDGE_SELECTED", "Edge Selected");
 
        public static final VisualProperty<Double> NETWORK_SCALE_FACTOR = new 
DoubleVisualProperty(
-                       1.0, "NETWORK_SCALE_FACTOR", "Network Scale Factor", 
NETWORK);
+                       1.0, "NETWORK_SCALE_FACTOR", "Network Scale Factor");
 
        public static final VisualProperty<Double> NETWORK_CENTER_LOCATION = 
new DoubleVisualProperty(
-                       0.0, "NETWORK_CENTER_LOCATION", "Network Center 
Location", NETWORK);
+                       0.0, "NETWORK_CENTER_LOCATION", "Network Center 
Location");
        public static final VisualProperty<Double> NETWORK_CENTER_X_LOCATION = 
new DoubleVisualProperty(
-                       0.0, "NETWORK_CENTER_X_LOCATION", "Network Center X 
Location",
-                       NETWORK_CENTER_LOCATION);
+                       0.0, "NETWORK_CENTER_X_LOCATION", "Network Center X 
Location");
        public static final VisualProperty<Double> NETWORK_CENTER_Y_LOCATION = 
new DoubleVisualProperty(
-                       0.0, "NETWORK_CENTER_Y_LOCATION", "Network Center Y 
Location",
-                       NETWORK_CENTER_LOCATION);
+                       0.0, "NETWORK_CENTER_Y_LOCATION", "Network Center Y 
Location");
 
        public static final VisualProperty<Double> NETWORK_SIZE = new 
DoubleVisualProperty(
-                       100.0, "NETWORK_SIZE", "Network Size", NETWORK);
+                       100.0, "NETWORK_SIZE", "Network Size");
        public static final VisualProperty<Double> NETWORK_WIDTH = new 
DoubleVisualProperty(
-                       100.0, "NETWORK_WIDTH", "Network Width", NETWORK_SIZE);
+                       100.0, "NETWORK_WIDTH", "Network Width");
        public static final VisualProperty<Double> NETWORK_HEIGHT = new 
DoubleVisualProperty(
-                       100.0, "NETWORK_HEIGHT", "Network Height", 
NETWORK_SIZE);
+                       100.0, "NETWORK_HEIGHT", "Network Height");
 
-       public static final VisualProperty<String> NETWORK_TEXT = new 
StringVisualProperty(
-                       "", "NETWORK_TEXT", "Network Text", NETWORK);
        public static final VisualProperty<String> NETWORK_TITLE = new 
StringVisualProperty(
-                       "", "NETWORK_TITLE", "Network Title", NETWORK_TEXT);
+                       "", "NETWORK_TITLE", "Network Title");
 
        public static final VisualProperty<Color> NETWORK_PAINT = new 
PaintVisualProperty<Color>(
-                       Color.WHITE, "NETWORK_PAINT", "Network Paint", NETWORK);
+                       Color.WHITE, "NETWORK_PAINT", "Network Paint");
        public static final VisualProperty<Paint> NETWORK_BACKGROUND_COLOR = 
new PaintVisualProperty<Paint>(
-                       Color.WHITE, "NETWORK_BACKGROUND_COLOR",
-                       "Network Background Color", NETWORK_PAINT);
+                       Color.WHITE, "NETWORK_BACKGROUND_COLOR", "Network 
Background Color");
 
        /**
         * Build basic VP tree.
         * 
         * @param rootVisualProperty
         */
-       public TwoDVisualLexicon(final VisualProperty<NullDataType> root) {
-               super(root);
-               root.getChildren().add(NETWORK);
-               
-               addVisualProperty(NETWORK);
-               ((DefaultVisualizableVisualProperty) NETWORK).setParent(root);
+       public TwoDVisualLexicon(final VisualProperty<NullDataType> root,
+                       final VisualLexiconNodeFactory nodeFactory) {
+               super(root, nodeFactory);
 
-               addVisualProperty(NODE);
-               addVisualProperty(EDGE);
+               addVisualProperty(NETWORK, root);
 
-               addVisualProperty(NETWORK_TEXT);
-               addVisualProperty(NETWORK_PAINT);
-               addVisualProperty(NETWORK_SIZE);
-               addVisualProperty(NETWORK_CENTER_LOCATION);
-               addVisualProperty(NETWORK_SCALE_FACTOR);
+               addVisualProperty(NODE, NETWORK);
+               addVisualProperty(EDGE, NETWORK);
 
-               addVisualProperty(NODE_LOCATION);
-               addVisualProperty(NODE_PAINT);
-               addVisualProperty(NODE_SIZE);
-               addVisualProperty(NODE_TEXT);
-               addVisualProperty(NODE_VISIBLE);
-               addVisualProperty(NODE_SELECTED);
+               addVisualProperty(NETWORK_PAINT, NETWORK);
+               addVisualProperty(NETWORK_SIZE, NETWORK);
+               addVisualProperty(NETWORK_CENTER_LOCATION, NETWORK);
+               addVisualProperty(NETWORK_SCALE_FACTOR, NETWORK);
 
-               addVisualProperty(EDGE_PAINT);
-               addVisualProperty(EDGE_SIZE);
-               addVisualProperty(EDGE_TEXT);
-               addVisualProperty(EDGE_VISIBLE);
-               addVisualProperty(EDGE_SELECTED);
+               addVisualProperty(NODE_LOCATION, NODE);
+               addVisualProperty(NODE_PAINT, NODE);
+               addVisualProperty(NODE_SIZE, NODE);
+               addVisualProperty(NODE_TEXT, NODE);
+               addVisualProperty(NODE_VISIBLE, NODE);
+               addVisualProperty(NODE_SELECTED, NODE);
 
-               addVisualProperty(NETWORK_TITLE);
-               addVisualProperty(NETWORK_BACKGROUND_COLOR);
-               addVisualProperty(NETWORK_WIDTH);
-               addVisualProperty(NETWORK_HEIGHT);
-               addVisualProperty(NETWORK_CENTER_X_LOCATION);
-               addVisualProperty(NETWORK_CENTER_Y_LOCATION);
+               addVisualProperty(EDGE_PAINT, EDGE);
+               addVisualProperty(EDGE_TEXT, EDGE);
+               addVisualProperty(EDGE_VISIBLE, EDGE);
+               addVisualProperty(EDGE_SELECTED, EDGE);
 
-               addVisualProperty(NODE_X_LOCATION);
-               addVisualProperty(NODE_Y_LOCATION);
-               addVisualProperty(NODE_COLOR);
-               addVisualProperty(NODE_LABEL_COLOR);
-               addVisualProperty(NODE_SELECTED_COLOR);
-               addVisualProperty(NODE_X_SIZE);
-               addVisualProperty(NODE_Y_SIZE);
-               addVisualProperty(NODE_LABEL);
+               addVisualProperty(NETWORK_TITLE, NETWORK);
+               addVisualProperty(NETWORK_BACKGROUND_COLOR, NETWORK_PAINT);
+               addVisualProperty(NETWORK_WIDTH, NETWORK_SIZE);
+               addVisualProperty(NETWORK_HEIGHT, NETWORK_SIZE);
+               addVisualProperty(NETWORK_CENTER_X_LOCATION, 
NETWORK_CENTER_LOCATION);
+               addVisualProperty(NETWORK_CENTER_Y_LOCATION, 
NETWORK_CENTER_LOCATION);
 
-               addVisualProperty(EDGE_COLOR);
-               addVisualProperty(EDGE_LABEL_COLOR);
-               addVisualProperty(EDGE_WIDTH);
-               addVisualProperty(EDGE_LABEL);
+               addVisualProperty(NODE_X_LOCATION, NODE_LOCATION);
+               addVisualProperty(NODE_Y_LOCATION, NODE_LOCATION);
+               addVisualProperty(NODE_COLOR, NODE_PAINT);
+               addVisualProperty(NODE_LABEL_COLOR, NODE_PAINT);
+               addVisualProperty(NODE_SELECTED_COLOR, NODE_PAINT);
+               addVisualProperty(NODE_X_SIZE, NODE_SIZE);
+               addVisualProperty(NODE_Y_SIZE, NODE_SIZE);
+               addVisualProperty(NODE_LABEL, NODE_TEXT);
+
+               addVisualProperty(EDGE_COLOR, EDGE_PAINT);
+               addVisualProperty(EDGE_LABEL_COLOR, EDGE_PAINT);
+               addVisualProperty(EDGE_WIDTH, EDGE);
+               addVisualProperty(EDGE_LABEL, EDGE_TEXT);
        }
 
 }

Modified: 
core3/presentation-api/branches/vp-tree/src/test/java/org/cytoscape/view/presentation/AbstractVisualLexiconTest.java
===================================================================
--- 
core3/presentation-api/branches/vp-tree/src/test/java/org/cytoscape/view/presentation/AbstractVisualLexiconTest.java
        2010-09-21 01:22:52 UTC (rev 21958)
+++ 
core3/presentation-api/branches/vp-tree/src/test/java/org/cytoscape/view/presentation/AbstractVisualLexiconTest.java
        2010-09-21 01:23:44 UTC (rev 21959)
@@ -9,7 +9,9 @@
 
 import org.cytoscape.view.model.NullDataType;
 import org.cytoscape.view.model.VisualLexicon;
+import org.cytoscape.view.model.VisualLexiconNode;
 import org.cytoscape.view.model.VisualProperty;
+import org.cytoscape.view.presentation.property.TwoDVisualLexicon;
 import org.junit.After;
 import org.junit.Before;
 
@@ -34,35 +36,34 @@
                assertNotNull(root);
                assertEquals(lexicon.getRootVisualProperty(), root);
                
-               Collection<VisualProperty<?>> firstChildren = new 
HashSet<VisualProperty<?>>();
-               for(VisualProperty<?> child:root.getChildren()) {
-                       if(lexicon.getAllVisualProperties().contains(child))
-                               firstChildren.add(child);
-               }
+               final VisualLexiconNode rootNode = 
lexicon.getVisualLexiconNode(root);
+               assertNotNull(rootNode);
+               assertEquals(root, rootNode.getVisualProperty());
                
-               assertFalse(0 == firstChildren.size());
-               traverse(firstChildren, lexicon);
+               final Collection<VisualLexiconNode> children = 
rootNode.getChildren();
+               
+               assertFalse(0 == children.size());
+               traverse(children, lexicon);
        }
        
 
-       private void traverse(final Collection<VisualProperty<?>> vpSet, 
VisualLexicon lexicon) {
+       private void traverse(final Collection<VisualLexiconNode> vpSet, 
VisualLexicon lexicon) {
 
-               Collection<VisualProperty<?>> children = vpSet;
-               Collection<VisualProperty<?>> nextChildren = new 
HashSet<VisualProperty<?>>();
+               Collection<VisualLexiconNode> children = vpSet;
+               Collection<VisualLexiconNode> nextChildren = new 
HashSet<VisualLexiconNode>();
 
-               for (VisualProperty<?> child : children) {
-                       final VisualProperty<?> parent = child.getParent();
-                       assertNotNull(parent);
-                       System.out.println(child.getParent().getDisplayName()
-                                       + "\thas_child\t" + 
child.getDisplayName());
+               for (VisualLexiconNode child : children) {
+                       final VisualLexiconNode parent = child.getParent();
+                       
+                       
System.out.println(parent.getVisualProperty().getDisplayName()
+                                               + "\thas_child\t" + 
child.getVisualProperty().getDisplayName());
+                       
 
-                       for (final VisualProperty<?> nextCh : 
child.getChildren())
+                       for (final VisualLexiconNode nextCh : 
child.getChildren())
                                assertEquals(child, nextCh.getParent());
 
-                       for(VisualProperty<?> newChild:child.getChildren()) {
-                               
if(lexicon.getAllVisualProperties().contains(newChild))
-                                       nextChildren.add(newChild);
-                       }
+                       nextChildren.addAll(child.getChildren());
+                       
                }
 
                if (nextChildren.size() == 0)
@@ -70,4 +71,5 @@
                else
                        traverse(nextChildren, lexicon);
        }
+       
 }

Modified: 
core3/presentation-api/branches/vp-tree/src/test/java/org/cytoscape/view/presentation/ThreeDVisualLexiconTest.java
===================================================================
--- 
core3/presentation-api/branches/vp-tree/src/test/java/org/cytoscape/view/presentation/ThreeDVisualLexiconTest.java
  2010-09-21 01:22:52 UTC (rev 21958)
+++ 
core3/presentation-api/branches/vp-tree/src/test/java/org/cytoscape/view/presentation/ThreeDVisualLexiconTest.java
  2010-09-21 01:23:44 UTC (rev 21959)
@@ -6,6 +6,7 @@
 import org.cytoscape.view.model.NullDataType;
 import org.cytoscape.view.model.VisualLexicon;
 import org.cytoscape.view.model.VisualProperty;
+import org.cytoscape.view.model.internal.VisualLexiconNodeFactoryImpl;
 import org.cytoscape.view.presentation.property.NullVisualProperty;
 import org.cytoscape.view.presentation.property.ThreeDVisualLexicon;
 import org.junit.Before;
@@ -23,7 +24,7 @@
                threeDRoot = new NullVisualProperty("THREE_D_ROOT",
                                "3D Root Visual Property");
 
-               threeDLex = new ThreeDVisualLexicon(threeDRoot);
+               threeDLex = new ThreeDVisualLexicon(threeDRoot, new 
VisualLexiconNodeFactoryImpl());
        }
 
        @Test
@@ -33,7 +34,7 @@
 
        @Test
        public void test2DLexicon() throws Exception {
-               assertEquals(42, threeDLex.getAllVisualProperties().size());
+               assertEquals(40, threeDLex.getAllVisualProperties().size());
        }
 
        @Test

Modified: 
core3/presentation-api/branches/vp-tree/src/test/java/org/cytoscape/view/presentation/TwoDVisualLexiconTest.java
===================================================================
--- 
core3/presentation-api/branches/vp-tree/src/test/java/org/cytoscape/view/presentation/TwoDVisualLexiconTest.java
    2010-09-21 01:22:52 UTC (rev 21958)
+++ 
core3/presentation-api/branches/vp-tree/src/test/java/org/cytoscape/view/presentation/TwoDVisualLexiconTest.java
    2010-09-21 01:23:44 UTC (rev 21959)
@@ -6,6 +6,7 @@
 import org.cytoscape.view.model.NullDataType;
 import org.cytoscape.view.model.VisualLexicon;
 import org.cytoscape.view.model.VisualProperty;
+import org.cytoscape.view.model.internal.VisualLexiconNodeFactoryImpl;
 import org.cytoscape.view.presentation.property.NullVisualProperty;
 import org.cytoscape.view.presentation.property.TwoDVisualLexicon;
 import org.junit.Before;
@@ -23,7 +24,7 @@
                twoDRoot = new NullVisualProperty("TWO_D_ROOT",
                                "2D Root Visual Property");
 
-               twoDLex = new TwoDVisualLexicon(twoDRoot);
+               twoDLex = new TwoDVisualLexicon(twoDRoot, new 
VisualLexiconNodeFactoryImpl());
        }
 
        @Test
@@ -33,7 +34,7 @@
 
        @Test
        public void test2DLexicon() throws Exception {
-               assertEquals(38, twoDLex.getAllVisualProperties().size());
+               assertEquals(36, twoDLex.getAllVisualProperties().size());
        }
 
        @Test

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