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.