Author: kono
Date: 2011-09-30 16:52:14 -0700 (Fri, 30 Sep 2011)
New Revision: 27034

Modified:
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DEdgeDetails.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DEdgeView.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DNodeDetails.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DNodeView.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/EdgeViewDefaultSupport.java
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/NodeViewDefaultSupport.java
Log:
Node selected color problem had been fixed.  Selected color is now part of node 
details.

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DEdgeDetails.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DEdgeDetails.java
   2011-09-30 18:02:59 UTC (rev 27033)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DEdgeDetails.java
   2011-09-30 23:52:14 UTC (rev 27034)
@@ -57,6 +57,10 @@
        final Map<Long, Font> m_labelFonts = new HashMap<Long, Font>();
        final Map<Long, Paint> m_labelPaints = new HashMap<Long, Paint>();
        final Map<Integer, Double> m_labelWidths = new HashMap<Integer, 
Double>();
+
+       // For selected paint default
+       final Map<Integer, Paint> m_selectedPaints = new HashMap<Integer, 
Paint>();
+
        
        private final MinIntHeap m_heap = new MinIntHeap();
        private final float[] m_extentsBuff = new float[4];
@@ -74,6 +78,8 @@
        private Font m_labelFontDefault ;
        private Paint m_labelPaintDefault ;
        private Double m_labelWidthDefault ;
+       
+       private Paint m_selectedPaintDefault;
 
 
        DEdgeDetails(final DGraphView view) {
@@ -97,6 +103,8 @@
                m_labelFonts.remove(edgeIdx);
                m_labelPaints.remove(edgeIdx);
                m_labelWidths.remove(edgeIdx);
+               
+               m_selectedPaints.remove(edgeIdx);
        }
 
 
@@ -144,6 +152,7 @@
        void setSourceArrowDefault(byte arrow) {
                m_sourceArrowDefault = Byte.valueOf(arrow);
        }
+       
 
        /*
         * A non-negative arrowType has the special meaning to remove overridden
@@ -199,8 +208,8 @@
                return arrow;
        }
 
-       void setTargetArrowDefault(byte arrow) {
-               m_targetArrowDefault = Byte.valueOf(arrow);
+       void setTargetArrowDefault(final byte arrow) {
+               m_targetArrowDefault = arrow;
        }
 
        /*
@@ -254,13 +263,13 @@
                        if ( m_segmentThicknessDefault == null )
                                return super.segmentThickness(edge);
                        else
-                               return m_segmentThicknessDefault.floatValue();
+                               return m_segmentThicknessDefault;
 
                return thickness;
        }
 
        void setSegmentThicknessDefault(float thick) {
-               m_segmentThicknessDefault = Float.valueOf(thick);
+               m_segmentThicknessDefault = thick;
        }
 
        /*
@@ -323,7 +332,23 @@
        void setSegmentPaintDefault(Paint p) {
                m_segmentPaintDefault = p;
        }
+       
+       public Paint selectedPaint(final int edge) {
+               final Paint paint = m_selectedPaints.get(edge);
+               if (paint == null)
+                       if ( m_selectedPaintDefault == null )
+                               return super.segmentPaint(edge);
+                       else
+                               return m_selectedPaintDefault;
 
+               return paint;
+       }
+
+       void setSelectedPaintDefault(final Paint p) {
+               m_selectedPaintDefault = p;
+       }
+
+
        /*
         * A negative length value has the special meaning to remove overridden
         * length.

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DEdgeView.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DEdgeView.java
      2011-09-30 18:02:59 UTC (rev 27033)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DEdgeView.java
      2011-09-30 23:52:14 UTC (rev 27034)
@@ -68,8 +68,9 @@
        DGraphView m_view;
        final int m_inx; // Positive.
        boolean m_selected;
+       
        Paint m_unselectedPaint;
-       Paint m_selectedPaint;
+
        Paint m_sourceUnselectedPaint;
        Paint m_sourceSelectedPaint;
        Paint m_targetUnselectedPaint;
@@ -97,7 +98,6 @@
                m_inx = inx;
                m_selected = false;
                m_unselectedPaint = m_view.m_edgeDetails.segmentPaint(m_inx);
-               m_selectedPaint = Color.red;
                m_sourceUnselectedPaint = 
m_view.m_edgeDetails.sourceArrowPaint(m_inx);
                m_sourceSelectedPaint = Color.red;
                m_targetUnselectedPaint = 
m_view.m_edgeDetails.targetArrowPaint(m_inx);
@@ -130,16 +130,18 @@
        }
 
        /**
-        * DOCUMENT ME!
-        * 
-        * @return DOCUMENT ME!
+        * {@inheritDoc}
         */
+       @Override
        public GraphView getGraphView() {
                return m_view;
        }
 
+       /**
+        * {@inheritDoc}
+        */
        @Override
-       public void setStrokeWidth(float width) {
+       public void setStrokeWidth(final float width) {
                synchronized (m_view.m_lock) {
                        m_view.m_edgeDetails.overrideSegmentThickness(m_inx, 
width);
                        m_view.m_contentChanged = true;
@@ -147,10 +149,9 @@
        }
 
        /**
-        * DOCUMENT ME!
-        * 
-        * @return DOCUMENT ME!
+        * {@inheritDoc}
         */
+       @Override
        public float getStrokeWidth() {
                synchronized (m_view.m_lock) {
                        return m_view.m_edgeDetails.segmentThickness(m_inx);
@@ -255,15 +256,12 @@
                        if (paint == null)
                                throw new NullPointerException("paint is null");
 
-                       m_selectedPaint = paint;
 
                        if (isSelected()) {
                                m_view.m_edgeDetails.overrideSegmentPaint(m_inx,
-                                               m_selectedPaint);
+                                               
m_view.m_edgeDetails.selectedPaint(m_inx));
 
-                               if (m_selectedPaint instanceof Color)
-                                       
m_view.m_edgeDetails.overrideColorLowDetail(m_inx,
-                                                       (Color) 
m_selectedPaint);
+                               
m_view.m_edgeDetails.overrideColorLowDetail(m_inx, (Color) 
m_view.m_edgeDetails.selectedPaint(m_inx));
 
                                m_view.m_contentChanged = true;
                        }
@@ -276,7 +274,7 @@
         * @return DOCUMENT ME!
         */
        public Paint getSelectedPaint() {
-               return m_selectedPaint;
+               return m_view.m_edgeDetails.selectedPaint(m_inx);
        }
 
        /**
@@ -437,15 +435,13 @@
                        return false;
 
                m_selected = true;
-               m_view.m_edgeDetails.overrideSegmentPaint(m_inx, 
m_selectedPaint);
+               m_view.m_edgeDetails.overrideSegmentPaint(m_inx, 
m_view.m_edgeDetails.selectedPaint(m_inx));
                m_view.m_edgeDetails.overrideSourceArrowPaint(m_inx,
                                m_sourceSelectedPaint);
                m_view.m_edgeDetails.overrideTargetArrowPaint(m_inx,
                                m_targetSelectedPaint);
 
-               if (m_selectedPaint instanceof Color)
-                       m_view.m_edgeDetails.overrideColorLowDetail(m_inx,
-                                       (Color) m_selectedPaint);
+               m_view.m_edgeDetails.overrideColorLowDetail(m_inx, (Color) 
m_view.m_edgeDetails.selectedPaint(m_inx));
 
                m_view.m_selectedEdges.insert(m_inx);
 

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DNodeDetails.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DNodeDetails.java
   2011-09-30 18:02:59 UTC (rev 27033)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DNodeDetails.java
   2011-09-30 23:52:14 UTC (rev 27034)
@@ -73,11 +73,16 @@
        
        
        final Map<Integer, Double> m_width = new HashMap<Integer, Double>();
+       
+       final Map<Integer, Paint> m_selectedPaints = new HashMap<Integer, 
Paint>();
 
        // Default values
        private Color m_colorLowDetailDefault;
+       private Paint m_fillPaintDefault; 
+       private Paint m_selectedPaintDefault;
+
+       
        private DNodeShape m_shapeDefault; 
-       private Paint m_fillPaintDefault; 
        private Float m_borderWidthDefault; 
        private Paint m_borderPaintDefault; 
        private Integer m_labelCountDefault; 
@@ -112,6 +117,7 @@
                m_labelJustifys.remove(nodeIdx);
                m_labelOffsetXs.remove(nodeIdx);
                m_labelOffsetYs.remove(nodeIdx);
+               m_selectedPaints.remove(nodeIdx);
 
                final Integer intr = m_labelCounts.remove(nodeIdx);
                final int labelCount = ((intr == null) ? 0 : intr);
@@ -141,7 +147,26 @@
        void setColorLowDetailDefault(Color c) {
                m_colorLowDetailDefault = c;
        }
+       
+       
+       public Paint selectedPaint(int node) {
+               final Paint o = m_selectedPaints.get(node);
 
+               if (o == null)
+                       if ( m_selectedPaintDefault == null ) 
+                               return Color.RED;
+                       else
+                               return m_selectedPaintDefault;
+
+               return o;
+       }
+
+       void setSelectedPaintDefault(Paint c) {
+               m_selectedPaintDefault = c;
+       }
+       
+       
+
        /*
         * A null color has the special meaning to remove overridden color.
         */
@@ -180,6 +205,12 @@
                m_shapes.put(node, shape.getNativeShape());
        }
 
+       /**
+        * {@inheritDoc}
+        * 
+        * Note: this will be used for BOTH unselected and selected.
+        * 
+        */
        @Override
        public Paint fillPaint(final int node) {
                final Paint o = m_fillPaints.get(node);
@@ -203,9 +234,11 @@
        void overrideFillPaint(final int node, final Paint paint) {
                if ((paint == null) || paint.equals(super.fillPaint(node)))
                        m_fillPaints.remove(node);
-               else
+               else {
                        m_fillPaints.put(node, paint);
+               }
        }
+       
 
        
        @Override

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DNodeView.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DNodeView.java
      2011-09-30 18:02:59 UTC (rev 27033)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DNodeView.java
      2011-09-30 23:52:14 UTC (rev 27034)
@@ -137,7 +137,7 @@
 
        // Node color
        private Paint m_unselectedPaint;
-       private Paint m_selectedPaint;
+       //private Paint m_selectedPaint;
        private Paint m_borderPaint;
 
        // Opacity
@@ -216,7 +216,7 @@
                m_selected = false;
 
                m_unselectedPaint = graphView.m_nodeDetails.fillPaint(m_inx);
-               m_selectedPaint = DEFAULT_NODE_SELECTED_PAINT;
+               //m_selectedPaint = DEFAULT_NODE_SELECTED_PAINT;
                m_borderPaint = graphView.m_nodeDetails.borderPaint(m_inx);
 
                transparency = DEFAULT_TRANSPARENCY;
@@ -256,13 +256,13 @@
                        if (paint == null)
                                throw new NullPointerException("paint is null");
 
-                       m_selectedPaint = paint;
+                       //m_selectedPaint = paint;
 
                        if (isSelected()) {
-                               
graphView.m_nodeDetails.overrideFillPaint(m_inx, m_selectedPaint);
+                               
graphView.m_nodeDetails.overrideFillPaint(m_inx, paint);
 
-                               if (m_selectedPaint instanceof Color)
-                                       
graphView.m_nodeDetails.overrideColorLowDetail(m_inx, (Color) m_selectedPaint);
+                               if (paint instanceof Color)
+                                       
graphView.m_nodeDetails.overrideColorLowDetail(m_inx, (Color) paint);
 
                                graphView.m_contentChanged = true;
                        }
@@ -272,12 +272,12 @@
 
        @Override
        public Paint getSelectedPaint() {
-               return m_selectedPaint;
+               return graphView.m_nodeDetails.selectedPaint(m_inx);
        }
 
 
        @Override
-       public void setUnselectedPaint(Paint paint) {
+       public void setUnselectedPaint(final Paint paint) {
                synchronized (graphView.m_lock) {
                        if (paint == null)
                                throw new NullPointerException("paint is null");
@@ -704,10 +704,10 @@
                        return false;
 
                m_selected = true;
-               graphView.m_nodeDetails.overrideFillPaint(m_inx, 
m_selectedPaint);
+               graphView.m_nodeDetails.overrideFillPaint(m_inx, 
graphView.m_nodeDetails.selectedPaint(m_inx));
 
-               if (m_selectedPaint instanceof Color)
-                       graphView.m_nodeDetails.overrideColorLowDetail(m_inx, 
(Color) m_selectedPaint);
+               //if (m_selectedPaint instanceof Color)
+               graphView.m_nodeDetails.overrideColorLowDetail(m_inx, (Color) 
graphView.m_nodeDetails.selectedPaint(m_inx));
 
                graphView.m_selectedNodes.insert(m_inx);
 

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/EdgeViewDefaultSupport.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/EdgeViewDefaultSupport.java
 2011-09-30 18:02:59 UTC (rev 27033)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/EdgeViewDefaultSupport.java
 2011-09-30 23:52:14 UTC (rev 27034)
@@ -71,7 +71,6 @@
                        setTargetEdgeEndPaint((Paint) value);
                        setUnselectedPaint((Paint) value);
                } else if (vp == DVisualLexicon.EDGE_WIDTH) {
-                       
                        final float newWidth = ((Number) value).floatValue();   
                
                        if(strokeWidth != newWidth) {
                                setStrokeWidth(newWidth);
@@ -122,12 +121,13 @@
        void setUnselectedPaint(final Paint paint) {
                synchronized (lock) {
                        edgeDetails.setSegmentPaintDefault(paint);
+                       edgeDetails.setColorLowDetailDefault(paint);
                }
        }
 
-       void setSelectedPaint(Paint paint) {
+       void setSelectedPaint(final Paint paint) {
                synchronized (lock) {
-                       edgeDetails.setColorLowDetailDefault(paint);
+                       edgeDetails.setSelectedPaintDefault(paint);
                }
        }
 

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/NodeViewDefaultSupport.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/NodeViewDefaultSupport.java
 2011-09-30 18:02:59 UTC (rev 27033)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/NodeViewDefaultSupport.java
 2011-09-30 23:52:14 UTC (rev 27034)
@@ -31,14 +31,12 @@
 import java.awt.Color;
 import java.awt.Font;
 import java.awt.Paint;
-import java.awt.Stroke;
 
 import org.cytoscape.ding.DNodeShape;
 import org.cytoscape.ding.ObjectPosition;
 import org.cytoscape.view.model.VisualProperty;
 import org.cytoscape.view.presentation.property.MinimalVisualLexicon;
 import org.cytoscape.view.presentation.property.NodeShapeVisualProperty;
-import org.cytoscape.view.presentation.property.values.LineType;
 import org.cytoscape.view.presentation.property.values.NodeShape;
 
 class NodeViewDefaultSupport {
@@ -49,53 +47,19 @@
        
        // Default values
        private int transparency = 255;
+       
        private Paint unselectedPaint;
        private Paint selectedPaint;
+       
        private float fontSize = 12f;
        private Font font;
        
-       private double width;
        
-       
-       private Boolean selected = false;
-
-       
        NodeViewDefaultSupport(final DNodeDetails nodeDetails, final Object 
lock) {
                this.nodeDetails = nodeDetails;
                this.lock = lock;
        }
 
-//     <T, V extends T> void setNodeViewDefault(final VisualProperty<? extends 
T> vp, V value) {
-//             
-//             if(value == null)
-//                     value = (V) vp.getDefault();
-//
-//             if (vp == DVisualLexicon.NODE_SHAPE) {
-//                     setShape(((NodeShape) value));
-//             } else if (vp == MinimalVisualLexicon.NODE_FILL_COLOR) {
-//                     setUnselectedPaint((Paint) value);
-//             } else if (vp == DVisualLexicon.NODE_SELECTED_PAINT) {
-//                     setSelectedPaint((Paint) value);
-//             } else if (vp == DVisualLexicon.NODE_BORDER_PAINT) {
-//                     setBorderPaint((Paint) value);
-//             } else if (vp == DVisualLexicon.NODE_BORDER_WIDTH) {
-//                     setBorderWidth(((Number) value).floatValue());
-//             } else if (vp == DVisualLexicon.NODE_TRANSPARENCY) {
-//                     setTransparency(((Integer) value));
-//             } else if (vp == MinimalVisualLexicon.NODE_LABEL) {
-//                     setText(value.toString());
-//             } else if (vp == MinimalVisualLexicon.NODE_LABEL_COLOR) {
-//                     setTextPaint((Paint) value);
-//             } else if (vp == DVisualLexicon.NODE_LABEL_FONT_FACE) {
-//                     final Font newFont = ((Font) 
value).deriveFont(fontSize);
-//                     setFont(newFont,fontSize);
-//             } else if (vp == DVisualLexicon.NODE_LABEL_FONT_SIZE) {
-//                     float newSize = ((Number) value).floatValue();
-//                     setFont(font,newSize);
-//             } else if (vp == DVisualLexicon.NODE_LABEL_POSITION) {
-//                     setLabelPosition((ObjectPosition) value);
-//             } 
-//     }
        
        <T, V extends T> void setNodeViewDefault(final VisualProperty<? extends 
T> vp, V value) {
                
@@ -154,7 +118,7 @@
        void setSelectedPaint(Paint paint) {
                synchronized (lock) {
                        selectedPaint = paint;
-                       
nodeDetails.setColorLowDetailDefault((Color)getTransparentColor(paint));
+                       
nodeDetails.setSelectedPaintDefault(getTransparentColor(paint));
                }
        }
 
@@ -162,6 +126,7 @@
                synchronized (lock) {
                        unselectedPaint = paint;
                        
nodeDetails.setFillPaintDefault(getTransparentColor(paint));
+                       
nodeDetails.setColorLowDetailDefault((Color)getTransparentColor(paint));
                }
        }
 

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