Author: clopes
Date: 2012-02-17 11:37:01 -0800 (Fri, 17 Feb 2012)
New Revision: 28314
Modified:
core3/impl/trunk/application-impl/src/main/java/org/cytoscape/application/internal/CyApplicationManagerImpl.java
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/CyActivator.java
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/creation/CloneNetworkTask.java
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/creation/CloneNetworkTaskFactory.java
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/creation/NewEmptyNetworkTask.java
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/creation/NewEmptyNetworkTaskFactory.java
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/creation/NewEmptyNetworkTaskTest.java
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/CyActivator.java
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/SessionHandler.java
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/NetworkPanel.java
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/NetworkViewManager.java
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/AbstractTableBrowser.java
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/AttributeListModel.java
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/DefaultTableBrowser.java
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/GlobalTableBrowser.java
Log:
Fixes #688 : Selection and z-index of network views are not restored from saved
sessions:
- Now UI components (networks tab, table browser) do not set the current
network to CyApplicationManager when networks/views are added--the network
creation tasks are responsible for it.
Modified:
core3/impl/trunk/application-impl/src/main/java/org/cytoscape/application/internal/CyApplicationManagerImpl.java
===================================================================
---
core3/impl/trunk/application-impl/src/main/java/org/cytoscape/application/internal/CyApplicationManagerImpl.java
2012-02-17 18:58:56 UTC (rev 28313)
+++
core3/impl/trunk/application-impl/src/main/java/org/cytoscape/application/internal/CyApplicationManagerImpl.java
2012-02-17 19:37:01 UTC (rev 28314)
@@ -93,6 +93,7 @@
this.currentRenderer = null;
}
+ @Override
public void handleEvent(final NetworkAboutToBeDestroyedEvent event) {
final CyNetwork toBeDestroyed = event.getNetwork();
boolean changed = false;
@@ -133,6 +134,7 @@
}
}
+ @Override
public void handleEvent(final NetworkViewAboutToBeDestroyedEvent event)
{
final CyNetworkView toBeDestroyed = event.getNetworkView();
boolean changed = false;
@@ -172,10 +174,12 @@
}
}
+ @Override
public synchronized CyNetwork getCurrentNetwork() {
return currentNetwork;
}
+ @Override
public void setCurrentNetwork(final CyNetwork network) {
final long networkId = network.getSUID();
boolean changed = false;
@@ -204,10 +208,12 @@
}
}
+ @Override
public synchronized CyNetworkView getCurrentNetworkView() {
return currentNetworkView;
}
+ @Override
public void setCurrentNetworkView(final CyNetworkView view) {
if (view == null) {
logger.warn("View was null - not setting current
network view.");
@@ -240,10 +246,12 @@
}
}
+ @Override
public synchronized List<CyNetworkView> getSelectedNetworkViews() {
return new ArrayList<CyNetworkView>(selectedNetworkViews);
}
+ @Override
public void setSelectedNetworkViews(final List<CyNetworkView>
networkViews) {
if (networkViews == null)
return;
@@ -263,10 +271,12 @@
new
ArrayList<CyNetworkView>(selectedNetworkViews)));
}
+ @Override
public synchronized List<CyNetwork> getSelectedNetworks() {
return new ArrayList<CyNetwork>(selectedNetworks);
}
+ @Override
public void setSelectedNetworks(final List<CyNetwork> networks) {
if (networks == null)
return;
@@ -285,10 +295,12 @@
new
ArrayList<CyNetwork>(selectedNetworks)));
}
+ @Override
public RenderingEngine<CyNetwork> getCurrentRenderingEngine() {
return currentRenderer;
}
+ @Override
public void setCurrentRenderingEngine(RenderingEngine<CyNetwork>
engine) {
this.currentRenderer = engine;
Modified:
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/CyActivator.java
===================================================================
---
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/CyActivator.java
2012-02-17 18:58:56 UTC (rev 28313)
+++
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/CyActivator.java
2012-02-17 19:37:01 UTC (rev 28314)
@@ -194,8 +194,8 @@
UnHideAllTaskFactory unHideAllTaskFactory = new
UnHideAllTaskFactory(undoSupportServiceRef,cyEventHelperRef);
UnHideAllNodesTaskFactory unHideAllNodesTaskFactory = new
UnHideAllNodesTaskFactory(undoSupportServiceRef,cyEventHelperRef);
UnHideAllEdgesTaskFactory unHideAllEdgesTaskFactory = new
UnHideAllEdgesTaskFactory(undoSupportServiceRef,cyEventHelperRef);
- NewEmptyNetworkTaskFactory newEmptyNetworkTaskFactory = new
NewEmptyNetworkTaskFactory(cyNetworkFactoryServiceRef,cyNetworkViewFactoryServiceRef,cyNetworkManagerServiceRef,cyNetworkViewManagerServiceRef,cyNetworkNamingServiceRef,synchronousTaskManagerServiceRef);
- CloneNetworkTaskFactory cloneNetworkTaskFactory = new
CloneNetworkTaskFactory(cyNetworkManagerServiceRef,cyNetworkViewManagerServiceRef,visualMappingManagerServiceRef,cyNetworkFactoryServiceRef,cyNetworkViewFactoryServiceRef,cyNetworkNamingServiceRef,cyEventHelperRef);
+ NewEmptyNetworkTaskFactory newEmptyNetworkTaskFactory = new
NewEmptyNetworkTaskFactory(cyNetworkFactoryServiceRef,cyNetworkViewFactoryServiceRef,cyNetworkManagerServiceRef,cyNetworkViewManagerServiceRef,cyNetworkNamingServiceRef,synchronousTaskManagerServiceRef,cyApplicationManagerServiceRef);
+ CloneNetworkTaskFactory cloneNetworkTaskFactory = new
CloneNetworkTaskFactory(cyNetworkManagerServiceRef,cyNetworkViewManagerServiceRef,visualMappingManagerServiceRef,cyNetworkFactoryServiceRef,cyNetworkViewFactoryServiceRef,cyNetworkNamingServiceRef,cyApplicationManagerServiceRef);
NewNetworkSelectedNodesEdgesTaskFactory
newNetworkSelectedNodesEdgesTaskFactory = new
NewNetworkSelectedNodesEdgesTaskFactory(undoSupportServiceRef,cyRootNetworkFactoryServiceRef,cyNetworkViewFactoryServiceRef,cyNetworkManagerServiceRef,cyNetworkViewManagerServiceRef,cyNetworkNamingServiceRef,visualMappingManagerServiceRef,cyApplicationManagerServiceRef,cyEventHelperRef);
NewNetworkSelectedNodesOnlyTaskFactory
newNetworkSelectedNodesOnlyTaskFactory = new
NewNetworkSelectedNodesOnlyTaskFactory(undoSupportServiceRef,cyRootNetworkFactoryServiceRef,cyNetworkViewFactoryServiceRef,cyNetworkManagerServiceRef,cyNetworkViewManagerServiceRef,cyNetworkNamingServiceRef,visualMappingManagerServiceRef,cyApplicationManagerServiceRef,cyEventHelperRef);
DestroyNetworkTaskFactory destroyNetworkTaskFactory = new
DestroyNetworkTaskFactory(cyNetworkManagerServiceRef);
Modified:
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/creation/CloneNetworkTask.java
===================================================================
---
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/creation/CloneNetworkTask.java
2012-02-17 18:58:56 UTC (rev 28313)
+++
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/creation/CloneNetworkTask.java
2012-02-17 19:37:01 UTC (rev 28314)
@@ -33,7 +33,7 @@
import java.util.List;
import java.util.Map;
-import org.cytoscape.event.CyEventHelper;
+import org.cytoscape.application.CyApplicationManager;
import org.cytoscape.model.CyColumn;
import org.cytoscape.model.CyEdge;
import org.cytoscape.model.CyNetwork;
@@ -65,19 +65,19 @@
private final CyNetworkFactory netFactory;
private final CyNetworkViewFactory netViewFactory;
private final CyNetworkNaming naming;
- private final CyEventHelper eventHelper;
+ private final CyApplicationManager appMgr;
public CloneNetworkTask(final CyNetwork net, final CyNetworkManager
netmgr,
final CyNetworkViewManager networkViewManager, final
VisualMappingManager vmm,
final CyNetworkFactory netFactory, final
CyNetworkViewFactory netViewFactory, final CyNetworkNaming naming,
- final CyEventHelper eventHelper) {
+ final CyApplicationManager appMgr) {
super(net, netmgr, networkViewManager);
this.vmm = vmm;
this.netFactory = netFactory;
this.netViewFactory = netViewFactory;
this.naming = naming;
- this.eventHelper = eventHelper;
+ this.appMgr = appMgr;
}
public void run(TaskMonitor tm) {
@@ -92,13 +92,21 @@
networkManager.addNetwork(newNet);
tm.setProgress(0.6);
+ CyNetworkView newView = null;
+
if (origView != null)
- copyView(newNet, origView);
+ newView = copyView(newNet, origView);
+
tm.setProgress(0.9);
orig2NewNodeMap.clear();
orig2NewNodeMap = null;
+ if (newView != null)
+ appMgr.setCurrentNetworkView(newView);
+ else
+ appMgr.setCurrentNetwork(newNet);
+
logger.debug("Cloning finished in " +
(System.currentTimeMillis() - start) + " msec.");
tm.setProgress(1.0);
}
@@ -169,7 +177,7 @@
* Copy Visual Properties to the new network view.
*
*/
- private void copyView(final CyNetwork newNet, final CyNetworkView
origView) {
+ private CyNetworkView copyView(final CyNetwork newNet, final
CyNetworkView origView) {
final CyNetworkView newView =
netViewFactory.createNetworkView(newNet);
// Copy node locations since this is controlled outside of
visual style.
@@ -189,5 +197,7 @@
vmm.getVisualStyle(origView).apply(newView);
networkViewManager.addNetworkView(newView);
newView.fitContent();
+
+ return newView;
}
}
Modified:
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/creation/CloneNetworkTaskFactory.java
===================================================================
---
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/creation/CloneNetworkTaskFactory.java
2012-02-17 18:58:56 UTC (rev 28313)
+++
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/creation/CloneNetworkTaskFactory.java
2012-02-17 19:37:01 UTC (rev 28314)
@@ -29,6 +29,7 @@
*/
package org.cytoscape.task.internal.creation;
+import org.cytoscape.application.CyApplicationManager;
import org.cytoscape.event.CyEventHelper;
import org.cytoscape.model.CyNetworkFactory;
import org.cytoscape.model.CyNetworkManager;
@@ -40,29 +41,29 @@
import org.cytoscape.work.TaskIterator;
public class CloneNetworkTaskFactory extends AbstractNetworkTaskFactory {
- private final CyNetworkManager networkManager;
- private final CyNetworkViewManager networkViewManager;
+ private final CyNetworkManager networkMgr;
+ private final CyNetworkViewManager networkViewMgr;
private final VisualMappingManager vmm;
private final CyNetworkFactory netFactory;
private final CyNetworkViewFactory netViewFactory;
private final CyNetworkNaming naming;
- private final CyEventHelper eventHelper;
+ private final CyApplicationManager appMgr;
- public CloneNetworkTaskFactory(final CyNetworkManager networkManager,
- final CyNetworkViewManager networkViewManager, final
VisualMappingManager vmm,
- final CyNetworkFactory netFactory, final CyNetworkViewFactory
netViewFactory, final CyNetworkNaming naming,
- final CyEventHelper eventHelper) {
- this.networkManager = networkManager;
- this.networkViewManager = networkViewManager;
- this.vmm = vmm;
- this.netFactory = netFactory;
- this.netViewFactory = netViewFactory;
- this.naming = naming;
- this.eventHelper = eventHelper;
+ public CloneNetworkTaskFactory(final CyNetworkManager networkMgr, final
CyNetworkViewManager networkViewMgr,
+ final VisualMappingManager vmm, final CyNetworkFactory
netFactory,
+ final CyNetworkViewFactory netViewFactory, final
CyNetworkNaming naming,
+ final CyApplicationManager appMgr) {
+ this.networkMgr = networkMgr;
+ this.networkViewMgr = networkViewMgr;
+ this.vmm = vmm;
+ this.netFactory = netFactory;
+ this.netViewFactory = netViewFactory;
+ this.naming = naming;
+ this.appMgr = appMgr;
}
public TaskIterator createTaskIterator() {
- return new TaskIterator(new CloneNetworkTask(network, networkManager,
networkViewManager, vmm, netFactory,
- netViewFactory, naming, eventHelper));
+ return new TaskIterator(new CloneNetworkTask(network, networkMgr,
networkViewMgr, vmm, netFactory,
+ netViewFactory, naming, appMgr));
}
}
Modified:
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/creation/NewEmptyNetworkTask.java
===================================================================
---
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/creation/NewEmptyNetworkTask.java
2012-02-17 18:58:56 UTC (rev 28313)
+++
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/creation/NewEmptyNetworkTask.java
2012-02-17 19:37:01 UTC (rev 28314)
@@ -30,6 +30,7 @@
package org.cytoscape.task.internal.creation;
+import org.cytoscape.application.CyApplicationManager;
import org.cytoscape.model.CyNetwork;
import org.cytoscape.model.CyNetworkFactory;
import org.cytoscape.model.CyNetworkManager;
@@ -53,17 +54,20 @@
private final CyNetworkNaming namingUtil;
private final CyNetworkManager networkManager;
private final CyNetworkViewManager networkViewManager;
+ private final CyApplicationManager appManager;
private boolean cancel = false;
- private CyNetworkView view;
+ private CyNetworkView view;
public NewEmptyNetworkTask(CyNetworkFactory cnf, CyNetworkViewFactory
cnvf, CyNetworkManager netmgr,
- final CyNetworkViewManager
networkViewManager, final CyNetworkNaming namingUtil) {
+ final CyNetworkViewManager
networkViewManager, final CyNetworkNaming namingUtil,
+ final CyApplicationManager appManager) {
this.networkManager = netmgr;
this.networkViewManager = networkViewManager;
this.cnf = cnf;
this.cnvf = cnvf;
this.namingUtil = namingUtil;
+ this.appManager = appManager;
}
public void run(TaskMonitor tm) {
@@ -77,6 +81,8 @@
networkManager.addNetwork(newNet);
tm.setProgress(0.8);
networkViewManager.addNetworkView(view);
+ tm.setProgress(0.9);
+ appManager.setCurrentNetworkView(view);
tm.setProgress(1.0);
}
Modified:
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/creation/NewEmptyNetworkTaskFactory.java
===================================================================
---
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/creation/NewEmptyNetworkTaskFactory.java
2012-02-17 18:58:56 UTC (rev 28313)
+++
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/creation/NewEmptyNetworkTaskFactory.java
2012-02-17 19:37:01 UTC (rev 28314)
@@ -29,6 +29,7 @@
*/
package org.cytoscape.task.internal.creation;
+import org.cytoscape.application.CyApplicationManager;
import org.cytoscape.model.CyNetworkManager;
import org.cytoscape.work.TaskFactory;
import org.cytoscape.work.TaskIterator;
@@ -43,25 +44,29 @@
public class NewEmptyNetworkTaskFactory implements TaskFactory,
NewEmptyNetworkViewFactory {
private final CyNetworkFactory cnf;
private final CyNetworkViewFactory cnvf;
- private final CyNetworkManager netmgr;
- private final CyNetworkViewManager networkViewManager;
+ private final CyNetworkManager netMgr;
+ private final CyNetworkViewManager networkViewMgr;
private final CyNetworkNaming namingUtil;
- private final SynchronousTaskManager syncTaskMgr;
+ private final SynchronousTaskManager<?> syncTaskMgr;
+ private final CyApplicationManager appMgr;
- private NewEmptyNetworkTask task;
+ private NewEmptyNetworkTask task;
- public NewEmptyNetworkTaskFactory(final CyNetworkFactory cnf, final
CyNetworkViewFactory cnvf, final CyNetworkManager netmgr, final
CyNetworkViewManager networkViewManager, final CyNetworkNaming namingUtil,
final SynchronousTaskManager syncTaskMgr)
- {
+ public NewEmptyNetworkTaskFactory(final CyNetworkFactory cnf, final
CyNetworkViewFactory cnvf,
+ final CyNetworkManager netMgr, final
CyNetworkViewManager networkViewManager,
+ final CyNetworkNaming namingUtil, final
SynchronousTaskManager<?> syncTaskMgr,
+ final CyApplicationManager appMgr) {
this.cnf = cnf;
this.cnvf = cnvf;
- this.netmgr = netmgr;
- this.networkViewManager = networkViewManager;
+ this.netMgr = netMgr;
+ this.networkViewMgr = networkViewManager;
this.namingUtil = namingUtil;
this.syncTaskMgr = syncTaskMgr;
+ this.appMgr = appMgr;
}
public TaskIterator createTaskIterator() {
- task = new NewEmptyNetworkTask(cnf, cnvf, netmgr,
networkViewManager,namingUtil);
+ task = new NewEmptyNetworkTask(cnf, cnvf, netMgr,
networkViewMgr, namingUtil, appMgr);
return new TaskIterator(task);
}
Modified:
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/creation/NewEmptyNetworkTaskTest.java
===================================================================
---
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/creation/NewEmptyNetworkTaskTest.java
2012-02-17 18:58:56 UTC (rev 28313)
+++
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/creation/NewEmptyNetworkTaskTest.java
2012-02-17 19:37:01 UTC (rev 28314)
@@ -5,6 +5,7 @@
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
+import org.cytoscape.application.CyApplicationManager;
import org.cytoscape.ding.NetworkViewTestSupport;
import org.cytoscape.model.CyNetwork;
import org.cytoscape.model.CyNetworkFactory;
@@ -34,6 +35,8 @@
private CyNetworkViewManager networkViewManager;
@Mock
private CyNetworkNaming namingUtil;
+ @Mock
+ private CyApplicationManager appManager;
@Before
public void initMocks() {
@@ -43,7 +46,7 @@
@Test
public void testNewEmptyNetworkTask() throws Exception {
- final NewEmptyNetworkTask task = new NewEmptyNetworkTask(cnf,
cnvf, netmgr, networkViewManager, namingUtil);
+ final NewEmptyNetworkTask task = new NewEmptyNetworkTask(cnf,
cnvf, netmgr, networkViewManager, namingUtil, appManager);
final TaskMonitor taskMonitor = mock(TaskMonitor.class);
task.run(taskMonitor);
Modified:
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/CyActivator.java
===================================================================
---
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/CyActivator.java
2012-02-17 18:58:56 UTC (rev 28313)
+++
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/CyActivator.java
2012-02-17 19:37:01 UTC (rev 28314)
@@ -122,7 +122,6 @@
import org.cytoscape.view.vizmap.VisualMappingManager;
import org.cytoscape.work.SynchronousTaskManager;
import org.cytoscape.work.TaskFactory;
-import org.cytoscape.work.TaskManager;
import org.cytoscape.work.swing.DialogTaskManager;
import org.cytoscape.work.swing.PanelTaskManager;
import org.cytoscape.work.swing.SubmenuTaskManager;
@@ -232,6 +231,7 @@
SessionStateIO sessStateIO = new SessionStateIO();
SessionHandler sessionHandler = new
SessionHandler(cytoscapeDesktop,
cyNetworkManagerServiceRef,
+
cyApplicationManagerServiceRef,
networkViewManager,
synchronousTaskManagerServiceRef,
saveTaskFactoryServiceRef,
Modified:
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/SessionHandler.java
===================================================================
---
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/SessionHandler.java
2012-02-17 18:58:56 UTC (rev 28313)
+++
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/SessionHandler.java
2012-02-17 19:37:01 UTC (rev 28314)
@@ -44,6 +44,7 @@
import javax.swing.JInternalFrame;
import javax.swing.JOptionPane;
+import org.cytoscape.application.CyApplicationManager;
import org.cytoscape.application.events.CyShutdownEvent;
import org.cytoscape.application.events.CyShutdownListener;
import org.cytoscape.application.swing.CytoPanel;
@@ -76,6 +77,7 @@
private final CytoscapeDesktop desktop;
private final CyNetworkManager netMgr;
+ private final CyApplicationManager appManager;
private final NetworkViewManager netViewMgr;
private final SynchronousTaskManager<?> syncTaskMgr;
private final TaskFactory saveTaskFactory;
@@ -87,12 +89,14 @@
public SessionHandler(final CytoscapeDesktop desktop,
final CyNetworkManager netMgr,
+ final CyApplicationManager
appManager,
final NetworkViewManager
netViewMgr,
final
SynchronousTaskManager<?> syncTaskMgr,
final TaskFactory
saveTaskFactory,
final SessionStateIO
sessionStateIO) {
this.desktop = desktop;
this.netMgr = netMgr;
+ this.appManager = appManager;
this.netViewMgr = netViewMgr;
this.syncTaskMgr = syncTaskMgr;
this.saveTaskFactory = saveTaskFactory;
@@ -226,7 +230,8 @@
private void setNetworkFrameLocations(final NetworkFrames frames, final
CySession sess) {
if (frames != null) {
final List<NetworkFrame> framesList =
frames.getNetworkFrame();
-
+ CyNetworkView currentNetView = null;
+
for (NetworkFrame nf : framesList) {
final String oldIdStr = nf.getNetworkViewID();
// ID in the original session--it's probably different now
CyNetworkView view = null;
@@ -243,16 +248,30 @@
if (view != null) {
final JInternalFrame iframe =
netViewMgr.getInternalFrame(view);
- if (iframe != null && nf.getX() != null
&& nf.getY() != null) {
- int x = nf.getX().intValue();
- int y = nf.getY().intValue();
- iframe.setLocation(x, y);
+ if (iframe != null) {
+ iframe.moveToBack(); // In
order to restore its z-index
+
+ if (nf.getX() != null &&
nf.getY() != null) {
+ int x =
nf.getX().intValue();
+ int y =
nf.getY().intValue();
+ iframe.setLocation(x,
y);
+ }
}
+
+ // The first frame should be the
current one
+ if (currentNetView == null) {
+ currentNetView = view;
+ }
} else {
logger.warn("Cannot restore network
frame's position: Network View not found for former ID \""
+ oldIdStr + "\".");
}
}
+
+ // Restore the current network view
+ if (currentNetView != null) {
+
appManager.setCurrentNetworkView(currentNetView);
+ }
}
}
Modified:
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/NetworkPanel.java
===================================================================
---
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/NetworkPanel.java
2012-02-17 18:58:56 UTC (rev 28313)
+++
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/NetworkPanel.java
2012-02-17 19:37:01 UTC (rev 28314)
@@ -455,8 +455,9 @@
public void handleEvent(final NetworkViewAboutToBeDestroyedEvent nde) {
SwingUtilities.invokeLater( new Runnable() {
public void run() {
- logger.debug("Network view about to be
destroyed " + nde.getNetworkView().getModel().getSUID());
-
treeNodeMap.get(nde.getNetworkView().getModel().getSUID()).setNodeColor(Color.red);
+ final CyNetworkView netView =
nde.getNetworkView();
+ logger.debug("Network view about to be
destroyed " + netView.getModel().getSUID());
+
treeNodeMap.get(netView.getModel().getSUID()).setNodeColor(Color.red);
treeTable.getTree().updateUI();
}
});
@@ -466,22 +467,19 @@
public void handleEvent(final NetworkViewAddedEvent nde) {
SwingUtilities.invokeLater( new Runnable() {
public void run() {
- logger.debug("Network view added to
NetworkPanel: " + nde.getNetworkView().getModel().getSUID());
-
- // Set current network view to the new one.
-
appManager.setCurrentNetworkView(nde.getNetworkView());
-
treeNodeMap.get(nde.getNetworkView().getModel().getSUID()).setNodeColor(Color.black);
+ final CyNetworkView netView =
nde.getNetworkView();
+ logger.debug("Network view added to
NetworkPanel: " + netView.getModel().getSUID());
+
treeNodeMap.get(netView.getModel().getSUID()).setNodeColor(Color.black);
treeTable.getTree().updateUI();
}
});
}
- private void addNetwork(final Long network_id) {
- // first see if it exists
- if (getNetworkNode(network_id) == null) {
+ private void addNetwork(final Long networkID) {
+ // first see if it is not in the tree already
+ if (getNetworkNode(networkID) == null) {
+ final CyNetwork network = netmgr.getNetwork(networkID);
- final CyNetwork network = netmgr.getNetwork(network_id);
-
NetworkTreeNode parentTreeNode = null;
CyRootNetwork parentNetwork = null;
// In current version, ALL networks are created as
Subnetworks.
@@ -495,8 +493,14 @@
parentTreeNode = new NetworkTreeNode("", null);
// Actual tree node for this network
- NetworkTreeNode dmtn = new
NetworkTreeNode(network.getRow(network).get(CyTableEntry.NAME, String.class),
- network);
+ String netName =
network.getRow(network).get(CyTableEntry.NAME, String.class);
+
+ if (netName == null) {
+ logger.error("Network name is null--SUID=" +
network.getSUID());
+ netName = "? (SUID: " + network.getSUID() + ")";
+ }
+
+ NetworkTreeNode dmtn = new NetworkTreeNode(netName,
network);
parentTreeNode.add(dmtn);
@@ -507,7 +511,7 @@
if (parentNetwork != null)
this.treeNodeMap.put(parentNetwork.getSUID(),
parentTreeNode);
- if(networkViewManager.viewExists(network))
+ if (networkViewManager.viewExists(network))
dmtn.setNodeColor(Color.black);
this.treeNodeMap.put(network.getSUID(), dmtn);
@@ -520,11 +524,6 @@
treeTable.getTree().expandPath(path);
treeTable.getTree().scrollPathToVisible(path);
treeTable.doLayout();
-
- // this is necessary because valueChanged is not fired
above
- focusNetworkNode(network_id);
- } else {
- // already in the table.
}
}
Modified:
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/NetworkViewManager.java
===================================================================
---
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/NetworkViewManager.java
2012-02-17 18:58:56 UTC (rev 28313)
+++
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/view/NetworkViewManager.java
2012-02-17 19:37:01 UTC (rev 28314)
@@ -219,7 +219,9 @@
return;
final RenderingEngine<CyNetwork> currentEngine =
applicationManager.getCurrentRenderingEngine();
- applicationManager.setCurrentNetworkView(view);
+
+ if (!view.equals(applicationManager.getCurrentNetworkView()))
+ applicationManager.setCurrentNetworkView(view);
if (currentEngine == null || currentEngine.getViewModel() !=
view)
applicationManager.setCurrentRenderingEngine(presentationMap.get(view));
Modified:
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/AbstractTableBrowser.java
===================================================================
---
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/AbstractTableBrowser.java
2012-02-17 18:58:56 UTC (rev 28313)
+++
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/AbstractTableBrowser.java
2012-02-17 19:37:01 UTC (rev 28314)
@@ -96,12 +96,14 @@
* Returns the Component to be added to the CytoPanel.
* @return The Component to be added to the CytoPanel.
*/
+ @Override
public Component getComponent() { return this; }
/**
* Returns the name of the CytoPanel that this component should be
added to.
* @return the name of the CytoPanel that this component should be
added to.
*/
+ @Override
public CytoPanelName getCytoPanelName() {
return CytoPanelName.SOUTH;
}
@@ -110,11 +112,13 @@
* Returns the title of the tab within the CytoPanel for this component.
* @return the title of the tab within the CytoPanel for this component.
*/
+ @Override
public String getTitle() { return tabTitle; }
/**
* @return null
*/
+ @Override
public Icon getIcon() { return null; }
synchronized void showSelectedTable() {
Modified:
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/AttributeListModel.java
===================================================================
---
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/AttributeListModel.java
2012-02-17 18:58:56 UTC (rev 28313)
+++
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/AttributeListModel.java
2012-02-17 19:37:01 UTC (rev 28314)
@@ -99,10 +99,12 @@
attributeNames = new ArrayList<String>();
final CyTable attributes = browserTableModel.getAttributes();
+
for (final String attrName :
browserTableModel.getVisibleAttributeNames()) {
if
(validAttrTypes.contains(attributes.getColumn(attrName).getType()))
attributeNames.add(attrName);
}
+
Collections.sort(attributeNames);
browserTableModel.setVisibleAttributeNames(attributeNames);
Modified:
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/DefaultTableBrowser.java
===================================================================
---
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/DefaultTableBrowser.java
2012-02-17 18:58:56 UTC (rev 28313)
+++
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/DefaultTableBrowser.java
2012-02-17 19:37:01 UTC (rev 28314)
@@ -14,6 +14,7 @@
import javax.swing.JList;
import javax.swing.JToggleButton;
import javax.swing.ListCellRenderer;
+import javax.swing.SwingUtilities;
import org.cytoscape.application.CyApplicationManager;
import org.cytoscape.application.events.SetCurrentNetworkEvent;
@@ -36,7 +37,8 @@
import org.cytoscape.util.swing.OpenBrowser;
import org.cytoscape.work.swing.DialogTaskManager;
-public class DefaultTableBrowser extends AbstractTableBrowser implements
SetCurrentNetworkListener, NetworkAddedListener,
NetworkAboutToBeDestroyedListener {
+public class DefaultTableBrowser extends AbstractTableBrowser implements
SetCurrentNetworkListener,
+ NetworkAddedListener, NetworkAboutToBeDestroyedListener {
private static final long serialVersionUID = 627394119637512735L;
@@ -45,7 +47,8 @@
private final JComboBox networkChooser;
private final Class<? extends CyTableEntry> objType;
- private boolean rowSelectionMode = false;
+ private boolean rowSelectionMode;
+ private boolean ignoreSetCurrentNetwork;
public DefaultTableBrowser(String tabTitle, Class<? extends
CyTableEntry> objType, CyTableManager tableManager,
@@ -91,56 +94,87 @@
rowSelectionMode = selectionModeButton.isSelected();
getCurrentBrowserTableModel().setShowAll(rowSelectionMode);
getCurrentBrowserTableModel().updateShowAll();
-
}
@Override
public void actionPerformed(final ActionEvent e) {
+ if (ignoreSetCurrentNetwork)
+ return;
+
final CyNetwork currentNetwork =
this.applicationManager.getCurrentNetwork();
final CyNetwork network = (CyNetwork)
networkChooser.getSelectedItem();
- if (network == null || currentNetwork == network)
- return;
- applicationManager.setCurrentNetwork(network);
+ if (network != null && !network.equals(currentNetwork) &&
networkManager.networkExists(network.getSUID())) {
+ applicationManager.setCurrentNetwork(network);
+ }
}
@Override
public void handleEvent(final SetCurrentNetworkEvent e) {
final CyNetwork currentNetwork = e.getNetwork();
- final CyNetwork selectedNetwork = (CyNetwork)
networkChooser.getSelectedItem();
-
- if (objType == CyNode.class) {
- currentTable = currentNetwork.getDefaultNodeTable();
- } else if (objType == CyEdge.class) {
- currentTable = currentNetwork.getDefaultEdgeTable();
- } else {
- currentTable = currentNetwork.getDefaultNetworkTable();
+ if (currentNetwork != null) {
+ if (objType == CyNode.class) {
+ currentTable =
currentNetwork.getDefaultNodeTable();
+ } else if (objType == CyEdge.class) {
+ currentTable =
currentNetwork.getDefaultEdgeTable();
+ } else {
+ currentTable =
currentNetwork.getDefaultNetworkTable();
+ }
}
- networkChooser.setSelectedItem(currentNetwork);
-
getCurrentBrowserTableModel().setShowAll(rowSelectionMode);
showSelectedTable();
+
+ SwingUtilities.invokeLater(new Runnable() {
+ public void run() {
+ final CyNetwork selectedNetwork = (CyNetwork)
networkChooser.getSelectedItem();
+
+ if ((currentNetwork == null && selectedNetwork
!= null) || !currentNetwork.equals(selectedNetwork)) {
+
networkChooser.setSelectedItem(currentNetwork);
+ }
+ }
+ });
}
@Override
public void handleEvent(NetworkAddedEvent e) {
final CyNetwork network = e.getNetwork();
- this.networkChooser.addItem(network);
- this.networkChooser.setSelectedItem(network);
- if(networkChooser.isEnabled() == false)
- networkChooser.setEnabled(true);
+ SwingUtilities.invokeLater(new Runnable() {
+ public void run() {
+ ignoreSetCurrentNetwork = true;
+
+ try {
+ networkChooser.addItem(network);
+
+ if (networkChooser.isEnabled() == false)
+ networkChooser.setEnabled(true);
+ } finally {
+ ignoreSetCurrentNetwork = false;
+ }
+ }
+ });
}
@Override
public void handleEvent(NetworkAboutToBeDestroyedEvent e) {
final CyNetwork network = e.getNetwork();
- this.networkChooser.removeItem(network);
- if(networkChooser.getItemCount() == 0)
- networkChooser.setEnabled(false);
+ SwingUtilities.invokeLater(new Runnable() {
+ public void run() {
+ ignoreSetCurrentNetwork = true;
+
+ try {
+ networkChooser.removeItem(network);
+
+ if (networkChooser.getItemCount() == 0)
+
networkChooser.setEnabled(false);
+ } finally {
+ ignoreSetCurrentNetwork = false;
+ }
+ }
+ });
}
private static final class NetworkChooserCustomRenderer extends JLabel
implements ListCellRenderer {
@@ -166,7 +200,5 @@
this.setText(network.getRow(network).get(CyTableEntry.NAME, String.class));
return this;
}
-
}
-
}
Modified:
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/GlobalTableBrowser.java
===================================================================
---
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/GlobalTableBrowser.java
2012-02-17 18:58:56 UTC (rev 28313)
+++
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/GlobalTableBrowser.java
2012-02-17 19:37:01 UTC (rev 28314)
@@ -67,6 +67,7 @@
add(attributeBrowserToolBar, BorderLayout.NORTH);
}
+ @Override
public void actionPerformed(final ActionEvent e) {
final CyTable table = (CyTable) tableChooser.getSelectedItem();
--
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.