Author: clopes
Date: 2012-11-15 14:03:37 -0800 (Thu, 15 Nov 2012)
New Revision: 30791

Modified:
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/AbstractViewDefaultSupport.java
   
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/DGraphView.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
   
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/PopupMenuHelper.java
Log:
Fixes #1552 (Hiding nodes/edges doesn't work)

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/AbstractViewDefaultSupport.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/AbstractViewDefaultSupport.java
     2012-11-15 21:31:36 UTC (rev 30790)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/AbstractViewDefaultSupport.java
     2012-11-15 22:03:37 UTC (rev 30791)
@@ -3,10 +3,16 @@
 import java.awt.Color;
 import java.awt.Paint;
 
+import org.cytoscape.view.model.VisualProperty;
+
 public abstract class AbstractViewDefaultSupport {
        
+       /**
+        * Set the default value for a visual property
+        */
+       protected abstract <V> void setViewDefault(VisualProperty<V> vp, V 
value);
+       
        protected final Color getTransparentColor(final Paint p, final int 
transparency) {
-               
                if (p != null && p instanceof Color)
                        return new Color(((Color) p).getRed(), ((Color) 
p).getGreen(), ((Color) p).getBlue(), transparency);
                else

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
   2012-11-15 21:31:36 UTC (rev 30790)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DEdgeDetails.java
   2012-11-15 22:03:37 UTC (rev 30791)
@@ -137,7 +137,7 @@
                defaultValues = new HashMap<VisualProperty<?>, Object>();
        }
 
-       void clearMappedValues() {
+       void clear() {
                if (isCleared)
                        return;
 

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
      2012-11-15 21:31:36 UTC (rev 30790)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DEdgeView.java
      2012-11-15 22:03:37 UTC (rev 30791)
@@ -56,7 +56,7 @@
 public class DEdgeView extends AbstractDViewModel<CyEdge> implements EdgeView, 
Label, EdgeAnchors {
 
        // Parent network view.  This view exists only in this network view.
-       private final DGraphView dGraphView;
+       private final DGraphView graphView;
        private final HandleFactory handleFacgtory;
 
        // Since Fonts are created from size and font face, we need this local 
value.
@@ -64,14 +64,14 @@
        private LineType lineType;
        private boolean selected;
        
-       DEdgeView(final DGraphView dGraphView, final CyEdge model, final 
HandleFactory handleFactory) {
+       DEdgeView(final DGraphView graphView, final CyEdge model, final 
HandleFactory handleFactory) {
                super(model);
 
-               if (dGraphView == null)
+               if (graphView == null)
                        throw new IllegalArgumentException("Constructor needs 
its parent DGraphView.");
 
                this.handleFacgtory = handleFactory;
-               this.dGraphView = dGraphView;
+               this.graphView = graphView;
                this.selected = false;
                this.fontSize = 
DVisualLexicon.EDGE_LABEL_FONT_SIZE.getDefault();
        }
@@ -84,24 +84,24 @@
 
        @Override
        public GraphView getGraphView() {
-               return dGraphView;
+               return graphView;
        }
 
 
        @Override
        public void setStrokeWidth(final float width) {
-               synchronized (dGraphView.m_lock) {
-                       
dGraphView.m_edgeDetails.overrideSegmentThickness(model, width);
-                       dGraphView.m_contentChanged = true;
+               synchronized (graphView.m_lock) {
+                       graphView.m_edgeDetails.overrideSegmentThickness(model, 
width);
+                       graphView.m_contentChanged = true;
                }
        }
 
 
        @Override
        public void setStroke(Stroke stroke) {
-               synchronized (dGraphView.m_lock) {
-                       dGraphView.m_edgeDetails.overrideSegmentStroke(model, 
stroke);
-                       dGraphView.m_contentChanged = true;
+               synchronized (graphView.m_lock) {
+                       graphView.m_edgeDetails.overrideSegmentStroke(model, 
stroke);
+                       graphView.m_contentChanged = true;
                }
        }
 
@@ -109,9 +109,9 @@
        @Override
        public void setLineCurved(int lineType) {
                if ((lineType == EdgeView.CURVED_LINES) || (lineType == 
EdgeView.STRAIGHT_LINES)) {
-                       synchronized (dGraphView.m_lock) {
-                               
dGraphView.m_edgeDetails.overrideLineCurved(model, lineType);
-                               dGraphView.m_contentChanged = true;
+                       synchronized (graphView.m_lock) {
+                               
graphView.m_edgeDetails.overrideLineCurved(model, lineType);
+                               graphView.m_contentChanged = true;
                        }
                } else
                        throw new IllegalArgumentException("unrecognized line 
type");
@@ -120,15 +120,15 @@
 
        @Override
        public void setUnselectedPaint(final Paint paint) {
-               synchronized (dGraphView.m_lock) {
+               synchronized (graphView.m_lock) {
                        if (paint == null)
                                throw new NullPointerException("paint is null");
                        
-                       final Paint transpColor = getTransparentColor(paint, 
dGraphView.m_edgeDetails.getTransparency(model));
+                       final Paint transpColor = getTransparentColor(paint, 
graphView.m_edgeDetails.getTransparency(model));
                        
                        if (!isSelected()) {
-                               
dGraphView.m_edgeDetails.setUnselectedPaint(model, transpColor);
-                               dGraphView.m_contentChanged = true;
+                               
graphView.m_edgeDetails.setUnselectedPaint(model, transpColor);
+                               graphView.m_contentChanged = true;
                        }
                }
        }
@@ -136,73 +136,73 @@
 
        @Override
        public void setSelectedPaint(final Paint paint) {
-               synchronized (dGraphView.m_lock) {
+               synchronized (graphView.m_lock) {
                        if (paint == null)
                                throw new NullPointerException("paint is null");
 
-                       final Paint transpColor = getTransparentColor(paint, 
dGraphView.m_edgeDetails.getTransparency(model));
+                       final Paint transpColor = getTransparentColor(paint, 
graphView.m_edgeDetails.getTransparency(model));
                        
                        if (isSelected()) {
-                               
dGraphView.m_edgeDetails.setSelectedPaint(model, transpColor);
-                               dGraphView.m_contentChanged = true;
+                               graphView.m_edgeDetails.setSelectedPaint(model, 
transpColor);
+                               graphView.m_contentChanged = true;
                        }
                }
        }
 
        @Override
        public void setSourceEdgeEndSelectedPaint(Paint paint) {
-               synchronized (dGraphView.m_lock) {
+               synchronized (graphView.m_lock) {
                        if (paint == null)
                                throw new NullPointerException("paint is null");
 
-                       final Paint transpColor = getTransparentColor(paint, 
dGraphView.m_edgeDetails.getTransparency(model));
+                       final Paint transpColor = getTransparentColor(paint, 
graphView.m_edgeDetails.getTransparency(model));
                        if (isSelected()) {
-                               
dGraphView.m_edgeDetails.overrideSourceArrowSelectedPaint(model, transpColor);
-                               dGraphView.m_contentChanged = true;
+                               
graphView.m_edgeDetails.overrideSourceArrowSelectedPaint(model, transpColor);
+                               graphView.m_contentChanged = true;
                        }
                }
        }
 
        @Override
        public void setTargetEdgeEndSelectedPaint(Paint paint) {
-               synchronized (dGraphView.m_lock) {
+               synchronized (graphView.m_lock) {
                        if (paint == null)
                                throw new NullPointerException("paint is null");
 
-                       final Paint transpColor = getTransparentColor(paint, 
dGraphView.m_edgeDetails.getTransparency(model));
+                       final Paint transpColor = getTransparentColor(paint, 
graphView.m_edgeDetails.getTransparency(model));
                        if (isSelected()) {
-                               
dGraphView.m_edgeDetails.overrideTargetArrowSelectedPaint(model, transpColor);
-                               dGraphView.m_contentChanged = true;
+                               
graphView.m_edgeDetails.overrideTargetArrowSelectedPaint(model, transpColor);
+                               graphView.m_contentChanged = true;
                        }
                }
        }
 
        @Override
        public void setSourceEdgeEndPaint(final Paint paint) {
-               synchronized (dGraphView.m_lock) {
+               synchronized (graphView.m_lock) {
                        if (paint == null)
                                throw new NullPointerException("paint is null");
 
-                       final Paint transpColor = getTransparentColor(paint, 
dGraphView.m_edgeDetails.getTransparency(model));
+                       final Paint transpColor = getTransparentColor(paint, 
graphView.m_edgeDetails.getTransparency(model));
                        
                        if (!isSelected()) {
-                               
dGraphView.m_edgeDetails.overrideSourceArrowPaint(model, transpColor);
-                               dGraphView.m_contentChanged = true;
+                               
graphView.m_edgeDetails.overrideSourceArrowPaint(model, transpColor);
+                               graphView.m_contentChanged = true;
                        }
                }
        }
 
        @Override
        public void setTargetEdgeEndPaint(Paint paint) {
-               synchronized (dGraphView.m_lock) {
+               synchronized (graphView.m_lock) {
                        if (paint == null)
                                throw new NullPointerException("paint is null");
 
-                       final Paint transpColor = getTransparentColor(paint, 
dGraphView.m_edgeDetails.getTransparency(model));
-                       
dGraphView.m_edgeDetails.overrideTargetArrowPaint(model, transpColor);
+                       final Paint transpColor = getTransparentColor(paint, 
graphView.m_edgeDetails.getTransparency(model));
+                       graphView.m_edgeDetails.overrideTargetArrowPaint(model, 
transpColor);
                        
                        if (!isSelected()) {
-                               dGraphView.m_contentChanged = true;
+                               graphView.m_contentChanged = true;
                        }
                }
        }
@@ -210,11 +210,11 @@
        private final void select() {
                final boolean somethingChanged;
 
-               synchronized (dGraphView.m_lock) {
+               synchronized (graphView.m_lock) {
                        somethingChanged = selectInternal(false);
 
                        if (somethingChanged)
-                               dGraphView.m_contentChanged = true;
+                               graphView.m_contentChanged = true;
                }
        }
 
@@ -224,23 +224,23 @@
                        return false;
 
                selected = true;
-               dGraphView.m_edgeDetails.select(model);         
-               dGraphView.m_selectedEdges.insert(model.getSUID());
+               graphView.m_edgeDetails.select(model);          
+               graphView.m_selectedEdges.insert(model.getSUID());
 
-               List<Handle> handles = 
dGraphView.m_edgeDetails.getBend(model).getAllHandles();
+               List<Handle> handles = 
graphView.m_edgeDetails.getBend(model).getAllHandles();
                for (int j = 0; j < handles.size(); j++) {
                        final Handle handle = handles.get(j);
-                       final Point2D newPoint = 
handle.calculateHandleLocation(dGraphView.getViewModel(),this);
+                       final Point2D newPoint = 
handle.calculateHandleLocation(graphView.getViewModel(),this);
                        final double x = newPoint.getX();
                        final double y = newPoint.getY();
-                       final double halfSize = dGraphView.getAnchorSize() / 
2.0;
+                       final double halfSize = graphView.getAnchorSize() / 2.0;
                        
-                       dGraphView.m_spacialA.insert((model.getSUID() << 6) | j,
+                       graphView.m_spacialA.insert((model.getSUID() << 6) | j,
                                        (float) (x - halfSize), (float) (y - 
halfSize),
                                        (float) (x + halfSize), (float) (y + 
halfSize));
 
                        if (selectAnchors)
-                               
dGraphView.m_selectedAnchors.insert((model.getSUID() << 6) | j);
+                               
graphView.m_selectedAnchors.insert((model.getSUID() << 6) | j);
                }
                return true;
        }
@@ -248,11 +248,11 @@
        public void unselect() {
                final boolean somethingChanged;
 
-               synchronized (dGraphView.m_lock) {
+               synchronized (graphView.m_lock) {
                        somethingChanged = unselectInternal();
 
                        if (somethingChanged)
-                               dGraphView.m_contentChanged = true;
+                               graphView.m_contentChanged = true;
                }
        }
 
@@ -262,13 +262,13 @@
                        return false;
 
                selected = false;
-               dGraphView.m_edgeDetails.unselect(model);
-               dGraphView.m_selectedEdges.delete(model.getSUID());
+               graphView.m_edgeDetails.unselect(model);
+               graphView.m_selectedEdges.delete(model.getSUID());
 
-               final int numHandles = 
dGraphView.m_edgeDetails.getBend(model).getAllHandles().size();
+               final int numHandles = 
graphView.m_edgeDetails.getBend(model).getAllHandles().size();
                for (int j = 0; j < numHandles; j++) {
-                       dGraphView.m_selectedAnchors.delete((model.getSUID() << 
6) | j);
-                       dGraphView.m_spacialA.delete((model.getSUID() << 6) | 
j);
+                       graphView.m_selectedAnchors.delete((model.getSUID() << 
6) | j);
+                       graphView.m_spacialA.delete((model.getSUID() << 6) | j);
                }
                return true;
        }
@@ -291,92 +291,92 @@
        
        @Override
        public void setSourceEdgeEnd(final int rendererTypeID) {
-               synchronized (dGraphView.m_lock) {
-                       dGraphView.m_edgeDetails.overrideSourceArrow(model, 
(byte) rendererTypeID);
+               synchronized (graphView.m_lock) {
+                       graphView.m_edgeDetails.overrideSourceArrow(model, 
(byte) rendererTypeID);
                }
 
-               dGraphView.m_contentChanged = true;
+               graphView.m_contentChanged = true;
        }
 
        @Override
        public void setTargetEdgeEnd(final int rendererTypeID) {
-               synchronized (dGraphView.m_lock) {
-                       dGraphView.m_edgeDetails.overrideTargetArrow(model, 
(byte) rendererTypeID);
+               synchronized (graphView.m_lock) {
+                       graphView.m_edgeDetails.overrideTargetArrow(model, 
(byte) rendererTypeID);
                }
 
-               dGraphView.m_contentChanged = true;
+               graphView.m_contentChanged = true;
 
        }
 
 
        @Override
        public void setToolTip(String tip) {
-               dGraphView.m_edgeDetails.m_edgeTooltips.put(model, tip);
+               graphView.m_edgeDetails.m_edgeTooltips.put(model, tip);
        }
 
 
        @Override
        public Paint getTextPaint() {
-               synchronized (dGraphView.m_lock) {
-                       return dGraphView.m_edgeDetails.getLabelPaint(model, 0);
+               synchronized (graphView.m_lock) {
+                       return graphView.m_edgeDetails.getLabelPaint(model, 0);
                }
        }
 
        @Override
        public void setTextPaint(Paint textPaint) {
-               synchronized (dGraphView.m_lock) {
-                       dGraphView.m_edgeDetails.overrideLabelPaint(model, 0, 
textPaint);
-                       dGraphView.m_contentChanged = true;
+               synchronized (graphView.m_lock) {
+                       graphView.m_edgeDetails.overrideLabelPaint(model, 0, 
textPaint);
+                       graphView.m_contentChanged = true;
                }
        }
 
        @Override
        public String getText() {
-               synchronized (dGraphView.m_lock) {
-                       return dGraphView.m_edgeDetails.getLabelText(model, 0);
+               synchronized (graphView.m_lock) {
+                       return graphView.m_edgeDetails.getLabelText(model, 0);
                }
        }
 
        @Override
        public void setText(final String text) {
-               synchronized (dGraphView.m_lock) {
-                       dGraphView.m_edgeDetails.overrideLabelText(model, 0, 
text);
+               synchronized (graphView.m_lock) {
+                       graphView.m_edgeDetails.overrideLabelText(model, 0, 
text);
 
-                       if 
("".equals(dGraphView.m_edgeDetails.getLabelText(model, 0)))
-                               
dGraphView.m_edgeDetails.overrideLabelCount(model, 0); // TODO is this correct?
+                       if 
("".equals(graphView.m_edgeDetails.getLabelText(model, 0)))
+                               
graphView.m_edgeDetails.overrideLabelCount(model, 0); // TODO is this correct?
                        else
-                               
dGraphView.m_edgeDetails.overrideLabelCount(model, 1);
+                               
graphView.m_edgeDetails.overrideLabelCount(model, 1);
 
-                       dGraphView.m_contentChanged = true;
+                       graphView.m_contentChanged = true;
                }
        }
 
        @Override
        public Font getFont() {
-               synchronized (dGraphView.m_lock) {
-                       return dGraphView.m_edgeDetails.getLabelFont(model, 0);
+               synchronized (graphView.m_lock) {
+                       return graphView.m_edgeDetails.getLabelFont(model, 0);
                }
        }
        
        @Override
        public void setFont(final Font font) {
-               synchronized (dGraphView.m_lock) {
-                       dGraphView.m_edgeDetails.overrideLabelFont(model, 0, 
font);
-                       dGraphView.m_contentChanged = true;
+               synchronized (graphView.m_lock) {
+                       graphView.m_edgeDetails.overrideLabelFont(model, 0, 
font);
+                       graphView.m_contentChanged = true;
                }
        }
 
        protected final void moveHandleInternal(final int inx, double x, double 
y) {
-               final Bend bend = dGraphView.m_edgeDetails.getBend(model);
+               final Bend bend = graphView.m_edgeDetails.getBend(model);
                final HandleImpl handle = (HandleImpl) 
bend.getAllHandles().get(inx);
-               handle.defineHandle(dGraphView.getViewModel(), this, x, y);
+               handle.defineHandle(graphView.getViewModel(), this, x, y);
 
-               if (dGraphView.m_spacialA.delete((model.getSUID() << 6) | inx))
-                       dGraphView.m_spacialA.insert((model.getSUID() << 6) | 
inx,
-                                       (float) (x - 
(dGraphView.getAnchorSize() / 2.0d)),
-                                       (float) (y - 
(dGraphView.getAnchorSize() / 2.0d)),
-                                       (float) (x + 
(dGraphView.getAnchorSize() / 2.0d)),
-                                       (float) (y + 
(dGraphView.getAnchorSize() / 2.0d)));
+               if (graphView.m_spacialA.delete((model.getSUID() << 6) | inx))
+                       graphView.m_spacialA.insert((model.getSUID() << 6) | 
inx,
+                                       (float) (x - (graphView.getAnchorSize() 
/ 2.0d)),
+                                       (float) (y - (graphView.getAnchorSize() 
/ 2.0d)),
+                                       (float) (x + (graphView.getAnchorSize() 
/ 2.0d)),
+                                       (float) (y + (graphView.getAnchorSize() 
/ 2.0d)));
        }
 
        /**
@@ -386,10 +386,10 @@
         * @return new handle index.
         */
        protected int addHandlePoint(final Point2D pt) {
-               synchronized (dGraphView.m_lock) {
+               synchronized (graphView.m_lock) {
                        
                        // Obtain existing Bend object
-                       final Bend bend = 
dGraphView.m_edgeDetails.getBend(model, true);
+                       final Bend bend = 
graphView.m_edgeDetails.getBend(model, true);
                        
                        if (bend.getAllHandles().size() == 0) {
                                // anchors object is empty. Add first handle.
@@ -398,18 +398,18 @@
                                return 0;
                        }
 
-                       final Point2D sourcePt = 
dGraphView.getDNodeView(getCyEdge().getSource()).getOffset();
-                       final Point2D targetPt = 
dGraphView.getDNodeView(getCyEdge().getTarget()).getOffset();
+                       final Point2D sourcePt = 
graphView.getDNodeView(getCyEdge().getSource()).getOffset();
+                       final Point2D targetPt = 
graphView.getDNodeView(getCyEdge().getTarget()).getOffset();
                        final Handle firstHandle = bend.getAllHandles().get(0); 
-                       final Point2D point = 
firstHandle.calculateHandleLocation(dGraphView.getViewModel(),this);
+                       final Point2D point = 
firstHandle.calculateHandleLocation(graphView.getViewModel(),this);
                        double bestDist = (pt.distance(sourcePt) + 
pt.distance(point)) - sourcePt.distance(point);
                        int bestInx = 0;
 
                        for (int i = 1; i < bend.getAllHandles().size(); i++) {
                                final Handle handle1 = 
bend.getAllHandles().get(i);
                                final Handle handle2 = 
bend.getAllHandles().get(i-1);
-                               final Point2D point1 = 
handle1.calculateHandleLocation(dGraphView.getViewModel(),this);
-                               final Point2D point2 = 
handle2.calculateHandleLocation(dGraphView.getViewModel(),this);
+                               final Point2D point1 = 
handle1.calculateHandleLocation(graphView.getViewModel(),this);
+                               final Point2D point2 = 
handle2.calculateHandleLocation(graphView.getViewModel(),this);
 
                                final double distCand = (pt.distance(point2) + 
pt.distance(point1)) - point1.distance(point2);
 
@@ -421,7 +421,7 @@
 
                        final int lastIndex = bend.getAllHandles().size() - 1;
                        final Handle lastHandle = 
bend.getAllHandles().get(lastIndex);
-                       final Point2D lastPoint = 
lastHandle.calculateHandleLocation(dGraphView.getViewModel(),this);
+                       final Point2D lastPoint = 
lastHandle.calculateHandleLocation(graphView.getViewModel(),this);
                        
                        final double lastCand = (pt.distance(targetPt) + 
pt.distance(lastPoint)) - targetPt.distance(lastPoint);
 
@@ -443,58 +443,58 @@
         * @param handleLocation
         */
        private void addHandleInternal(final int insertInx, final Point2D 
handleLocation) {
-               synchronized (dGraphView.m_lock) {
-                       final Bend bend = 
dGraphView.m_edgeDetails.getBend(model);                      
-                       final Handle handle = 
handleFacgtory.createHandle(dGraphView, this, handleLocation.getX(), 
handleLocation.getY());
+               synchronized (graphView.m_lock) {
+                       final Bend bend = 
graphView.m_edgeDetails.getBend(model);                       
+                       final Handle handle = 
handleFacgtory.createHandle(graphView, this, handleLocation.getX(), 
handleLocation.getY());
                        bend.insertHandleAt(insertInx, handle);
 
                        if (selected) {
                                for (int j = bend.getAllHandles().size() - 1; j 
> insertInx; j--) {
-                                       
dGraphView.m_spacialA.exists((model.getSUID() << 6) | (j - 1),
-                                                       
dGraphView.m_extentsBuff, 0);
-                                       
dGraphView.m_spacialA.delete((model.getSUID() << 6) | (j - 1));
-                                       
dGraphView.m_spacialA.insert((model.getSUID() << 6) | j,
-                                                       
dGraphView.m_extentsBuff[0], dGraphView.m_extentsBuff[1],
-                                                       
dGraphView.m_extentsBuff[2], dGraphView.m_extentsBuff[3]);
+                                       
graphView.m_spacialA.exists((model.getSUID() << 6) | (j - 1),
+                                                       
graphView.m_extentsBuff, 0);
+                                       
graphView.m_spacialA.delete((model.getSUID() << 6) | (j - 1));
+                                       
graphView.m_spacialA.insert((model.getSUID() << 6) | j,
+                                                       
graphView.m_extentsBuff[0], graphView.m_extentsBuff[1],
+                                                       
graphView.m_extentsBuff[2], graphView.m_extentsBuff[3]);
 
-                                       if 
(dGraphView.m_selectedAnchors.delete((model.getSUID() << 6) | (j - 1)))
-                                               
dGraphView.m_selectedAnchors.insert((model.getSUID() << 6) | j);
+                                       if 
(graphView.m_selectedAnchors.delete((model.getSUID() << 6) | (j - 1)))
+                                               
graphView.m_selectedAnchors.insert((model.getSUID() << 6) | j);
                                }
                                
-                               dGraphView.m_spacialA.insert((model.getSUID() 
<< 6) | insertInx,
-                                               (float) (handleLocation.getX() 
- (dGraphView.getAnchorSize() / 2.0d)),
-                                               (float) (handleLocation.getY() 
- (dGraphView.getAnchorSize() / 2.0d)),
-                                               (float) (handleLocation.getX() 
+ (dGraphView.getAnchorSize() / 2.0d)),
-                                               (float) (handleLocation.getY() 
+ (dGraphView.getAnchorSize() / 2.0d)));
+                               graphView.m_spacialA.insert((model.getSUID() << 
6) | insertInx,
+                                               (float) (handleLocation.getX() 
- (graphView.getAnchorSize() / 2.0d)),
+                                               (float) (handleLocation.getY() 
- (graphView.getAnchorSize() / 2.0d)),
+                                               (float) (handleLocation.getX() 
+ (graphView.getAnchorSize() / 2.0d)),
+                                               (float) (handleLocation.getY() 
+ (graphView.getAnchorSize() / 2.0d)));
                        }
 
-                       dGraphView.m_contentChanged = true;
+                       graphView.m_contentChanged = true;
                }
        }
 
        void removeHandle(int inx) {
-               synchronized (dGraphView.m_lock) {
-                       final Bend bend = 
dGraphView.m_edgeDetails.getBend(model);
+               synchronized (graphView.m_lock) {
+                       final Bend bend = 
graphView.m_edgeDetails.getBend(model);
                        bend.removeHandleAt(inx);
                        //m_anchors.remove(inx);
 
                        if (selected) {
-                               dGraphView.m_spacialA.delete((model.getSUID() 
<< 6) | inx);
-                               
dGraphView.m_selectedAnchors.delete((model.getSUID() << 6) | inx);
+                               graphView.m_spacialA.delete((model.getSUID() << 
6) | inx);
+                               
graphView.m_selectedAnchors.delete((model.getSUID() << 6) | inx);
 
                                for (int j = inx; j < 
bend.getAllHandles().size(); j++) {
-                                       
dGraphView.m_spacialA.exists((model.getSUID() << 6) | (j + 1),
-                                                       
dGraphView.m_extentsBuff, 0);
-                                       
dGraphView.m_spacialA.delete((model.getSUID() << 6) | (j + 1));
-                                       
dGraphView.m_spacialA.insert((model.getSUID() << 6) | j,
-                                                       
dGraphView.m_extentsBuff[0], dGraphView.m_extentsBuff[1],
-                                                       
dGraphView.m_extentsBuff[2], dGraphView.m_extentsBuff[3]);
+                                       
graphView.m_spacialA.exists((model.getSUID() << 6) | (j + 1),
+                                                       
graphView.m_extentsBuff, 0);
+                                       
graphView.m_spacialA.delete((model.getSUID() << 6) | (j + 1));
+                                       
graphView.m_spacialA.insert((model.getSUID() << 6) | j,
+                                                       
graphView.m_extentsBuff[0], graphView.m_extentsBuff[1],
+                                                       
graphView.m_extentsBuff[2], graphView.m_extentsBuff[3]);
 
-                                       if 
(dGraphView.m_selectedAnchors.delete((model.getSUID() << 6) | (j + 1)))
-                                               
dGraphView.m_selectedAnchors.insert((model.getSUID() << 6) | j);
+                                       if 
(graphView.m_selectedAnchors.delete((model.getSUID() << 6) | (j + 1)))
+                                               
graphView.m_selectedAnchors.insert((model.getSUID() << 6) | j);
                                }
                        }
-                       dGraphView.m_contentChanged = true;
+                       graphView.m_contentChanged = true;
                }
        }
 
@@ -505,14 +505,14 @@
                if(isValueLocked(DVisualLexicon.EDGE_BEND))
                        bend = this.getVisualProperty(DVisualLexicon.EDGE_BEND);
                else
-                       bend = dGraphView.m_edgeDetails.getBend(model);
+                       bend = graphView.m_edgeDetails.getBend(model);
                
                final int numHandles = bend.getAllHandles().size();
                
                if (numHandles == 0)
                        return 0;
                
-               if (dGraphView.m_edgeDetails.getLineCurved(model) == 
EdgeView.CURVED_LINES)
+               if (graphView.m_edgeDetails.getLineCurved(model) == 
EdgeView.CURVED_LINES)
                        return numHandles;
                else
                        return 2 * numHandles;
@@ -527,30 +527,30 @@
                if(isValueLocked(DVisualLexicon.EDGE_BEND))
                        bend = this.getVisualProperty(DVisualLexicon.EDGE_BEND);
                else
-                       bend = dGraphView.m_edgeDetails.getBend(model);
+                       bend = graphView.m_edgeDetails.getBend(model);
                
                final Handle handle;
-               if (dGraphView.m_edgeDetails.getLineCurved(model) == 
EdgeView.CURVED_LINES)
+               if (graphView.m_edgeDetails.getLineCurved(model) == 
EdgeView.CURVED_LINES)
                        handle = bend.getAllHandles().get(anchorIndex);
                else
                        handle = bend.getAllHandles().get(anchorIndex/2);
 
-               final Point2D newPoint = 
handle.calculateHandleLocation(dGraphView.getViewModel(),this);
+               final Point2D newPoint = 
handle.calculateHandleLocation(graphView.getViewModel(),this);
                anchorArr[offset] = (float) newPoint.getX();
                anchorArr[offset + 1] = (float) newPoint.getY();
        }
 
        public void setLabelWidth(double width) {
-               synchronized (dGraphView.m_lock) {
-                       dGraphView.m_edgeDetails.overrideLabelWidth(model, 
width);
-                       dGraphView.m_contentChanged = true;
+               synchronized (graphView.m_lock) {
+                       graphView.m_edgeDetails.overrideLabelWidth(model, 
width);
+                       graphView.m_contentChanged = true;
                }
        }
 
 
        @Override
        public void setTransparency(final int trans) {
-               synchronized (dGraphView.m_lock) {
+               synchronized (graphView.m_lock) {
                        Integer transparency;
                        if (trans < 0 || trans > 255) {
                                // If out of range, use default value.
@@ -558,20 +558,20 @@
                        } else {
                                transparency = trans;
                        }
-                       dGraphView.m_edgeDetails.overrideTransparency(model, 
transparency);
+                       graphView.m_edgeDetails.overrideTransparency(model, 
transparency);
                        
-                       
setUnselectedPaint(dGraphView.m_edgeDetails.getUnselectedPaint(model));
-                       
setSelectedPaint(dGraphView.m_edgeDetails.getSelectedPaint(model));
-                       
setTargetEdgeEndPaint(dGraphView.m_edgeDetails.getTargetArrowPaint(model));
-                       
setSourceEdgeEndPaint(dGraphView.m_edgeDetails.getSourceArrowPaint(model));
+                       
setUnselectedPaint(graphView.m_edgeDetails.getUnselectedPaint(model));
+                       
setSelectedPaint(graphView.m_edgeDetails.getSelectedPaint(model));
+                       
setTargetEdgeEndPaint(graphView.m_edgeDetails.getTargetArrowPaint(model));
+                       
setSourceEdgeEndPaint(graphView.m_edgeDetails.getSourceArrowPaint(model));
                        
-                       dGraphView.m_contentChanged = true;
+                       graphView.m_contentChanged = true;
                }
        }
        
        @Override
        public void setLabelTransparency(final int trans) {
-               synchronized (dGraphView.m_lock) {
+               synchronized (graphView.m_lock) {
                        Integer transparency;
                        if (trans < 0 || trans > 255) {
                                // If out of range, use default value.
@@ -580,28 +580,43 @@
                                transparency = trans;
                        }
                        
-                       
dGraphView.m_edgeDetails.overrideLabelTransparency(model, transparency);
-                       
setTextPaint(dGraphView.m_edgeDetails.getLabelPaint(model, 0));
+                       
graphView.m_edgeDetails.overrideLabelTransparency(model, transparency);
+                       
setTextPaint(graphView.m_edgeDetails.getLabelPaint(model, 0));
                        
-                       dGraphView.m_contentChanged = true;
+                       graphView.m_contentChanged = true;
                }
        }
        
        @Override
        public void setBend(final Bend bend) {
-               synchronized (dGraphView.m_lock) {
-                       dGraphView.m_edgeDetails.m_edgeBends.put(model, bend);
+               synchronized (graphView.m_lock) {
+                       graphView.m_edgeDetails.m_edgeBends.put(model, bend);
                }
-               dGraphView.m_contentChanged = true;
+               graphView.m_contentChanged = true;
        }
        
        @Override
        public Bend getBend() {
-               synchronized (dGraphView.m_lock) {
-                       return dGraphView.m_edgeDetails.getBend(model);
+               synchronized (graphView.m_lock) {
+                       return graphView.m_edgeDetails.getBend(model);
                }
        }
 
+       @Override
+       @SuppressWarnings({ "unchecked", "rawtypes" })
+       public void clearValueLock(final VisualProperty<?> vp) {
+               final boolean isDefault = !visualProperties.containsKey(vp);
+               super.clearValueLock(vp);
+               
+               // Reset to the visual style default if visualProperties map 
doesn't contain this vp
+               if (isDefault) {
+                       if (vp == BasicVisualLexicon.EDGE_VISIBLE)
+                               applyVisualProperty((VisualProperty) vp, 
vp.getDefault());
+                       else
+                               
graphView.edgeViewDefaultSupport.setViewDefault((VisualProperty) vp,
+                                               
graphView.m_edgeDetails.getDefaultValue(vp));
+               }
+       }
        
        /**
         * This method sets a mapped value.  NOT Defaults.
@@ -626,7 +641,7 @@
                } else if (vp == DVisualLexicon.EDGE_UNSELECTED_PAINT) {
                        setUnselectedPaint((Paint) value);
                } else if (vp == DVisualLexicon.EDGE_WIDTH) {
-                       final float currentWidth = 
dGraphView.m_edgeDetails.getWidth(model);
+                       final float currentWidth = 
graphView.m_edgeDetails.getWidth(model);
                        final float newWidth = ((Number) value).floatValue();
                        
                        if (currentWidth != newWidth) {
@@ -635,7 +650,7 @@
                        }
                } else if (vp == DVisualLexicon.EDGE_LINE_TYPE) {
                        lineType = (LineType) value;
-                       final Stroke newStroke = 
DLineType.getDLineType(lineType).getStroke(dGraphView.m_edgeDetails.getWidth(model));
+                       final Stroke newStroke = 
DLineType.getDLineType(lineType).getStroke(graphView.m_edgeDetails.getWidth(model));
                        setStroke(newStroke);
                } else if (vp == DVisualLexicon.EDGE_TRANSPARENCY) {
                        setTransparency(((Number) value).intValue());
@@ -679,9 +694,9 @@
                        setTextPaint((Paint) value);
                } else if (vp == BasicVisualLexicon.EDGE_VISIBLE) {
                        if (((Boolean) value).booleanValue())
-                               dGraphView.showGraphObject(this);
+                               graphView.showGraphObject(this);
                        else
-                               dGraphView.hideGraphObject(this);
+                               graphView.hideGraphObject(this);
                } else if (vp == DVisualLexicon.EDGE_CURVED) {
                        final Boolean curved = (Boolean) value;
                        if (curved)
@@ -695,6 +710,6 @@
 
        @Override
        protected <T, V extends T> V getDefaultValue(VisualProperty<T> vp) {
-               return dGraphView.m_edgeDetails.getDefaultValue(vp);
+               return graphView.m_edgeDetails.getDefaultValue(vp);
        }
 }

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DGraphView.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DGraphView.java
     2012-11-15 21:31:36 UTC (rev 30790)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DGraphView.java
     2012-11-15 22:03:37 UTC (rev 30791)
@@ -204,7 +204,7 @@
         * Holds the NodeView data for the nodes that are visible. This will 
change
         * as nodes are hidden from the view.
         */
-       CySubNetwork m_drawPersp;
+       final CySubNetwork m_drawPersp;
 
        /**
         * RTree used for querying node positions.
@@ -216,10 +216,11 @@
         * DEdgeView, and InnerCanvas.
         */
        SpacialIndex2D m_spacialA;
-
        
-       DNodeDetails m_nodeDetails;
-       DEdgeDetails m_edgeDetails;
+       final DNodeDetails m_nodeDetails;
+       final DEdgeDetails m_edgeDetails;
+       final NodeViewDefaultSupport nodeViewDefaultSupport;
+       final EdgeViewDefaultSupport edgeViewDefaultSupport;
 
        /**
         * Level of detail specific to printing. Not used for rendering.
@@ -229,29 +230,11 @@
        private final Map<CyNode, NodeView> m_nodeViewMap;
        private final Map<CyEdge, EdgeView> m_edgeViewMap;
 
-       /**
-        *
-        */
        Long m_identifier;
 
-       /**
-        *
-        */
        final float m_defaultNodeXMin;
-
-       /**
-        *
-        */
        final float m_defaultNodeYMin;
-
-       /**
-        *
-        */
        final float m_defaultNodeXMax;
-
-       /**
-        *
-        */
        final float m_defaultNodeYMax;
 
        /**
@@ -374,12 +357,10 @@
        final VisualLexicon dingLexicon;
        
        private final Properties props;
-
-       private final NodeViewDefaultSupport m_nodeViewDefaultSupport;// TODO 
delete?
-       private final EdgeViewDefaultSupport m_edgeViewDefaultSupport;// TODO 
delete?
+       
        private final CyAnnotator cyAnnotator;
 
-       private boolean annotationsLoaded = false;
+       private boolean annotationsLoaded;
        private boolean servicesRegistered;
        
        private final VisualMappingManager vmm;
@@ -468,8 +449,8 @@
                m_spacialA = spacialFactory.createSpacialIndex2D();
                m_nodeDetails = new DNodeDetails(this);
                m_edgeDetails = new DEdgeDetails(this);
-               m_nodeViewDefaultSupport = new 
NodeViewDefaultSupport(m_nodeDetails, m_lock);
-               m_edgeViewDefaultSupport = new 
EdgeViewDefaultSupport(m_edgeDetails, m_lock);
+               nodeViewDefaultSupport = new 
NodeViewDefaultSupport(m_nodeDetails, m_lock);
+               edgeViewDefaultSupport = new 
EdgeViewDefaultSupport(m_edgeDetails, m_lock);
                m_nodeViewMap = new ConcurrentHashMap<CyNode, NodeView>();
                m_edgeViewMap = new ConcurrentHashMap<CyEdge, EdgeView>();
                m_printLOD = new PrintLOD();
@@ -2646,6 +2627,7 @@
        }
 
        @Override
+       @SuppressWarnings("unchecked")
        public <T, V extends T> void setViewDefault(VisualProperty<? extends T> 
vp, V defaultValue) {
                if (vp.shouldIgnoreDefault())
                        return;
@@ -2678,10 +2660,10 @@
                
                if (targetType == CyNode.class) {
                        m_nodeDetails.clear();
-                       
m_nodeViewDefaultSupport.setNodeViewDefault(vp,defaultValue);
+                       
nodeViewDefaultSupport.setViewDefault((VisualProperty<V>)vp, defaultValue);
                } else if (targetType == CyEdge.class) {
-                       m_edgeDetails.clearMappedValues();
-                       
m_edgeViewDefaultSupport.setEdgeViewDefault(vp,defaultValue);
+                       m_edgeDetails.clear();
+                       
edgeViewDefaultSupport.setViewDefault((VisualProperty<V>)vp, defaultValue);
                } else if (targetType == CyNetwork.class) {
                        // For networks, just set as regular visual property 
value.  (No defaults)
                        this.setVisualProperty(vp, defaultValue);

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
      2012-11-15 21:31:36 UTC (rev 30790)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/DNodeView.java
      2012-11-15 22:03:37 UTC (rev 30791)
@@ -1039,6 +1039,22 @@
        }
        
        @Override
+       @SuppressWarnings({ "unchecked", "rawtypes" })
+       public void clearValueLock(final VisualProperty<?> vp) {
+               final boolean isDefault = !visualProperties.containsKey(vp);
+               super.clearValueLock(vp);
+               
+               // Reset to the visual style default if visualProperties map 
doesn't contain this vp
+               if (isDefault) {
+                       if (vp == BasicVisualLexicon.NODE_VISIBLE) // TODO: 
what if the default value of the visual style is different (e.g. invisible)?
+                               applyVisualProperty((VisualProperty) vp, 
vp.getDefault());
+                       else
+                               
graphView.nodeViewDefaultSupport.setViewDefault((VisualProperty) vp,
+                                               
graphView.m_nodeDetails.getDefaultValue(vp));
+               }
+       }
+       
+       @Override
        protected <T, V extends T> void applyVisualProperty(final 
VisualProperty<? extends T> vpOriginal, V value) {
                VisualProperty<?> vp = vpOriginal;
                

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
 2012-11-15 21:31:36 UTC (rev 30790)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/EdgeViewDefaultSupport.java
 2012-11-15 22:03:37 UTC (rev 30791)
@@ -54,15 +54,10 @@
                this.lock = lock;
        }
 
-       /**
-        * Set default value for visual properties
-        * 
-        * @param vp
-        * @param value
-        */
-       void setEdgeViewDefault(VisualProperty<?> vp, Object value) {
+       @Override
+       protected <V> void setViewDefault(final VisualProperty<V> vp, V value) {
                if (value == null)
-                       value = vp.getDefault();
+                       value = (V) vp.getDefault();
 
                // // Type check:
                // 
if(vp.getRange().getType().isAssignableFrom(value.getClass()) ==

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
 2012-11-15 21:31:36 UTC (rev 30790)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/NodeViewDefaultSupport.java
 2012-11-15 22:03:37 UTC (rev 30791)
@@ -30,9 +30,7 @@
 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.DVisualLexicon;
 import org.cytoscape.ding.ObjectPosition;
 import org.cytoscape.view.model.VisualProperty;
@@ -51,12 +49,13 @@
                this.lock = lock;
        }
 
-       <V> void setNodeViewDefault(final VisualProperty<?> vpOriginal, V 
value) {
-               final VisualProperty<?> vp = vpOriginal;
+       @Override
+       protected <V> void setViewDefault(final VisualProperty<V> vpOriginal, V 
value) {
+               final VisualProperty<V> vp = vpOriginal;
 
                // Null means set value to VP's default.
                if (value == null)
-                       value = (V) vp.getDefault();
+                       value = vp.getDefault();
 
                if (vp == DVisualLexicon.NODE_SHAPE) {
                        setShape(((NodeShape) value));

Modified: 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/PopupMenuHelper.java
===================================================================
--- 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/PopupMenuHelper.java
        2012-11-15 21:31:36 UTC (rev 30790)
+++ 
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/PopupMenuHelper.java
        2012-11-15 22:03:37 UTC (rev 30791)
@@ -139,7 +139,7 @@
 
                        // build a menu of actions if more than factory exists
                        if ( usableTFs.size() > 1) {
-                               String nodeLabel = 
network.getRow(nv.getModel()).get("name",String.class);
+                               String nodeLabel = 
network.getRow(nv.getModel()).get(CyNetwork.NAME, String.class);
                                JPopupMenu menu = createMenu(nodeLabel);
                                JMenuTracker tracker = new JMenuTracker(menu);
 

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