Author: Christian Lopes
Date: 2011-03-23 15:26:39 -0700 (Wed, 23 Mar 2011)
New Revision: 24563

Modified:
   
core3/vizmap-impl/trunk/impl/src/main/java/org/cytoscape/view/vizmap/internal/VisualMappingManagerImpl.java
   
core3/vizmap-impl/trunk/impl/src/main/java/org/cytoscape/view/vizmap/internal/VisualStyleFactoryImpl.java
   
core3/vizmap-impl/trunk/impl/src/main/java/org/cytoscape/view/vizmap/internal/VisualStyleImpl.java
   
core3/vizmap-impl/trunk/impl/src/main/java/org/cytoscape/view/vizmap/internal/converters/CalculatorConverter.java
Log:
Copying default values when creating a new VisualStyle from another one.

Modified: 
core3/vizmap-impl/trunk/impl/src/main/java/org/cytoscape/view/vizmap/internal/VisualMappingManagerImpl.java
===================================================================
--- 
core3/vizmap-impl/trunk/impl/src/main/java/org/cytoscape/view/vizmap/internal/VisualMappingManagerImpl.java
 2011-03-23 22:22:04 UTC (rev 24562)
+++ 
core3/vizmap-impl/trunk/impl/src/main/java/org/cytoscape/view/vizmap/internal/VisualMappingManagerImpl.java
 2011-03-23 22:26:39 UTC (rev 24563)
@@ -35,14 +35,18 @@
 package org.cytoscape.view.vizmap.internal;
 
 import java.awt.Color;
+import java.awt.Paint;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
 
 import org.cytoscape.event.CyEventHelper;
+import org.cytoscape.model.CyNetwork;
 import org.cytoscape.view.model.CyNetworkView;
 import org.cytoscape.view.model.VisualLexicon;
+import org.cytoscape.view.model.VisualProperty;
+import org.cytoscape.view.presentation.property.PaintVisualProperty;
 import org.cytoscape.view.presentation.property.TwoDVisualLexicon;
 import org.cytoscape.view.vizmap.VisualMappingManager;
 import org.cytoscape.view.vizmap.VisualStyle;
@@ -57,11 +61,16 @@
        public static final String DEFAULT_STYLE_NAME = "default";
        
        // Default Style
+       private static final Color NETWORK_COLOR = Color.WHITE;
+       private static final Color NETWORK_NODE_SELECTED_COLOR = Color.YELLOW;
+       private static final Color NETWORK_EDGE_SELECTED_COLOR = Color.YELLOW;
        private static final Color NODE_COLOR = new Color(0x4F, 0x94, 0xCD);
+       private static final Color NODE_LABEL_COLOR = Color.BLACK;
        private static final Color EDGE_COLOR = new Color(50, 50, 50);
-       private static final Double EDGE_WIDTH = 3d;
+       private static final Double EDGE_WIDTH = 2d;
        private static final Double NODE_WIDTH = 35d;
        private static final Double NODE_HEIGHT = 35d;
+       private static final Color EDGE_LABEL_COLOR = Color.BLACK;
 
        private final VisualStyle defaultStyle;
 
@@ -89,11 +98,16 @@
        private VisualStyle buildGlobalDefaultStyle(final VisualStyleFactory 
factory) {
                final VisualStyle defStyle = 
factory.getInstance(DEFAULT_STYLE_NAME);
                
+               
defStyle.setDefaultValue(TwoDVisualLexicon.NETWORK_BACKGROUND_PAINT, 
NETWORK_COLOR);
+               
defStyle.setDefaultValue(TwoDVisualLexicon.NETWORK_NODE_SELECTED_COLOR, 
NETWORK_NODE_SELECTED_COLOR);
+               
defStyle.setDefaultValue(TwoDVisualLexicon.NETWORK_EDGE_SELECTED_COLOR, 
NETWORK_EDGE_SELECTED_COLOR);
                defStyle.setDefaultValue(TwoDVisualLexicon.NODE_COLOR, 
NODE_COLOR);
+               defStyle.setDefaultValue(TwoDVisualLexicon.NODE_LABEL_COLOR, 
NODE_LABEL_COLOR);
                defStyle.setDefaultValue(TwoDVisualLexicon.NODE_X_SIZE, 
NODE_WIDTH);
                defStyle.setDefaultValue(TwoDVisualLexicon.NODE_Y_SIZE, 
NODE_HEIGHT);
                defStyle.setDefaultValue(TwoDVisualLexicon.EDGE_WIDTH, 
EDGE_WIDTH);
                defStyle.setDefaultValue(TwoDVisualLexicon.EDGE_PAINT, 
EDGE_COLOR);
+               defStyle.setDefaultValue(TwoDVisualLexicon.EDGE_LABEL_COLOR, 
EDGE_LABEL_COLOR);
                
                return defStyle;
        }

Modified: 
core3/vizmap-impl/trunk/impl/src/main/java/org/cytoscape/view/vizmap/internal/VisualStyleFactoryImpl.java
===================================================================
--- 
core3/vizmap-impl/trunk/impl/src/main/java/org/cytoscape/view/vizmap/internal/VisualStyleFactoryImpl.java
   2011-03-23 22:22:04 UTC (rev 24562)
+++ 
core3/vizmap-impl/trunk/impl/src/main/java/org/cytoscape/view/vizmap/internal/VisualStyleFactoryImpl.java
   2011-03-23 22:26:39 UTC (rev 24563)
@@ -1,6 +1,8 @@
 package org.cytoscape.view.vizmap.internal;
 
 import java.util.Collection;
+import java.util.HashSet;
+import java.util.Set;
 
 import org.cytoscape.view.model.VisualProperty;
 import org.cytoscape.view.vizmap.VisualMappingFunction;
@@ -17,25 +19,43 @@
 
        @Override
        public VisualStyle getInstance(final VisualStyle original) {
-               final VisualStyle copyVS = new 
VisualStyleImpl(original.getTitle(), lexManager);
-               
-               // TODO: copy everything! This is incomplete
-               Collection<VisualMappingFunction<?, ?>> allMapping = 
original.getAllVisualMappingFunctions();
+               final VisualStyle copy = new 
VisualStyleImpl(original.getTitle(), lexManager);
 
-               String attrName;
-               VisualProperty<?> vp;
+               copyDefaultValues(original, copy);
+               copyMappingFunctions(original, copy);
 
-               for (VisualMappingFunction<?, ?> mapping : allMapping) {
-                       attrName = mapping.getMappingAttributeName();
-                       vp = mapping.getVisualProperty();
-               }
-
-               return copyVS;
+               return copy;
        }
        
-
        @Override
        public VisualStyle getInstance(String title) {
                return new VisualStyleImpl(title, lexManager);
        }
+       
+       private <V, S extends V> void copyDefaultValues(final VisualStyle 
original, final VisualStyle copy) {
+           Set<VisualProperty<?>> visualProps = new 
HashSet<VisualProperty<?>>();
+        visualProps.addAll(lexManager.getNetworkVisualProperties());
+        visualProps.addAll(lexManager.getNodeVisualProperties());
+        visualProps.addAll(lexManager.getEdgeVisualProperties());
+        
+        for (VisualProperty<?> vp : visualProps) {
+            S value = (S) original.getDefaultValue(vp);
+            
+            // TODO: if the value is not immutable, this can create problems, 
since it is not setting a copy!
+            if (value != null)
+                copy.setDefaultValue((VisualProperty<V>) vp, value);
+        }
+       }
+       
+       private void copyMappingFunctions(final VisualStyle original, final 
VisualStyle copy) {
+           Collection<VisualMappingFunction<?, ?>> allMapping = 
original.getAllVisualMappingFunctions();
+           
+        for (VisualMappingFunction<?, ?> mapping : allMapping) {
+            String attrName = mapping.getMappingAttributeName();
+            VisualProperty<?> vp = mapping.getVisualProperty();
+            
+            // TODO: clone mappings
+//            copy.addVisualMappingFunction(mapping);
+        }
+       }
 }

Modified: 
core3/vizmap-impl/trunk/impl/src/main/java/org/cytoscape/view/vizmap/internal/VisualStyleImpl.java
===================================================================
--- 
core3/vizmap-impl/trunk/impl/src/main/java/org/cytoscape/view/vizmap/internal/VisualStyleImpl.java
  2011-03-23 22:22:04 UTC (rev 24562)
+++ 
core3/vizmap-impl/trunk/impl/src/main/java/org/cytoscape/view/vizmap/internal/VisualStyleImpl.java
  2011-03-23 22:26:39 UTC (rev 24563)
@@ -38,7 +38,6 @@
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
-import java.util.Set;
 
 import org.cytoscape.model.CyEdge;
 import org.cytoscape.model.CyNetwork;
@@ -46,7 +45,6 @@
 import org.cytoscape.model.CyTableEntry;
 import org.cytoscape.view.model.CyNetworkView;
 import org.cytoscape.view.model.View;
-import org.cytoscape.view.model.VisualLexicon;
 import org.cytoscape.view.model.VisualProperty;
 import org.cytoscape.view.model.Visualizable;
 import org.cytoscape.view.vizmap.VisualMappingFunction;
@@ -102,6 +100,7 @@
         * @param c
         *            DOCUMENT ME!
         */
+       @Override
        public void addVisualMappingFunction(
                        final VisualMappingFunction<?, ?> mapping) {
                mappings.put(mapping.getVisualProperty(), mapping);
@@ -266,6 +265,7 @@
                        final VisualProperty<?> vp) {
 
                Object defaultValue = getDefaultValue(vp);
+               
                if(defaultValue == null) {
                        this.perVSDefaults.put(vp, vp.getDefault());
                        defaultValue = getDefaultValue(vp);
@@ -302,6 +302,7 @@
         * 
         * @return DOCUMENT ME!
         */
+       @Override
        public String getTitle() {
                return title;
        }
@@ -312,6 +313,7 @@
         * @param title
         *            DOCUMENT ME!
         */
+       @Override
        public void setTitle(String title) {
                this.title = title;
        }

Modified: 
core3/vizmap-impl/trunk/impl/src/main/java/org/cytoscape/view/vizmap/internal/converters/CalculatorConverter.java
===================================================================
--- 
core3/vizmap-impl/trunk/impl/src/main/java/org/cytoscape/view/vizmap/internal/converters/CalculatorConverter.java
   2011-03-23 22:22:04 UTC (rev 24562)
+++ 
core3/vizmap-impl/trunk/impl/src/main/java/org/cytoscape/view/vizmap/internal/converters/CalculatorConverter.java
   2011-03-23 22:26:39 UTC (rev 24563)
@@ -35,10 +35,8 @@
 package org.cytoscape.view.vizmap.internal.converters;
 
 import java.util.HashMap;
-import java.util.HashSet;
 import java.util.Map;
 import java.util.Properties;
-import java.util.Set;
 
 import org.cytoscape.model.CyEdge;
 import org.cytoscape.model.CyNetwork;
@@ -61,15 +59,15 @@
 public class CalculatorConverter {
 
     /** This type corresponds to java.lang.Boolean. */
-    public final byte TYPE_BOOLEAN = 1;
+    public static final byte TYPE_BOOLEAN = 1;
     /** This type corresponds to java.lang.Double. */
-    public final byte TYPE_FLOATING_POINT = 2;
+    public static final byte TYPE_FLOATING_POINT = 2;
     /** This type corresponds to java.lang.Integer. */
-    public final byte TYPE_INTEGER = 3;
+    public static final byte TYPE_INTEGER = 3;
     /** This type corresponds to java.lang.String. */
-    public final byte TYPE_STRING = 4;
+    public static final byte TYPE_STRING = 4;
     /** This type corresponds to an attribute which has not been defined. */
-    public final byte TYPE_UNDEFINED = -1;
+    public static final byte TYPE_UNDEFINED = -1;
     /**
      * This type corresponds to a 'simple' list.
      * <P>
@@ -80,19 +78,7 @@
      * <CODE>Double</CODE> or <CODE>String</CODE>.
      * </UL>
      */
-    public final byte TYPE_SIMPLE_LIST = -2;
-    /**
-     * This type corresponds to a 'simple' hash map.
-     * <P>
-     * A 'simple' map is defined as follows:
-     * <UL>
-     * <LI>All keys within the map are of type: <CODE>String</CODE>.
-     * <LI>All values within the map are of the same type, and are chosen from
-     * one of the following: <CODE>Boolean</CODE>, <CODE>Integer</CODE>,
-     * <CODE>Double</CODE> or <CODE>String</CODE>.
-     * </UL>
-     */
-    public final byte TYPE_SIMPLE_MAP = -3;
+    public static final byte TYPE_SIMPLE_LIST = -2;
 
     private String key;
     private String legacyKey;

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