Author: mes
Date: 2012-03-22 13:52:23 -0700 (Thu, 22 Mar 2012)
New Revision: 28619
Added:
core3/api/trunk/work-api/src/main/java/org/cytoscape/work/TunableSetter.java
core3/impl/trunk/work-swing-impl/impl/src/main/java/org/cytoscape/work/internal/sync/DelegateTask.java
core3/impl/trunk/work-swing-impl/impl/src/main/java/org/cytoscape/work/internal/sync/DelegatingTaskMonitor.java
core3/impl/trunk/work-swing-impl/impl/src/main/java/org/cytoscape/work/internal/sync/TunableRecorderManager.java
core3/impl/trunk/work-swing-impl/impl/src/main/java/org/cytoscape/work/internal/sync/TunableSetterImpl.java
core3/impl/trunk/work-swing-impl/impl/src/test/java/org/cytoscape/work/internal/sync/DelegatingTaskMonitorTest.java
Modified:
core3/api/trunk/core-task-api/src/main/java/org/cytoscape/task/creation/ImportNetworksTaskFactory.java
core3/api/trunk/core-task-api/src/main/java/org/cytoscape/task/creation/LoadSession.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/loadnetwork/LoadNetworkURLTaskFactoryImpl.java
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/session/OpenSessionTaskFactory.java
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/loadnetwork/LoadNetworkURLTaskTest.java
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/session/OpenSessionTaskFactoryTest.java
core3/impl/trunk/welcome-impl/src/main/java/org/cytoscape/welcome/internal/CreateNewNetworkPanel.java
core3/impl/trunk/welcome-impl/src/main/java/org/cytoscape/welcome/internal/CyActivator.java
core3/impl/trunk/welcome-impl/src/main/java/org/cytoscape/welcome/internal/OpenPanel.java
core3/impl/trunk/welcome-impl/src/main/java/org/cytoscape/welcome/internal/WelcomeScreenAction.java
core3/impl/trunk/welcome-impl/src/main/java/org/cytoscape/welcome/internal/WelcomeScreenDialog.java
core3/impl/trunk/work-swing-impl/impl/src/main/java/org/cytoscape/work/internal/CyActivator.java
Log:
added a simple way for TaskFactories to provide an api with tunables configured
from method parameters
Modified:
core3/api/trunk/core-task-api/src/main/java/org/cytoscape/task/creation/ImportNetworksTaskFactory.java
===================================================================
---
core3/api/trunk/core-task-api/src/main/java/org/cytoscape/task/creation/ImportNetworksTaskFactory.java
2012-03-22 19:54:19 UTC (rev 28618)
+++
core3/api/trunk/core-task-api/src/main/java/org/cytoscape/task/creation/ImportNetworksTaskFactory.java
2012-03-22 20:52:23 UTC (rev 28619)
@@ -4,9 +4,10 @@
import java.util.Set;
import org.cytoscape.model.CyNetwork;
+import org.cytoscape.work.TaskIterator;
public interface ImportNetworksTaskFactory {
- Set<CyNetwork> loadCyNetworks(final URL url);
+ TaskIterator loadCyNetworks(final URL url);
}
Modified:
core3/api/trunk/core-task-api/src/main/java/org/cytoscape/task/creation/LoadSession.java
===================================================================
---
core3/api/trunk/core-task-api/src/main/java/org/cytoscape/task/creation/LoadSession.java
2012-03-22 19:54:19 UTC (rev 28618)
+++
core3/api/trunk/core-task-api/src/main/java/org/cytoscape/task/creation/LoadSession.java
2012-03-22 20:52:23 UTC (rev 28619)
@@ -3,8 +3,11 @@
import java.io.File;
import org.cytoscape.session.CySession;
+import org.cytoscape.work.TaskIterator;
public interface LoadSession {
- CySession loadSession(final File file);
+ TaskIterator loadSession(final File file);
+
+ TaskIterator loadSession();
}
Added:
core3/api/trunk/work-api/src/main/java/org/cytoscape/work/TunableSetter.java
===================================================================
---
core3/api/trunk/work-api/src/main/java/org/cytoscape/work/TunableSetter.java
(rev 0)
+++
core3/api/trunk/work-api/src/main/java/org/cytoscape/work/TunableSetter.java
2012-03-22 20:52:23 UTC (rev 28619)
@@ -0,0 +1,28 @@
+
+
+package org.cytoscape.work;
+
+import java.util.Map;
+
+/**
+ * An API for setting tunable fields and methods with predetermined
+ * values in the Tasks found in the specified TaskIterator. This
+ * interface is provided as a convenience to TaskFactory authors
+ * who also want to provide an addition API for their Task(s) that
+ * are specified with method parameters.
+ * @CyAPI.Api.Interface
+ */
+public interface TunableSetter {
+
+ /**
+ * This method takes as input a TaskIterator and a map of tunable names
to tunable values and applies
+ * those values to any tunables found in the Tasks found in the
TaskIterator. The return value is
+ * a new TaskIterator containing pre-configured tasks.
+ * @param taskIterator The incoming TaskIterator which contains the
tasks whose tunables will be set.
+ * @param tunableValues A map of names to tunable values. The names
must match the field or method
+ * name of the tunable in question.
+ * @return A new TaskIterator that contains Task(s) with tunable values
already set.
+ */
+ TaskIterator createTaskIterator(TaskIterator taskIterator,
Map<String,Object> tunableValues);
+
+}
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-03-22 19:54:19 UTC (rev 28618)
+++
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/CyActivator.java
2012-03-22 20:52:23 UTC (rev 28619)
@@ -39,6 +39,7 @@
import org.cytoscape.task.TableTaskFactory;
import org.cytoscape.task.creation.LoadVisualStyles;
import org.cytoscape.task.creation.NewEmptyNetworkViewFactory;
+import org.cytoscape.task.creation.LoadSession;
import org.cytoscape.task.internal.creation.CloneNetworkTaskFactory;
import org.cytoscape.task.internal.creation.CreateNetworkViewTaskFactory;
import org.cytoscape.task.internal.creation.NewEmptyNetworkTaskFactory;
@@ -110,6 +111,7 @@
import org.cytoscape.work.SynchronousTaskManager;
import org.cytoscape.work.TaskFactory;
import org.cytoscape.work.TaskManager;
+import org.cytoscape.work.TunableSetter;
import org.cytoscape.work.undo.UndoSupport;
import org.osgi.framework.BundleContext;
@@ -155,6 +157,7 @@
CyLayoutAlgorithmManager cyLayoutsServiceRef =
getService(bc,CyLayoutAlgorithmManager.class);
CyTableWriterManager cyTableWriterManagerRef =
getService(bc,CyTableWriterManager.class);
SynchronousTaskManager<?> synchronousTaskManagerServiceRef =
getService(bc,SynchronousTaskManager.class);
+ TunableSetter tunableSetterServiceRef =
getService(bc,TunableSetter.class);
LoadAttributesFileTaskFactoryImpl loadAttrsFileTaskFactory =
new LoadAttributesFileTaskFactoryImpl(cyDataTableReaderManagerServiceRef);
LoadAttributesURLTaskFactoryImpl loadAttrsURLTaskFactory = new
LoadAttributesURLTaskFactoryImpl(cyDataTableReaderManagerServiceRef);
@@ -165,7 +168,7 @@
LoadVizmapFileTaskFactoryImpl loadVizmapFileTaskFactory = new
LoadVizmapFileTaskFactoryImpl(vizmapReaderManagerServiceRef,visualMappingManagerServiceRef,synchronousTaskManagerServiceRef);
LoadNetworkFileTaskFactoryImpl loadNetworkFileTaskFactory = new
LoadNetworkFileTaskFactoryImpl(cyNetworkReaderManagerServiceRef,cyNetworkManagerServiceRef,cyNetworkViewManagerServiceRef,cyPropertyServiceRef,cyNetworkNamingServiceRef);
- LoadNetworkURLTaskFactoryImpl loadNetworkURLTaskFactory = new
LoadNetworkURLTaskFactoryImpl(cyNetworkReaderManagerServiceRef,cyNetworkManagerServiceRef,cyNetworkViewManagerServiceRef,cyPropertyServiceRef,cyNetworkNamingServiceRef,streamUtilRef,
synchronousTaskManagerServiceRef);
+ LoadNetworkURLTaskFactoryImpl loadNetworkURLTaskFactory = new
LoadNetworkURLTaskFactoryImpl(cyNetworkReaderManagerServiceRef,cyNetworkManagerServiceRef,cyNetworkViewManagerServiceRef,cyPropertyServiceRef,cyNetworkNamingServiceRef,streamUtilRef,
synchronousTaskManagerServiceRef, tunableSetterServiceRef);
SetCurrentNetworkTaskFactoryImpl setCurrentNetworkTaskFactory =
new
SetCurrentNetworkTaskFactoryImpl(cyApplicationManagerServiceRef,cyNetworkManagerServiceRef);
DeleteSelectedNodesAndEdgesTaskFactory
deleteSelectedNodesAndEdgesTaskFactory = new
DeleteSelectedNodesAndEdgesTaskFactory(undoSupportServiceRef,cyApplicationManagerServiceRef,cyNetworkViewManagerServiceRef,visualMappingManagerServiceRef,cyEventHelperRef);
@@ -206,7 +209,7 @@
FitSelectedTaskFactory fitSelectedTaskFactory = new
FitSelectedTaskFactory(undoSupportServiceRef);
FitContentTaskFactory fitContentTaskFactory = new
FitContentTaskFactory(undoSupportServiceRef);
NewSessionTaskFactory newSessionTaskFactory = new
NewSessionTaskFactory(cySessionManagerServiceRef);
- OpenSessionTaskFactory openSessionTaskFactory = new
OpenSessionTaskFactory(cySessionManagerServiceRef,sessionReaderManagerServiceRef,cyApplicationManagerServiceRef,recentlyOpenedTrackerServiceRef,
synchronousTaskManagerServiceRef);
+ OpenSessionTaskFactory openSessionTaskFactory = new
OpenSessionTaskFactory(cySessionManagerServiceRef,sessionReaderManagerServiceRef,cyApplicationManagerServiceRef,recentlyOpenedTrackerServiceRef,
synchronousTaskManagerServiceRef, tunableSetterServiceRef);
SaveSessionTaskFactory saveSessionTaskFactory = new
SaveSessionTaskFactory( sessionWriterManagerServiceRef,
cySessionManagerServiceRef, recentlyOpenedTrackerServiceRef, cyEventHelperRef);
SaveSessionAsTaskFactory saveSessionAsTaskFactory = new
SaveSessionAsTaskFactory( sessionWriterManagerServiceRef,
cySessionManagerServiceRef, recentlyOpenedTrackerServiceRef, cyEventHelperRef);
ProxySettingsTaskFactory proxySettingsTaskFactory = new
ProxySettingsTaskFactory(cyPropertyServiceRef, streamUtilRef);
@@ -737,6 +740,7 @@
openSessionTaskFactoryProps.setProperty("command","open-session");
openSessionTaskFactoryProps.setProperty("commandNamespace","cytoscape");
registerService(bc,openSessionTaskFactory,TaskFactory.class,
openSessionTaskFactoryProps);
+ registerService(bc,openSessionTaskFactory,LoadSession.class,
openSessionTaskFactoryProps);
Properties saveSessionTaskFactoryProps = new Properties();
saveSessionTaskFactoryProps.setProperty("preferredMenu","File");
Modified:
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/loadnetwork/LoadNetworkURLTaskFactoryImpl.java
===================================================================
---
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/loadnetwork/LoadNetworkURLTaskFactoryImpl.java
2012-03-22 19:54:19 UTC (rev 28618)
+++
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/loadnetwork/LoadNetworkURLTaskFactoryImpl.java
2012-03-22 20:52:23 UTC (rev 28619)
@@ -47,6 +47,7 @@
import org.cytoscape.work.AbstractTaskFactory;
import org.cytoscape.work.SynchronousTaskManager;
import org.cytoscape.work.TaskIterator;
+import org.cytoscape.work.TunableSetter;
/**
@@ -64,13 +65,14 @@
private final SynchronousTaskManager<?> syncTaskManager;
- private LoadNetworkURLTask task;
+ private final TunableSetter tunableSetter;
public LoadNetworkURLTaskFactoryImpl(CyNetworkReaderManager mgr,
CyNetworkManager netmgr,
final CyNetworkViewManager
networkViewManager,
CyProperty<Properties> cyProps,
CyNetworkNaming cyNetworkNaming,
- StreamUtil streamUtil, final
SynchronousTaskManager<?> syncTaskManager)
+ StreamUtil streamUtil, final
SynchronousTaskManager<?> syncTaskManager,
+ TunableSetter tunableSetter)
{
this.mgr = mgr;
this.netmgr = netmgr;
@@ -78,29 +80,21 @@
this.props = cyProps.getProperties();
this.cyNetworkNaming = cyNetworkNaming;
this.streamUtil = streamUtil;
-
+ this.tunableSetter = tunableSetter;
this.syncTaskManager = syncTaskManager;
}
public TaskIterator createTaskIterator() {
- task = new LoadNetworkURLTask(mgr, netmgr, networkViewManager,
props, cyNetworkNaming, streamUtil);
// Usually we need to create view, so expected number is 2.
- return new TaskIterator(2, task);
+ return new TaskIterator(2, new LoadNetworkURLTask(mgr, netmgr,
networkViewManager, props, cyNetworkNaming, streamUtil));
}
@Override
- public Set<CyNetwork> loadCyNetworks(final URL url) {
+ public TaskIterator loadCyNetworks(final URL url) {
final Map<String,Object> m = new HashMap<String,Object>();
m.put("url", url);
-
- syncTaskManager.setExecutionContext(m);
- syncTaskManager.execute(createTaskIterator());
-
- final Set<CyNetwork> networks = new HashSet<CyNetwork>();
- for(CyNetwork network: task.getCyNetworks())
- networks.add(network);
-
- return networks;
+
+ return tunableSetter.createTaskIterator(
this.createTaskIterator(), m);
}
}
Modified:
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/session/OpenSessionTaskFactory.java
===================================================================
---
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/session/OpenSessionTaskFactory.java
2012-03-22 19:54:19 UTC (rev 28618)
+++
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/session/OpenSessionTaskFactory.java
2012-03-22 20:52:23 UTC (rev 28619)
@@ -42,6 +42,7 @@
import org.cytoscape.work.AbstractTaskFactory;
import org.cytoscape.work.SynchronousTaskManager;
import org.cytoscape.work.TaskIterator;
+import org.cytoscape.work.TunableSetter;
public class OpenSessionTaskFactory extends AbstractTaskFactory implements
LoadSession {
@@ -52,17 +53,19 @@
private final RecentlyOpenedTracker tracker;
private final SynchronousTaskManager<?> syncTaskManager;
+ private final TunableSetter tunableSetter;
private OpenSessionTask task;
public OpenSessionTaskFactory(CySessionManager mgr, final
CySessionReaderManager rmgr,
final CyApplicationManager appManager, final
RecentlyOpenedTracker tracker,
- final SynchronousTaskManager<?> syncTaskManager) {
+ final SynchronousTaskManager<?> syncTaskManager, final
TunableSetter tunableSetter) {
this.mgr = mgr;
this.rmgr = rmgr;
this.appManager = appManager;
this.tracker = tracker;
this.syncTaskManager = syncTaskManager;
+ this.tunableSetter = tunableSetter;
}
public TaskIterator createTaskIterator() {
@@ -71,13 +74,14 @@
}
@Override
- public CySession loadSession(File file) {
+ public TaskIterator loadSession(File file) {
final Map<String, Object> m = new HashMap<String, Object>();
m.put("file", file);
- syncTaskManager.setExecutionContext(m);
- syncTaskManager.execute(createTaskIterator());
+ return
tunableSetter.createTaskIterator(this.createTaskIterator(), m);
+ }
- return task.getCySession();
+ public TaskIterator loadSession() {
+ return this.createTaskIterator();
}
}
Modified:
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/loadnetwork/LoadNetworkURLTaskTest.java
===================================================================
---
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/loadnetwork/LoadNetworkURLTaskTest.java
2012-03-22 19:54:19 UTC (rev 28618)
+++
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/loadnetwork/LoadNetworkURLTaskTest.java
2012-03-22 20:52:23 UTC (rev 28619)
@@ -40,6 +40,7 @@
import org.cytoscape.work.TaskFactory;
import org.cytoscape.work.TaskIterator;
import org.cytoscape.work.TaskMonitor;
+import org.cytoscape.work.TunableSetter;
import org.junit.Before;
import org.junit.Test;
@@ -59,9 +60,10 @@
URLConnection con = mock(URLConnection.class);
StreamUtil streamUtil = mock(StreamUtil.class);
when(streamUtil.getURLConnection(url)).thenReturn(con);
+ TunableSetter ts = mock(TunableSetter.class);
TaskFactory factory = new LoadNetworkURLTaskFactoryImpl(mgr,
netmgr, networkViewManager, props, namingUtil,
- streamUtil, synchronousTaskManager);
+ streamUtil, synchronousTaskManager,ts);
assertNotNull(networkViewManager);
TaskIterator ti = factory.createTaskIterator();
TaskMonitor tm = mock(TaskMonitor.class);
@@ -86,9 +88,10 @@
StreamUtil streamUtil = mock(StreamUtil.class);
when(streamUtil.getURLConnection(url)).thenReturn(con);
+ TunableSetter ts = mock(TunableSetter.class);
TaskFactory factory = new LoadNetworkURLTaskFactoryImpl(mgr,
netmgr, networkViewManager, props, namingUtil,
- streamUtil, synchronousTaskManager);
+ streamUtil, synchronousTaskManager,ts);
TaskIterator ti = factory.createTaskIterator();
TaskMonitor tm = mock(TaskMonitor.class);
boolean first = true;
@@ -107,9 +110,10 @@
URLConnection con = mock(URLConnection.class);
StreamUtil streamUtil = mock(StreamUtil.class);
when(streamUtil.getURLConnection(url)).thenReturn(con);
+ TunableSetter ts = mock(TunableSetter.class);
TaskFactory factory = new LoadNetworkURLTaskFactoryImpl(mgr,
netmgr, networkViewManager, props, namingUtil,
- streamUtil, synchronousTaskManager);
+ streamUtil, synchronousTaskManager,ts);
TaskIterator ti = factory.createTaskIterator();
TaskMonitor tm = mock(TaskMonitor.class);
boolean first = true;
Modified:
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/session/OpenSessionTaskFactoryTest.java
===================================================================
---
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/session/OpenSessionTaskFactoryTest.java
2012-03-22 19:54:19 UTC (rev 28618)
+++
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/session/OpenSessionTaskFactoryTest.java
2012-03-22 20:52:23 UTC (rev 28619)
@@ -11,6 +11,7 @@
import org.cytoscape.work.SynchronousTaskManager;
import org.cytoscape.work.Task;
import org.cytoscape.work.TaskIterator;
+import org.cytoscape.work.TunableSetter;
import org.junit.Test;
public class OpenSessionTaskFactoryTest {
@@ -22,9 +23,10 @@
CySessionReaderManager rmgr =
mock(CySessionReaderManager.class);
CyApplicationManager appManager =
mock(CyApplicationManager.class);
RecentlyOpenedTracker tracker =
mock(RecentlyOpenedTracker.class);
+ TunableSetter ts = mock(TunableSetter.class);
SynchronousTaskManager synchronousTaskManager =
mock(SynchronousTaskManager.class);
- OpenSessionTaskFactory factory = new
OpenSessionTaskFactory(mgr, rmgr, appManager, tracker, synchronousTaskManager);
+ OpenSessionTaskFactory factory = new
OpenSessionTaskFactory(mgr, rmgr, appManager, tracker,
synchronousTaskManager,ts);
TaskIterator ti = factory.createTaskIterator();
assertNotNull(ti);
Modified:
core3/impl/trunk/welcome-impl/src/main/java/org/cytoscape/welcome/internal/CreateNewNetworkPanel.java
===================================================================
---
core3/impl/trunk/welcome-impl/src/main/java/org/cytoscape/welcome/internal/CreateNewNetworkPanel.java
2012-03-22 19:54:19 UTC (rev 28618)
+++
core3/impl/trunk/welcome-impl/src/main/java/org/cytoscape/welcome/internal/CreateNewNetworkPanel.java
2012-03-22 20:52:23 UTC (rev 28619)
@@ -78,8 +78,8 @@
private final ImportNetworksTaskFactory importNetworkFromURLTF;
private final TaskFactory importNetworkFileTF;
- private final NetworkTaskFactory createViewTaskFactory;
+
private final DataSourceManager dsManager;
private final Map<String, String> dataSourceMap;
@@ -91,14 +91,13 @@
CreateNewNetworkPanel(Window parent, final BundleContext bc, final
TaskManager guiTaskManager,
final TaskFactory importNetworkFileTF, final
ImportNetworksTaskFactory loadTF,
- final NetworkTaskFactory createViewTaskFactory, final
CyApplicationConfiguration config,
+ final CyApplicationConfiguration config,
final DataSourceManager dsManager, final
CyProperty<Properties> props) {
this.parent = parent;
this.bc = bc;
this.props = props;
this.importNetworkFromURLTF = loadTF;
- this.createViewTaskFactory = createViewTaskFactory;
this.importNetworkFileTF = importNetworkFileTF;
this.guiTaskManager = guiTaskManager;
this.dsManager = dsManager;
@@ -214,9 +213,7 @@
if(layout.isSelected())
props.getProperties().setProperty(CyLayoutAlgorithmManager.DEFAULT_LAYOUT_PROPERTY_NAME,
LAYOUT_ALGORITHM);
- // TODO REFACTOR!!!!!!!!!!!!!!!!!!!
- guiTaskManager.execute(new TaskIterator(2,
- new CreateNetworkViewTask(url,
importNetworkFromURLTF, createViewTaskFactory)));
+ guiTaskManager.execute(
importNetworkFromURLTF.loadCyNetworks(url) );
}
private int getViewThreshold(final Properties props) {
@@ -231,34 +228,7 @@
return threshold;
}
- private final class CreateNetworkViewTask extends AbstractTask {
- private final ImportNetworksTaskFactory loadNetworkFileTF;
- private final NetworkTaskFactory createViewTaskFactory;
-
- private final URL url;
-
- public CreateNetworkViewTask(final URL url, final
ImportNetworksTaskFactory loadNetworkFileTF,
- final NetworkTaskFactory createViewTaskFactory)
{
- this.loadNetworkFileTF = loadNetworkFileTF;
- this.createViewTaskFactory = createViewTaskFactory;
- this.url = url;
- }
-
- @Override
- public void run(TaskMonitor taskMonitor) throws Exception {
- taskMonitor.setTitle("Loading network...");
- taskMonitor.setStatusMessage("Loading network. Please
wait...");
- taskMonitor.setProgress(0.01d);
-
- final Set<CyNetwork> networks =
this.loadNetworkFileTF.loadCyNetworks(url);
- taskMonitor.setProgress(1.0d);
-
-
props.getProperties().setProperty(CyLayoutAlgorithmManager.DEFAULT_LAYOUT_PROPERTY_NAME,
CyLayoutAlgorithmManager.DEFAULT_LAYOUT_NAME);
- }
-
- }
-
@Override
public void actionPerformed(ActionEvent e) {
try {
Modified:
core3/impl/trunk/welcome-impl/src/main/java/org/cytoscape/welcome/internal/CyActivator.java
===================================================================
---
core3/impl/trunk/welcome-impl/src/main/java/org/cytoscape/welcome/internal/CyActivator.java
2012-03-22 19:54:19 UTC (rev 28618)
+++
core3/impl/trunk/welcome-impl/src/main/java/org/cytoscape/welcome/internal/CyActivator.java
2012-03-22 20:52:23 UTC (rev 28619)
@@ -10,6 +10,7 @@
import org.cytoscape.service.util.AbstractCyActivator;
import org.cytoscape.task.NetworkTaskFactory;
import org.cytoscape.task.creation.ImportNetworksTaskFactory;
+import org.cytoscape.task.creation.LoadSession;
import org.cytoscape.util.swing.OpenBrowser;
import org.cytoscape.work.TaskFactory;
import org.cytoscape.work.swing.SubmenuTaskManager;
@@ -24,13 +25,10 @@
CySwingApplication cytoscapeDesktop = getService(bc,
CySwingApplication.class);
OpenBrowser openBrowserServiceRef = getService(bc,
OpenBrowser.class);
RecentlyOpenedTracker recentlyOpenedTrackerServiceRef =
getService(bc, RecentlyOpenedTracker.class);
- TaskFactory openSessionTaskFactory = getService(bc,
TaskFactory.class, "(id=openSessionTaskFactory)");
+ LoadSession openSessionTaskFactory = getService(bc,
LoadSession.class);
SubmenuTaskManager submenuTaskManagerServiceRef =
getService(bc, SubmenuTaskManager.class);
TaskFactory importNetworkFileTF = getService(bc,
TaskFactory.class, "(id=loadNetworkFileTaskFactory)");
- ImportNetworksTaskFactory importNetworkTF = getService(bc,
ImportNetworksTaskFactory.class,
- "(id=loadNetworkURLTaskFactory)");
- NetworkTaskFactory createNetworkViewTaskFactory =
getService(bc, NetworkTaskFactory.class,
- "(id=createNetworkViewTaskFactory)");
+ ImportNetworksTaskFactory importNetworkTF = getService(bc,
ImportNetworksTaskFactory.class);
CyApplicationConfiguration cyApplicationConfigurationServiceRef
= getService(bc,
CyApplicationConfiguration.class);
DataSourceManager dsManagerServiceRef = getService(bc,
DataSourceManager.class);
@@ -40,7 +38,7 @@
// Show Welcome Screen
final WelcomeScreenAction welcomeScreenAction = new
WelcomeScreenAction(bc, cytoscapeDesktop,
openBrowserServiceRef,
recentlyOpenedTrackerServiceRef, openSessionTaskFactory,
- submenuTaskManagerServiceRef,
importNetworkFileTF, importNetworkTF, createNetworkViewTaskFactory,
+ submenuTaskManagerServiceRef,
importNetworkFileTF, importNetworkTF,
cyApplicationConfigurationServiceRef,
dsManagerServiceRef, cytoscapePropertiesServiceRef);
registerAllServices(bc, welcomeScreenAction, new Properties());
Modified:
core3/impl/trunk/welcome-impl/src/main/java/org/cytoscape/welcome/internal/OpenPanel.java
===================================================================
---
core3/impl/trunk/welcome-impl/src/main/java/org/cytoscape/welcome/internal/OpenPanel.java
2012-03-22 19:54:19 UTC (rev 28618)
+++
core3/impl/trunk/welcome-impl/src/main/java/org/cytoscape/welcome/internal/OpenPanel.java
2012-03-22 20:52:23 UTC (rev 28619)
@@ -43,12 +43,12 @@
private final RecentlyOpenedTracker fileTracker;
private final TaskManager taskManager;
- private final TaskFactory openSessionTaskFactory;
+ private final LoadSession openSessionTaskFactory;
Window parent;
OpenPanel(Window parent, final RecentlyOpenedTracker fileTracker, final
TaskManager taskManager,
- final TaskFactory openSessionTaskFactory) {
+ final LoadSession openSessionTaskFactory) {
this.fileTracker = fileTracker;
this.parent = parent;
this.taskManager = taskManager;
@@ -85,7 +85,7 @@
public void mouseClicked(MouseEvent e) {
try {
final File targetFile = new
File(target.toURI());
- taskManager.execute(new
TaskIterator(new OpenSessionDirectTask(targetFile)));
+
taskManager.execute(openSessionTaskFactory.loadSession(targetFile));
} catch (URISyntaxException e1) {
e1.printStackTrace();
}
@@ -104,32 +104,10 @@
@Override
public void mouseClicked(MouseEvent e) {
parent.dispose();
-
taskManager.execute(openSessionTaskFactory.createTaskIterator());
+
taskManager.execute(openSessionTaskFactory.loadSession());
}
});
this.add(open);
}
-
- private final class OpenSessionDirectTask extends AbstractTask {
-
- private final File file;
-
- OpenSessionDirectTask(final File file) {
- this.file = file;
- }
-
- @Override
- public void run(TaskMonitor taskMonitor) throws Exception {
- if(openSessionTaskFactory instanceof LoadSession) {
- taskMonitor.setTitle("Opening Session File");
- taskMonitor.setProgress(0.1d);
- taskMonitor.setStatusMessage("Opening session
file. Please wait...");
- LoadSession loadSession = (LoadSession)
openSessionTaskFactory;
- CySession session =
loadSession.loadSession(file);
- taskMonitor.setProgress(1.0d);
- }
- }
-
- }
}
Modified:
core3/impl/trunk/welcome-impl/src/main/java/org/cytoscape/welcome/internal/WelcomeScreenAction.java
===================================================================
---
core3/impl/trunk/welcome-impl/src/main/java/org/cytoscape/welcome/internal/WelcomeScreenAction.java
2012-03-22 19:54:19 UTC (rev 28618)
+++
core3/impl/trunk/welcome-impl/src/main/java/org/cytoscape/welcome/internal/WelcomeScreenAction.java
2012-03-22 20:52:23 UTC (rev 28619)
@@ -13,6 +13,7 @@
import org.cytoscape.property.CyProperty;
import org.cytoscape.task.NetworkTaskFactory;
import org.cytoscape.task.creation.ImportNetworksTaskFactory;
+import org.cytoscape.task.creation.LoadSession;
import org.cytoscape.util.swing.OpenBrowser;
import org.cytoscape.work.TaskFactory;
import org.cytoscape.work.TaskManager;
@@ -35,8 +36,7 @@
private final CyApplicationConfiguration config;
private final DataSourceManager dsManager;
- private final NetworkTaskFactory networkTaskFactory;
- private final TaskFactory openSessionTaskFactory;
+ private final LoadSession openSessionTaskFactory;
private final TaskFactory importNetworkFileTF;
private final CySwingApplication app;
@@ -47,9 +47,11 @@
private boolean hide = false;
public WelcomeScreenAction(final BundleContext bc, final
CySwingApplication app,
- OpenBrowser openBrowserServiceRef,
RecentlyOpenedTracker fileTracker, final TaskFactory openSessionTaskFactory,
TaskManager guiTaskManager,
- final TaskFactory importNetworkFileTF, final
ImportNetworksTaskFactory importNetworksTaskFactory, final NetworkTaskFactory
networkTaskFactory,
- final CyApplicationConfiguration config, final
DataSourceManager dsManager, final CyProperty<Properties> cyProps) {
+ OpenBrowser openBrowserServiceRef,
RecentlyOpenedTracker fileTracker,
+ final LoadSession openSessionTaskFactory, TaskManager
guiTaskManager,
+ final TaskFactory importNetworkFileTF, final
ImportNetworksTaskFactory importNetworksTaskFactory,
+ final CyApplicationConfiguration config, final
DataSourceManager dsManager,
+ final CyProperty<Properties> cyProps) {
super(MENU_NAME);
setPreferredMenu(PARENT_NAME);
@@ -57,7 +59,6 @@
this.fileTracker = fileTracker;
this.guiTaskManager = guiTaskManager;
this.importNetworksTaskFactory = importNetworksTaskFactory;
- this.networkTaskFactory = networkTaskFactory;
this.config = config;
this.dsManager = dsManager;
this.app = app;
@@ -76,8 +77,7 @@
@Override
public void actionPerformed(ActionEvent ae) {
- final WelcomeScreenDialog welcomeScreen = new
WelcomeScreenDialog(bc,openBrowser, fileTracker, openSessionTaskFactory,
guiTaskManager, config,
- importNetworkFileTF, importNetworksTaskFactory,
networkTaskFactory, dsManager, cyProps, hide);
+ final WelcomeScreenDialog welcomeScreen = new
WelcomeScreenDialog(bc,openBrowser, fileTracker, openSessionTaskFactory,
guiTaskManager, config, importNetworkFileTF, importNetworksTaskFactory,
dsManager, cyProps, hide);
welcomeScreen.setLocationRelativeTo(app.getJFrame());
welcomeScreen.setVisible(true);
this.hide = welcomeScreen.getHideStatus();
Modified:
core3/impl/trunk/welcome-impl/src/main/java/org/cytoscape/welcome/internal/WelcomeScreenDialog.java
===================================================================
---
core3/impl/trunk/welcome-impl/src/main/java/org/cytoscape/welcome/internal/WelcomeScreenDialog.java
2012-03-22 19:54:19 UTC (rev 28618)
+++
core3/impl/trunk/welcome-impl/src/main/java/org/cytoscape/welcome/internal/WelcomeScreenDialog.java
2012-03-22 20:52:23 UTC (rev 28619)
@@ -27,6 +27,7 @@
import org.cytoscape.property.CyProperty;
import org.cytoscape.task.NetworkTaskFactory;
import org.cytoscape.task.creation.ImportNetworksTaskFactory;
+import org.cytoscape.task.creation.LoadSession;
import org.cytoscape.util.swing.OpenBrowser;
import org.cytoscape.work.TaskFactory;
import org.cytoscape.work.TaskManager;
@@ -53,13 +54,12 @@
private final OpenBrowser openBrowserServiceRef;
private final RecentlyOpenedTracker fileTracker;
- private final TaskFactory openSessionTaskFactory;
+ private final LoadSession openSessionTaskFactory;
private final TaskManager guiTaskManager;
private final CyApplicationConfiguration config;
private final ImportNetworksTaskFactory loadNetworkTF;
- private final NetworkTaskFactory networkTaskFactory;
private final DataSourceManager dsManager;
@@ -70,15 +70,16 @@
final JCheckBox checkBox = new JCheckBox();
- public WelcomeScreenDialog(final BundleContext bc, OpenBrowser
openBrowserServiceRef, RecentlyOpenedTracker fileTracker, final TaskFactory
openSessionTaskFactory,
- TaskManager guiTaskManager, final
CyApplicationConfiguration config,
- final TaskFactory importNetworkFileTF, final
ImportNetworksTaskFactory importNetworkTF, final NetworkTaskFactory
networkTaskFactory,
- final DataSourceManager dsManager, final
CyProperty<Properties> cyProps, final boolean hide) {
+ public WelcomeScreenDialog(final BundleContext bc, OpenBrowser
openBrowserServiceRef,
+ RecentlyOpenedTracker fileTracker, final
LoadSession openSessionTaskFactory,
+ TaskManager
guiTaskManager, final CyApplicationConfiguration config,
+ final TaskFactory importNetworkFileTF, final
ImportNetworksTaskFactory importNetworkTF,
+ final DataSourceManager dsManager, final
CyProperty<Properties> cyProps,
+ final boolean hide) {
this.openBrowserServiceRef = openBrowserServiceRef;
this.fileTracker = fileTracker;
this.config = config;
this.loadNetworkTF = importNetworkTF;
- this.networkTaskFactory = networkTaskFactory;
this.dsManager = dsManager;
this.openSessionTaskFactory = openSessionTaskFactory;
this.importNetworkFileTF = importNetworkFileTF;
@@ -182,10 +183,7 @@
buildHelpPanel(panel1, new OpenPanel(this, fileTracker,
guiTaskManager, openSessionTaskFactory),
"Open a Recent Session");
- buildHelpPanel(panel2,
- new CreateNewNetworkPanel(this, bc,
guiTaskManager, importNetworkFileTF, loadNetworkTF, networkTaskFactory,
- config, dsManager, cyProps),
- "Create New Network");
+ buildHelpPanel(panel2, new CreateNewNetworkPanel(this, bc,
guiTaskManager, importNetworkFileTF, loadNetworkTF, config, dsManager,
cyProps), "Create New Network");
buildHelpPanel(panel3, new HelpPanel(openBrowserServiceRef,
cyProps), "Help");
buildHelpPanel(panel4, new LogoPanel(), "Latest News");
Modified:
core3/impl/trunk/work-swing-impl/impl/src/main/java/org/cytoscape/work/internal/CyActivator.java
===================================================================
---
core3/impl/trunk/work-swing-impl/impl/src/main/java/org/cytoscape/work/internal/CyActivator.java
2012-03-22 19:54:19 UTC (rev 28618)
+++
core3/impl/trunk/work-swing-impl/impl/src/main/java/org/cytoscape/work/internal/CyActivator.java
2012-03-22 20:52:23 UTC (rev 28619)
@@ -14,12 +14,15 @@
import org.cytoscape.work.TaskManager;
import org.cytoscape.work.TunableHandlerFactory;
import org.cytoscape.work.TunableRecorder;
+import org.cytoscape.work.TunableSetter;
import org.cytoscape.work.internal.submenu.SubmenuTaskManagerImpl;
import org.cytoscape.work.internal.submenu.SubmenuTunableHandlerImpl;
import org.cytoscape.work.internal.submenu.SubmenuTunableMutator;
import org.cytoscape.work.internal.sync.SyncTaskManager;
import org.cytoscape.work.internal.sync.SyncTunableHandlerFactory;
import org.cytoscape.work.internal.sync.SyncTunableMutator;
+import org.cytoscape.work.internal.sync.TunableSetterImpl;
+import org.cytoscape.work.internal.sync.TunableRecorderManager;
import org.cytoscape.work.internal.task.JDialogTaskManager;
import org.cytoscape.work.internal.task.JPanelTaskManager;
import org.cytoscape.work.internal.tunables.BooleanHandler;
@@ -161,5 +164,11 @@
registerServiceListener(bc,submenuTunableMutator,"addTunableHandlerFactory","removeTunableHandlerFactory",SubmenuTunableHandlerFactory.class,
TunableHandlerFactory.class);
registerServiceListener(bc,syncTunableMutator,"addTunableHandlerFactory","removeTunableHandlerFactory",SyncTunableHandlerFactory.class,
TunableHandlerFactory.class);
+
+ TunableRecorderManager trm = new TunableRecorderManager();
+
registerServiceListener(bc,trm,"addTunableRecorder","removeTunableRecorder",TunableRecorder.class);
+
+ TunableSetterImpl tsi = new
TunableSetterImpl(syncTunableMutator,trm);
+ registerService(bc,tsi,TunableSetter.class, new Properties());
}
-}
\ No newline at end of file
+}
Added:
core3/impl/trunk/work-swing-impl/impl/src/main/java/org/cytoscape/work/internal/sync/DelegateTask.java
===================================================================
---
core3/impl/trunk/work-swing-impl/impl/src/main/java/org/cytoscape/work/internal/sync/DelegateTask.java
(rev 0)
+++
core3/impl/trunk/work-swing-impl/impl/src/main/java/org/cytoscape/work/internal/sync/DelegateTask.java
2012-03-22 20:52:23 UTC (rev 28619)
@@ -0,0 +1,62 @@
+
+package org.cytoscape.work.internal.sync;
+
+
+import java.util.Map;
+
+import org.cytoscape.work.TaskIterator;
+import org.cytoscape.work.TaskFactory;
+import org.cytoscape.work.AbstractTask;
+import org.cytoscape.work.TaskMonitor;
+import org.cytoscape.work.Task;
+import org.cytoscape.work.TunableRecorder;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+public class DelegateTask extends AbstractTask {
+ private final SyncTunableMutator stm;
+ private final TunableRecorderManager trm;
+ private final TaskIterator ti;
+ private final Map<String,Object> tunableValues;
+
+ public DelegateTask(SyncTunableMutator stm, TunableRecorderManager trm,
TaskIterator ti, Map<String,Object> tunableValues) {
+ this.stm = stm;
+ this.trm = trm;
+ this.ti = ti;
+ this.tunableValues = tunableValues;
+ }
+
+ public void run(TaskMonitor tm) throws Exception {
+ // this ensures that we get a coherent task monitor
+ DelegatingTaskMonitor dtm = new
DelegatingTaskMonitor(tm,ti.getNumTasks());
+
+ // this gives the tunable mutator what it needs to set
+ // the tunables as the tasks get executed
+ stm.setConfigurationContext(tunableValues);
+
+ while (ti.hasNext()) {
+ final Task task = ti.next();
+ dtm.setTask(task);
+
+ if (!setTunables(task))
+ return;
+
+ task.run(dtm);
+ }
+ }
+
+ private boolean setTunables(final Object task) throws Exception {
+ if (task == null)
+ return true;
+
+ boolean ret = stm.validateAndWriteBack(task);
+
+ for ( TunableRecorder ti : trm.getRecorders() )
+ ti.recordTunableState(task);
+
+ return ret;
+ }
+}
+
Added:
core3/impl/trunk/work-swing-impl/impl/src/main/java/org/cytoscape/work/internal/sync/DelegatingTaskMonitor.java
===================================================================
---
core3/impl/trunk/work-swing-impl/impl/src/main/java/org/cytoscape/work/internal/sync/DelegatingTaskMonitor.java
(rev 0)
+++
core3/impl/trunk/work-swing-impl/impl/src/main/java/org/cytoscape/work/internal/sync/DelegatingTaskMonitor.java
2012-03-22 20:52:23 UTC (rev 28619)
@@ -0,0 +1,49 @@
+package org.cytoscape.work.internal.sync;
+
+
+import org.cytoscape.work.Task;
+import org.cytoscape.work.TaskMonitor;
+
+class DelegatingTaskMonitor implements TaskMonitor {
+
+ private double expectedNumTasks;
+ private double currentTaskNum = -1.0; // so that the first task is
numbered 0
+
+ private TaskMonitor actualTaskMonitor;
+
+ /**
+ * Based on the expected number of tasks, this is the fraction of the
overall
+ * task monitor that a given task is allocated. So, if there are 4
tasks
+ * executed with this task monitor, each task is allocated 0.25 of the
+ * space in the progress bar.
+ */
+ private double fractionOfOverall = 1.0;
+
+ DelegatingTaskMonitor(TaskMonitor tm, int expectedNumTasks) {
+ this.actualTaskMonitor = tm;
+ this.expectedNumTasks = (double)expectedNumTasks;
+ this.fractionOfOverall = 1.0/this.expectedNumTasks;
+ }
+
+ public void setTask(final Task newTask) {
+ this.currentTaskNum += 1.0;
+ }
+
+ public void setTitle(String title) {
+ actualTaskMonitor.setTitle(title);
+ }
+
+ public void setStatusMessage(String statusMessage) {
+ actualTaskMonitor.setStatusMessage(statusMessage);
+ }
+
+ public void setProgress(double progress) {
+ if ( progress < 0 ) {
+ actualTaskMonitor.setProgress(-1.0);
+ } else {
+ double completed = currentTaskNum/expectedNumTasks;
+ double adjustedProgress = (progress *
fractionOfOverall) + completed;
+ actualTaskMonitor.setProgress(adjustedProgress);
+ }
+ }
+}
Added:
core3/impl/trunk/work-swing-impl/impl/src/main/java/org/cytoscape/work/internal/sync/TunableRecorderManager.java
===================================================================
---
core3/impl/trunk/work-swing-impl/impl/src/main/java/org/cytoscape/work/internal/sync/TunableRecorderManager.java
(rev 0)
+++
core3/impl/trunk/work-swing-impl/impl/src/main/java/org/cytoscape/work/internal/sync/TunableRecorderManager.java
2012-03-22 20:52:23 UTC (rev 28619)
@@ -0,0 +1,31 @@
+
+package org.cytoscape.work.internal.sync;
+
+
+import java.util.Collections;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+
+import org.cytoscape.work.TunableRecorder;
+
+
+/**
+ */
+public class TunableRecorderManager {
+ private List<TunableRecorder> recorders = new
ArrayList<TunableRecorder>();
+
+ public void addTunableRecorder(TunableRecorder tr, Map props) {
+ if ( !recorders.contains(tr) )
+ recorders.add(tr);
+ }
+
+ public void removeTunableRecorder(TunableRecorder tr, Map props) {
+ recorders.remove(tr);
+ }
+
+ public List<TunableRecorder> getRecorders() {
+ return Collections.unmodifiableList(recorders);
+ }
+}
+
Added:
core3/impl/trunk/work-swing-impl/impl/src/main/java/org/cytoscape/work/internal/sync/TunableSetterImpl.java
===================================================================
---
core3/impl/trunk/work-swing-impl/impl/src/main/java/org/cytoscape/work/internal/sync/TunableSetterImpl.java
(rev 0)
+++
core3/impl/trunk/work-swing-impl/impl/src/main/java/org/cytoscape/work/internal/sync/TunableSetterImpl.java
2012-03-22 20:52:23 UTC (rev 28619)
@@ -0,0 +1,28 @@
+
+package org.cytoscape.work.internal.sync;
+
+
+import java.util.Map;
+
+import org.cytoscape.work.TunableSetter;
+import org.cytoscape.work.TaskIterator;
+import org.cytoscape.work.TaskFactory;
+
+
+/**
+ */
+public class TunableSetterImpl implements TunableSetter {
+
+ private final SyncTunableMutator stm;
+ private final TunableRecorderManager trm;
+
+ public TunableSetterImpl(SyncTunableMutator stm, TunableRecorderManager
trm) {
+ this.stm = stm;
+ this.trm = trm;
+ }
+
+ public TaskIterator createTaskIterator(TaskIterator ti,
Map<String,Object> tunableValues) {
+ return new TaskIterator(ti.getNumTasks(), new
DelegateTask(stm,trm,ti,tunableValues) );
+ }
+}
+
Added:
core3/impl/trunk/work-swing-impl/impl/src/test/java/org/cytoscape/work/internal/sync/DelegatingTaskMonitorTest.java
===================================================================
---
core3/impl/trunk/work-swing-impl/impl/src/test/java/org/cytoscape/work/internal/sync/DelegatingTaskMonitorTest.java
(rev 0)
+++
core3/impl/trunk/work-swing-impl/impl/src/test/java/org/cytoscape/work/internal/sync/DelegatingTaskMonitorTest.java
2012-03-22 20:52:23 UTC (rev 28619)
@@ -0,0 +1,101 @@
+
+package org.cytoscape.work.internal.sync;
+
+import static org.junit.Assert.*;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Properties;
+
+import org.cytoscape.work.AbstractTask;
+import org.cytoscape.work.AbstractTaskFactory;
+import org.cytoscape.work.TaskIterator;
+import org.cytoscape.work.TaskMonitor;
+import org.cytoscape.work.Tunable;
+import org.junit.Test;
+
+public class DelegatingTaskMonitorTest {
+
+ TestTaskMonitor ttm;
+ DelegatingTaskMonitor dtm;
+
+ private void setup(int numTasks) {
+ ttm = new TestTaskMonitor();
+ dtm = new DelegatingTaskMonitor(ttm, numTasks);
+ }
+
+ @Test
+ public void testSetTitle() {
+ setup(1);
+ dtm.setTitle("hello");
+ assertEquals( "hello", ttm.getTitle());
+ }
+
+ @Test
+ public void testSetMessage() {
+ setup(1);
+ dtm.setStatusMessage("goodbye");
+ assertEquals( "goodbye", ttm.getStatusMessage());
+ }
+
+ @Test
+ public void testProgressTwo() {
+ setup(2);
+ dtm.setTask(null);
+ dtm.setProgress(0.5);
+ dequals(0.25,ttm.getProgress());
+ dtm.setProgress(1.0);
+ dequals(0.5,ttm.getProgress());
+ dtm.setTask(null);
+ dtm.setProgress(0.5);
+ dequals(0.75,ttm.getProgress());
+ dtm.setProgress(1.0);
+ dequals(1.0,ttm.getProgress());
+ }
+
+ @Test
+ public void testProgressOne() {
+ setup(1);
+ dtm.setTask(null);
+ dtm.setProgress(0.5);
+ dequals(0.5,ttm.getProgress());
+ dtm.setProgress(1.0);
+ dequals(1.0,ttm.getProgress());
+ }
+
+ @Test
+ public void testProgressFour() {
+ setup(4);
+ dtm.setTask(null);
+ dtm.setProgress(1.0);
+ dequals(0.25,ttm.getProgress());
+
+ dtm.setTask(null);
+ dtm.setProgress(1.0);
+ dequals(0.5,ttm.getProgress());
+
+ dtm.setTask(null);
+ dtm.setProgress(1.0);
+ dequals(0.75,ttm.getProgress());
+
+ dtm.setTask(null);
+ dtm.setProgress(1.0);
+ dequals(1.0,ttm.getProgress());
+ }
+
+ private void dequals(double a, double b) {
+ assertTrue((Math.abs(a-b) < 0.0000001));
+ }
+
+ private class TestTaskMonitor implements TaskMonitor {
+ private String title;
+ private String msg;
+ private double progress;
+ public void setTitle(String t) { title = t; }
+ public void setStatusMessage(String m) { msg = m; }
+ public void setProgress(double p) { progress = p; }
+ public String getTitle() { return title; }
+ public String getStatusMessage() { return msg; }
+ public double getProgress() { return progress; }
+ }
+}
--
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.