Author: kono
Date: 2010-09-01 17:15:38 -0700 (Wed, 01 Sep 2010)
New Revision: 21663

Added:
   
core3/viewmodel-api/trunk/src/main/java/org/cytoscape/view/model/VisualPropertyDependecyCalculator.java
   
core3/viewmodel-impl/trunk/src/main/java/org/cytoscape/view/model/internal/ColorPassthroughConverter.java
   
core3/viewmodel-impl/trunk/src/main/java/org/cytoscape/view/model/internal/SizeConverter.java
Modified:
   
core3/viewmodel-api/trunk/src/main/java/org/cytoscape/view/model/AbstractVisualProperty.java
   
core3/viewmodel-api/trunk/src/main/java/org/cytoscape/view/model/VisualProperty.java
   
core3/vizmap-api/trunk/src/main/java/org/cytoscape/view/vizmap/VisualStyle.java
Log:
Test implementation for hierarchical Visual Property dependency tree.  

Modified: 
core3/viewmodel-api/trunk/src/main/java/org/cytoscape/view/model/AbstractVisualProperty.java
===================================================================
--- 
core3/viewmodel-api/trunk/src/main/java/org/cytoscape/view/model/AbstractVisualProperty.java
        2010-09-01 23:53:13 UTC (rev 21662)
+++ 
core3/viewmodel-api/trunk/src/main/java/org/cytoscape/view/model/AbstractVisualProperty.java
        2010-09-02 00:15:38 UTC (rev 21663)
@@ -34,6 +34,11 @@
  */
 package org.cytoscape.view.model;
 
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+
 /**
  * An abstract implementation of VisualProperty that omits the methods dealing
  * with serializing data.
@@ -54,10 +59,14 @@
 
        // Human-readable name of VP.
        final protected String name;
-       
+
        protected boolean isIgnoreDefault = false;
 
+       protected final Collection<VisualProperty<? extends T>> children;
+       protected VisualProperty<? super T> parent;
        
+       protected final Map<VisualProperty<? extends T>, 
VisualPropertyDependecyCalculator<T>> dependencyCalculatorMap;
+
        /**
         * Constructor with all required immutable field values.
         * 
@@ -72,13 +81,16 @@
                this.defaultValue = defaultValue;
                this.id = id;
                this.name = name;
+               this.children = new HashSet<VisualProperty<? extends T>>();
+               this.parent = null;
+               
+               this.dependencyCalculatorMap = new HashMap<VisualProperty<? 
extends T>, VisualPropertyDependecyCalculator<T>>();
        }
 
        public String getObjectType() {
                return objectType;
        }
 
-       
        @SuppressWarnings("unchecked")
        public Class<T> getType() {
                if (defaultValue != null)
@@ -87,23 +99,44 @@
                        return null;
        }
 
-       
        public T getDefault() {
                return defaultValue;
        }
 
-       
        public String getIdString() {
                return id;
        }
 
-       
        public String getDisplayName() {
                return name;
        }
-       
+
        public boolean isIgnoreDefault() {
                return this.isIgnoreDefault;
        }
 
+       public VisualProperty<? super T> getParent() {
+               return this.parent;
+       }
+
+       public Collection<VisualProperty<? extends T>> getChildren() {
+               return this.children;
+       }
+
+       public void setParent(final VisualProperty<? super T> parent) {
+               this.parent = parent;
+       }
+
+       public void addChild(final VisualProperty<? extends T> child) {
+               this.children.add(child);
+       }
+
+       public void setDependencyCalculator(
+                       final VisualProperty<? extends T> child,
+                       VisualPropertyDependecyCalculator<T> calc) {
+               
+               this.dependencyCalculatorMap.put(child, calc);
+       
+       }
+
 }

Modified: 
core3/viewmodel-api/trunk/src/main/java/org/cytoscape/view/model/VisualProperty.java
===================================================================
--- 
core3/viewmodel-api/trunk/src/main/java/org/cytoscape/view/model/VisualProperty.java
        2010-09-01 23:53:13 UTC (rev 21662)
+++ 
core3/viewmodel-api/trunk/src/main/java/org/cytoscape/view/model/VisualProperty.java
        2010-09-02 00:15:38 UTC (rev 21663)
@@ -34,10 +34,10 @@
 */
 package org.cytoscape.view.model;
 
+import java.util.Collection;
 
+
 /**
- * FIXME
- * Think of it as a column in the view.model table.
  *
  * Uses String constants as ObjectTypes, ie. to seperate NodeVisualProperties 
from EdgeVisualProperties, etc.
  * Ideally, we could use Class<? extends View<?>> or something like that, but 
unfortunately that is impossible due to type erasure.
@@ -52,7 +52,7 @@
         *
         * @return the string describing the object type
         */
-       public String getObjectType();
+       String getObjectType();
 
        
        /**
@@ -60,7 +60,7 @@
         *
         * @return  Type of object stored in this VP.
         */
-       public Class<T> getType();
+       Class<T> getType();
        
 
        /**
@@ -68,7 +68,7 @@
         *
         * @return  DOCUMENT ME!
         */
-       public T getDefault();
+       T getDefault();
 
        
        /**
@@ -77,7 +77,7 @@
         *
         * @return  DOCUMENT ME!
         */
-       public String getIdString();
+       String getIdString();
 
        
        /**
@@ -86,7 +86,7 @@
         *
         * @return  DOCUMENT ME!
         */
-       public String getDisplayName();
+       String getDisplayName();
 
        
 
@@ -94,22 +94,33 @@
         * Returns a string of the specified value suitable for serializing to 
XML
         * other text output.
         */
-       public String toSerializableString(final T value);
+       String toSerializableString(final T value);
 
        
        /**
         * Returns an object of type T given a string serialized from the 
getSerializableString(T value)
         * method.
         */
-       public T parseSerializableString(final String value);
+       T parseSerializableString(final String value);
        
        
        /**
-        * In some cases, 
+        * In some cases, default value from visual style is not suitable, such 
as x, y, z location of nodes.
+        * If this flag is on, it will be ignored and it will be controlled by 
mapping only.
         * 
         * @return
         */
-       public boolean isIgnoreDefault();
+       boolean isIgnoreDefault();
        
-               
+       
+       
+       // New feature: Tree-like structure for visual properties.
+       
+       VisualProperty<? super T> getParent();
+       Collection<VisualProperty<? extends T>> getChildren();
+       
+       void setParent(final VisualProperty<? super T> parent);
+       void addChild(final VisualProperty<? extends T> child);
+       
+       void setDependencyCalculator(final VisualProperty<? extends T> child, 
VisualPropertyDependecyCalculator<T> calc);
 }

Added: 
core3/viewmodel-api/trunk/src/main/java/org/cytoscape/view/model/VisualPropertyDependecyCalculator.java
===================================================================
--- 
core3/viewmodel-api/trunk/src/main/java/org/cytoscape/view/model/VisualPropertyDependecyCalculator.java
                             (rev 0)
+++ 
core3/viewmodel-api/trunk/src/main/java/org/cytoscape/view/model/VisualPropertyDependecyCalculator.java
     2010-09-02 00:15:38 UTC (rev 21663)
@@ -0,0 +1,13 @@
+package org.cytoscape.view.model;
+
+public interface VisualPropertyDependecyCalculator<T> {
+
+       /**
+        * "Piping" given value to the child visual property.
+        * 
+        * @param value
+        * @return
+        */
+       T convert(T value);
+
+}

Added: 
core3/viewmodel-impl/trunk/src/main/java/org/cytoscape/view/model/internal/ColorPassthroughConverter.java
===================================================================
--- 
core3/viewmodel-impl/trunk/src/main/java/org/cytoscape/view/model/internal/ColorPassthroughConverter.java
                           (rev 0)
+++ 
core3/viewmodel-impl/trunk/src/main/java/org/cytoscape/view/model/internal/ColorPassthroughConverter.java
   2010-09-02 00:15:38 UTC (rev 21663)
@@ -0,0 +1,15 @@
+package org.cytoscape.view.model.internal;
+
+import java.awt.Color;
+
+import org.cytoscape.view.model.VisualPropertyDependecyCalculator;
+
+public class ColorPassthroughConverter implements 
VisualPropertyDependecyCalculator<Color> {
+
+       @Override
+       public Color convert(Color value) {
+               // Do nothing.  Just use the same color.
+               return value;
+       }
+
+}

Added: 
core3/viewmodel-impl/trunk/src/main/java/org/cytoscape/view/model/internal/SizeConverter.java
===================================================================
--- 
core3/viewmodel-impl/trunk/src/main/java/org/cytoscape/view/model/internal/SizeConverter.java
                               (rev 0)
+++ 
core3/viewmodel-impl/trunk/src/main/java/org/cytoscape/view/model/internal/SizeConverter.java
       2010-09-02 00:15:38 UTC (rev 21663)
@@ -0,0 +1,22 @@
+package org.cytoscape.view.model.internal;
+
+import org.cytoscape.view.model.VisualPropertyDependecyCalculator;
+
+public class SizeConverter implements 
VisualPropertyDependecyCalculator<Number> {
+
+       private Float ratio;
+
+       public SizeConverter() {
+               this.ratio = 1.0f;
+       }
+
+       public void setRatio(final Float ratio) {
+               this.ratio = ratio;
+       }
+
+       @Override
+       public Number convert(Number value) {
+               return ratio*value.floatValue();
+       }
+
+}

Modified: 
core3/vizmap-api/trunk/src/main/java/org/cytoscape/view/vizmap/VisualStyle.java
===================================================================
--- 
core3/vizmap-api/trunk/src/main/java/org/cytoscape/view/vizmap/VisualStyle.java 
    2010-09-01 23:53:13 UTC (rev 21662)
+++ 
core3/vizmap-api/trunk/src/main/java/org/cytoscape/view/vizmap/VisualStyle.java 
    2010-09-02 00:15:38 UTC (rev 21663)
@@ -47,6 +47,7 @@
  *
  */
 public interface VisualStyle {
+       
        /**
         * Returns name of this visual style. This should NOT be used as ID of 
this
         * Visual Style. Just for GUI components.
@@ -128,5 +129,5 @@
         */
        void apply(CyNetworkView v);
        
-       public VisualLexicon getVisualLexicon();
+       VisualLexicon getVisualLexicon();
 }

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