Author: kono
Date: 2011-10-14 14:06:46 -0700 (Fri, 14 Oct 2011)
New Revision: 27195

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/EdgeViewDefaultSupport.java
Log:
Edge paint bug fixed.

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-10-14 20:41:50 UTC (rev 27194)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DEdgeDetails.java
   2011-10-14 21:06:46 UTC (rev 27195)
@@ -33,7 +33,9 @@
 import java.awt.Paint;
 import java.awt.Stroke;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.Map;
+import java.util.Set;
 
 import org.cytoscape.util.intr.IntObjHash;
 
@@ -44,6 +46,7 @@
        final Object m_deletedEntry = new Object();
        
        IntObjHash m_colorsLowDetail = new IntObjHash();
+       IntObjHash m_selectedColorsLowDetail = new IntObjHash();
        
        Map<Integer, Float> m_segmentThicknesses = new HashMap<Integer, 
Float>();
        Map<Integer, Stroke> m_segmentStrokes = new HashMap<Integer, Stroke>();
@@ -62,19 +65,17 @@
        Map<Long, Paint> m_labelPaints = new HashMap<Long, Paint>();
        Map<Integer, Double> m_labelWidths = new HashMap<Integer, Double>();
        
-       Map<Integer, Paint> m_segmentPaints = new HashMap<Integer, Paint>();
+       Map<Integer, Paint> m_unselectedPaints = new HashMap<Integer, Paint>();
        Map<Integer, Paint> m_selectedPaints = new HashMap<Integer, Paint>();
        
-       private Paint m_colorLowDetailDefault ;
+       
        private Byte m_sourceArrowDefault ;
        private Paint m_sourceArrowPaintDefault ;
        private Byte m_targetArrowDefault ;
        private Paint m_targetArrowPaintDefault ;
-       private Paint m_targetArrowSelectedPaintDefault;
 
        private Float m_segmentThicknessDefault ;
        private Stroke m_segmentStrokeDefault ;
-       private Paint m_segmentPaintDefault ;
        private Integer m_labelCountDefault ;
        private String m_labelTextDefault ;
        private Font m_labelFontDefault ;
@@ -82,8 +83,15 @@
        private Double m_labelWidthDefault ;
        
        private Paint m_selectedPaintDefault;
+       private Paint m_unselectedPaintDefault ;
+
        
+       private Paint m_colorLowDetailDefault;
+       private Color m_selectedColorLowDetailDefault;
+       
        private boolean isCleared = false; 
+       
+       private Set<Integer> selected = new HashSet<Integer>();
 
 
        DEdgeDetails(final DGraphView view) {
@@ -108,11 +116,14 @@
                m_labelPaints = new HashMap<Long, Paint>();
                m_labelWidths = new HashMap<Integer, Double>();
                
-               m_segmentPaints = new HashMap<Integer, Paint>();
+               m_unselectedPaints = new HashMap<Integer, Paint>();
+               m_selectedPaints = new HashMap<Integer, Paint>();
                
-               m_selectedPaints = new HashMap<Integer, Paint>();
                m_colorsLowDetail = new IntObjHash();
+               m_selectedColorsLowDetail = new IntObjHash();
                
+               selected = new HashSet<Integer>();
+               
                isCleared = true;
        }
 
@@ -120,6 +131,10 @@
                final Object colorDetail = m_colorsLowDetail.get(edgeIdx);
                if ((colorDetail != null) && (colorDetail != m_deletedEntry))
                        m_colorsLowDetail.put(edgeIdx, m_deletedEntry);
+               
+               final Object selectedColorDetail = 
m_selectedColorsLowDetail.get(edgeIdx);
+               if ((selectedColorDetail != null) && (selectedColorDetail != 
m_deletedEntry))
+                       m_selectedColorsLowDetail.put(edgeIdx, m_deletedEntry);
 
                m_segmentThicknesses.remove(edgeIdx);
                m_segmentStrokes.remove(edgeIdx);
@@ -128,7 +143,7 @@
                m_targetArrows.remove(edgeIdx);
                m_targetArrowPaints.remove(edgeIdx);
                m_targetArrowSelectedPaints.remove(edgeIdx);
-               m_segmentPaints.remove(edgeIdx);
+               
                m_labelCounts.remove(edgeIdx);
                m_labelTexts.remove(edgeIdx);
                m_labelFonts.remove(edgeIdx);
@@ -136,10 +151,23 @@
                m_labelWidths.remove(edgeIdx);
                
                m_selectedPaints.remove(edgeIdx);
+               m_unselectedPaints.remove(edgeIdx);
+               
+               selected.remove(edgeIdx);
        }
 
 
+       @Override
        public Color colorLowDetail(final int edge) {
+               boolean isSelected = selected.contains(edge);
+
+               if (isSelected)
+                       return selectedColorLowDetail(edge);
+               else
+                       return unselectedColorLowDetail(edge);
+       }
+       
+       public Color unselectedColorLowDetail(final int edge) {
                final Object o = m_colorsLowDetail.get(edge);
 
                if ((o == null) || (o == m_deletedEntry))
@@ -150,26 +178,28 @@
 
                return (Color) o;
        }
+       
+       public Color selectedColorLowDetail(final int edge) {
+               final Object o = m_selectedColorsLowDetail.get(edge);
 
-       void setColorLowDetailDefault(Paint c) {
+               if ((o == null) || (o == m_deletedEntry))
+                       if ( m_selectedColorLowDetailDefault == null )
+                               return super.colorLowDetail(edge);
+                       else
+                               return (Color)m_selectedColorLowDetailDefault;
+
+               return (Color) o;
+       }
+
+       void setSelectedColorLowDetailDefault(Color c) {
+               m_selectedColorLowDetailDefault = c;
+       }
+       
+       void setColorLowDetailDefault(Color c) {
                m_colorLowDetailDefault = c;
        }
 
-       /*
-        * A null color has the special meaning to remove overridden color.
-        */
-       void overrideColorLowDetail(final int edge, final Color color) {
-               if ((color == null) || 
color.equals(super.colorLowDetail(edge))) {
-                       final Object val = m_colorsLowDetail.get(edge);
 
-                       if ((val != null) && (val != m_deletedEntry))
-                               m_colorsLowDetail.put(edge, m_deletedEntry);
-               } else {
-                       m_colorsLowDetail.put(edge, color);
-                       isCleared = false;
-               }
-       }
-
        @Override
        public byte sourceArrow(final int edge) {
                final Byte arrow = m_sourceArrows.get(edge);
@@ -294,26 +324,26 @@
        }
 
        
-       //@Override
-       public Paint targetArrowSelectedPaint(final int edge) {
-               
-               final Paint arrowPaint = 
this.m_targetArrowSelectedPaints.get(edge);
-               if (arrowPaint == null)
-                       if ( m_targetArrowSelectedPaintDefault == null ){
-                               return super.targetArrowPaint(edge);
-                       }
-                       else
-                               return m_targetArrowSelectedPaintDefault;
+//     //@Override
+//     public Paint targetArrowSelectedPaint(final int edge) {
+//             
+//             final Paint arrowPaint = 
this.m_targetArrowSelectedPaints.get(edge);
+//             if (arrowPaint == null)
+//                     if ( m_targetArrowSelectedPaintDefault == null ){
+//                             return super.targetArrowPaint(edge);
+//                     }
+//                     else
+//                             return m_targetArrowSelectedPaintDefault;
+//
+//
+//             return arrowPaint;
+//     }
+//
+//     
+//     void setTargetArrowSelectedPaintDefault(Paint p) {      
+//             m_targetArrowSelectedPaintDefault = p;
+//     }
 
-
-               return arrowPaint;
-       }
-
-       
-       void setTargetArrowSelectedPaintDefault(Paint p) {      
-               m_targetArrowSelectedPaintDefault = p;
-       }
-
        /*
         * A null paint has the special meaning to remove overridden paint.
         */
@@ -397,27 +427,37 @@
         */
        @Override
        public Paint segmentPaint(final int edge) {
-               final Paint paint = m_segmentPaints.get(edge);
+               boolean isSelected = selected.contains(edge);
+
+               if (isSelected)
+                       return selectedPaint(edge);
+               else {
+                       return unselectedPaint(edge);
+               }
+       }
+
+       void setSegmentPaintDefault(Paint p) {
+               m_unselectedPaintDefault = p;
+       }
+       
+       public Paint unselectedPaint(final int edge) {
+               final Paint paint = m_unselectedPaints.get(edge);
                
                if (paint == null) {
-                       if ( m_segmentPaintDefault == null )
-                               return super.segmentPaint(edge);
+                       if ( m_unselectedPaintDefault == null )
+                               return DEdgeView.DEFAULT_EDGE_PAINT;
                        else
-                               return m_segmentPaintDefault;
+                               return m_unselectedPaintDefault;
                }
                
                return paint;
        }
-
-       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);
+                               return Color.red;
                        else
                                return m_selectedPaintDefault;
 
@@ -428,18 +468,29 @@
                m_selectedPaintDefault = p;
        }
 
+       
+       void select(final int edge) {
+               selected.add(edge);
+       }
+       
+       void unselect(final int edge) {
+               selected.remove(edge);
+       }
+       
+       
+       void setUnselectedPaint(final int edge, final Paint paint) {
+               m_unselectedPaints.put(edge, paint);
+               if(paint instanceof Color)
+                       m_colorsLowDetail.put(edge, paint);
+               isCleared = false;
+       }
+       
+       void setSelectedPaint(final int edge, final Paint paint) {
+               m_selectedPaints.put(edge, paint);
+               if(paint instanceof Color)
+                       m_selectedColorsLowDetail.put(edge, paint);
 
-       /*
-        * A negative length value has the special meaning to remove overridden
-        * length.
-        */
-       void overrideSegmentPaint(final int edge, final Paint paint) {
-               if ((paint == null) || (paint == super.segmentPaint(edge)))
-                       m_segmentPaints.remove(edge);
-               else {
-                       m_segmentPaints.put(edge, paint);
-                       isCleared = false;
-               }
+               isCleared = false;
        }
        
        

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-10-14 20:41:50 UTC (rev 27194)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DEdgeView.java
      2011-10-14 21:06:46 UTC (rev 27195)
@@ -70,9 +70,6 @@
        final int m_inx; // Positive.
        boolean m_selected;
        
-       Paint m_unselectedPaint;
-       Paint m_selectedPaint;
-       
        private Integer transparency;
 
        Paint m_sourceUnselectedPaint;
@@ -102,11 +99,10 @@
                m_inx = inx;
                m_selected = false;
                transparency = 255;
-               m_unselectedPaint = m_view.m_edgeDetails.segmentPaint(m_inx);
                m_sourceUnselectedPaint = 
m_view.m_edgeDetails.sourceArrowPaint(m_inx);
                m_sourceSelectedPaint = Color.red;
                m_targetUnselectedPaint = 
m_view.m_edgeDetails.targetArrowPaint(m_inx);
-               m_targetSelectedPaint = 
m_view.m_edgeDetails.targetArrowSelectedPaint(m_inx); //Color.red;
+               m_targetSelectedPaint = Color.red;
                m_sourceEdgeEnd = GraphGraphics.ARROW_NONE;
                m_targetEdgeEnd = GraphGraphics.ARROW_NONE;
                m_anchors = null;
@@ -223,17 +219,10 @@
                        if (paint == null)
                                throw new NullPointerException("paint is null");
 
-                       m_unselectedPaint = paint;
-                       m_unselectedPaint = new Color(((Color) 
m_unselectedPaint).getRed(),
-                                       ((Color) m_unselectedPaint).getGreen(), 
((Color) m_unselectedPaint).getBlue(), transparency);
+                       m_view.m_edgeDetails.setUnselectedPaint(m_inx, paint);
 
-                       if (!isSelected()) {
-                               
m_view.m_edgeDetails.overrideSegmentPaint(m_inx, m_unselectedPaint);
-                               if (m_unselectedPaint instanceof Color)
-                                       
m_view.m_edgeDetails.overrideColorLowDetail(m_inx, (Color) m_unselectedPaint);
-
+                       if (!isSelected())
                                m_view.m_contentChanged = true;
-                       }
 
                        setSourceEdgeEnd(m_sourceEdgeEnd);
                        setTargetEdgeEnd(m_targetEdgeEnd);
@@ -246,29 +235,22 @@
         * @return DOCUMENT ME!
         */
        public Paint getUnselectedPaint() {
-               return m_unselectedPaint;
+               return m_view.m_edgeDetails.unselectedPaint(m_inx);
        }
 
        /**
-        * DOCUMENT ME!
-        * 
-        * @param paint
-        *            DOCUMENT ME!
+        * {@inheritDoc}
         */
+       @Override
        public void setSelectedPaint(Paint paint) {
                synchronized (m_view.m_lock) {
                        if (paint == null)
                                throw new NullPointerException("paint is null");
 
+                       m_view.m_edgeDetails.setSelectedPaint(m_inx, paint);
 
-                       if (isSelected()) {
-                               m_view.m_edgeDetails.overrideSegmentPaint(m_inx,
-                                               
m_view.m_edgeDetails.selectedPaint(m_inx));
-
-                               
m_view.m_edgeDetails.overrideColorLowDetail(m_inx, (Color) 
m_view.m_edgeDetails.selectedPaint(m_inx));
-
+                       if (isSelected())
                                m_view.m_contentChanged = true;
-                       }
                }
        }
 
@@ -421,14 +403,13 @@
                        return false;
 
                m_selected = true;
-               m_view.m_edgeDetails.overrideSegmentPaint(m_inx, 
m_view.m_edgeDetails.selectedPaint(m_inx));
+               m_view.m_edgeDetails.select(m_inx);
+               
                m_view.m_edgeDetails.overrideSourceArrowPaint(m_inx,
                                m_sourceSelectedPaint);
                m_view.m_edgeDetails.overrideTargetArrowPaint(m_inx,
                                m_targetSelectedPaint);
 
-               m_view.m_edgeDetails.overrideColorLowDetail(m_inx, (Color) 
m_view.m_edgeDetails.selectedPaint(m_inx));
-
                m_view.m_selectedEdges.insert(m_inx);
 
                for (int j = 0; j < numHandles(); j++) {
@@ -469,16 +450,13 @@
                        return false;
 
                m_selected = false;
-               m_view.m_edgeDetails.overrideSegmentPaint(m_inx, 
m_unselectedPaint);
+               m_view.m_edgeDetails.unselect(m_inx);
+               
                m_view.m_edgeDetails.overrideSourceArrowPaint(m_inx,
                                m_sourceUnselectedPaint);
                m_view.m_edgeDetails.overrideTargetArrowPaint(m_inx,
                                m_targetUnselectedPaint);
 
-               if (m_unselectedPaint instanceof Color)
-                       m_view.m_edgeDetails.overrideColorLowDetail(m_inx,
-                                       (Color) m_unselectedPaint);
-
                m_view.m_selectedEdges.delete(m_inx);
 
                for (int j = 0; j < numHandles(); j++) {
@@ -1360,17 +1338,25 @@
                        
                        transparency = trans;
 
-                       if (m_unselectedPaint instanceof Color) {
+                       if (m_view.m_edgeDetails.m_unselectedPaints.get(m_inx) 
!= null) {
+                               final Paint unselectedPaint = 
m_view.m_edgeDetails.unselectedPaint(m_inx);
+                               final Color transUnselected = new 
Color(((Color) unselectedPaint).getRed(),
+                                               ((Color) 
unselectedPaint).getGreen(), ((Color) unselectedPaint).getBlue(), trans);
 
-                               m_unselectedPaint = new Color(((Color) 
m_unselectedPaint).getRed(),
-                                               ((Color) 
m_unselectedPaint).getGreen(), ((Color) m_unselectedPaint).getBlue(), trans);
+                               m_view.m_edgeDetails.setUnselectedPaint(m_inx, 
transUnselected);
+                       }
+                       
+                       if (m_view.m_edgeDetails.m_selectedPaints.get(m_inx) != 
null) {
+                               final Paint selectedPaint = 
m_view.m_edgeDetails.selectedPaint(m_inx);
 
-                               
m_view.m_edgeDetails.overrideSegmentPaint(m_inx, m_unselectedPaint);
-                               
m_view.m_edgeDetails.overrideColorLowDetail(m_inx, (Color) m_unselectedPaint);
+                               final Color transSelected = new Color(((Color) 
selectedPaint).getRed(),
+                                               ((Color) 
selectedPaint).getGreen(), ((Color) selectedPaint).getBlue(), trans);
+
+                               m_view.m_edgeDetails.setSelectedPaint(m_inx, 
transSelected);
                        }
+                       
                        m_view.m_contentChanged = true;
                }
-
        }
 
        

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-10-14 20:41:50 UTC (rev 27194)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/EdgeViewDefaultSupport.java
 2011-10-14 21:06:46 UTC (rev 27195)
@@ -72,8 +72,8 @@
                        setUnselectedPaint((Paint) value);
                } else if (vp == DVisualLexicon.EDGE_SELECTED_PAINT) {
                        setSelectedPaint((Paint) value);
-                       setSourceEdgeEndSelectedPaint((Paint) value);           
        
-                       setTargetEdgeEndSelectedPaint((Paint) value);
+//                     setSourceEdgeEndSelectedPaint((Paint) value);           
        
+//                     setTargetEdgeEndSelectedPaint((Paint) value);
                } else if (vp == DVisualLexicon.EDGE_UNSELECTED_PAINT) {
                        setSourceEdgeEndUnselectedPaint((Paint) value);
                        setTargetEdgeEndUnselectedPaint((Paint) value);
@@ -90,9 +90,9 @@
                        final Stroke newStroke = 
DLineType.getDLineType(lineType).getStroke(strokeWidth);
                        setStroke(newStroke);
                } else if (vp == 
DVisualLexicon.EDGE_SOURCE_ARROW_SELECTED_PAINT) {
-                       setSourceEdgeEndSelectedPaint((Paint) value);
+                       //setSourceEdgeEndSelectedPaint((Paint) value);
                } else if (vp == 
DVisualLexicon.EDGE_TARGET_ARROW_SELECTED_PAINT) {
-                       setTargetEdgeEndSelectedPaint((Paint) value);
+                       //setTargetEdgeEndSelectedPaint((Paint) value);
                } else if (vp == 
DVisualLexicon.EDGE_SOURCE_ARROW_UNSELECTED_PAINT) {
                        setSourceEdgeEndUnselectedPaint((Paint) value);
                } else if (vp == 
DVisualLexicon.EDGE_TARGET_ARROW_UNSELECTED_PAINT) {
@@ -139,14 +139,16 @@
                        unselectedPaint = paint;
                        final Paint transColor = getTransparentColor(paint);
                        edgeDetails.setSegmentPaintDefault(transColor);
-                       edgeDetails.setColorLowDetailDefault(transColor);
+                       edgeDetails.setColorLowDetailDefault((Color) 
transColor);                       
                }
        }
 
        void setSelectedPaint(final Paint paint) {
                synchronized (lock) {
                        selectedPaint = paint;
-                       
edgeDetails.setSelectedPaintDefault(getTransparentColor(paint));
+                       final Paint transColor = getTransparentColor(paint);
+                       edgeDetails.setSelectedPaintDefault(transColor);
+                       edgeDetails.setSelectedColorLowDetailDefault((Color) 
transColor);
                }
        }
        
@@ -157,18 +159,18 @@
                        return p;
        }
 
-       public void setSourceEdgeEndSelectedPaint(Paint paint) {
-               synchronized (lock) {
-                       edgeDetails.setSourceArrowSelectedPaintDefault(paint);
-               }
-       }
+//     public void setSourceEdgeEndSelectedPaint(Paint paint) {
+//             synchronized (lock) {
+//                     edgeDetails.setSourceArrowSelectedPaintDefault(paint);
+//             }
+//     }
+//
+//     public void setTargetEdgeEndSelectedPaint(Paint paint) {
+//             synchronized (lock) {
+//                     edgeDetails.setTargetArrowSelectedPaintDefault(paint);
+//             }
+//     }
 
-       public void setTargetEdgeEndSelectedPaint(Paint paint) {
-               synchronized (lock) {
-                       edgeDetails.setTargetArrowSelectedPaintDefault(paint);
-               }
-       }
-
        public void setTargetEdgeEndUnselectedPaint(Paint paint) {
                synchronized (lock) {
                        edgeDetails.setTargetArrowPaintDefault(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