Author: mes
Date: 2011-06-21 15:37:40 -0700 (Tue, 21 Jun 2011)
New Revision: 25850

Modified:
   
core3/ding-presentation-impl/trunk/src/main/java/org/cytoscape/ding/impl/AddDeleteHandler.java
   
core3/ding-presentation-impl/trunk/src/main/java/org/cytoscape/ding/impl/DGraphView.java
   
core3/ding-presentation-impl/trunk/src/main/java/org/cytoscape/ding/impl/DingRenderingEngineFactory.java
   
core3/ding-presentation-impl/trunk/src/main/java/org/cytoscape/ding/impl/FlagAndSelectionHandler.java
Log:
updated to for event-api changes that rely on payload events instead of 
microlisteners

Modified: 
core3/ding-presentation-impl/trunk/src/main/java/org/cytoscape/ding/impl/AddDeleteHandler.java
===================================================================
--- 
core3/ding-presentation-impl/trunk/src/main/java/org/cytoscape/ding/impl/AddDeleteHandler.java
      2011-06-21 22:37:24 UTC (rev 25849)
+++ 
core3/ding-presentation-impl/trunk/src/main/java/org/cytoscape/ding/impl/AddDeleteHandler.java
      2011-06-21 22:37:40 UTC (rev 25850)
@@ -32,36 +32,29 @@
 
 import org.cytoscape.model.CyEdge;
 import org.cytoscape.model.CyNode;
-
-
-import org.cytoscape.view.model.events.AddedEdgeViewEvent;
-import org.cytoscape.view.model.events.AddedNodeViewEvent;
-
-import org.cytoscape.view.model.events.AddedEdgeViewListener;
-import org.cytoscape.view.model.events.AddedNodeViewListener;
-import org.cytoscape.view.model.events.AboutToRemoveEdgeViewMicroListener;
-import org.cytoscape.view.model.events.AboutToRemoveNodeViewMicroListener;
-
+import org.cytoscape.view.model.events.AddedEdgeViewsEvent;
+import org.cytoscape.view.model.events.AddedNodeViewsEvent;
+import org.cytoscape.view.model.events.AboutToRemoveEdgeViewsEvent;
+import org.cytoscape.view.model.events.AboutToRemoveEdgeViewsListener;
+import org.cytoscape.view.model.events.AboutToRemoveNodeViewsEvent;
+import org.cytoscape.view.model.events.AboutToRemoveNodeViewsListener;
+import org.cytoscape.view.model.events.AddedEdgeViewsListener;
+import org.cytoscape.view.model.events.AddedNodeViewsListener;
 import org.cytoscape.view.model.CyNetworkView;
 import org.cytoscape.view.model.View;
 
 import org.cytoscape.ding.GraphView;
 
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-import java.util.HashSet;
 
 
 /**
  * Listens for Add/Delete Node/Edge events and updated a GraphView 
accordingly. 
  */
 public class AddDeleteHandler 
-       implements AddedEdgeViewListener, 
-                  AddedNodeViewListener,
-                  AboutToRemoveEdgeViewMicroListener, 
-                  AboutToRemoveNodeViewMicroListener
+       implements AddedEdgeViewsListener, 
+                  AddedNodeViewsListener,
+                  AboutToRemoveEdgeViewsListener, 
+                  AboutToRemoveNodeViewsListener
 {
        private final GraphView view;
        private final CyNetworkView networkView;
@@ -71,37 +64,43 @@
                this.networkView = view.getViewModel();
        }
 
-       public void handleEvent(final AddedEdgeViewEvent e) {
+       public void handleEvent(final AddedEdgeViewsEvent e) {
                if ( networkView != e.getSource() )
                        return;
 
-               final View<CyEdge> ev = e.getEdgeView();
-               view.addEdgeView(ev.getModel());
+               for ( View<CyEdge> ev : e.getPayloadCollection() )
+                       view.addEdgeView(ev.getModel());
+
                view.updateView();
        }
 
-       public void handleEvent(final AddedNodeViewEvent e) {
+       public void handleEvent(final AddedNodeViewsEvent e) {
                if ( networkView != e.getSource() )
                        return;
 
-               final View<CyNode> nv = e.getNodeView();
-               view.addNodeView(nv.getModel());
+               for ( View<CyNode> nv : e.getPayloadCollection())
+                       view.addNodeView(nv.getModel());
+               
                view.updateView();
        }
 
-       public void edgeViewAboutToBeRemoved(final View<CyEdge> edgeView, final 
CyNetworkView networkView) {
-               if (this.networkView != networkView || edgeView == null)
+       public void handleEvent(AboutToRemoveEdgeViewsEvent e) {
+               if ( e.getSource() != this.networkView )
                        return;
+               
+               for ( View<CyEdge> edgeView : e.getEdgeViews()) 
+                       view.removeEdgeView(edgeView.getModel());
 
-               view.removeEdgeView(edgeView.getModel());
                view.updateView();
        }
 
-       public void nodeViewAboutToBeRemoved(final View<CyNode> nodeView, final 
CyNetworkView networkView) {
-               if (this.networkView != networkView || nodeView == null)
+       public void handleEvent(AboutToRemoveNodeViewsEvent e) {
+               if ( e.getSource() != this.networkView )
                        return;
+               
+               for ( View<CyNode> nodeView : e.getNodeViews()) 
+                       view.removeNodeView(nodeView.getModel());
 
-               view.removeNodeView(nodeView.getModel());
                view.updateView();
        }
 }

Modified: 
core3/ding-presentation-impl/trunk/src/main/java/org/cytoscape/ding/impl/DGraphView.java
===================================================================
--- 
core3/ding-presentation-impl/trunk/src/main/java/org/cytoscape/ding/impl/DGraphView.java
    2011-06-21 22:37:24 UTC (rev 25849)
+++ 
core3/ding-presentation-impl/trunk/src/main/java/org/cytoscape/ding/impl/DGraphView.java
    2011-06-21 22:37:40 UTC (rev 25850)
@@ -50,6 +50,7 @@
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
@@ -104,13 +105,17 @@
 import org.cytoscape.view.model.View;
 import org.cytoscape.view.model.VisualLexicon;
 import org.cytoscape.view.model.VisualProperty;
-import org.cytoscape.view.model.events.EdgeViewChangeMicroListener;
 import org.cytoscape.view.model.events.FitContentEvent;
 import org.cytoscape.view.model.events.FitContentEventListener;
 import org.cytoscape.view.model.events.FitSelectedEvent;
 import org.cytoscape.view.model.events.FitSelectedEventListener;
-import org.cytoscape.view.model.events.NetworkViewChangeMicroListener;
-import org.cytoscape.view.model.events.NodeViewChangeMicroListener;
+import org.cytoscape.view.model.events.NetworkViewChangedEvent;
+import org.cytoscape.view.model.events.NodeViewsChangedEvent;
+import org.cytoscape.view.model.events.EdgeViewsChangedEvent;
+import org.cytoscape.view.model.events.NetworkViewChangedListener;
+import org.cytoscape.view.model.events.NodeViewsChangedListener;
+import org.cytoscape.view.model.events.EdgeViewsChangedListener;
+import org.cytoscape.view.model.events.ViewChangeRecord;
 import org.cytoscape.view.presentation.RenderingEngine;
 import org.cytoscape.view.presentation.property.MinimalVisualLexicon;
 import org.cytoscape.work.TaskManager;
@@ -132,8 +137,8 @@
  * @author Nerius Landys
  */
 public class DGraphView implements RenderingEngine<CyNetwork>, GraphView,
-               Printable, NetworkViewChangeMicroListener,
-               NodeViewChangeMicroListener, EdgeViewChangeMicroListener,
+               Printable, NetworkViewChangedListener,
+               NodeViewsChangedListener, EdgeViewsChangedListener,
                FitContentEventListener, FitSelectedEventListener {
 
        private static final Logger logger = LoggerFactory
@@ -482,11 +487,6 @@
 
                new FlagAndSelectionHandler(this, eventHelper);
 
-               // Register this presentation as listeners 
-               eventHelper.addMicroListener(this, 
NetworkViewChangeMicroListener.class, cyNetworkView);
-               eventHelper.addMicroListener(this, 
NodeViewChangeMicroListener.class, cyNetworkView);
-               eventHelper.addMicroListener(this, 
EdgeViewChangeMicroListener.class, cyNetworkView);
-
                logger.debug("Phase 4: Everything created: time = " + 
(System.currentTimeMillis() - start));
        }
 
@@ -947,7 +947,7 @@
                        returnThis.unselectInternal();
 
                        // If this node was hidden, it won't be in m_drawPersp.
-                       m_drawPersp.removeNode(nnode);
+                       
m_drawPersp.removeNodes(Collections.singletonList(nnode));
                        // m_structPersp.removeNode(nodeInx);
                        m_nodeDetails.unregisterNode(nodeInx);
 
@@ -1042,7 +1042,7 @@
                returnThis.unselectInternal();
 
                // If this edge view was hidden, it won't be in m_drawPersp.
-               m_drawPersp.removeEdge(eedge);
+               m_drawPersp.removeEdges(Collections.singletonList(eedge)); 
                // m_structPersp.hideEdge(edgeInx);
                m_edgeDetails.unregisterEdge(edgeInx);
 
@@ -1369,7 +1369,7 @@
                                edge = ((DEdgeView) obj).getEdge();
 
                                edge.getCyRow("VIEW").set("hidden", true);
-                               if (!m_drawPersp.removeEdge(edge))
+                               if 
(!m_drawPersp.removeEdges(Collections.singletonList(edge)))
                                        return false;
 
                                ((DEdgeView) obj).unselectInternal();
@@ -1409,7 +1409,7 @@
                                nView.m_hiddenYMin = m_extentsBuff[1];
                                nView.m_hiddenXMax = m_extentsBuff[2];
                                nView.m_hiddenYMax = m_extentsBuff[3];
-                               m_drawPersp.removeNode(nnode);
+                               
m_drawPersp.removeNodes(Collections.singletonList(nnode));
                                nnode.getCyRow("VIEW").set("hidden", true);
                                m_spacial.delete(nodeInx);
                                m_contentChanged = true;
@@ -2700,66 +2700,72 @@
                return l;
        }
 
-       // // Micro event handlers ////
        @Override
-       public void nodeVisualPropertySet(final View<CyNode> nodeView,
-                       final VisualProperty<?> vp, final Object value) {
-               // Both objects should exist.
-               if (value == null || nodeView == null || nodeView.getModel() == 
null)
-                       return;
-
-               // Convert to Ding's view object.
-               final Integer index = nodeView.getModel().getIndex();
-               if (m_nodeViewMap.containsKey(index))
-                       m_nodeViewMap.get(index).setVisualPropertyValue(vp, 
value);
+       public void handleEvent(NodeViewsChangedEvent e) {
+               if ( e.getSource() != cyNetworkView )
+                               return;
+               
+               for ( ViewChangeRecord<CyNode> record : 
e.getPayloadCollection()) {
+                       final Integer index = 
record.getView().getModel().getIndex();
+                       if (m_nodeViewMap.containsKey(index))
+                               
m_nodeViewMap.get(index).setVisualPropertyValue(record.getVisualProperty(), 
record.getValue());
+               }
        }
 
        /**
         * This should be called from DGraphView.
-        *
         */
        @Override
-       public void edgeVisualPropertySet(final View<CyEdge> edgeView,
-                       final VisualProperty<?> vp, final Object value)
-       {
-               if (value == null || edgeView == null || edgeView.getModel() == 
null)
+       public void handleEvent(EdgeViewsChangedEvent e) {
+               if ( e.getSource() != cyNetworkView )
                        return;
-
-               // Convert to Ding's view object.
-               final Integer index = edgeView.getModel().getIndex();
-               if (m_edgeViewMap.containsKey(index))
-                       m_edgeViewMap.get(index).setVisualPropertyValue(vp, 
value);
+       
+               for ( ViewChangeRecord<CyEdge> record : 
e.getPayloadCollection()) {
+                       final Integer index = 
record.getView().getModel().getIndex();
+                       if (m_nodeViewMap.containsKey(index))
+                               
m_nodeViewMap.get(index).setVisualPropertyValue(record.getVisualProperty(), 
record.getValue());
+               }
        }
 
+
        /**
         * Listener for all view change events.
-        *
         */
        @Override
-       public void networkVisualPropertySet(View<CyNetwork> target, 
VisualProperty<?> vp, Object value) {
-               if (value == null) return;
+       public void handleEvent(NetworkViewChangedEvent e) {
+               if ( e.getSource() != cyNetworkView )
+                       return;
+       
+               for ( ViewChangeRecord<CyNetwork> record : 
e.getPayloadCollection() ) {
+                       View<CyNetwork> target = record.getView();
+                       VisualProperty<?> vp = record.getVisualProperty();
+                       Object value = record.getValue();
+                       
+                       if (value == null) 
+                               continue;
 
-               if (vp == DVisualLexicon.NETWORK_NODE_SELECTION) {
-                       boolean b = ((Boolean) value).booleanValue();
-                       if (b)
-                               enableNodeSelection();
-                       else
-                               disableNodeSelection();
-               } else if (vp == DVisualLexicon.NETWORK_EDGE_SELECTION) {
-                       boolean b = ((Boolean) value).booleanValue();
-                       if (b)
-                               enableEdgeSelection();
-                       else
-                               disableEdgeSelection();
-               } else if (vp == MinimalVisualLexicon.NETWORK_BACKGROUND_PAINT) 
{
-                       setBackgroundPaint((Paint) value);
-               } else if (vp == 
MinimalVisualLexicon.NETWORK_CENTER_X_LOCATION) {
-                       setCenter(((Double) value).doubleValue(), 
m_networkCanvas.m_yCenter);
-               } else if (vp == 
MinimalVisualLexicon.NETWORK_CENTER_Y_LOCATION) {
-                       setCenter(m_networkCanvas.m_xCenter, ((Double) 
value).doubleValue());
-               } else if (vp == MinimalVisualLexicon.NETWORK_SCALE_FACTOR) {
-                       setZoom(((Double) value).doubleValue());
-               }
+                       if (vp == DVisualLexicon.NETWORK_NODE_SELECTION) {
+                               boolean b = ((Boolean) value).booleanValue();
+                               if (b)
+                                       enableNodeSelection();
+                               else
+                                       disableNodeSelection();
+                       } else if (vp == DVisualLexicon.NETWORK_EDGE_SELECTION) 
{
+                               boolean b = ((Boolean) value).booleanValue();
+                               if (b)
+                                       enableEdgeSelection();
+                               else
+                                       disableEdgeSelection();
+                       } else if (vp == 
MinimalVisualLexicon.NETWORK_BACKGROUND_PAINT) {
+                               setBackgroundPaint((Paint) value);
+                       } else if (vp == 
MinimalVisualLexicon.NETWORK_CENTER_X_LOCATION) {
+                               setCenter(((Double) value).doubleValue(), 
m_networkCanvas.m_yCenter);
+                       } else if (vp == 
MinimalVisualLexicon.NETWORK_CENTER_Y_LOCATION) {
+                               setCenter(m_networkCanvas.m_xCenter, ((Double) 
value).doubleValue());
+                       } else if (vp == 
MinimalVisualLexicon.NETWORK_SCALE_FACTOR) {
+                               setZoom(((Double) value).doubleValue());
+                       }
+               }       
        }
 
        // ////// The following implements Presentation API ////////////

Modified: 
core3/ding-presentation-impl/trunk/src/main/java/org/cytoscape/ding/impl/DingRenderingEngineFactory.java
===================================================================
--- 
core3/ding-presentation-impl/trunk/src/main/java/org/cytoscape/ding/impl/DingRenderingEngineFactory.java
    2011-06-21 22:37:24 UTC (rev 25849)
+++ 
core3/ding-presentation-impl/trunk/src/main/java/org/cytoscape/ding/impl/DingRenderingEngineFactory.java
    2011-06-21 22:37:40 UTC (rev 25850)
@@ -23,8 +23,6 @@
 import org.cytoscape.view.model.CyNetworkView;
 import org.cytoscape.view.model.View;
 import org.cytoscape.view.model.VisualLexicon;
-import org.cytoscape.view.model.events.AboutToRemoveEdgeViewMicroListener;
-import org.cytoscape.view.model.events.AboutToRemoveNodeViewMicroListener;
 import org.cytoscape.view.model.events.UpdateNetworkPresentationEvent;
 import org.cytoscape.view.model.events.UpdateNetworkPresentationEventListener;
 import org.cytoscape.view.presentation.RenderingEngine;
@@ -147,10 +145,6 @@
                registrar.registerAllServices(dgv, new Properties());
                final AddDeleteHandler addDeleteHandler = new 
AddDeleteHandler(dgv);
                registrar.registerAllServices(addDeleteHandler, new 
Properties());
-               eventHelper.addMicroListener(addDeleteHandler,
-                               AboutToRemoveEdgeViewMicroListener.class, view);
-               eventHelper.addMicroListener(addDeleteHandler,
-                               AboutToRemoveNodeViewMicroListener.class, view);
 
                // Register engine to manager
                this.renderingEngineManager.addRenderingEngine(dgv);

Modified: 
core3/ding-presentation-impl/trunk/src/main/java/org/cytoscape/ding/impl/FlagAndSelectionHandler.java
===================================================================
--- 
core3/ding-presentation-impl/trunk/src/main/java/org/cytoscape/ding/impl/FlagAndSelectionHandler.java
       2011-06-21 22:37:24 UTC (rev 25849)
+++ 
core3/ding-presentation-impl/trunk/src/main/java/org/cytoscape/ding/impl/FlagAndSelectionHandler.java
       2011-06-21 22:37:40 UTC (rev 25850)
@@ -46,8 +46,6 @@
 import org.cytoscape.model.CyNode;
 import org.cytoscape.model.CyTable;
 import org.cytoscape.model.CyTableEntry;
-import org.cytoscape.model.events.RowsAboutToChangeEvent;
-import org.cytoscape.model.events.RowsFinishedChangingEvent;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -139,19 +137,15 @@
                select(selectedEdges, true);
        }
 
-       private void select(final Collection<? extends CyTableEntry> 
nodesOrEdges, final boolean selected) {
+       private void select(final Collection<? extends CyTableEntry> 
nodesOrEdges,
+                       final boolean selected) {
                if (nodesOrEdges.isEmpty())
                        return;
 
                final CyTable table = 
nodesOrEdges.iterator().next().getCyRow().getTable();
-               try {
-                       eventHelper.fireSynchronousEvent(new 
RowsAboutToChangeEvent(this, table));
 
-                       for (final CyTableEntry nodeOrEdge : nodesOrEdges)
-                               nodeOrEdge.getCyRow().set(CyNetwork.SELECTED, 
selected);
-               } finally {
-                       eventHelper.fireSynchronousEvent(new 
RowsFinishedChangingEvent(this, table));
-               }
+               for (final CyTableEntry nodeOrEdge : nodesOrEdges)
+                       nodeOrEdge.getCyRow().set(CyNetwork.SELECTED, selected);
        }
 
        /**
@@ -159,7 +153,7 @@
         * flagged state in the SelectFilter object.
         */
        public void graphViewChanged(final GraphViewChangeEvent event) {
-               
+
                // GINY bug: the event we get frequently has the correct indices
                // but incorrect Node and Edge objects. For now we get around 
this
                // by converting indices to graph objects ourselves
@@ -190,6 +184,7 @@
                        select(Arrays.asList(objIndecies), false);
                }
 
-               logger.debug("Finished selection: Time = " + 
(System.currentTimeMillis() - start) + " msec.");
+               logger.debug("Finished selection: Time = " + 
(System.currentTimeMillis() - start)
+                               + " msec.");
        }
 }

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