X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.suite.e4%2Fsrc%2Forg%2Fargeo%2Fsuite%2Fe4%2Fparts%2FDefaultDashboardEditor.java;h=dd1c2b084732003422bc110d68220a7f92c9d0af;hb=a55bb0dc7e9fbcefb645d34ce24b326d1506a623;hp=abf77adace75d7a0cecce8c1995f9d9676c2b7ac;hpb=91ba500dcfe75cde313a513e341b7f9f57d64d75;p=gpl%2Fargeo-suite.git diff --git a/org.argeo.suite.e4/src/org/argeo/suite/e4/parts/DefaultDashboardEditor.java b/org.argeo.suite.e4/src/org/argeo/suite/e4/parts/DefaultDashboardEditor.java index abf77ad..dd1c2b0 100644 --- a/org.argeo.suite.e4/src/org/argeo/suite/e4/parts/DefaultDashboardEditor.java +++ b/org.argeo.suite.e4/src/org/argeo/suite/e4/parts/DefaultDashboardEditor.java @@ -18,8 +18,9 @@ import org.argeo.activities.ActivitiesNames; import org.argeo.activities.ActivitiesService; import org.argeo.activities.ActivitiesTypes; import org.argeo.activities.ui.TaskViewerContextMenu; +import org.argeo.api.NodeUtils; import org.argeo.cms.auth.CurrentUser; -import org.argeo.cms.util.CmsUtils; +import org.argeo.cms.ui.util.CmsUiUtils; import org.argeo.connect.ConnectException; import org.argeo.connect.ConnectNames; import org.argeo.connect.ui.ConnectWorkbenchUtils; @@ -27,13 +28,13 @@ import org.argeo.connect.ui.Refreshable; import org.argeo.connect.util.ConnectJcrUtils; import org.argeo.eclipse.ui.EclipseUiUtils; import org.argeo.jcr.JcrUtils; -import org.argeo.node.NodeUtils; +import org.argeo.suite.e4.SuiteMsg; import org.argeo.tracker.TrackerNames; 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 +65,9 @@ public class DefaultDashboardEditor extends AbstractSuiteDashboard implements Re @Inject private ActivitiesService activitiesService; + @Inject + @Optional private TrackerService trackerService; private String datePattern = "dd MMM yyyy"; @@ -91,10 +94,10 @@ public class DefaultDashboardEditor extends AbstractSuiteDashboard implements Re @Override public void forceRefresh(Object object) { - CmsUtils.clear(headerCmp); - populateHeaderPart(headerCmp, NodeUtils.getUserHome(getSession())); + CmsUiUtils.clear(headerCmp); + populateHeaderPart(headerCmp, NodeUtils.getUserHome(getHomeSession())); - CmsUtils.clear(taskListCmp); + CmsUiUtils.clear(taskListCmp); populateTaskListCmp(taskListCmp); headerCmp.getParent().layout(true, true); @@ -102,7 +105,7 @@ public class DefaultDashboardEditor extends AbstractSuiteDashboard implements Re private void populateTaskListCmp(Composite parent) { parent.setLayout(EclipseUiUtils.noSpaceGridLayout()); - NodeIterator nit = activitiesService.getMyTasks(getSession(), true); + NodeIterator nit = activitiesService.getMyTasks(getMainSession(), true); if (!nit.hasNext()) { Composite noTaskCmp = new Composite(parent, SWT.NO_FOCUS); noTaskCmp.setLayoutData(EclipseUiUtils.fillAll()); @@ -110,16 +113,16 @@ public class DefaultDashboardEditor extends AbstractSuiteDashboard implements Re // Label noTaskLbl = new Label(noTaskCmp, SWT.CENTER); // noTaskLbl.setText(" You have no pending Task. "); - // CmsUtils.markup(noTaskLbl); + // CmsUiUtils.markup(noTaskLbl); // 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(); viewer.setInput(JcrUtils.nodeIteratorToList(nit).toArray()); - final TaskViewerContextMenu contextMenu = new TaskViewerContextMenu(viewer, getSession(), + final TaskViewerContextMenu contextMenu = new TaskViewerContextMenu(viewer, getHomeSession(), activitiesService) { @Override public boolean performAction(String actionId) { @@ -179,7 +182,7 @@ public class DefaultDashboardEditor extends AbstractSuiteDashboard implements Re // Title Label titleLbl = new Label(leftCmp, SWT.WRAP | SWT.LEAD); - CmsUtils.markup(titleLbl); + CmsUiUtils.markup(titleLbl); String titleStr = "" + CurrentUser.getDisplayName() + ""; titleLbl.setText(titleStr); GridData gd = new GridData(SWT.BEGINNING, SWT.TOP, false, false); @@ -188,7 +191,8 @@ public class DefaultDashboardEditor extends AbstractSuiteDashboard implements Re titleLbl.setLayoutData(gd); final Link createTaskLk = new Link(leftCmp, SWT.CENTER); - createTaskLk.setText("Create a task"); + // createTaskLk.setText("Create a task"); + createTaskLk.setText("" + SuiteMsg.newTodo.lead() + ""); gd = new GridData(SWT.BEGINNING, SWT.TOP, false, false); // gd.verticalIndent = 5; gd.horizontalIndent = 10; @@ -202,13 +206,13 @@ public class DefaultDashboardEditor extends AbstractSuiteDashboard implements Re // String mainMixin = TrackerTypes.TRACKER_TASK; String mainMixin = ActivitiesTypes.ACTIVITIES_TASK; String pathCreated = ConnectWorkbenchUtils.createAndConfigureEntity(createTaskLk.getShell(), - getSession(), getSystemAppService(), getSystemWorkbenchService(), mainMixin); + getHomeSession(), getSystemAppService(), getSystemWorkbenchService(), mainMixin); if (EclipseUiUtils.notEmpty(pathCreated)) forceRefresh(null); } }); - NodeIterator nit = activitiesService.getMyTasks(getSession(), true); + NodeIterator nit = activitiesService.getMyTasks(getHomeSession(), true); if (nit.hasNext()) { List overdueTasks = new ArrayList<>(); while (nit.hasNext()) { @@ -224,41 +228,44 @@ public class DefaultDashboardEditor extends AbstractSuiteDashboard implements Re } } - nit = trackerService.getMyMilestones(getSession(), true); - List openMilestones = new ArrayList<>(); - - if (nit.hasNext()) { - List 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(getHomeSession(), true); + List openMilestones = new ArrayList<>(); + + if (nit.hasNext()) { + List 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 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 openProjects = JcrUtils.nodeIteratorToList(trackerService.getMyProjects(getHomeSession(), 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,18 +370,18 @@ 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, String listLabel) { - CmsUtils.clear(parent); + CmsUiUtils.clear(parent); RowLayout rl = new RowLayout(SWT.HORIZONTAL | SWT.WRAP); rl.wrap = true; rl.marginLeft = rl.marginTop = rl.marginBottom = 0; @@ -390,7 +397,7 @@ public class DefaultDashboardEditor extends AbstractSuiteDashboard implements Re int i = 1; for (Node node : nodes) { Link link = new Link(parent, SWT.NONE); - CmsUtils.markup(link); + CmsUiUtils.markup(link); link.setText(lp.getText(node) + (i != nodes.length ? ", " : "")); i++; // Color fc = lp.getForeground(node);