more perspectives..
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/2a4278f4 Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/tree/2a4278f4 Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/diff/2a4278f4 Branch: refs/heads/master Commit: 2a4278f4d07b73741a30d6d78d7c16147f21de41 Parents: d234ff1 Author: Stian Soiland-Reyes <[email protected]> Authored: Thu Aug 18 15:22:38 2016 +0100 Committer: Stian Soiland-Reyes <[email protected]> Committed: Fri Oct 21 09:16:26 2016 +0200 ---------------------------------------------------------------------- taverna-workbench-impl/pom.xml | 18 +++++ .../workbench/ui/impl/WorkbenchTest.java | 82 ++++++++++++++++++++ 2 files changed, 100 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/2a4278f4/taverna-workbench-impl/pom.xml ---------------------------------------------------------------------- diff --git a/taverna-workbench-impl/pom.xml b/taverna-workbench-impl/pom.xml index 8a97e2e..cab4f94 100644 --- a/taverna-workbench-impl/pom.xml +++ b/taverna-workbench-impl/pom.xml @@ -211,6 +211,24 @@ <scope>test</scope> </dependency> <dependency> + <groupId>org.apache.taverna.engine</groupId> + <artifactId>taverna-services-impl</artifactId> + <version>${taverna.engine.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>${project.parent.groupId}</groupId> + <artifactId>taverna-contextual-views-impl</artifactId> + <version>${project.parent.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>${project.parent.groupId}</groupId> + <artifactId>taverna-activity-palette-impl</artifactId> + <version>${project.parent.version}</version> + <scope>test</scope> + </dependency> + <dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> <version>1.9.2</version> http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/2a4278f4/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 43eee47..9996dd0 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 @@ -1,5 +1,6 @@ package org.apache.taverna.workbench.ui.impl; +import java.lang.reflect.InvocationTargetException; import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; @@ -7,8 +8,10 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.Map; +import java.util.ServiceLoader; import java.util.Set; +import org.apache.commons.beanutils.BeanUtils; import org.apache.taverna.configuration.app.ApplicationConfiguration; import org.apache.taverna.configuration.app.impl.ApplicationConfigurationImpl; import org.apache.taverna.plugin.Plugin; @@ -18,6 +21,13 @@ import org.apache.taverna.plugin.xml.jaxb.PluginVersions; import org.apache.taverna.security.credentialmanager.CMException; import org.apache.taverna.security.credentialmanager.CredentialManager; import org.apache.taverna.security.credentialmanager.impl.CredentialManagerImpl; +import org.apache.taverna.servicedescriptions.ServiceDescriptionProvider; +import org.apache.taverna.servicedescriptions.ServiceDescriptionRegistry; +import org.apache.taverna.servicedescriptions.impl.ServiceDescriptionRegistryImpl; +import org.apache.taverna.services.ServiceRegistry; +import org.apache.taverna.services.impl.ServiceRegistryImpl; +import org.apache.taverna.ui.menu.DefaultMenuBar; +import org.apache.taverna.ui.menu.DefaultToolBar; import org.apache.taverna.ui.menu.MenuComponent; import org.apache.taverna.ui.menu.MenuManager; import org.apache.taverna.ui.menu.impl.MenuManagerImpl; @@ -34,7 +44,13 @@ 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.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.zaria.PerspectiveSPI; +import org.apache.taverna.workbench.ui.zaria.UIComponentFactorySPI; public class WorkbenchTest { @@ -57,6 +73,8 @@ public class WorkbenchTest { private SelectionManagerImpl selectionManager; private List<MenuComponent> menuComponents; private CredentialManagerImpl credentialManager; + private ContextualViewFactoryRegistryImpl registry; + private ServicePanelComponentFactory servicePanelFactory; public FileManager getFileManager() { if (fileManager == null) { @@ -86,6 +104,9 @@ public class WorkbenchTest { public List<MenuComponent> getMenuComponents() { if (menuComponents == null) { menuComponents = new ArrayList<>(); + menuComponents.add(new DefaultMenuBar()); + menuComponents.add(new DefaultToolBar()); + // for (MenuComponent mc : ServiceLoader.load(MenuComponent.class)) { // try { // BeanUtils.copyProperties(this, mc); @@ -122,10 +143,71 @@ public class WorkbenchTest { p.setEditManager(getEditManager()); p.setFileManager(getFileManager()); p.setMenuManager(getMenuManager()); + p.setContextualViewComponentFactory(getContextualViewComponentFactory()); + p.setServicePanelComponentFactory(getServicePanelComponentFactory()); + // TODO: More setters return p; } + private UIComponentFactorySPI getServicePanelComponentFactory() { + if (servicePanelFactory == null) { + servicePanelFactory = new ServicePanelComponentFactory(); + servicePanelFactory.setEditManager(getEditManager()); + servicePanelFactory.setMenuManager(getMenuManager()); + servicePanelFactory.setSelectionManager(getSelectionManager()); + servicePanelFactory.setServiceDescriptionRegistry(getServiceDescriptionRegistry()); + servicePanelFactory.setServiceRegistry(getServiceRegistry()); + } + + return servicePanelFactory; + } + + public ServiceRegistry getServiceRegistry() { + return new ServiceRegistryImpl(); + } + + 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); + } + + serviceDescriptionRegistryImpl.setServiceDescriptionProvidersList(serviceProviders); + return serviceDescriptionRegistryImpl; + } + + public UIComponentFactorySPI getContextualViewComponentFactory() { + ContextualViewComponentFactory contextualViewComponentFactory = new ContextualViewComponentFactory(); + contextualViewComponentFactory.setEditManager(getEditManager()); + contextualViewComponentFactory.setSelectionManager(getSelectionManager()); + contextualViewComponentFactory.setContextualViewFactoryRegistry(getContextualViewFactoryRegistry()); + return contextualViewComponentFactory; + } + + 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); + } + return registry; + } + public List<PerspectiveSPI> getPerspectives() { return Arrays.asList(getDesignPerspective(), getResultsPerspective()); }
