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

Added:
   
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/select/RowViewTracker.java
Removed:
   
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/select/SelectRegisterListener.java
   
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/view/AbstractNetworkNameListener.java
Modified:
   
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/ShutdownHandler.java
   
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/select/SelectEdgeViewUpdater.java
   
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/select/SelectNodeViewUpdater.java
   
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/view/CytoPanelImp.java
   
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/view/NetworkPanel.java
   
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/view/NetworkViewManager.java
   
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/view/ToolBarEnableUpdater.java
   
core3/swing-application-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
   
core3/swing-application-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
Log:
updated to for event-api changes that rely on payload events instead of 
microlisteners

Modified: 
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/ShutdownHandler.java
===================================================================
--- 
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/ShutdownHandler.java
        2011-06-21 22:40:10 UTC (rev 25857)
+++ 
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/ShutdownHandler.java
        2011-06-21 22:40:11 UTC (rev 25858)
@@ -62,7 +62,7 @@
        public void exit(int retVal) {
                actuallyShutdown = true;
                CytoscapeShutdownEvent ev =  new 
CytoscapeShutdownEvent(ShutdownHandler.this);
-               eh.fireSynchronousEvent( ev );
+               eh.fireEvent( ev );
 
                // TODO figure out a way to do a clean shutdown of the OSGi 
container.
                if ( ev.actuallyShutdown() )

Copied: 
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/select/RowViewTracker.java
 (from rev 25627, 
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/select/SelectRegisterListener.java)
===================================================================
--- 
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/select/RowViewTracker.java
                          (rev 0)
+++ 
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/select/RowViewTracker.java
  2011-06-21 22:40:11 UTC (rev 25858)
@@ -0,0 +1,68 @@
+
+package org.cytoscape.internal.select;
+
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.cytoscape.model.CyEdge;
+import org.cytoscape.model.CyNode;
+import org.cytoscape.model.CyRow;
+import org.cytoscape.view.model.CyNetworkView;
+import org.cytoscape.view.model.View;
+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.AddedEdgeViewsEvent;
+import org.cytoscape.view.model.events.AddedEdgeViewsListener;
+import org.cytoscape.view.model.events.AddedNodeViewsEvent;
+import org.cytoscape.view.model.events.AddedNodeViewsListener;
+import org.cytoscape.view.model.events.NetworkViewAddedEvent;
+import org.cytoscape.view.model.events.NetworkViewAddedListener;
+
+class RowViewTracker implements NetworkViewAddedListener, 
+       AddedNodeViewsListener, AddedEdgeViewsListener, 
+       AboutToRemoveNodeViewsListener, AboutToRemoveEdgeViewsListener {
+
+       private Map<CyRow,View<?>> rowViewMap;
+
+       public RowViewTracker() {
+               rowViewMap = new HashMap<CyRow,View<?>>();
+       }
+
+       public void handleEvent(NetworkViewAddedEvent e) {
+               final CyNetworkView view = e.getNetworkView();
+
+               for ( View<CyNode> nv : view.getNodeViews() )
+                       rowViewMap.put( nv.getModel().getCyRow(), nv);
+               
+               for ( View<CyEdge> ev : view.getEdgeViews() ) 
+                       rowViewMap.put( ev.getModel().getCyRow(), ev);
+       }
+       
+       public void handleEvent(AddedNodeViewsEvent e) {
+               for ( View<CyNode> v : e.getNodeViews()) 
+                       rowViewMap.put( v.getModel().getCyRow(), v );
+       }
+       
+       public void handleEvent(AddedEdgeViewsEvent e) {
+               for ( View<CyEdge> v : e.getEdgeViews()) 
+                       rowViewMap.put( v.getModel().getCyRow(), v );
+       }
+       
+       public void handleEvent(AboutToRemoveNodeViewsEvent e) {
+               for ( View<CyNode> v : e.getNodeViews()) 
+                       rowViewMap.remove( v.getModel().getCyRow() );
+       }
+       
+       public void handleEvent(AboutToRemoveEdgeViewsEvent e) {
+               for ( View<CyEdge> v : e.getEdgeViews()) 
+                       rowViewMap.remove( v.getModel().getCyRow() );
+       }
+       
+       public Map<CyRow,View<?>> getRowViewMap() {
+               return Collections.unmodifiableMap(rowViewMap);  
+       }
+}

Modified: 
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/select/SelectEdgeViewUpdater.java
===================================================================
--- 
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/select/SelectEdgeViewUpdater.java
   2011-06-21 22:40:10 UTC (rev 25857)
+++ 
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/select/SelectEdgeViewUpdater.java
   2011-06-21 22:40:11 UTC (rev 25858)
@@ -39,13 +39,12 @@
 import static 
org.cytoscape.view.presentation.property.MinimalVisualLexicon.EDGE_SELECTED;
 
 import org.cytoscape.application.swing.ViewUpdater;
-import org.cytoscape.model.CyEdge;
-import org.cytoscape.view.model.View;
+import org.cytoscape.model.CyNetwork;
 
 
-public class SelectEdgeViewUpdater extends ViewUpdater<CyEdge,Boolean> {
+public class SelectEdgeViewUpdater extends ViewUpdater<Boolean> {
 
-       public SelectEdgeViewUpdater(View<CyEdge> ev) {
-               super(ev, EDGE_SELECTED, ev.getModel().getCyRow(), "selected");
+       public SelectEdgeViewUpdater(RowViewTracker tracker) {
+               super(EDGE_SELECTED, CyNetwork.SELECTED, 
tracker.getRowViewMap());
        }
 }

Modified: 
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/select/SelectNodeViewUpdater.java
===================================================================
--- 
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/select/SelectNodeViewUpdater.java
   2011-06-21 22:40:10 UTC (rev 25857)
+++ 
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/select/SelectNodeViewUpdater.java
   2011-06-21 22:40:11 UTC (rev 25858)
@@ -1,4 +1,3 @@
-
 /*
  Copyright (c) 2008, The Cytoscape Consortium (www.cytoscape.org)
 
@@ -39,12 +38,10 @@
 
 import org.cytoscape.application.swing.ViewUpdater;
 import org.cytoscape.model.CyNetwork;
-import org.cytoscape.model.CyNode;
-import org.cytoscape.view.model.View;
 
-public class SelectNodeViewUpdater extends ViewUpdater<CyNode, Boolean> {
+public class SelectNodeViewUpdater extends ViewUpdater<Boolean> {
 
-    public SelectNodeViewUpdater(View<CyNode> nv) {
-       super(nv, NODE_SELECTED, nv.getModel().getCyRow(), CyNetwork.SELECTED);
-    }
+       public SelectNodeViewUpdater(RowViewTracker tracker) {
+               super(NODE_SELECTED, CyNetwork.SELECTED, 
tracker.getRowViewMap());
+       }
 }

Deleted: 
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/select/SelectRegisterListener.java
===================================================================
--- 
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/select/SelectRegisterListener.java
  2011-06-21 22:40:10 UTC (rev 25857)
+++ 
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/select/SelectRegisterListener.java
  2011-06-21 22:40:11 UTC (rev 25858)
@@ -1,31 +0,0 @@
-
-package org.cytoscape.internal.select;
-
-
-import org.cytoscape.event.CyEventHelper;
-import org.cytoscape.model.CyEdge;
-import org.cytoscape.model.CyNode;
-import org.cytoscape.model.events.RowSetMicroListener;
-import org.cytoscape.view.model.CyNetworkView;
-import org.cytoscape.view.model.View;
-import org.cytoscape.view.model.events.NetworkViewAddedEvent;
-import org.cytoscape.view.model.events.NetworkViewAddedListener;
-
-public class SelectRegisterListener implements NetworkViewAddedListener {
-
-       private CyEventHelper eventHelper;
-
-       public SelectRegisterListener(CyEventHelper eventHelper) {
-               this.eventHelper = eventHelper;
-       }
-
-       public void handleEvent(NetworkViewAddedEvent e) {
-               final CyNetworkView view = e.getNetworkView();
-
-               for ( View<CyNode> nv : view.getNodeViews() )
-                       eventHelper.addMicroListener( new 
SelectNodeViewUpdater(nv), RowSetMicroListener.class, nv.getModel().getCyRow() 
);
-
-               for ( View<CyEdge> ev : view.getEdgeViews() ) 
-                       eventHelper.addMicroListener( new 
SelectEdgeViewUpdater(ev), RowSetMicroListener.class, ev.getModel().getCyRow() 
);
-       }
-}

Deleted: 
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/view/AbstractNetworkNameListener.java
===================================================================
--- 
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/view/AbstractNetworkNameListener.java
       2011-06-21 22:40:10 UTC (rev 25857)
+++ 
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/view/AbstractNetworkNameListener.java
       2011-06-21 22:40:11 UTC (rev 25858)
@@ -1,48 +0,0 @@
-/*
- File: NetworkNameListener.java
-
- Copyright (c) 2006, 2010, The Cytoscape Consortium (www.cytoscape.org)
-
- This library is free software; you can redistribute it and/or modify it
- under the terms of the GNU Lesser General Public License as published
- by the Free Software Foundation; either version 2.1 of the License, or
- any later version.
-
- This library is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF
- MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.  The software and
- documentation provided hereunder is on an "as is" basis, and the
- Institute for Systems Biology and the Whitehead Institute
- have no obligations to provide maintenance, support,
- updates, enhancements or modifications.  In no event shall the
- Institute for Systems Biology and the Whitehead Institute
- be liable to any party for direct, indirect, special,
- incidental or consequential damages, including lost profits, arising
- out of the use of this software and its documentation, even if the
- Institute for Systems Biology and the Whitehead Institute
- have been advised of the possibility of such damage.  See
- the GNU Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public License
- along with this library; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
- */
-package org.cytoscape.internal.view;
-
-import org.cytoscape.model.CyNetwork;
-import org.cytoscape.model.events.RowSetMicroListener;
-
-
-public abstract class AbstractNetworkNameListener implements 
RowSetMicroListener {
-       protected final CyNetwork net;
-       public AbstractNetworkNameListener(final CyNetwork net) {
-               this.net = net;
-       }
-
-       public void handleRowSet(final String col, final Object newValue, final 
Object newRawValue) {
-               if ("name".equals(col) && newValue != null)
-                       updateNetworkName(net, (String)newValue);
-       }
-
-       public abstract void updateNetworkName(CyNetwork net, String name);
-}

Modified: 
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/view/CytoPanelImp.java
===================================================================
--- 
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/view/CytoPanelImp.java
      2011-06-21 22:40:10 UTC (rev 25857)
+++ 
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/view/CytoPanelImp.java
      2011-06-21 22:40:11 UTC (rev 25858)
@@ -755,14 +755,14 @@
                        // determine what event to fire
                        switch (notificationType) {
                                case NOTIFICATION_STATE_CHANGE:
-                                       cyEventHelper.fireSynchronousEvent(new 
CytoPanelStateChangedEvent(this,this,cytoPanelState));
+                                       cyEventHelper.fireEvent(new 
CytoPanelStateChangedEvent(this,this,cytoPanelState));
 
                                        break;
 
                                case NOTIFICATION_COMPONENT_SELECTED:
 
                                        int selectedIndex = 
tabbedPane.getSelectedIndex();
-                                       cyEventHelper.fireSynchronousEvent(new 
CytoPanelComponentSelectedEvent(this,this,selectedIndex));
+                                       cyEventHelper.fireEvent(new 
CytoPanelComponentSelectedEvent(this,this,selectedIndex));
                                        
//cytoPanelListener.onComponentSelected(selectedIndex);
 
                                        break;

Modified: 
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/view/NetworkPanel.java
===================================================================
--- 
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/view/NetworkPanel.java
      2011-06-21 22:40:10 UTC (rev 25857)
+++ 
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/view/NetworkPanel.java
      2011-06-21 22:40:11 UTC (rev 25858)
@@ -51,7 +51,6 @@
 import javax.swing.JSplitPane;
 import javax.swing.JTree;
 import javax.swing.KeyStroke;
-import javax.swing.SwingUtilities;
 import javax.swing.ToolTipManager;
 import javax.swing.event.TreeSelectionEvent;
 import javax.swing.event.TreeSelectionListener;
@@ -60,7 +59,6 @@
 import javax.swing.tree.TreePath;
 
 import org.cytoscape.application.swing.CyAction;
-import org.cytoscape.event.CyEventHelper;
 import org.cytoscape.internal.task.NetworkCollectionTaskFactoryTunableAction;
 import org.cytoscape.internal.task.NetworkTaskFactoryTunableAction;
 import 
org.cytoscape.internal.task.NetworkViewCollectionTaskFactoryTunableAction;
@@ -68,18 +66,14 @@
 import org.cytoscape.internal.task.TaskFactoryTunableAction;
 import org.cytoscape.model.CyNetwork;
 import org.cytoscape.model.CyNetworkManager;
-import org.cytoscape.model.CyRow;
 import org.cytoscape.model.CyTable;
 import org.cytoscape.model.CyTableEntry;
-import org.cytoscape.model.CyTableRowUpdateService;
-import org.cytoscape.model.events.CyTableRowUpdateMicroListener;
 import org.cytoscape.model.events.NetworkAboutToBeDestroyedEvent;
 import org.cytoscape.model.events.NetworkAboutToBeDestroyedListener;
 import org.cytoscape.model.events.NetworkAddedEvent;
 import org.cytoscape.model.events.NetworkAddedListener;
-import org.cytoscape.model.events.RowSetMicroListener;
-import org.cytoscape.model.events.RowsFinishedChangingEvent;
-import org.cytoscape.model.events.RowsFinishedChangingListener;
+import org.cytoscape.model.events.RowsSetEvent;
+import org.cytoscape.model.events.RowsSetListener;
 import org.cytoscape.session.CyApplicationManager;
 import org.cytoscape.session.events.SetCurrentNetworkEvent;
 import org.cytoscape.session.events.SetCurrentNetworkListener;
@@ -101,9 +95,10 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class NetworkPanel extends JPanel implements TreeSelectionListener, 
SetCurrentNetworkViewListener,
-               CyTableRowUpdateMicroListener, SetCurrentNetworkListener, 
NetworkAddedListener, NetworkViewAddedListener,
-               NetworkAboutToBeDestroyedListener, 
NetworkViewAboutToBeDestroyedListener, RowsFinishedChangingListener {
+public class NetworkPanel extends JPanel implements TreeSelectionListener,
+               SetCurrentNetworkViewListener, SetCurrentNetworkListener,
+               NetworkAddedListener, NetworkViewAddedListener, 
NetworkAboutToBeDestroyedListener,
+               NetworkViewAboutToBeDestroyedListener, RowsSetListener {
 
        private final static long serialVersionUID = 1213748836763243L;
 
@@ -133,31 +128,22 @@
        private final JPopupMenu popup;
        private final Map<TaskFactory, JMenuItem> popupMap;
        private final Map<TaskFactory, CyAction> popupActions;
+       private final Map<CyTable, CyNetwork> nameTables;
 
-       private final CyEventHelper eventHelper;
-       private final Map<CyNetwork, RowSetMicroListener> nameListeners;
-       private final CyTableRowUpdateService tableRowUpdateService;
-       
-       private final BirdsEyeViewHandler bird;
-
        /**
         * Constructor for the Network Panel.
         * 
         * @param desktop
         */
-       public NetworkPanel(final CyApplicationManager applicationManager, 
final CyNetworkManager netmgr,
-                       final CyNetworkViewManager networkViewManager, final 
BirdsEyeViewHandler bird,
-                       final TaskManager taskManager, final CyEventHelper 
eventHelper,
-                       final CyTableRowUpdateService tableRowUpdateService) {
+       public NetworkPanel(final CyApplicationManager applicationManager,
+                       final CyNetworkManager netmgr, final 
CyNetworkViewManager networkViewManager,
+                       final BirdsEyeViewHandler bird, final TaskManager 
taskManager) {
                super();
 
-               this.bird = bird;
                this.appManager = applicationManager;
                this.netmgr = netmgr;
                this.networkViewManager = networkViewManager;
                this.taskManager = taskManager;
-               this.eventHelper = eventHelper;
-               this.tableRowUpdateService = tableRowUpdateService;
 
                root = new NetworkTreeNode("Network Root", 0L);
                treeTableModel = new NetworkTreeTableModel(this, root);
@@ -168,9 +154,9 @@
                popup = new JPopupMenu();
                popupMap = new HashMap<TaskFactory, JMenuItem>();
                popupActions = new HashMap<TaskFactory, CyAction>();
+               nameTables = new HashMap<CyTable, CyNetwork>();
 
                setNavigator(bird.getBirdsEyeView());
-               nameListeners = new HashMap<CyNetwork, RowSetMicroListener>();
 
                /*
                 * Remove CTR-A for enabling select all function in the main 
window.
@@ -249,34 +235,44 @@
        }
 
        public void 
addNetworkCollectionTaskFactory(NetworkCollectionTaskFactory factory, Map 
props) {
-               addFactory(factory, new 
NetworkCollectionTaskFactoryTunableAction(taskManager, factory, props, 
appManager));
+               addFactory(factory, new 
NetworkCollectionTaskFactoryTunableAction(taskManager, factory,
+                               props, appManager));
        }
 
        public void 
removeNetworkCollectionTaskFactory(NetworkCollectionTaskFactory factory, Map 
props) {
                removeFactory(factory);
        }
 
-       public void 
addNetworkViewCollectionTaskFactory(NetworkViewCollectionTaskFactory factory, 
Map props) {
-               addFactory(factory, new 
NetworkViewCollectionTaskFactoryTunableAction(taskManager, factory, props, 
appManager));
+       public void 
addNetworkViewCollectionTaskFactory(NetworkViewCollectionTaskFactory factory,
+                       Map props) {
+               addFactory(factory, new 
NetworkViewCollectionTaskFactoryTunableAction(taskManager, factory,
+                               props, appManager));
        }
 
-       public void 
removeNetworkViewCollectionTaskFactory(NetworkViewCollectionTaskFactory 
factory, Map props) {
+       public void 
removeNetworkViewCollectionTaskFactory(NetworkViewCollectionTaskFactory factory,
+                       Map props) {
                removeFactory(factory);
        }
 
-       public void addNetworkTaskFactory(NetworkTaskFactory factory, 
@SuppressWarnings("rawtypes") Map props) {
-               addFactory(factory, new 
NetworkTaskFactoryTunableAction(taskManager, factory, props, appManager));
+       public void addNetworkTaskFactory(NetworkTaskFactory factory,
+                       @SuppressWarnings("rawtypes") Map props) {
+               addFactory(factory, new 
NetworkTaskFactoryTunableAction(taskManager, factory, props,
+                               appManager));
        }
 
-       public void removeNetworkTaskFactory(NetworkTaskFactory factory, 
@SuppressWarnings("rawtypes") Map props) {
+       public void removeNetworkTaskFactory(NetworkTaskFactory factory,
+                       @SuppressWarnings("rawtypes") Map props) {
                removeFactory(factory);
        }
 
-       public void addNetworkViewTaskFactory(NetworkViewTaskFactory factory, 
@SuppressWarnings("rawtypes") Map props) {
-               addFactory(factory, new 
NetworkViewTaskFactoryTunableAction(taskManager, factory, props, appManager));
+       public void addNetworkViewTaskFactory(NetworkViewTaskFactory factory,
+                       @SuppressWarnings("rawtypes") Map props) {
+               addFactory(factory, new 
NetworkViewTaskFactoryTunableAction(taskManager, factory, props,
+                               appManager));
        }
 
-       public void removeNetworkViewTaskFactory(NetworkViewTaskFactory 
factory, @SuppressWarnings("rawtypes") Map props) {
+       public void removeNetworkViewTaskFactory(NetworkViewTaskFactory factory,
+                       @SuppressWarnings("rawtypes") Map props) {
                removeFactory(factory);
        }
 
@@ -294,6 +290,9 @@
                return treeTable;
        }
 
+       public JPanel getNavigatorPanel() {
+               return navigatorPanel;
+       }
 
        /**
         * Remove a network from the panel.
@@ -301,10 +300,6 @@
         * @param network_id
         */
        public void removeNetwork(final Long network_id) {
-               final CyNetwork network = netmgr.getNetwork(network_id);
-               tableRowUpdateService.stopTracking(this, 
network.getDefaultNodeTable());
-               tableRowUpdateService.stopTracking(this, 
network.getDefaultEdgeTable());
-
                final NetworkTreeNode node = getNetworkNode(network_id);
                final Enumeration children = node.children();
                final List<NetworkTreeNode> removed_children = new 
ArrayList<NetworkTreeNode>();
@@ -333,7 +328,8 @@
                if (treeTable.getTree().getSelectionPath() != null) { // user 
has
                        // selected
                        // something
-                       treeTableModel.setValueAt(name, 
treeTable.getTree().getSelectionPath().getLastPathComponent(), 0);
+                       treeTableModel.setValueAt(name, 
treeTable.getTree().getSelectionPath()
+                                       .getLastPathComponent(), 0);
                } else { // no selection, means the title has been changed
                        // programmatically
                        NetworkTreeNode node = 
getNetworkNode(network.getSUID());
@@ -349,9 +345,7 @@
                CyNetwork net = nde.getNetwork();
                logger.debug("Network about to be destroyed " + net.getSUID());
                removeNetwork(net.getSUID());
-               final RowSetMicroListener rsml = nameListeners.remove(net);
-               if (rsml != null)
-                       eventHelper.removeMicroListener(rsml, 
RowSetMicroListener.class, net.getCyRow().getTable());
+               nameTables.remove(net.getDefaultNetworkTable());
        }
 
        public void handleEvent(NetworkAddedEvent e) {
@@ -359,20 +353,25 @@
                logger.debug("Got NetworkAddedEvent.  Model ID = " + 
net.getSUID());
 
                addNetwork(net.getSUID(), -1l);
-               RowSetMicroListener rsml = new AbstractNetworkNameListener(net) 
{
-                       public void updateNetworkName(CyNetwork n, String name) 
{
-                               updateTitle(n, name);
-                       }
-               };
-               eventHelper.addMicroListener(rsml, RowSetMicroListener.class, 
net.getCyRow());
-               nameListeners.put(e.getNetwork(), rsml);
+               nameTables.put(net.getDefaultNetworkTable(), net);
        }
+       
+       @Override
+       public void handleEvent(RowsSetEvent e) {
+               CyNetwork n = nameTables.get( e.getSource() );
+               if ( n == null )
+                       return;
+               
+               final String title = n.getCyRow().get(CyTableEntry.NAME, 
String.class);
+               updateTitle(n, title); // this should updated the UI 
regardless...
+       }
 
        @Override
        public void handleEvent(SetCurrentNetworkViewEvent e) {
                final CyNetworkView view = e.getNetworkView();
 
                if (view == null) {
+                       logger.warn("Current network view is set to null.");
                        return;
                }
 
@@ -397,47 +396,24 @@
        }
 
        public void handleEvent(NetworkViewAboutToBeDestroyedEvent nde) {
-               logger.debug("Network view about to be destroyed " + 
nde.getNetworkView().getModel().getSUID());
+               logger.debug("Network view about to be destroyed "
+                               + nde.getNetworkView().getModel().getSUID());
                treeTable.getTree().updateUI();
        }
 
        public void handleEvent(NetworkViewAddedEvent nde) {
-               logger.debug("********** Network view added to NetworkPanel. 
View ID: " + nde.getNetworkView().getSUID());
+               logger.debug("Network view added to NetworkPanel: "
+                               + nde.getNetworkView().getModel().getSUID());
 
                // Set current network view to the new one.
                
appManager.setCurrentNetworkView(nde.getNetworkView().getModel().getSUID());
-               
-               // Update BEV
-               bird.addView(appManager.getCurrentRenderingEngine());
-               treeTable.getTree().updateUI();
-       }
 
-       @Override
-       public void handleRowSets(final CyTable table, final List<RowSet> 
rowSets) {
-               // TODO is this necessary?
-       }
-
-       @Override
-       public void handleRowCreations(final CyTable table, final List<CyRow> 
newRows) {
                treeTable.getTree().updateUI();
        }
 
-       @Override
-       public void handleEvent(RowsFinishedChangingEvent e) {
-               SwingUtilities.invokeLater(new Runnable() {
-                       @Override
-                       public void run() {
-                               treeTable.getTree().updateUI();
-                       }
-               });
-       }
-
        private void addNetwork(final Long network_id, final Long parent_id) {
                // first see if it exists
                if (getNetworkNode(network_id) == null) {
-                       final CyNetwork network = netmgr.getNetwork(network_id);
-                       tableRowUpdateService.startTracking(this, 
network.getDefaultNodeTable());
-                       tableRowUpdateService.startTracking(this, 
network.getDefaultEdgeTable());
 
                        NetworkTreeNode dmtn = new 
NetworkTreeNode(netmgr.getNetwork(network_id).getCyRow()
                                        .get(CyTableEntry.NAME, String.class), 
network_id);
@@ -492,8 +468,7 @@
        /**
         * This method highlights a network in the NetworkPanel.
         * 
-        * @param e
-        *            DOCUMENT ME!
+        * @param e DOCUMENT ME!
         */
        public void valueChanged(TreeSelectionEvent e) {
                // logger.debug("NetworkPanel: valueChanged - " +
@@ -563,7 +538,8 @@
                                if (row != -1) {
                                        JTree tree = treeTable.getTree();
                                        TreePath treePath = 
tree.getPathForRow(row);
-                                       Long networkID = ((NetworkTreeNode) 
treePath.getLastPathComponent()).getNetworkID();
+                                       Long networkID = ((NetworkTreeNode) 
treePath.getLastPathComponent())
+                                                       .getNetworkID();
 
                                        CyNetwork cyNetwork = 
netmgr.getNetwork(networkID);
 

Modified: 
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/view/NetworkViewManager.java
===================================================================
--- 
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/view/NetworkViewManager.java
        2011-06-21 22:40:10 UTC (rev 25857)
+++ 
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/view/NetworkViewManager.java
        2011-06-21 22:40:11 UTC (rev 25858)
@@ -52,10 +52,11 @@
 import javax.swing.event.InternalFrameEvent;
 
 import org.cytoscape.application.swing.CyHelpBroker;
-import org.cytoscape.event.CyEventHelper;
 import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyTable;
 import org.cytoscape.model.CyTableEntry;
-import org.cytoscape.model.events.RowSetMicroListener;
+import org.cytoscape.model.events.RowsSetEvent;
+import org.cytoscape.model.events.RowsSetListener;
 import org.cytoscape.property.CyProperty;
 import org.cytoscape.property.session.Cysession;
 import org.cytoscape.property.session.Desktop;
@@ -73,13 +74,13 @@
 import org.cytoscape.session.events.SetCurrentNetworkViewListener;
 import org.cytoscape.view.model.CyNetworkView;
 import org.cytoscape.view.model.CyNetworkViewManager;
-import org.cytoscape.view.model.View;
-import org.cytoscape.view.model.VisualProperty;
 import org.cytoscape.view.model.events.NetworkViewAboutToBeDestroyedEvent;
 import org.cytoscape.view.model.events.NetworkViewAboutToBeDestroyedListener;
 import org.cytoscape.view.model.events.NetworkViewAddedEvent;
 import org.cytoscape.view.model.events.NetworkViewAddedListener;
-import org.cytoscape.view.model.events.NetworkViewChangeMicroListener;
+import org.cytoscape.view.model.events.NetworkViewChangedEvent;
+import org.cytoscape.view.model.events.NetworkViewChangedListener;
+import org.cytoscape.view.model.events.ViewChangeRecord;
 import org.cytoscape.view.presentation.RenderingEngine;
 import org.cytoscape.view.presentation.RenderingEngineFactory;
 import org.cytoscape.view.presentation.property.MinimalVisualLexicon;
@@ -92,7 +93,7 @@
  */
 public class NetworkViewManager extends InternalFrameAdapter implements 
NetworkViewAddedListener,
                NetworkViewAboutToBeDestroyedListener, 
SetCurrentNetworkViewListener, SetCurrentNetworkListener,
-               SessionLoadedListener, SessionAboutToBeSavedListener {
+               SessionLoadedListener, SessionAboutToBeSavedListener, 
NetworkViewChangedListener, RowsSetListener {
 
        private static final Logger logger = 
LoggerFactory.getLogger(NetworkViewManager.class);
 
@@ -125,10 +126,7 @@
        // UI to select presentation.
        private static final String DEFAULT_PRESENTATION = "ding";
 
-       private final Map<CyNetworkView, NetworkViewChangeMicroListener> 
netViewChangeListeners;
-       private final Map<CyNetwork, RowSetMicroListener> nameListeners;
-
-       private final CyEventHelper eventHelper;
+       private final Map<CyTable, CyNetwork> nameTables;
        private final CyNetworkViewManager networkViewManager;
        private final CyApplicationManager applicationManager;
 
@@ -139,12 +137,10 @@
         *            DOCUMENT ME!
         */
        public NetworkViewManager(CyApplicationManager appMgr, 
CyNetworkViewManager netViewMgr,
-                       CyProperty<Properties> cyProps, CyHelpBroker help, 
CyEventHelper eventHelper) {
+                       CyProperty<Properties> cyProps, CyHelpBroker help) {
 
                if (appMgr == null)
                        throw new NullPointerException("CyApplicationManager is 
null.");
-               if (eventHelper == null)
-                       throw new NullPointerException("CyEventHelper is 
null.");
                if (netViewMgr == null)
                        throw new NullPointerException("CyNetworkViewManager is 
null.");
 
@@ -153,7 +149,6 @@
                this.networkViewManager = netViewMgr;
                this.applicationManager = appMgr;
                this.props = cyProps.getProperties();
-               this.eventHelper = eventHelper;
 
                this.desktopPane = new JDesktopPane();
 
@@ -165,8 +160,7 @@
                iFrameMap = new HashMap<JInternalFrame, Long>();
                currentPresentationContainerID = null;
 
-               netViewChangeListeners = new HashMap<CyNetworkView, 
NetworkViewChangeMicroListener>();
-               nameListeners = new HashMap<CyNetwork, RowSetMicroListener>();
+               nameTables = new HashMap<CyTable, CyNetwork>();
        }
 
        /**
@@ -327,15 +321,8 @@
                }
 
                presentationContainerMap.remove(view.getModel().getSUID());
+               nameTables.remove(view.getModel().getDefaultNetworkTable());
 
-               NetworkViewChangeMicroListener nvcml = 
netViewChangeListeners.remove(view);
-               if (nvcml != null)
-                       eventHelper.removeMicroListener(nvcml, 
NetworkViewChangeMicroListener.class, view);
-
-               RowSetMicroListener rsml = 
nameListeners.remove(view.getModel());
-               if (rsml != null)
-                       eventHelper.removeMicroListener(rsml, 
RowSetMicroListener.class, view.getModel().getCyRow().getTable());
-
                logger.debug("Network View Model removed.");
        }
 
@@ -427,36 +414,37 @@
                iframe.setVisible(true);
                iframe.addInternalFrameListener(this);
 
-               NetworkViewChangeMicroListener nvcml = new 
NetworkViewChangeMicroListener() {
-                       @Override
-                       public void networkVisualPropertySet(View<CyNetwork> 
target, VisualProperty<?> vp, Object value) {
-                               Long id = target.getModel().getSUID();
-
-                               if 
(vp.equals(MinimalVisualLexicon.NETWORK_WIDTH)) {
-                                       int w = ((Double) value).intValue();
-                                       int h = iframe.getSize().height;
-                                       updateNetworkSize(id, w, h);
-                               } else if 
(vp.equals(MinimalVisualLexicon.NETWORK_HEIGHT)) {
-                                       int w = iframe.getSize().width;
-                                       int h = ((Double) value).intValue();
-                                       updateNetworkSize(id, w, h);
-                               }
+               nameTables.put(view.getModel().getDefaultNetworkTable(), 
view.getModel());
+       }
+       
+       @Override
+       public void handleEvent(RowsSetEvent e) {
+               CyNetwork n = nameTables.get( e.getSource() );
+               if ( n == null )
+                       return;
+               
+               final String title = n.getCyRow().get(CyTableEntry.NAME, 
String.class);
+               updateNetworkTitle(n.getSUID(), title);
+       }
+       
+       @Override
+       public void handleEvent(NetworkViewChangedEvent e) {
+               for ( ViewChangeRecord<CyNetwork> record : 
e.getPayloadCollection()) {
+                       Long id = record.getView().getModel().getSUID();
+                       JInternalFrame iframe = 
presentationContainerMap.get(id);
+                       if ( iframe == null )
+                               return;
+                       
+                       if 
(record.getVisualProperty().equals(MinimalVisualLexicon.NETWORK_WIDTH)) {
+                               int w = ((Double) record.getValue()).intValue();
+                               int h = iframe.getSize().height;
+                               updateNetworkSize(id, w, h);
+                       } else if 
(record.getVisualProperty().equals(MinimalVisualLexicon.NETWORK_HEIGHT)) {
+                               int w = iframe.getSize().width;
+                               int h = ((Double) record.getValue()).intValue();
+                               updateNetworkSize(id, w, h);
                        }
-               };
-
-               eventHelper.addMicroListener(nvcml, 
NetworkViewChangeMicroListener.class, view);
-               netViewChangeListeners.put(view, nvcml);
-
-               RowSetMicroListener rsml = new 
AbstractNetworkNameListener(view.getModel()) {
-                       @Override
-                       public void updateNetworkName(CyNetwork net, String 
name) {
-                               final String title = 
net.getCyRow().get(CyTableEntry.NAME, String.class);
-                               updateNetworkTitle(net.getSUID(), title);
-                       }
-               };
-
-               eventHelper.addMicroListener(rsml, RowSetMicroListener.class, 
view.getModel().getCyRow());
-               nameListeners.put(view.getModel(), rsml);
+               }
        }
 
        @Override

Modified: 
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/view/ToolBarEnableUpdater.java
===================================================================
--- 
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/view/ToolBarEnableUpdater.java
      2011-06-21 22:40:10 UTC (rev 25857)
+++ 
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/view/ToolBarEnableUpdater.java
      2011-06-21 22:40:11 UTC (rev 25858)
@@ -39,8 +39,8 @@
 import org.cytoscape.model.events.NetworkAddedListener;
 import org.cytoscape.model.events.NetworkDestroyedEvent;
 import org.cytoscape.model.events.NetworkDestroyedListener;
-import org.cytoscape.model.events.RowsFinishedChangingEvent;
-import org.cytoscape.model.events.RowsFinishedChangingListener;
+import org.cytoscape.model.events.RowsSetEvent;
+import org.cytoscape.model.events.RowsSetListener;
 import org.cytoscape.session.events.SetCurrentNetworkEvent;
 import org.cytoscape.session.events.SetCurrentNetworkListener;
 import org.cytoscape.session.events.SetCurrentNetworkViewEvent;
@@ -56,51 +56,57 @@
  * selected, but since toolbars are always visible, we need to listen for the
  * actual events. This is less than ideal.
  */
-class ToolBarEnableUpdater implements NetworkAddedListener, 
NetworkDestroyedListener, NetworkViewAddedListener,
-       NetworkViewDestroyedListener, SetCurrentNetworkListener, 
SetCurrentNetworkViewListener,
-       RowsFinishedChangingListener {
+class ToolBarEnableUpdater implements NetworkAddedListener, 
NetworkDestroyedListener,
+               NetworkViewAddedListener, NetworkViewDestroyedListener, 
SetCurrentNetworkListener,
+               SetCurrentNetworkViewListener, RowsSetListener {
 
-    private final CytoscapeToolBar toolbar;
+       private final CytoscapeToolBar toolbar;
 
-    public ToolBarEnableUpdater(final CytoscapeToolBar toolbar) {
-       this.toolbar = toolbar;
-    }
+       public ToolBarEnableUpdater(final CytoscapeToolBar toolbar) {
+               this.toolbar = toolbar;
+       }
 
-    public void handleEvent(SetCurrentNetworkEvent e) {
-       updateToolbar();
-    }
+       @Override
+       public void handleEvent(SetCurrentNetworkEvent e) {
+               updateToolbar();
+       }
 
-    public void handleEvent(SetCurrentNetworkViewEvent e) {
-       updateToolbar();
-    }
+       @Override
+       public void handleEvent(SetCurrentNetworkViewEvent e) {
+               updateToolbar();
+       }
 
-    public void handleEvent(NetworkAddedEvent e) {
-       updateToolbar();
-    }
+       @Override
+       public void handleEvent(NetworkAddedEvent e) {
+               updateToolbar();
+       }
 
-    public void handleEvent(NetworkViewAddedEvent e) {
-       updateToolbar();
-    }
+       @Override
+       public void handleEvent(NetworkViewAddedEvent e) {
+               updateToolbar();
+       }
 
-    public void handleEvent(NetworkDestroyedEvent e) {
-       updateToolbar();
-    }
+       @Override
+       public void handleEvent(NetworkDestroyedEvent e) {
+               updateToolbar();
+       }
 
-    public void handleEvent(NetworkViewDestroyedEvent e) {
-       updateToolbar();
-    }
+       @Override
+       public void handleEvent(NetworkViewDestroyedEvent e) {
+               updateToolbar();
+       }
 
-    /**
-     * This is mainly for listening to node/edge selection events.
-     */
-    @Override
-    public void handleEvent(RowsFinishedChangingEvent e) {
-       updateToolbar();
-    }
+       /**
+        * This is mainly for listening to node/edge selection events.
+        */
+       @Override
+       public void handleEvent(RowsSetEvent e) {
+               updateToolbar();
+       }
 
-    private void updateToolbar() {
-       for (CyAction action : toolbar.getAllToolBarActions())
-           action.updateEnableState();
-    }
+       private void updateToolbar() {
+               for (CyAction action : toolbar.getAllToolBarActions())
+                       action.updateEnableState();
+       }
 
 }

Modified: 
core3/swing-application-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
===================================================================
--- 
core3/swing-application-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
       2011-06-21 22:40:10 UTC (rev 25857)
+++ 
core3/swing-application-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
       2011-06-21 22:40:11 UTC (rev 25858)
@@ -30,9 +30,6 @@
        <osgi:reference id="taskManagerServiceRef"
                interface="org.cytoscape.work.swing.GUITaskManager" />
 
-       <osgi:reference id="cyTableRowUpdateServiceRef"
-               interface="org.cytoscape.model.CyTableRowUpdateService" />
-
        <!-- Rendering Engine factory for main network views -->
        <osgi:reference id="dingRenderingEngineFactoryServiceRef"
                
interface="org.cytoscape.view.presentation.RenderingEngineFactory"
@@ -300,16 +297,19 @@
        </osgi:service>
 
        <osgi:service id="networkPanelService" ref="networkPanel" 
auto-export="interfaces" />
+       
        <osgi:service id="networkViewManagerService" ref="networkViewManager" 
auto-export="interfaces" />
 
-       <osgi:service id="birdsEyeViewHandlerService" ref="birdsEyeViewHandler"
-               auto-export="interfaces" />
+       <osgi:service id="birdsEyeViewHandlerService" ref="birdsEyeViewHandler" 
auto-export="interfaces" />
 
        <osgi:service id="undoMonitorSetCurrentNetworkViewListenerService"
                ref="undoMonitor" 
interface="org.cytoscape.session.events.SetCurrentNetworkViewListener" />
 
-       <osgi:service id="selectRegisterListenerService" 
ref="selectRegisterListener"
-               
interface="org.cytoscape.view.model.events.NetworkViewAddedListener" />
+       <osgi:service id="rowViewTrackerService" ref="rowViewTracker" 
auto-export="interfaces"/>
+       
+       <osgi:service id="selectEdgeViewUpdaterService" 
ref="selecteEdgeViewUpdater" auto-export="interfaces"/>
+       
+       <osgi:service id="selectNodeViewUpdaterService" 
ref="selecteNodeViewUpdater" auto-export="interfaces"/>
 
        <osgi:service id="sessionShutdownHandlerService" 
ref="sessionShutdownHandler"
                
interface="org.cytoscape.application.swing.events.CytoscapeShutdownListener" />

Modified: 
core3/swing-application-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
===================================================================
--- 
core3/swing-application-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
    2011-06-21 22:40:10 UTC (rev 25857)
+++ 
core3/swing-application-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
    2011-06-21 22:40:11 UTC (rev 25858)
@@ -82,7 +82,6 @@
                <constructor-arg ref="cyNetworkViewManagerServiceRef" />
                <constructor-arg ref="cytoscapePropertiesServiceRef" />
                <constructor-arg ref="cyHelpBroker" />
-               <constructor-arg ref="cyEventHelperServiceRef" />
        </bean>
 
        <bean name="birdsEyeViewHandler" 
class="org.cytoscape.internal.view.BirdsEyeViewHandler">
@@ -97,8 +96,6 @@
                <constructor-arg ref="cyNetworkViewManagerServiceRef" />
                <constructor-arg ref="birdsEyeViewHandler" />
                <constructor-arg ref="guiTaskManagerServiceRef" />
-               <constructor-arg ref="cyEventHelperServiceRef" />
-               <constructor-arg ref="cyTableRowUpdateServiceRef" />
        </bean>
 
 
@@ -246,15 +243,21 @@
                <constructor-arg ref="undoSupportServiceRef" />
                <constructor-arg ref="cytoscapePropertiesServiceRef" />
        </bean>
+       
+       <bean id="rowViewTracker" 
class="org.cytoscape.internal.select.RowViewTracker">
+       </bean>
 
-       <bean id="selectRegisterListener" 
class="org.cytoscape.internal.select.SelectRegisterListener">
-               <constructor-arg ref="cyEventHelperServiceRef" />
+       <bean id="selecteEdgeViewUpdater" 
class="org.cytoscape.internal.select.SelectEdgeViewUpdater">
+               <constructor-arg ref="rowViewTracker" />
        </bean>
 
+       <bean id="selecteNodeViewUpdater" 
class="org.cytoscape.internal.select.SelectNodeViewUpdater">
+               <constructor-arg ref="rowViewTracker" />
+       </bean>
+       
        <bean id="quickStartStartup" 
class="org.cytoscape.internal.QuickStartStartup">
                <constructor-arg ref="quickStartRef" />
                <constructor-arg ref="taskManagerServiceRef" />
        </bean>
 
-
 </beans>

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