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.