Finalisation and clean of the architecture after first step of slc RCP UI prototype...
authorBruno Sinou <bsinou@argeo.org>
Tue, 28 Sep 2010 09:50:11 +0000 (09:50 +0000)
committerBruno Sinou <bsinou@argeo.org>
Tue, 28 Sep 2010 09:50:11 +0000 (09:50 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk@3808 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

20 files changed:
eclipse/plugins/org.argeo.slc.client.core/.classpath
eclipse/plugins/org.argeo.slc.client.core/.settings/org.eclipse.jdt.core.prefs
eclipse/plugins/org.argeo.slc.client.core/META-INF/MANIFEST.MF
eclipse/plugins/org.argeo.slc.client.core/src/main/java/org/argeo/slc/client/aspects/ContentProviderAspect.java
eclipse/plugins/org.argeo.slc.client.core/src/main/java/org/argeo/slc/client/contentprovider/ProcessListStructuredContentProvider.java [new file with mode: 0644]
eclipse/plugins/org.argeo.slc.client.core/src/main/java/org/argeo/slc/client/contentprovider/ProcessListTableLabelProvider.java [new file with mode: 0644]
eclipse/plugins/org.argeo.slc.client.core/src/main/java/org/argeo/slc/client/core/ProcessListTableContent.java [deleted file]
eclipse/plugins/org.argeo.slc.client.core/src/main/java/org/argeo/slc/client/core/TableContent.java [deleted file]
eclipse/plugins/org.argeo.slc.client.hibernate/META-INF/MANIFEST.MF
eclipse/plugins/org.argeo.slc.client.hibernate/META-INF/spring/core-osgi.xml [deleted file]
eclipse/plugins/org.argeo.slc.client.hibernate/META-INF/spring/core.xml
eclipse/plugins/org.argeo.slc.client.hibernate/META-INF/spring/osgi.xml [new file with mode: 0644]
eclipse/plugins/org.argeo.slc.client.hibernate/META-INF/spring/transaction-osgi.xml [deleted file]
eclipse/plugins/org.argeo.slc.client.hibernate/META-INF/spring/transaction.xml
eclipse/plugins/org.argeo.slc.client.ui/META-INF/MANIFEST.MF
eclipse/plugins/org.argeo.slc.client.ui/META-INF/spring/osgi.xml
eclipse/plugins/org.argeo.slc.client.ui/META-INF/spring/views.xml
eclipse/plugins/org.argeo.slc.client.ui/src/org/argeo/slc/client/ui/views/ProcessListContentProvider.java [deleted file]
eclipse/plugins/org.argeo.slc.client.ui/src/org/argeo/slc/client/ui/views/ProcessListTableLabelProvider.java [deleted file]
eclipse/plugins/org.argeo.slc.client.ui/src/org/argeo/slc/client/ui/views/ProcessListView.java

index 8cf7f48a042a0cc96dfada5bf36efafd90b7b9e4..92f19d2ff95b83a87f5210157582c70bb070ed48 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
        <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
        <classpathentry kind="src" path="src/main/java"/>
        <classpathentry kind="output" path="target/classes"/>
index bf75ec917501001204f2582f84fbe10d8a916ebb..91bcc67af4daea55205834e9982bea48a6994ae8 100644 (file)
@@ -1,8 +1,8 @@
-#Wed Sep 22 12:21:25 CEST 2010
+#Tue Sep 28 09:36:19 CEST 2010
 eclipse.preferences.version=1
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.compiler.source=1.5
index 3860d2ac4e6c36ac89bf7031b9602be9cb0adc4c..ba13ce9c7466138fac003908ea0ddc16f36106e2 100644 (file)
@@ -5,9 +5,13 @@ Bundle-SymbolicName: org.argeo.slc.client.core
 Bundle-Version: 1.0.0.qualifier
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Export-Package: org.argeo.slc.client.aspects,
- org.argeo.slc.client.core
+ org.argeo.slc.client.contentprovider
+Require-Bundle: org.springframework.orm;bundle-version="2.5.6",
+ org.eclipse.ui;resolution:=optional
 Import-Package: org.apache.commons.io;version="1.4.0",
  org.apache.commons.logging;version="1.1.1",
+ org.argeo.eclipse.spring,
+ org.argeo.eclipse.ui,
  org.argeo.slc.dao.process,
  org.argeo.slc.process,
  org.aspectj.lang,
@@ -16,4 +20,3 @@ Import-Package: org.apache.commons.io;version="1.4.0",
  org.hibernate.classic,
  org.springframework.beans.factory;version="2.5.6.SEC01",
  org.springframework.transaction;version="2.5.6.SEC01"
-Require-Bundle: org.springframework.orm;bundle-version="2.5.6"
index 1651efaeb579f22062594c240eb749c72d35f93b..0cd9c28d775b675e392e44ea10beccc9fdb3311b 100644 (file)
@@ -1,72 +1,49 @@
 package org.argeo.slc.client.aspects;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.aspectj.lang.ProceedingJoinPoint;
 import org.aspectj.lang.annotation.Around;
 import org.aspectj.lang.annotation.Aspect;
 import org.hibernate.LockMode;
 import org.hibernate.SessionFactory;
-import org.springframework.orm.hibernate3.HibernateTransactionManager;
-import org.springframework.transaction.PlatformTransactionManager;
+
+/**
+ * Intercepts all calls to get methods of the
+ * org.argeo.slc.client.contentprovider package to insure that objects that are
+ * to be rendered in views are correctly linked to the hibernate session.
+ * 
+ * @author bsinou
+ * 
+ */
 
 @Aspect
 public class ContentProviderAspect {
 
-       private final static Log log = LogFactory
-                       .getLog(ContentProviderAspect.class);
+       // private final static Log log = LogFactory
+       // .getLog(ContentProviderAspect.class);
 
        private SessionFactory sessionFactory;
-       private HibernateTransactionManager transactionManager;
 
        // Advices
-       @Around("execution (* org.argeo.slc.client.core.*.get*(Object, int))")
+       @Around("execution (* org.argeo.slc.client.contentprovider.*.get*(Object, int))")
        public Object aroundGetVariable(ProceedingJoinPoint thisJoinPoint)
                        throws Throwable {
 
-               // log.debug("***************** IN THE ASPECT. Before proceed");
-               // log.debug("We have an open session : "
-               // + sessionFactory.getCurrentSession().isOpen());
-               // log.debug("Current transaction is active : "
-               // + sessionFactory.getCurrentSession().getTransaction()
-               // .isActive());
-
                Object o = thisJoinPoint.getArgs()[0];
+
+               // TODO : find a mean to handle session & manager with txManager
+               // in order to not have to re-begin a transaction here.
                sessionFactory.getCurrentSession().beginTransaction();
+               
                // reassociate a transient instance with a session (LockMode.NONE).
                sessionFactory.getCurrentSession().lock(o, LockMode.NONE);
+               
                Object result = thisJoinPoint.proceed();
                sessionFactory.getCurrentSession().getTransaction().commit();
-
-               // log.debug("**************** IN THE ASPECT. After proceed");
                return result;
        }
 
-       // @Before("methodeTrace()")
-       // public void log(JoinPoint joinPoint) {
-       // log.info("Before calling " + joinPoint.getSignature().getName());
-       // log.debug("SessionFactory " + sessionFactory.toString());
-       // }
-
-       // @Around("methodeTrace()")
-       // public void proxyCalling(JoinPoint joinPoint) {
-       // log.info("*********** We Call the method "
-       // + joinPoint.getSignature().getName());
-       // }
-       //
-       // // Pointcuts
-       // @Pointcut("execution(* org.argeo.slc.client.core.ProcessListTableContent.set*(..))")
-       // public void methodeTrace() {
-       // }
-
        // IoC
        public void setSessionFactory(SessionFactory sessionFactory) {
                this.sessionFactory = sessionFactory;
        }
-
-       public void setTransactionManager(
-                       PlatformTransactionManager transactionManager) {
-               if (transactionManager instanceof HibernateTransactionManager)
-                       this.transactionManager = (HibernateTransactionManager) transactionManager;
-       }
 }
diff --git a/eclipse/plugins/org.argeo.slc.client.core/src/main/java/org/argeo/slc/client/contentprovider/ProcessListStructuredContentProvider.java b/eclipse/plugins/org.argeo.slc.client.core/src/main/java/org/argeo/slc/client/contentprovider/ProcessListStructuredContentProvider.java
new file mode 100644 (file)
index 0000000..eecf749
--- /dev/null
@@ -0,0 +1,37 @@
+package org.argeo.slc.client.contentprovider;
+
+import java.util.List;
+
+import org.argeo.slc.process.SlcExecution;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+
+/**
+ * @author bsinou
+ * 
+ *         Fill ProcessList view. Deported in an external bundle so that main
+ *         slc ui bundle does not depend on DB implementation.
+ */
+public class ProcessListStructuredContentProvider implements
+               IStructuredContentProvider {
+
+       public void inputChanged(Viewer arg0, Object arg1, Object arg2) {
+       }
+
+       public void dispose() {
+       }
+
+       @SuppressWarnings("unchecked")
+       public Object[] getElements(Object obj) {
+               if (obj instanceof List) {
+                       return ((List<SlcExecution>) obj).toArray();
+               } else {
+                       return new Object[0];
+               }
+       }
+
+       public String getColumnText(Object obj, int index) {
+               return null;
+       }
+
+}
diff --git a/eclipse/plugins/org.argeo.slc.client.core/src/main/java/org/argeo/slc/client/contentprovider/ProcessListTableLabelProvider.java b/eclipse/plugins/org.argeo.slc.client.core/src/main/java/org/argeo/slc/client/contentprovider/ProcessListTableLabelProvider.java
new file mode 100644 (file)
index 0000000..0491283
--- /dev/null
@@ -0,0 +1,38 @@
+package org.argeo.slc.client.contentprovider;
+
+import org.argeo.slc.process.SlcExecution;
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.graphics.Image;
+
+/**
+ * @author bsinou
+ * 
+ *         Fill ProcessList view. Deported in an external bundle so that main
+ *         slc ui bundle does not depend on DB implementation.
+ */
+public class ProcessListTableLabelProvider extends LabelProvider implements
+               ITableLabelProvider {
+       public String getColumnText(Object obj, int index) {
+               // log.debug(sessionFactory.getClass().toString());
+
+               SlcExecution se = (SlcExecution) obj;
+               switch (index) {
+
+               case 0:
+                       return getText(se.getStartDate());
+               case 1:
+                       return se.getHost();
+               case 2:
+                       return se.getUuid();
+               case 3:
+                       return se.currentStep().getType();
+               }
+               return getText(obj);
+       }
+
+       public Image getColumnImage(Object obj, int index) {
+               return null;
+       }
+
+}
diff --git a/eclipse/plugins/org.argeo.slc.client.core/src/main/java/org/argeo/slc/client/core/ProcessListTableContent.java b/eclipse/plugins/org.argeo.slc.client.core/src/main/java/org/argeo/slc/client/core/ProcessListTableContent.java
deleted file mode 100644 (file)
index cb651e9..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-package org.argeo.slc.client.core;
-
-import java.util.List;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.argeo.slc.dao.process.SlcExecutionDao;
-import org.argeo.slc.process.SlcExecution;
-
-public class ProcessListTableContent implements TableContent {
-       private static final Log log = LogFactory
-                       .getLog(ProcessListTableContent.class);
-
-       // IoC
-       private SlcExecutionDao slcExecutionDao;
-
-       @Override
-       public SlcExecution getLine(int index) {
-               return slcExecutionDao.listSlcExecutions().get(index);
-               // return slcExecutions.get(index);
-       }
-
-       @Override
-       // public synchronized String getLabel(Object o, int i) {
-       public String getLabel(Object o, int i) {
-               SlcExecution se = (SlcExecution) o;
-
-               switch (i) {
-
-               case 0:
-                       return se.getStartDate().toString();
-                       // Workaround to insure that we have no Lazy Init PB
-                       // return
-                       // slcExecutionDao.getSlcExecution(se.getUuid()).getStartDate()
-                       // .toString();
-               case 1:
-                       return se.getHost();
-               case 2:
-                       return se.getUuid();
-               case 3:
-                       return se.getStatus();
-               }
-               return null;
-       }
-
-       public synchronized List<SlcExecution> getContent() {
-               return slcExecutionDao.listSlcExecutions();
-               // return this.slcExecutions;
-       }
-
-       // IoC
-       public void setSlcExecutionDao(SlcExecutionDao slcExecutionDao) {
-               this.slcExecutionDao = slcExecutionDao;
-       }
-}
diff --git a/eclipse/plugins/org.argeo.slc.client.core/src/main/java/org/argeo/slc/client/core/TableContent.java b/eclipse/plugins/org.argeo.slc.client.core/src/main/java/org/argeo/slc/client/core/TableContent.java
deleted file mode 100644 (file)
index bc85e83..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-package org.argeo.slc.client.core;
-
-import java.util.List;
-
-import org.argeo.slc.process.SlcExecution;
-
-public interface TableContent {
-
-       public Object getLine(int index);
-
-       public String getLabel(Object o, int index);
-
-       public List<SlcExecution> getContent();
-}
index 84e349c3d6e3677a3c2c492e027d3ae21b507dfe..9102d24b3627f4d9b301753bf53b2ed531890f7b 100644 (file)
@@ -3,9 +3,10 @@ Bundle-ManifestVersion: 2
 Bundle-Name: Hibernate Interface for RCP Client
 Bundle-SymbolicName: org.argeo.slc.client.hibernate
 Bundle-Version: 1.0.0.qualifier
+Require-Bundle: org.eclipse.ui;resolution:=optional
 Import-Package: org.aopalliance.aop;version="1.0.0",
  org.argeo.slc.client.aspects,
- org.argeo.slc.client.core,
+ org.argeo.slc.client.contentprovider,
  org.argeo.slc.dao.process;version="0.13.0.SNAPSHOT-r3777",
  org.hibernate,
  org.hibernate.classic,
diff --git a/eclipse/plugins/org.argeo.slc.client.hibernate/META-INF/spring/core-osgi.xml b/eclipse/plugins/org.argeo.slc.client.hibernate/META-INF/spring/core-osgi.xml
deleted file mode 100644 (file)
index 2b3f8f5..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<beans:beans xmlns="http://www.springframework.org/schema/osgi"\r
-       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans"\r
-       xsi:schemaLocation="http://www.springframework.org/schema/osgi  \r
-       http://www.springframework.org/schema/osgi/spring-osgi-1.1.xsd\r
-       http://www.springframework.org/schema/beans   \r
-       http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">\r
-\r
-       <!-- References Needed -->\r
-       <reference id="slcExecutionDao" interface="org.argeo.slc.dao.process.SlcExecutionDao"\r
-               context-class-loader="service-provider" />\r
-\r
-       <!-- Services exposed by the bundle -->\r
-       <service ref="processListTableContent" interface="org.argeo.slc.client.core.TableContent" />\r
-</beans:beans>
\ No newline at end of file
index 292f19bec51f6dbedbf78d449cd1fbc8271477ad..43b6e0f1ea3f9a6f91016f372bdf88ef942eb445 100644 (file)
@@ -6,14 +6,15 @@
               http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
               ">
 
-       <bean id="processListTableContent" class="org.argeo.slc.client.core.ProcessListTableContent">
-               <property name="slcExecutionDao" ref="slcExecutionDao" />
-       </bean>
+       <bean id="processListTableLabelProvider"
+               class="org.argeo.slc.client.contentprovider.ProcessListTableLabelProvider" />
+       <bean id="processListStructuredContentProvider"
+               class="org.argeo.slc.client.contentprovider.ProcessListStructuredContentProvider" />
 
-       <!-- Events -->
+       <!-- Aspects -->
        <aop:aspectj-autoproxy />
        <bean id="contentProviderAspect" class="org.argeo.slc.client.aspects.ContentProviderAspect">
                <property name="sessionFactory" ref="sessionFactory" />
-               <property name="transactionManager" ref="transactionManager" />
+               <!-- <property name="transactionManager" ref="transactionManager" /> -->
        </bean>
 </beans>
diff --git a/eclipse/plugins/org.argeo.slc.client.hibernate/META-INF/spring/osgi.xml b/eclipse/plugins/org.argeo.slc.client.hibernate/META-INF/spring/osgi.xml
new file mode 100644 (file)
index 0000000..1427a59
--- /dev/null
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<beans:beans xmlns="http://www.springframework.org/schema/osgi"\r
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans"\r
+       xsi:schemaLocation="http://www.springframework.org/schema/osgi  \r
+       http://www.springframework.org/schema/osgi/spring-osgi-1.1.xsd\r
+       http://www.springframework.org/schema/beans   \r
+       http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">\r
+\r
+       <beans:description>\r
+               This bundle is the bridge between the slc RCP\r
+               client\r
+               and hibernate implementation of the model.\r
+\r
+               Corresponding java classes\r
+               are implemented\r
+               in the org.client.slc.client.core bundle.\r
+       </beans:description>\r
+\r
+       <!-- Services exposed by the bundle -->\r
+       <service ref="processListTableLabelProvider" interface="org.eclipse.jface.viewers.ITableLabelProvider" />\r
+       <service ref="processListStructuredContentProvider"\r
+               interface="org.eclipse.jface.viewers.IStructuredContentProvider" />\r
+\r
+\r
+       <!-- References Needed -->\r
+       <reference id="slcExecutionDao" interface="org.argeo.slc.dao.process.SlcExecutionDao"\r
+               context-class-loader="service-provider" />\r
+\r
+       <reference id="transactionManager"\r
+               interface="org.springframework.transaction.PlatformTransactionManager"\r
+               context-class-loader="service-provider" />\r
+\r
+       <reference id="sessionFactory" interface="org.hibernate.SessionFactory" />\r
+\r
+\r
+</beans:beans>
\ No newline at end of file
diff --git a/eclipse/plugins/org.argeo.slc.client.hibernate/META-INF/spring/transaction-osgi.xml b/eclipse/plugins/org.argeo.slc.client.hibernate/META-INF/spring/transaction-osgi.xml
deleted file mode 100644 (file)
index 80c6105..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans:beans xmlns="http://www.springframework.org/schema/osgi"
-       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans"
-       xsi:schemaLocation="http://www.springframework.org/schema/osgi  
-       http://www.springframework.org/schema/osgi/spring-osgi-1.1.xsd
-       http://www.springframework.org/schema/beans   
-       http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
-
-       <reference id="transactionManager"
-               interface="org.springframework.transaction.PlatformTransactionManager"
-               context-class-loader="service-provider" />
-       <reference id="sessionFactory" interface="org.hibernate.SessionFactory" />
-</beans:beans>
\ No newline at end of file
index 6d02d2ab8f20bea0da649753ac041c801bab7161..b60b4f10f4e1bfa085d86af9a7a40c40da6995f4 100644 (file)
@@ -8,16 +8,10 @@
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
 
        <!-- AOP Configuration -->
-       <aop:config>
-               <aop:pointcut id="tableContentMethods"
-                       expression="execution(* 
-               org.argeo.slc.client.core.TableContent.*(..))" />
-               <aop:advisor advice-ref="daoAdvice" pointcut-ref="tableContentMethods" />
-       </aop:config>
-       <tx:advice id="daoAdvice" transaction-manager="transactionManager">
-               <tx:attributes>
-                       <tx:method name="get*" propagation="REQUIRED" read-only="true" />
-                       <tx:method name="*" propagation="REQUIRED" />
-               </tx:attributes>
-       </tx:advice>
+       <!-- <aop:config> <aop:pointcut id="tableContentMethods" expression="execution(* 
+               org.argeo.slc.client.core.TableContent.*(..))" /> <aop:advisor advice-ref="daoAdvice" 
+               pointcut-ref="tableContentMethods" /> </aop:config> <tx:advice id="daoAdvice" 
+               transaction-manager="transactionManager"> <tx:attributes> <tx:method name="get*" 
+               propagation="REQUIRED" read-only="true" /> <tx:method name="*" propagation="REQUIRED" 
+               /> </tx:attributes> </tx:advice> -->
 </beans>
\ No newline at end of file
index 4c5a0a656ab53ff571607a0ad4292157307ec805..59cb76d7bb1916d28fb93741ea2d168f080828f7 100644 (file)
@@ -17,10 +17,10 @@ Import-Package: org.apache.commons.io;version="1.4.0",
  org.argeo.eclipse.ui,
  org.argeo.slc,
  org.argeo.slc.build;version="0.13.0.SNAPSHOT-r3685",
- org.argeo.slc.client.core,
  org.argeo.slc.core.attachment,
  org.argeo.slc.core.runtime;version="0.13.0.SNAPSHOT-r3701",
  org.argeo.slc.core.test.tree;version="0.13.0.SNAPSHOT-r3768",
+ org.argeo.slc.dao.process,
  org.argeo.slc.dao.test.tree;version="0.13.0.SNAPSHOT-r3768",
  org.argeo.slc.deploy;version="0.13.0.SNAPSHOT-r3724",
  org.argeo.slc.execution;version="0.13.0.SNAPSHOT-r3685",
@@ -33,3 +33,4 @@ Import-Package: org.apache.commons.io;version="1.4.0",
  org.springframework.beans.factory,
  org.springframework.context,
  org.springframework.core.io.support
+
index b7f2bf14ed141b8d6f3be66132b4cc7fed500a5c..621d0c3d972b1c22afaaafbe47e80672499dff50 100644 (file)
@@ -6,29 +6,36 @@
        http://www.springframework.org/schema/beans   \r
        http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">\r
 \r
+       <beans:description> Implements SLC specific rcp uis.\r
+       </beans:description>\r
+\r
+       <!-- Services exposed by the current bundle -->\r
+\r
+       <!-- Listeners used by the execution modules -->\r
+       <service ref="testManagerServiceAdapter"\r
+               interface="org.argeo.slc.core.test.tree.TreeTestResultListener" />\r
+       <service ref="slcExecutionServiceAdapter" interface="org.argeo.slc.process.SlcExecutionNotifier" />\r
+\r
+\r
+       <!-- References needed by the current bundle -->\r
+       <reference id="slcExecutionService" interface="org.argeo.slc.services.SlcExecutionService" />\r
+       <reference id="testManagerService" interface="org.argeo.slc.services.TestManagerService" />\r
+\r
        <!-- DAO -->\r
        <reference id="testResultCollectionDao"\r
                interface="org.argeo.slc.dao.test.tree.TreeTestResultCollectionDao"\r
                context-class-loader="service-provider" />\r
+       <reference id="slcExecutionDao" interface="org.argeo.slc.dao.process.SlcExecutionDao"\r
+               context-class-loader="service-provider" />\r
 \r
-       <!-- Services -->\r
-       <reference id="slcExecutionService" interface="org.argeo.slc.services.SlcExecutionService" />\r
-       <reference id="testManagerService" interface="org.argeo.slc.services.TestManagerService" />\r
-\r
-       <!-- Session (to insure transactional management) -->\r
-       <!-- <reference id="sessionFactory" interface="org.hibernate.SessionFactory" \r
-               /> -->\r
+       <!-- Content providers are deported in an other bundle for UI not to depend \r
+               on DB used implementation -->\r
+       <reference id="processListTableLabelProvider" interface="org.eclipse.jface.viewers.ITableLabelProvider"\r
+               bean-name="processListTableLabelProvider" />\r
+       <reference id="processListStructuredContentProvider"\r
+               interface="org.eclipse.jface.viewers.IStructuredContentProvider"\r
+               bean-name="processListStructuredContentProvider" />\r
 \r
        <!-- TODO : what is it for ? -->\r
        <list id="slcAgents" interface="org.argeo.slc.runtime.SlcAgent" />\r
-\r
-       <!-- Proxy object to try solving transaction & session problem caused by \r
-               using hibernate -->\r
-       <reference id="processListTableContent" interface="org.argeo.slc.client.core.TableContent" />\r
-\r
-       <!-- Listeners used by the execution modules -->\r
-       <service ref="testManagerServiceAdapter"\r
-               interface="org.argeo.slc.core.test.tree.TreeTestResultListener" />\r
-       <service ref="slcExecutionServiceAdapter" interface="org.argeo.slc.process.SlcExecutionNotifier" />\r
-\r
 </beans:beans>
\ No newline at end of file
index 596a2a03487994dcdd6936db91b3e4500c3a5bd5..9b65ea05c2a13164cc367d760c76adc111d23c66 100644 (file)
@@ -17,8 +17,9 @@
 
        <bean id="org.argeo.slc.client.ui.processListView" class="org.argeo.slc.client.ui.views.ProcessListView"
                scope="prototype">
-               <property name="tableContent" ref="processListTableContent" />
-               <!-- <property name="sessionFactory" ref="sessionFactory" /> -->
+               <property name="slcExecutionDao" ref="slcExecutionDao" />
+               <property name="structuredContentProvider" ref="processListStructuredContentProvider" />
+               <property name="tableLabelProvider" ref="processListTableLabelProvider" />
        </bean>
 
        <bean id="org.argeo.slc.client.ui.processBuilderView" class="org.argeo.slc.client.ui.views.ProcessBuilderView"
diff --git a/eclipse/plugins/org.argeo.slc.client.ui/src/org/argeo/slc/client/ui/views/ProcessListContentProvider.java b/eclipse/plugins/org.argeo.slc.client.ui/src/org/argeo/slc/client/ui/views/ProcessListContentProvider.java
deleted file mode 100644 (file)
index fb9ba3d..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-package org.argeo.slc.client.ui.views;
-
-import java.util.List;
-
-import org.argeo.slc.core.test.tree.ResultAttributes;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-
-public class ProcessListContentProvider implements IStructuredContentProvider {
-
-       public void inputChanged(Viewer arg0, Object arg1, Object arg2) {
-       }
-
-       public void dispose() {
-       }
-
-       @SuppressWarnings("unchecked")
-       public Object[] getElements(Object obj) {
-               if (obj instanceof List) {
-                       return ((List<ResultAttributes>) obj).toArray();
-               } else {
-                       return new Object[0];
-               }
-       }
-
-       public String getColumnText(Object obj, int index) {
-               return null;
-       }
-
-}
diff --git a/eclipse/plugins/org.argeo.slc.client.ui/src/org/argeo/slc/client/ui/views/ProcessListTableLabelProvider.java b/eclipse/plugins/org.argeo.slc.client.ui/src/org/argeo/slc/client/ui/views/ProcessListTableLabelProvider.java
deleted file mode 100644 (file)
index 73271f2..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-package org.argeo.slc.client.ui.views;
-
-import org.argeo.slc.process.SlcExecution;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.graphics.Image;
-
-public class ProcessListTableLabelProvider extends LabelProvider implements
-               ITableLabelProvider {
-       public String getColumnText(Object obj, int index) {
-               // log.debug(sessionFactory.getClass().toString());
-
-               SlcExecution se = (SlcExecution) obj;
-               switch (index) {
-
-               case 0:
-                       return getText(se.getStartDate());
-               case 1:
-                       return se.getHost();
-               case 2:
-                       return se.getUuid();
-               case 3:
-                       return se.currentStep().getType();
-               }
-               return getText(obj);
-       }
-
-       public Image getColumnImage(Object obj, int index) {
-               return null;
-       }
-
-}
index de85192810cd5da93c4dec1c726a341e881a235e..8e44a08bead92f5d9f1c3e07e0d743293a15b875 100644 (file)
@@ -1,16 +1,10 @@
 package org.argeo.slc.client.ui.views;
 
-import java.util.List;
-
-import org.argeo.slc.client.core.TableContent;
-import org.argeo.slc.process.SlcExecution;
+import org.argeo.slc.dao.process.SlcExecutionDao;
 import org.eclipse.jface.viewers.IStructuredContentProvider;
 import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
 import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Table;
@@ -25,14 +19,15 @@ public class ProcessListView extends ViewPart {
        private TableViewer viewer;
 
        // IoC
-       private TableContent tableContent;
+       private SlcExecutionDao slcExecutionDao;
+       private ITableLabelProvider tableLabelProvider;
+       private IStructuredContentProvider structuredContentProvider;
 
        public void createPartControl(Composite parent) {
                Table table = createTable(parent);
                viewer = new TableViewer(table);
-               viewer.setLabelProvider(new ViewLabelProvider());
-               viewer.setContentProvider(new ViewContentProvider());
-
+               viewer.setLabelProvider(tableLabelProvider);
+               viewer.setContentProvider(structuredContentProvider);
                viewer.setInput(getViewSite());
        }
 
@@ -70,48 +65,26 @@ public class ProcessListView extends ViewPart {
                return table;
        }
 
-       protected static class ViewContentProvider implements
-                       IStructuredContentProvider {
-
-               public void inputChanged(Viewer arg0, Object arg1, Object arg2) {
-               }
-
-               public void dispose() {
-               }
-
-               @SuppressWarnings("unchecked")
-               public Object[] getElements(Object obj) {
-                       if (obj instanceof List) {
-                               return ((List<SlcExecution>) obj).toArray();
-                       } else {
-                               return new Object[0];
-                       }
-               }
-       }
-
-       protected class ViewLabelProvider extends LabelProvider implements
-                       ITableLabelProvider {
-               public String getColumnText(Object obj, int index) {
-                       return tableContent.getLabel(obj, index);
-               }
-
-               public Image getColumnImage(Object obj, int index) {
-                       return null;
-               }
-
-       }
-
        public void setFocus() {
                viewer.getControl().setFocus();
        }
 
        public void retrieveResults() {
-               viewer.setInput(tableContent.getContent());
+               viewer.setInput(slcExecutionDao.listSlcExecutions());
        }
 
        // IoC
-       public void setTableContent(TableContent tableContent) {
-               this.tableContent = tableContent;
+       public void setSlcExecutionDao(SlcExecutionDao slcExecutionDao) {
+               this.slcExecutionDao = slcExecutionDao;
+       }
+
+       public void setTableLabelProvider(ITableLabelProvider tableLabelProvider) {
+               this.tableLabelProvider = tableLabelProvider;
+       }
+
+       public void setStructuredContentProvider(
+                       IStructuredContentProvider structuredContentProvider) {
+               this.structuredContentProvider = structuredContentProvider;
        }
 
 }
\ No newline at end of file