Separate Argeo Tracker bundle
authorMathieu Baudier <mbaudier@argeo.org>
Sun, 20 May 2018 11:39:48 +0000 (13:39 +0200)
committerMathieu Baudier <mbaudier@argeo.org>
Sun, 20 May 2018 11:39:48 +0000 (13:39 +0200)
org.argeo.suite.cms/OSGI-INF/systemMaintenanceService.xml
org.argeo.suite.cms/bnd.bnd
org.argeo.suite.e4/bnd.bnd
org.argeo.suite.e4/src/org/argeo/suite/e4/parts/AbstractSuiteDashboard.java
org.argeo.suite.e4/src/org/argeo/suite/e4/parts/DefaultDashboardEditor.java
org.argeo.suite.standard/e4xmi/standard-toolbars.e4xmi
org.argeo.suite.tracker/OSGI-INF/trackerE4Service.xml [moved from org.argeo.suite.e4/OSGI-INF/trackerE4Service.xml with 100% similarity]
org.argeo.suite.tracker/OSGI-INF/trackerMaintenanceService.xml [moved from org.argeo.suite.cms/OSGI-INF/trackerMaintenanceService.xml with 100% similarity]
org.argeo.suite.tracker/OSGI-INF/trackerService.xml [moved from org.argeo.suite.cms/OSGI-INF/trackerService.xml with 100% similarity]
org.argeo.suite.tracker/bnd.bnd
org.argeo.suite.tracker/e4xmi/tracker-toolbars.e4xmi

index af90a466cf67b4fcb85ad3fe89aec2059b55e4c5..34a8a9967e2cf27ef902accb833a71647c719879 100644 (file)
@@ -1,9 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" activate="init" immediate="true" name="System Maintenance Service">
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" activate="init" deactivate="destroy" immediate="true" name="System Maintenance Service">
    <reference bind="setRepository" cardinality="1..1" interface="javax.jcr.Repository" name="Repository" policy="static" target="(cn=connect)"/>
    <service>
       <provide interface="org.argeo.connect.SystemMaintenanceService"/>
    </service>
    <reference bind="addAppService" cardinality="0..n" interface="org.argeo.connect.AppMaintenanceService" name="AppMaintenanceService" policy="static"/>
    <implementation class="org.argeo.connect.core.DynamicSystemMaintenanceService"/>
+   <reference bind="setUserAdminService" cardinality="1..1" interface="org.argeo.connect.UserAdminService" name="UserAdminService" policy="static"/>
 </scr:component>
index 4b4b9bcb489d87a0ea7f6f7ab19f2997ff6a9a4f..5724a49dbeea059f89449d814741ebdb403e1fe9 100644 (file)
@@ -1,16 +1,15 @@
 Bundle-ActivationPolicy: lazy
 Service-Component: OSGI-INF/systemAppService.xml,\
- OSGI-INF/userManagerService.xml,\
- OSGI-INF/resourcesService.xml,\
- OSGI-INF/activitiesService.xml,\
- OSGI-INF/peopleService.xml,\
- OSGI-INF/trackerService.xml,\
- OSGI-INF/documentsService.xml,\
- OSGI-INF/systemMaintenanceService.xml,\
- OSGI-INF/activitiesMaintenanceService.xml,\
- OSGI-INF/resourcesMaintenanceService.xml,\
- OSGI-INF/peopleMaintenanceService.xml,\
- OSGI-INF/trackerMaintenanceService.xml
+OSGI-INF/userManagerService.xml,\
+OSGI-INF/resourcesService.xml,\
+OSGI-INF/activitiesService.xml,\
+OSGI-INF/peopleService.xml,\
+OSGI-INF/trackerService.xml,\
+OSGI-INF/documentsService.xml,\
+OSGI-INF/systemMaintenanceService.xml,\
+OSGI-INF/activitiesMaintenanceService.xml,\
+OSGI-INF/resourcesMaintenanceService.xml,\
+OSGI-INF/peopleMaintenanceService.xml
  
 Import-Package: javax.jcr,\
 javax.transaction,\
index 173570a89a968b6bf00eb3f7869220e9c61cda8f..5b76067cecb0438fa742586c0659ff642dc059ae 100644 (file)
@@ -3,7 +3,6 @@ Service-Component: OSGI-INF/systemE4Service.xml,\
 OSGI-INF/resourcesE4Service.xml,\
 OSGI-INF/activitiesE4Service.xml,\
 OSGI-INF/peopleE4Service.xml,\
-OSGI-INF/trackerE4Service.xml,\
 OSGI-INF/documentsE4Service.xml
 
 Import-Package: org.eclipse.swt,\
@@ -17,6 +16,5 @@ org.argeo.activities.e4,\
 org.argeo.people.e4,\
 org.argeo.people.e4.handlers,\
 org.argeo.documents.e4,\
-org.argeo.tracker.e4,\
 org.argeo.connect.e4.resources,\
 *
index 521c1fca8741f107ceeb57a2e3255ab72ceb3288..7aeb67b43f6397bfbf2871ff43178997011cde4a 100644 (file)
@@ -5,11 +5,8 @@ import javax.annotation.PreDestroy;
 import javax.inject.Inject;
 import javax.jcr.Node;
 import javax.jcr.Repository;
-import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.argeo.cms.ui.eclipse.forms.FormToolkit;
 import org.argeo.cms.util.CmsUtils;
 import org.argeo.connect.SystemAppService;
@@ -35,7 +32,8 @@ import org.eclipse.swt.widgets.Link;
 
 /** Generic dashboard for Argeo Suite applications */
 public abstract class AbstractSuiteDashboard {
-       private final static Log log = LogFactory.getLog(AbstractSuiteDashboard.class);
+       // private final static Log log =
+       // LogFactory.getLog(AbstractSuiteDashboard.class);
 
        // DEPENDENCY INJECTION
        @Inject
@@ -163,19 +161,20 @@ public abstract class AbstractSuiteDashboard {
        }
 
        /* DEPENDENCY INJECTION */
-       public void setRepository(Repository repository) {
-               this.repository = repository;
-       }
-
-       public void setResourcesService(ResourcesService resourcesService) {
-               this.resourcesService = resourcesService;
-       }
-
-       public void setSystemAppService(SystemAppService systemAppService) {
-               this.systemAppService = systemAppService;
-       }
-
-       public void setSystemWorkbenchService(SystemWorkbenchService systemWorkbenchService) {
-               this.systemWorkbenchService = systemWorkbenchService;
-       }
+       // public void setRepository(Repository repository) {
+       // this.repository = repository;
+       // }
+       //
+       // public void setResourcesService(ResourcesService resourcesService) {
+       // this.resourcesService = resourcesService;
+       // }
+       //
+       // public void setSystemAppService(SystemAppService systemAppService) {
+       // this.systemAppService = systemAppService;
+       // }
+       //
+       // public void setSystemWorkbenchService(SystemWorkbenchService
+       // systemWorkbenchService) {
+       // this.systemWorkbenchService = systemWorkbenchService;
+       // }
 }
index abf77adace75d7a0cecce8c1995f9d9676c2b7ac..5fd2f562bd901d591183c07e90744d8d6dbcf67c 100644 (file)
@@ -33,7 +33,7 @@ import org.argeo.tracker.TrackerService;
 import org.argeo.tracker.core.TrackerUtils;
 import org.argeo.tracker.ui.TaskListLabelProvider;
 import org.argeo.tracker.ui.TaskVirtualListComposite;
-import org.eclipse.e4.ui.di.Focus;
+import org.eclipse.e4.core.di.annotations.Optional;
 import org.eclipse.jface.viewers.ColumnLabelProvider;
 import org.eclipse.jface.viewers.DoubleClickEvent;
 import org.eclipse.jface.viewers.IDoubleClickListener;
@@ -64,7 +64,9 @@ public class DefaultDashboardEditor extends AbstractSuiteDashboard implements Re
 
        @Inject
        private ActivitiesService activitiesService;
+
        @Inject
+       @Optional
        private TrackerService trackerService;
 
        private String datePattern = "dd MMM yyyy";
@@ -114,7 +116,7 @@ public class DefaultDashboardEditor extends AbstractSuiteDashboard implements Re
                        // noTaskLbl.setLayoutData(new GridData(SWT.CENTER, SWT.BOTTOM, true, true));
 
                } else {
-                       TaskListLabelProvider labelProvider = new TaskListLabelProvider(trackerService);
+                       TaskListLabelProvider labelProvider = new TaskListLabelProvider(getSystemAppService());
                        tvlc = new TaskVirtualListComposite(parent, SWT.NO_FOCUS, (ILabelProvider) labelProvider, 54);
                        tvlc.setLayoutData(EclipseUiUtils.fillAll());
                        final TableViewer viewer = tvlc.getTableViewer();
@@ -224,41 +226,44 @@ public class DefaultDashboardEditor extends AbstractSuiteDashboard implements Re
                        }
                }
 
-               nit = trackerService.getMyMilestones(getSession(), true);
-               List<Node> openMilestones = new ArrayList<>();
-
-               if (nit.hasNext()) {
-                       List<Node> overdueMilestones = new ArrayList<>();
-                       while (nit.hasNext()) {
-                               Node currNode = nit.nextNode();
-                               openMilestones.add(currNode);
-                               if (isOverdue(currNode, TrackerNames.TRACKER_TARGET_DATE))
-                                       overdueMilestones.add(currNode);
-                       }
-                       if (!overdueMilestones.isEmpty()) {
-                               Composite overdueCmp = new Composite(leftCmp, SWT.NO_FOCUS);
-                               long size = overdueMilestones.size();
-                               String overdueStr = "You have " + size + " overdue milestone" + (size > 1 ? "s" : "") + ": ";
-                               populateMuliValueClickableList(overdueCmp, overdueMilestones.toArray(new Node[0]), new MilestoneLp(),
-                                               overdueStr);
+               if (trackerService != null) {
+                       nit = trackerService.getMyMilestones(getSession(), true);
+                       List<Node> openMilestones = new ArrayList<>();
+
+                       if (nit.hasNext()) {
+                               List<Node> overdueMilestones = new ArrayList<>();
+                               while (nit.hasNext()) {
+                                       Node currNode = nit.nextNode();
+                                       openMilestones.add(currNode);
+                                       if (isOverdue(currNode, TrackerNames.TRACKER_TARGET_DATE))
+                                               overdueMilestones.add(currNode);
+                               }
+                               if (!overdueMilestones.isEmpty()) {
+                                       Composite overdueCmp = new Composite(leftCmp, SWT.NO_FOCUS);
+                                       long size = overdueMilestones.size();
+                                       String overdueStr = "You have " + size + " overdue milestone" + (size > 1 ? "s" : "") + ": ";
+                                       populateMuliValueClickableList(overdueCmp, overdueMilestones.toArray(new Node[0]),
+                                                       new MilestoneLp(), overdueStr);
+                               }
                        }
-               }
 
-               // My projects
-               List<Node> openProjects = JcrUtils.nodeIteratorToList(trackerService.getMyProjects(getSession(), true));
-               if (!openProjects.isEmpty()) {
-                       Group myProjectsGp = new Group(rightCmp, SWT.NO_FOCUS);
-                       myProjectsGp.setText("My open projects");
-                       myProjectsGp.setLayoutData(EclipseUiUtils.fillWidth());
-                       populateMuliValueClickableList(myProjectsGp, openProjects.toArray(new Node[0]), new ProjectLp(), null);
-               }
+                       // My projects
+                       List<Node> openProjects = JcrUtils.nodeIteratorToList(trackerService.getMyProjects(getSession(), true));
+                       if (!openProjects.isEmpty()) {
+                               Group myProjectsGp = new Group(rightCmp, SWT.NO_FOCUS);
+                               myProjectsGp.setText("My open projects");
+                               myProjectsGp.setLayoutData(EclipseUiUtils.fillWidth());
+                               populateMuliValueClickableList(myProjectsGp, openProjects.toArray(new Node[0]), new ProjectLp(), null);
+                       }
 
-               // My Milestones
-               if (!openMilestones.isEmpty()) {
-                       Group myMilestoneGp = new Group(rightCmp, SWT.NO_FOCUS);
-                       myMilestoneGp.setText("My open milestones");
-                       myMilestoneGp.setLayoutData(EclipseUiUtils.fillWidth());
-                       populateMuliValueClickableList(myMilestoneGp, openMilestones.toArray(new Node[0]), new MilestoneLp(), null);
+                       // My Milestones
+                       if (!openMilestones.isEmpty()) {
+                               Group myMilestoneGp = new Group(rightCmp, SWT.NO_FOCUS);
+                               myMilestoneGp.setText("My open milestones");
+                               myMilestoneGp.setLayoutData(EclipseUiUtils.fillWidth());
+                               populateMuliValueClickableList(myMilestoneGp, openMilestones.toArray(new Node[0]), new MilestoneLp(),
+                                               null);
+                       }
                }
        }
 
@@ -363,13 +368,13 @@ public class DefaultDashboardEditor extends AbstractSuiteDashboard implements Re
                }
        }
 
-       public void setActivitiesService(ActivitiesService activitiesService) {
-               this.activitiesService = activitiesService;
-       }
-
-       public void setTrackerService(TrackerService trackerService) {
-               this.trackerService = trackerService;
-       }
+       // public void setActivitiesService(ActivitiesService activitiesService) {
+       // this.activitiesService = activitiesService;
+       // }
+       //
+       // public void setTrackerService(TrackerService trackerService) {
+       // this.trackerService = trackerService;
+       // }
 
        // LOCAL HELPERS
        private void populateMuliValueClickableList(Composite parent, Node[] nodes, ColumnLabelProvider lp,
index 48eb28d5a5738e59eef39bc345dd5cb16b567a5b..50b5209599b0053590ced3fe0a009a57dcc72372 100644 (file)
@@ -6,8 +6,8 @@
   <imports xsi:type="commands:Command" xmi:id="_M5YvJkIfEeij3Nr_iRrJtw" elementId="org.argeo.suite.e4.command.openPerspective" commandName="Open Perspective">
     <parameters xmi:id="_M5YvJ0IfEeij3Nr_iRrJtw" elementId="perspectiveId" name="Perspective Id" optional="false"/>
   </imports>
-  <fragments xsi:type="fragment:StringModelFragment" xmi:id="_IEOXA0IfEeij3Nr_iRrJtw" featurename="children" parentElementId="org.argeo.suite.e4.trimbar.top">
-    <elements xsi:type="menu:ToolBar" xmi:id="_IEOXBEIfEeij3Nr_iRrJtw" elementId="org.argeo.suite.e4.toolbar.newEntity">
+  <fragments xsi:type="fragment:StringModelFragment" xmi:id="_IEOXA0IfEeij3Nr_iRrJtw" featurename="children" parentElementId="org.argeo.suite.e4.trimbar.top" positionInList="after:org.argeo.suite.e4.toolbar.standard">
+    <elements xsi:type="menu:ToolBar" xmi:id="_IEOXBEIfEeij3Nr_iRrJtw" elementId="org.argeo.suite.e4.toolbar.newStandardEntity">
       <children xsi:type="menu:HandledToolItem" xmi:id="_IEOXBUIfEeij3Nr_iRrJtw" elementId="org.argeo.suite.e4.handledtoolitem.createTask" label="New Task" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/types/todo.png" command="_IEOXAUIfEeij3Nr_iRrJtw">
         <parameters xmi:id="_IEOXBkIfEeij3Nr_iRrJtw" elementId="targetNodeType" name="targetNodeType" value="activities:task"/>
       </children>
index 80da3bfb87d3eed80f632787e0f84c99c97ecae7..17336a4530084646d7841be6b1256d4346037b0b 100644 (file)
@@ -1,2 +1,14 @@
 Bundle-SymbolicName: org.argeo.suite.tracker;singleton:=true
 Bundle-ActivationPolicy: lazy
+
+Service-Component: OSGI-INF/trackerService.xml,\
+OSGI-INF/trackerMaintenanceService.xml,\
+OSGI-INF/trackerE4Service.xml
+
+Import-Package: javax.jcr,\
+org.argeo.connect,\
+org.argeo.activities,\
+org.argeo.tracker,\
+org.argeo.tracker.core,\
+org.argeo.tracker.e4,\
+*
index 03aefe399d66fb015cb16f98f511247de2536c42..3bd8937a576223aa3e3dc612192e4111626c5ffc 100644 (file)
@@ -3,8 +3,8 @@
   <imports xsi:type="commands:Command" xmi:id="_Dppf4FuLEeioOJZqIpekPQ" elementId="org.argeo.suite.e4.command.createEntity">
     <parameters xmi:id="_HsY8kFuLEeioOJZqIpekPQ" elementId="targetNodeType" name="targetNodeType" optional="false"/>
   </imports>
-  <fragments xsi:type="fragment:StringModelFragment" xmi:id="_1ISvQVuKEeioOJZqIpekPQ" featurename="children" parentElementId="org.argeo.suite.e4.trimbar.top">
-    <elements xsi:type="menu:ToolBar" xmi:id="_1ISvQluKEeioOJZqIpekPQ" elementId="org.argeo.suite.e4.toolbar.2">
+  <fragments xsi:type="fragment:StringModelFragment" xmi:id="_1ISvQVuKEeioOJZqIpekPQ" featurename="children" parentElementId="org.argeo.suite.e4.trimbar.top" positionInList="">
+    <elements xsi:type="menu:ToolBar" xmi:id="_1ISvQluKEeioOJZqIpekPQ" elementId="org.argeo.suite.e4.toolbar.newTrackerEntity">
       <children xsi:type="menu:HandledToolItem" xmi:id="_3CFicFuKEeioOJZqIpekPQ" elementId="org.argeo.suite.tracker.handledtoolitem.newTrackerTask" label="New Tracker Task" iconURI="platform:/plugin/org.argeo.theme.argeo2/icons/types/task.png" command="_Dppf4FuLEeioOJZqIpekPQ">
         <parameters xmi:id="_4EGjoFuLEeioOJZqIpekPQ" elementId="org.argeo.suite.tracker.parameter.1" name="targetNodeType" value="tracker:task"/>
       </children>