You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@taverna.apache.org by st...@apache.org on 2016/10/21 09:48:36 UTC

[02/29] incubator-taverna-workbench git commit: add service panel etc

add service panel etc


Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/commit/745f0a7c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/tree/745f0a7c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/diff/745f0a7c

Branch: refs/heads/master
Commit: 745f0a7cc2f50916e148426e8b9037f433cbcbe3
Parents: 2a4278f
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Thu Aug 18 15:54:28 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Oct 21 09:16:26 2016 +0200

----------------------------------------------------------------------
 taverna-workbench-impl/pom.xml                  |  15 +-
 .../workbench/ui/impl/WorkbenchTest.java        | 247 ++++++++++++++++---
 2 files changed, 222 insertions(+), 40 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/745f0a7c/taverna-workbench-impl/pom.xml
----------------------------------------------------------------------
diff --git a/taverna-workbench-impl/pom.xml b/taverna-workbench-impl/pom.xml
index cab4f94..6fda97b 100644
--- a/taverna-workbench-impl/pom.xml
+++ b/taverna-workbench-impl/pom.xml
@@ -211,6 +211,13 @@
 			<scope>test</scope>
 		</dependency>
 		<dependency>
+			<groupId>org.apache.taverna.osgi</groupId>
+			<artifactId>taverna-configuration-impl</artifactId>
+			<version>${taverna.osgi.version}</version>
+			<scope>test</scope>
+		</dependency>
+
+		<dependency>
 			<groupId>org.apache.taverna.engine</groupId>
 			<artifactId>taverna-services-impl</artifactId>
 			<version>${taverna.engine.version}</version>
@@ -227,7 +234,13 @@
 			<artifactId>taverna-activity-palette-impl</artifactId>
 			<version>${project.parent.version}</version>
 			<scope>test</scope>
-		</dependency>						
+		</dependency>
+		<dependency>
+			<groupId>${project.parent.groupId}</groupId>
+			<artifactId>taverna-configuration-ui-impl</artifactId>
+			<version>${project.parent.version}</version>
+			<scope>test</scope>
+		</dependency>
 		<dependency>
 			<groupId>commons-beanutils</groupId>
 			<artifactId>commons-beanutils</artifactId>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/745f0a7c/taverna-workbench-impl/src/test/java/org/apache/taverna/workbench/ui/impl/WorkbenchTest.java
----------------------------------------------------------------------
diff --git a/taverna-workbench-impl/src/test/java/org/apache/taverna/workbench/ui/impl/WorkbenchTest.java b/taverna-workbench-impl/src/test/java/org/apache/taverna/workbench/ui/impl/WorkbenchTest.java
index 9996dd0..653894a 100644
--- a/taverna-workbench-impl/src/test/java/org/apache/taverna/workbench/ui/impl/WorkbenchTest.java
+++ b/taverna-workbench-impl/src/test/java/org/apache/taverna/workbench/ui/impl/WorkbenchTest.java
@@ -11,13 +11,23 @@ import java.util.Map;
 import java.util.ServiceLoader;
 import java.util.Set;
 
+import javax.swing.ImageIcon;
+
 import org.apache.commons.beanutils.BeanUtils;
+import org.apache.taverna.configuration.Configurable;
+import org.apache.taverna.configuration.ConfigurationManager;
 import org.apache.taverna.configuration.app.ApplicationConfiguration;
 import org.apache.taverna.configuration.app.impl.ApplicationConfigurationImpl;
+import org.apache.taverna.configuration.impl.ConfigurationManagerImpl;
+import org.apache.taverna.lang.observer.Observer;
 import org.apache.taverna.plugin.Plugin;
 import org.apache.taverna.plugin.PluginException;
 import org.apache.taverna.plugin.PluginManager;
 import org.apache.taverna.plugin.xml.jaxb.PluginVersions;
+import org.apache.taverna.scufl2.api.common.WorkflowBean;
+import org.apache.taverna.scufl2.api.profiles.Profile;
+import org.apache.taverna.scufl2.validation.Status;
+import org.apache.taverna.scufl2.validation.WorkflowBeanReport;
 import org.apache.taverna.security.credentialmanager.CMException;
 import org.apache.taverna.security.credentialmanager.CredentialManager;
 import org.apache.taverna.security.credentialmanager.impl.CredentialManagerImpl;
@@ -35,22 +45,34 @@ import org.apache.taverna.ui.perspectives.design.DesignPerspective;
 import org.apache.taverna.ui.perspectives.results.ResultsPerspective;
 import org.apache.taverna.workbench.ShutdownSPI;
 import org.apache.taverna.workbench.StartupSPI;
+import org.apache.taverna.workbench.activityicons.ActivityIconManager;
+import org.apache.taverna.workbench.activityicons.ActivityIconSPI;
+import org.apache.taverna.workbench.activityicons.impl.ActivityIconManagerImpl;
+import org.apache.taverna.workbench.configuration.colour.ColourManager;
 import org.apache.taverna.workbench.configuration.workbench.WorkbenchConfiguration;
 import org.apache.taverna.workbench.edits.EditManager;
 import org.apache.taverna.workbench.edits.impl.EditManagerImpl;
 import org.apache.taverna.workbench.file.FileManager;
 import org.apache.taverna.workbench.file.impl.FileManagerImpl;
+import org.apache.taverna.workbench.report.ReportManager;
+import org.apache.taverna.workbench.report.ReportManagerEvent;
 import org.apache.taverna.workbench.selection.SelectionManager;
 import org.apache.taverna.workbench.selection.impl.SelectionManagerImpl;
 import org.apache.taverna.workbench.ui.credentialmanager.startup.InitialiseSSLStartupHook;
 import org.apache.taverna.workbench.ui.credentialmanager.startup.SetCredManAuthenticatorStartupHook;
+import org.apache.taverna.workbench.ui.impl.configuration.colour.ColourManagerImpl;
 import org.apache.taverna.workbench.ui.servicepanel.ServicePanelComponentFactory;
 import org.apache.taverna.workbench.ui.views.contextualviews.activity.ContextualViewFactory;
 import org.apache.taverna.workbench.ui.views.contextualviews.activity.ContextualViewFactoryRegistry;
 import org.apache.taverna.workbench.ui.views.contextualviews.activity.impl.ContextualViewFactoryRegistryImpl;
 import org.apache.taverna.workbench.ui.views.contextualviews.impl.ContextualViewComponentFactory;
+import org.apache.taverna.workbench.ui.workflowexplorer.WorkflowExplorerFactory;
 import org.apache.taverna.workbench.ui.zaria.PerspectiveSPI;
 import org.apache.taverna.workbench.ui.zaria.UIComponentFactorySPI;
+import org.apache.taverna.workbench.ui.zaria.UIComponentSPI;
+import org.apache.taverna.workbench.views.graph.GraphViewComponent;
+import org.apache.taverna.workbench.views.graph.GraphViewComponentFactory;
+import org.apache.taverna.workbench.views.graph.config.GraphViewConfiguration;
 
 public class WorkbenchTest {
 
@@ -75,6 +97,9 @@ public class WorkbenchTest {
 	private CredentialManagerImpl credentialManager;
 	private ContextualViewFactoryRegistryImpl registry;
 	private ServicePanelComponentFactory servicePanelFactory;
+	private WorkflowExplorerFactory workflowExplorerFactory;
+	private ServiceDescriptionRegistryImpl serviceDescriptionRegistry;
+	private ConfigurationManagerImpl configurationManager;
 
 	public FileManager getFileManager() {
 		if (fileManager == null) {
@@ -103,22 +128,15 @@ public class WorkbenchTest {
 
 	public List<MenuComponent> getMenuComponents() {
 		if (menuComponents == null) {
+			// This does not work as many of the actions are set in  constructor
+			// rather than with setters
+//			menuComponents = serviceLoader(MenuComponent.class);
+			
+			// Instead, we'll make an empty menu
 			menuComponents = new ArrayList<>();
 			menuComponents.add(new DefaultMenuBar());
-			menuComponents.add(new DefaultToolBar());
-			
-//			for (MenuComponent mc : ServiceLoader.load(MenuComponent.class)) {
-//				try {
-//					BeanUtils.copyProperties(this, mc);
-//					// This does not work as many of the actions are set in  constructor
-					// rather than with setters
-//				} catch (IllegalAccessException | InvocationTargetException e) {
-//					e.printStackTrace();
-//				}
-//				menuComponents.add(mc);
-//			}
+			menuComponents.add(new DefaultToolBar());			
 		}
-		// FIXME: Should not be an empty list
 		return menuComponents;
 	}
 
@@ -143,14 +161,180 @@ public class WorkbenchTest {
 		p.setEditManager(getEditManager());
 		p.setFileManager(getFileManager());
 		p.setMenuManager(getMenuManager());
-		p.setContextualViewComponentFactory(getContextualViewComponentFactory());
+		p.setSelectionManager(getSelectionManager());
+
 		p.setServicePanelComponentFactory(getServicePanelComponentFactory());
+		p.setWorkflowExplorerFactory(getWorkflowExplorerFactory());
+		p.setReportViewComponentFactory(getReportViewComponentFactory());
+		p.setContextualViewComponentFactory(getContextualViewComponentFactory());
+		p.setGraphViewComponentFactory(getGraphViewComponentFactory());
 		
 		// TODO: More setters
 		return p;
 	}
 
-	private UIComponentFactorySPI getServicePanelComponentFactory() {
+	private UIComponentFactorySPI getGraphViewComponentFactory() {
+		GraphViewComponentFactory f = new GraphViewComponentFactory();
+		f.setColourManager(getColourManager());
+		f.setEditManager(getEditManager());
+		f.setFileManager(getFileManager());
+		f.setGraphViewConfiguration(getGraphViewConfiguration());
+		f.setMenuManager(getMenuManager());
+		f.setSelectionManager(getSelectionManager());
+		f.setServiceRegistry(getServiceRegistry());
+		f.setWorkbenchConfiguration(getWorkbenchConfiguration());
+		return f;
+	}
+
+	private GraphViewConfiguration getGraphViewConfiguration() {
+		return new GraphViewConfiguration(getConfigurationManager());
+	}
+
+	private ColourManager getColourManager() {
+		return new ColourManagerImpl(getConfigurationManager());
+	}
+
+	public ConfigurationManager getConfigurationManager() {
+		if (configurationManager == null) {
+			configurationManager = new ConfigurationManagerImpl(getApplicationConfiguration());			
+		}
+		return configurationManager;
+	}
+
+	private UIComponentFactorySPI getReportViewComponentFactory() {
+		// The report view is broken, so we'll return a dummy instead.
+		return dummyUiComponentFactory("Report view not implemented");
+	}
+
+	private UIComponentFactorySPI dummyUiComponentFactory(final String message) {
+		return new UIComponentFactorySPI() {			
+			@Override
+			public String getName() {
+				return message;
+			}
+			
+			@Override
+			public ImageIcon getIcon() {
+				return null;
+			}			
+			@Override
+			public UIComponentSPI getComponent() {
+				return new UIComponentSPI() {					
+					@Override
+					public void onDispose() {
+					}
+					
+					@Override
+					public void onDisplay() {
+					}
+					
+					@Override
+					public String getName() {
+						return message;
+					}
+					
+					@Override
+					public ImageIcon getIcon() {
+						return null;
+					}
+				};
+			}
+		};
+	}
+
+	public UIComponentFactorySPI getWorkflowExplorerFactory() {
+		if (workflowExplorerFactory == null) {
+			workflowExplorerFactory = new WorkflowExplorerFactory();
+			workflowExplorerFactory.setFileManager(getFileManager());
+			workflowExplorerFactory.setEditManager(getEditManager());
+			workflowExplorerFactory.setActivityIconManager(getActivityIconManager());
+			workflowExplorerFactory.setMenuManager(getMenuManager());
+			workflowExplorerFactory.setReportManager(getReportManager());
+			workflowExplorerFactory.setSelectionManager(getSelectionManager());
+			workflowExplorerFactory.setServiceRegistry(getServiceRegistry());			
+		}
+		return workflowExplorerFactory;
+	}
+
+	private ReportManager getReportManager() {
+		// FIXME: ReportManagerImpl does not currently compile.. so we'll give a dummy instead
+		return new ReportManager() {
+			@Override
+			public void updateReport(Profile p, boolean includeTimeConsuming, boolean remember) {
+			}
+			@Override
+			public void updateObjectSetReport(Profile p, Set<WorkflowBean> objects) {
+			}
+			@Override
+			public void updateObjectReport(Profile p, WorkflowBean o) {
+			}
+			@Override
+			public void removeObserver(Observer<ReportManagerEvent> observer) {
+			}
+			@Override
+			public boolean isStructurallySound(Profile p) {
+				return true;
+			}
+			@Override
+			public String getSummaryMessage(Profile p, WorkflowBean object) {
+				return "Dummy report";
+			}
+			@Override
+			public Status getStatus(Profile p, WorkflowBean object) {
+				return Status.OK;
+			}
+			@Override
+			public Status getStatus(Profile p) {
+				return Status.OK;
+			}
+			@Override
+			public Set<WorkflowBeanReport> getReports(Profile p, WorkflowBean object) {
+				return Collections.emptySet();
+			}
+			@Override
+			public Map<WorkflowBean, Set<WorkflowBeanReport>> getReports(Profile p) {
+				return Collections.emptyMap();
+			}
+			@Override
+			public List<Observer<ReportManagerEvent>> getObservers() {
+				return Collections.emptyList();
+			}
+			@Override
+			public long getLastFullCheckedTime(Profile p) {
+				return 0;
+			}
+			@Override
+			public long getLastCheckedTime(Profile p) {
+				return 0;
+			}			
+			@Override
+			public void addObserver(Observer<ReportManagerEvent> observer) {
+			}
+		};
+	}
+
+	private ActivityIconManager getActivityIconManager() {
+		ActivityIconManagerImpl activityIconManagerImpl = new ActivityIconManagerImpl();
+		activityIconManagerImpl.setActivityIcons(serviceLoader(ActivityIconSPI.class));
+		return activityIconManagerImpl;
+	}
+
+	@SuppressWarnings("unchecked")
+	private <T> List<T> serviceLoader(Class<T> klass) {
+		List<T> spis = new ArrayList<>();
+		for (T impl : ServiceLoader.load(klass)) { 
+			spis.add(impl);
+			try {
+				BeanUtils.copyProperties(this, impl);
+			} catch (IllegalAccessException | InvocationTargetException e) {
+				e.printStackTrace();
+				// continue;
+			}
+		}
+		return spis;
+	}
+
+	public UIComponentFactorySPI getServicePanelComponentFactory() {
 		if (servicePanelFactory == null) {
 			servicePanelFactory = new ServicePanelComponentFactory();		
 			servicePanelFactory.setEditManager(getEditManager());
@@ -168,19 +352,11 @@ public class WorkbenchTest {
 	}
 
 	public ServiceDescriptionRegistry getServiceDescriptionRegistry() {
-		ServiceDescriptionRegistryImpl serviceDescriptionRegistryImpl = new ServiceDescriptionRegistryImpl(getApplicationConfiguration());		
-		List<ServiceDescriptionProvider> serviceProviders = new ArrayList<>();
-		for (ServiceDescriptionProvider sdp : ServiceLoader.load(ServiceDescriptionProvider.class)) {
-			try {
-				BeanUtils.copyProperties(this, sdp);
-			} catch (IllegalAccessException | InvocationTargetException e) {
-				e.printStackTrace();
-			}
-			serviceProviders.add(sdp);
+		if (serviceDescriptionRegistry == null) {
+			serviceDescriptionRegistry = new ServiceDescriptionRegistryImpl(getApplicationConfiguration());
+			serviceDescriptionRegistry.setServiceDescriptionProvidersList(serviceLoader(ServiceDescriptionProvider.class));
 		}
-		
-		serviceDescriptionRegistryImpl.setServiceDescriptionProvidersList(serviceProviders);
-		return serviceDescriptionRegistryImpl;
+		return serviceDescriptionRegistry;
 	}
 
 	public UIComponentFactorySPI getContextualViewComponentFactory() {
@@ -191,19 +367,12 @@ public class WorkbenchTest {
 		return contextualViewComponentFactory;
 	}
 
+	@SuppressWarnings({ "unchecked", "rawtypes" })
 	public ContextualViewFactoryRegistry getContextualViewFactoryRegistry() {
 		if (registry == null) { 
-			registry = new ContextualViewFactoryRegistryImpl();
-			List<ContextualViewFactory<?>> views = new ArrayList<>();
-			for (ContextualViewFactory view : ServiceLoader.load(ContextualViewFactory.class)) {
-				try {
-					BeanUtils.copyProperties(this, view);
-				} catch (Exception e) {
-					e.printStackTrace();
-				}
-				views.add(view);
-			}			
-			registry.setContextualViewFactories(views);
+			registry = new ContextualViewFactoryRegistryImpl();			
+			List serviceLoader = serviceLoader(ContextualViewFactory.class);
+			registry.setContextualViewFactories(serviceLoader);
 		}
 		return registry;
 	}
@@ -226,7 +395,7 @@ public class WorkbenchTest {
 		return workbench;
 	}
 
-	private WorkbenchConfiguration getWorkbenchConfiguration() {
+	public WorkbenchConfiguration getWorkbenchConfiguration() {
 		return new WorkbenchConfiguration() {
 			@Override
 			public Map<String, String> getDefaultPropertyMap() {