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 <[email protected]>
Authored: Thu Aug 18 15:54:28 2016 +0100
Committer: Stian Soiland-Reyes <[email protected]>
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() {

Reply via email to