X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=eclipse%2Fplugins%2Forg.argeo.slc.client.ui%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fclient%2Fui%2Fviews%2FJcrProcessListView.java;h=640e4c86c80b4110f24bed4827db57fdbe7fdfba;hb=d172f924a8524ff1e5a2d68db054103ca461ee1e;hp=ddc34a581943f63ed47d898436261e6c449fd70c;hpb=9bab32638cc6a08ba96c3feca190733e9d1ac0ac;p=gpl%2Fargeo-slc.git diff --git a/eclipse/plugins/org.argeo.slc.client.ui/src/main/java/org/argeo/slc/client/ui/views/JcrProcessListView.java b/eclipse/plugins/org.argeo.slc.client.ui/src/main/java/org/argeo/slc/client/ui/views/JcrProcessListView.java index ddc34a581..640e4c86c 100644 --- a/eclipse/plugins/org.argeo.slc.client.ui/src/main/java/org/argeo/slc/client/ui/views/JcrProcessListView.java +++ b/eclipse/plugins/org.argeo.slc.client.ui/src/main/java/org/argeo/slc/client/ui/views/JcrProcessListView.java @@ -19,8 +19,10 @@ import javax.jcr.query.Query; import org.argeo.eclipse.ui.jcr.AsyncUiEventListener; import org.argeo.jcr.JcrUtils; import org.argeo.slc.SlcException; +import org.argeo.slc.client.ui.SlcImages; import org.argeo.slc.client.ui.editors.ProcessEditor; import org.argeo.slc.client.ui.editors.ProcessEditorInput; +import org.argeo.slc.execution.ExecutionProcess; import org.argeo.slc.jcr.SlcJcrConstants; import org.argeo.slc.jcr.SlcNames; import org.argeo.slc.jcr.SlcTypes; @@ -41,10 +43,7 @@ import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.part.ViewPart; -/** - * This class display the list of all processes that have run in the - * corresponding agent. Currently, the local agent. - */ +/** Displays processes. */ public class JcrProcessListView extends ViewPart { public static final String ID = "org.argeo.slc.client.ui.jcrProcessListView"; @@ -56,7 +55,7 @@ public class JcrProcessListView extends ViewPart { 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); @@ -66,8 +65,10 @@ public class JcrProcessListView extends ViewPart { viewer.setInput(getViewSite()); viewer.addDoubleClickListener(new ViewDoubleClickListener()); - processesObserver = new AsyncUiEventListener() { - protected void onEventInUiThread(EventIterator events) { + processesObserver = new AsyncUiEventListener(viewer.getTable() + .getDisplay()) { + protected void onEventInUiThread(List events) { + // TODO optimize by updating only the changed process viewer.refresh(); } }; @@ -157,8 +158,29 @@ public class JcrProcessListView extends ViewPart { class LabelProvider extends ColumnLabelProvider implements ITableLabelProvider { - public Image getColumnImage(Object element, int columnIndex) { - return null; + public Image getColumnImage(Object obj, int columnIndex) { + if (columnIndex != 0) + return null; + try { + Node node = (Node) obj; + String status = node.getProperty(SlcNames.SLC_STATUS) + .getString(); + if (status.equals(ExecutionProcess.NEW) + || status.equals(ExecutionProcess.INITIALIZED) + || status.equals(ExecutionProcess.SCHEDULED)) + return SlcImages.PROCESS_SCHEDULED; + else if (status.equals(ExecutionProcess.ERROR) + || status.equals(ExecutionProcess.UNKOWN)) + return SlcImages.PROCESS_ERROR; + else if (status.equals(ExecutionProcess.COMPLETED)) + return SlcImages.PROCESS_COMPLETED; + else if (status.equals(ExecutionProcess.RUNNING)) + return SlcImages.PROCESS_RUNNING; + else + throw new SlcException("Unkown status " + status); + } catch (RepositoryException e) { + throw new SlcException("Cannot get column text", e); + } } public String getColumnText(Object obj, int index) {