Author: abeld
Date: 2008-12-21 01:07:20 -0800 (Sun, 21 Dec 2008)
New Revision: 15475

Modified:
   
cytoscape3/branches/abeld-gsoc/dev/refactored-viewmodel/vizmap/src/main/java/org/cytoscape/vizmap/MappingCalculator.java
   
cytoscape3/branches/abeld-gsoc/dev/refactored-viewmodel/vizmap/src/main/java/org/cytoscape/vizmap/internal/VisualStyleImpl.java
Log:
refactored-viewmodel: make MappingCalculator a parametrized (generic) type
This is needed because MappingCalculator.apply() will have to call
View.setVisualProperty(VisualProperty<T> vp, T o);
Thus it needs a VisualProperty<T>, not a VisualProperty<?>

Note that this will cause problems with, say,
PassthroughMappingCalculator implementation, so this is most likely
not the final version.


Modified: 
cytoscape3/branches/abeld-gsoc/dev/refactored-viewmodel/vizmap/src/main/java/org/cytoscape/vizmap/MappingCalculator.java
===================================================================
--- 
cytoscape3/branches/abeld-gsoc/dev/refactored-viewmodel/vizmap/src/main/java/org/cytoscape/vizmap/MappingCalculator.java
    2008-12-20 09:22:09 UTC (rev 15474)
+++ 
cytoscape3/branches/abeld-gsoc/dev/refactored-viewmodel/vizmap/src/main/java/org/cytoscape/vizmap/MappingCalculator.java
    2008-12-21 09:07:20 UTC (rev 15475)
@@ -35,6 +35,7 @@
 
 package org.cytoscape.vizmap;
 
+import org.cytoscape.model.GraphObject;
 import org.cytoscape.viewmodel.View;
 import org.cytoscape.viewmodel.VisualProperty;
 
@@ -47,7 +48,7 @@
  *
  * Or should the mapping calculator map from Attr to Class<?>?
  */
-public interface MappingCalculator {
+public interface MappingCalculator<T> {
        /**
         * The attribute to be mapped.
         *
@@ -67,19 +68,22 @@
         *
         * @param vp  DOCUMENT ME!
         */
-       public void setVisualProperty(VisualProperty<?> vp);
+       public void setVisualProperty(VisualProperty<T> vp);
 
        /**
         *  DOCUMENT ME!
         *
         * @return  DOCUMENT ME!
         */
-       public VisualProperty<?> getVisualProperty();
+       public VisualProperty<T> getVisualProperty();
 
        /**
-        *  DOCUMENT ME!
+        *  Since current MappingCalculators map from Attributes to
+        *  VisualProperties, have to restrict View<?> to those
+        *  generic types that have CyAttributes; currently this is
+        *  GraphObject.
         *
         * @param v DOCUMENT ME!
         */
-       public void apply(View<?> v);
+       public <V extends GraphObject> void apply(View<V> v);
 }

Modified: 
cytoscape3/branches/abeld-gsoc/dev/refactored-viewmodel/vizmap/src/main/java/org/cytoscape/vizmap/internal/VisualStyleImpl.java
===================================================================
--- 
cytoscape3/branches/abeld-gsoc/dev/refactored-viewmodel/vizmap/src/main/java/org/cytoscape/vizmap/internal/VisualStyleImpl.java
     2008-12-20 09:22:09 UTC (rev 15474)
+++ 
cytoscape3/branches/abeld-gsoc/dev/refactored-viewmodel/vizmap/src/main/java/org/cytoscape/vizmap/internal/VisualStyleImpl.java
     2008-12-21 09:07:20 UTC (rev 15475)
@@ -133,13 +133,13 @@
     }
 
     // note: can't use applyImpl(List<View<?>>views ... ) because that does 
not compile
-    public <T> void applyImpl(List<View<T>>views, Collection<VisualProperty> 
visualProperties){
+    public <T extends GraphObject> void applyImpl(List<View<T>>views, 
Collection<VisualProperty> visualProperties){
        for (View v: views) {
            applyImpl(v, visualProperties);
        }
     }
 
-    public void applyImpl(View<?> view, Collection<VisualProperty> 
visualProperties){
+    public <T extends GraphObject> void applyImpl(View<T> view, 
Collection<VisualProperty> visualProperties){
        for (VisualProperty vp: visualProperties){
            if (! view.isValueLocked(vp)){ // only if no bypass is defined
                MappingCalculator c = getMappingCalculator(vp);


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