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.