import org.argeo.slc.jcr.SlcTypes;
import org.eclipse.jface.viewers.ColumnLabelProvider;
import org.eclipse.jface.viewers.DoubleClickEvent;
+import org.eclipse.jface.viewers.IBaseLabelProvider;
import org.eclipse.jface.viewers.IDoubleClickListener;
import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.IStructuredSelection;
private DateFormat dateFormat = new SimpleDateFormat(
"EEE, dd MMM yyyy HH:mm:ss");
- private Integer queryLimit = 100;
+ private Integer queryLimit = 2000;
public void createPartControl(Composite parent) {
+
Table table = createTable(parent);
viewer = new TableViewer(table);
- viewer.setLabelProvider(new LabelProvider());
- viewer.setContentProvider(new ContentProvider());
+ viewer.setLabelProvider(createLabelProvider());
+ viewer.setContentProvider(new ViewContentProvider());
viewer.setInput(getViewSite());
viewer.addDoubleClickListener(new ViewDoubleClickListener());
- resultsObserver = new AsyncUiEventListener() {
+ getViewSite().setSelectionProvider(viewer);
+
+ resultsObserver = new AsyncUiEventListener(viewer.getTable()
+ .getDisplay()) {
protected void onEventInUiThread(EventIterator events) {
// TODO optimize by updating only the changed result
viewer.refresh();
observationManager.addEventListener(resultsObserver,
Event.NODE_ADDED | Event.NODE_REMOVED
| Event.PROPERTY_CHANGED,
- SlcJcrConstants.RESULTS_BASE_PATH, true, null, null,
- false);
+ SlcJcrConstants.RESULTS_BASE_PATH, true, null, null, false);
} catch (RepositoryException e) {
throw new SlcException("Cannot register listeners", e);
}
}
protected Table createTable(Composite parent) {
- int style = SWT.SINGLE | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL
- | SWT.FULL_SELECTION;
- // does not function with RAP, commented for the time being
+ int style = SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL
+ | SWT.FULL_SELECTION | SWT.MULTI;
+ // does not work with RAP, commented for the time being
// | SWT.HIDE_SELECTION;
Table table = new Table(parent, style);
return table;
}
+ // public void refresh() {
+ // viewer.refresh();
+ // }
+
+ /*
+ * METHODS TO BE OVERRIDDEN
+ */
+ protected IBaseLabelProvider createLabelProvider() {
+ return new ViewLabelProvider();
+ }
+
+ protected void processDoubleClick(DoubleClickEvent evt) {
+ Object obj = ((IStructuredSelection) evt.getSelection())
+ .getFirstElement();
+ try {
+ if (obj instanceof Node) {
+ Node node = (Node) obj;
+ if (node.isNodeType(SlcTypes.SLC_PROCESS)) {
+ IWorkbenchPage activePage = PlatformUI.getWorkbench()
+ .getActiveWorkbenchWindow().getActivePage();
+ activePage.openEditor(
+ new ProcessEditorInput(node.getPath()),
+ ProcessEditor.ID);
+ }
+ }
+ } catch (Exception e) {
+ throw new SlcException("Cannot open " + obj, e);
+ }
+ }
+
public void setFocus() {
viewer.getControl().setFocus();
}
super.dispose();
}
- class ContentProvider implements IStructuredContentProvider {
+ class ViewContentProvider implements IStructuredContentProvider {
public Object[] getElements(Object inputElement) {
try {
}
- class LabelProvider extends ColumnLabelProvider implements
+ class ViewLabelProvider extends ColumnLabelProvider implements
ITableLabelProvider {
public Image getColumnImage(Object obj, int columnIndex) {
return null;
try {
Node node = (Node) obj;
- if(node.hasProperty(SLC_COMPLETED)){
+ if (node.hasProperty(SLC_COMPLETED)) {
// TODO
}
return null;
class ViewDoubleClickListener implements IDoubleClickListener {
public void doubleClick(DoubleClickEvent evt) {
- Object obj = ((IStructuredSelection) evt.getSelection())
- .getFirstElement();
- try {
- if (obj instanceof Node) {
- Node node = (Node) obj;
- if (node.isNodeType(SlcTypes.SLC_PROCESS)) {
- IWorkbenchPage activePage = PlatformUI.getWorkbench()
- .getActiveWorkbenchWindow().getActivePage();
- activePage.openEditor(
- new ProcessEditorInput(node.getPath()),
- ProcessEditor.ID);
- }
- }
- } catch (Exception e) {
- throw new SlcException("Cannot open " + obj, e);
- }
+ processDoubleClick(evt);
}
}