import org.apache.commons.logging.LogFactory;
import org.argeo.activities.ActivitiesNames;
import org.argeo.activities.ActivitiesService;
+import org.argeo.activities.workbench.parts.TaskViewerContextMenu;
import org.argeo.cms.auth.CurrentUser;
import org.argeo.cms.ui.workbench.util.CommandUtils;
import org.argeo.cms.util.CmsUtils;
import org.argeo.connect.ConnectNames;
+import org.argeo.connect.ui.ConnectImages;
import org.argeo.connect.ui.ConnectUiUtils;
import org.argeo.connect.util.ConnectJcrUtils;
import org.argeo.connect.workbench.Refreshable;
import org.argeo.eclipse.ui.EclipseUiUtils;
import org.argeo.jcr.JcrUtils;
import org.argeo.node.NodeUtils;
-import org.argeo.suite.SuiteException;
+import org.argeo.suite.workbench.SuiteWorkbenchException;
import org.argeo.suite.workbench.AsUiPlugin;
import org.argeo.tracker.TrackerNames;
import org.argeo.tracker.TrackerService;
import org.argeo.tracker.ui.TaskListLabelProvider;
import org.argeo.tracker.ui.TaskVirtualListComposite;
import org.eclipse.jface.viewers.ColumnLabelProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.MouseAdapter;
+import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Link;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.PartInitException;
/** Argeo Suite Default Dashboard */
public class DefaultDashboardEditor extends AbstractSuiteDashboard implements Refreshable {
private Composite taskListCmp;
private TaskVirtualListComposite tvlc;
+ @Override
+ public void init(IEditorSite site, IEditorInput input) throws PartInitException {
+ super.init(site, input);
+ setTitleImage(ConnectImages.DASHBOARD);
+ }
+
@Override
public void createPartControl(Composite parent) {
super.createPartControl(parent);
TaskListLabelProvider labelProvider = new TaskListLabelProvider(trackerService);
tvlc = new TaskVirtualListComposite(parent, SWT.NO_FOCUS, labelProvider, 54);
tvlc.setLayoutData(EclipseUiUtils.fillAll());
- tvlc.getTableViewer().setInput(JcrUtils.nodeIteratorToList(nit).toArray());
+ final TableViewer viewer = tvlc.getTableViewer();
+ viewer.setInput(JcrUtils.nodeIteratorToList(nit).toArray());
+ final TaskViewerContextMenu contextMenu = new TaskViewerContextMenu(viewer, getSession(),
+ activitiesService) {
+ private static final long serialVersionUID = 1640863021424194303L;
+
+ @Override
+ public boolean performAction(String actionId) {
+ boolean hasChanged = super.performAction(actionId);
+ if (hasChanged) {
+ viewer.getTable().setFocus();
+ forceRefresh(null);
+ // NodeIterator nit =
+ // activitiesService.getMyTasks(getSession(), true);
+ // viewer.setInput(JcrUtils.nodeIteratorToList(nit).toArray());
+ }
+ return hasChanged;
+ }
+ };
+ viewer.getTable().addMouseListener(new MouseAdapter() {
+ private static final long serialVersionUID = 6737579410648595940L;
+
+ @Override
+ public void mouseDown(MouseEvent e) {
+ if (e.button == 3) {
+ // contextMenu.setCurrFolderPath(currDisplayedFolder);
+ contextMenu.show(viewer.getTable(), new Point(e.x, e.y),
+ (IStructuredSelection) viewer.getSelection());
+ }
+ }
+ });
+
}
}
Calendar now = GregorianCalendar.getInstance();
return node.hasProperty(propName) && node.getProperty(propName).getDate().before(now);
} catch (RepositoryException e) {
- throw new SuiteException("Cannot check overdue status with property " + propName + " on " + node, e);
+ throw new SuiteWorkbenchException("Cannot check overdue status with property " + propName + " on " + node, e);
}
}