*/\r
package org.argeo.slc.client.ui.views;\r
\r
+import java.text.DateFormat;\r
+import java.text.SimpleDateFormat;\r
import java.util.ArrayList;\r
import java.util.Calendar;\r
import java.util.List;\r
import javax.jcr.Node;\r
import javax.jcr.NodeIterator;\r
import javax.jcr.Property;\r
-import javax.jcr.PropertyIterator;\r
-import javax.jcr.PropertyType;\r
import javax.jcr.RepositoryException;\r
import javax.jcr.Session;\r
-import javax.jcr.Value;\r
import javax.jcr.nodetype.NodeType;\r
import javax.jcr.observation.Event;\r
import javax.jcr.observation.EventListener;\r
import javax.jcr.observation.ObservationManager;\r
\r
-import org.apache.commons.logging.Log;\r
-import org.apache.commons.logging.LogFactory;\r
import org.argeo.ArgeoException;\r
import org.argeo.eclipse.ui.jcr.AsyncUiEventListener;\r
import org.argeo.eclipse.ui.utils.CommandUtils;\r
public class JcrResultTreeView extends ViewPart {\r
public final static String ID = ClientUiPlugin.ID + ".jcrResultTreeView";\r
\r
- private final static Log log = LogFactory.getLog(JcrResultTreeView.class);\r
+ private final static DateFormat dateFormat = new SimpleDateFormat(\r
+ SlcUiConstants.DEFAULT_DISPLAY_DATE_TIME_FORMAT);\r
+\r
+ // private final static Log log =\r
+ // LogFactory.getLog(JcrResultTreeView.class);\r
\r
/* DEPENDENCY INJECTION */\r
private Session session;\r
TableViewerColumn col = new TableViewerColumn(propertiesViewer,\r
SWT.NONE);\r
col.getColumn().setText("Name");\r
- col.getColumn().setWidth(200);\r
+ col.getColumn().setWidth(100);\r
col.setLabelProvider(new ColumnLabelProvider() {\r
public String getText(Object element) {\r
try {\r
- return ((Property) element).getName();\r
+ String name = ((Property) element).getName();\r
+ String value = null;\r
+ if (SlcNames.SLC_TEST_CASE.equals(name))\r
+ value = "Test case";\r
+ else if (SlcNames.SLC_COMPLETED.equals(name))\r
+ value = "Completed on";\r
+ else if (SlcNames.SLC_SUCCESS.equals(name))\r
+ value = "Status";\r
+ else if (SlcNames.SLC_MESSAGE.equals(name))\r
+ value = "Message";\r
+ else if (SlcNames.SLC_ERROR_MESSAGE.equals(name))\r
+ value = "Error";\r
+ return value;\r
} catch (RepositoryException e) {\r
throw new ArgeoException(\r
"Unexpected exception in label provider", e);\r
});\r
col = new TableViewerColumn(propertiesViewer, SWT.NONE);\r
col.getColumn().setText("Value");\r
- col.getColumn().setWidth(400);\r
+ col.getColumn().setWidth(200);\r
col.setLabelProvider(new ColumnLabelProvider() {\r
public String getText(Object element) {\r
try {\r
Property property = (Property) element;\r
- if (property.getType() == PropertyType.BINARY)\r
- return "<binary>";\r
- else if (property.isMultiple()) {\r
- StringBuffer buf = new StringBuffer("[");\r
- Value[] values = property.getValues();\r
- for (int i = 0; i < values.length; i++) {\r
- if (i != 0)\r
- buf.append(", ");\r
- buf.append(values[i].getString());\r
+ String name = property.getName();\r
+ String value = null;\r
+\r
+ if (SlcNames.SLC_TEST_CASE.equals(name)\r
+ || SlcNames.SLC_ERROR_MESSAGE.equals(name)\r
+ || SlcNames.SLC_MESSAGE.equals(name))\r
+ value = property.getValue().getString();\r
+ else if (SlcNames.SLC_COMPLETED.equals(name)) {\r
+ Calendar date = property.getValue().getDate();\r
+ value = dateFormat.format(date.getTime());\r
+ } else if (SlcNames.SLC_SUCCESS.equals(name)) {\r
+ if (property.getValue().getBoolean())\r
+ value = "SUCCESS";\r
+ else {\r
+ if (property.getParent().hasNode(\r
+ SlcNames.SLC_ERROR_MESSAGE))\r
+ value = "ERROR";\r
+ else\r
+ value = "FAILED";\r
}\r
- buf.append(']');\r
- return buf.toString();\r
- } else\r
- return property.getValue().getString();\r
- } catch (RepositoryException e) {\r
- throw new ArgeoException(\r
- "Unexpected exception in label provider", e);\r
- }\r
- }\r
- });\r
- col = new TableViewerColumn(propertiesViewer, SWT.NONE);\r
- col.getColumn().setText("Type");\r
- col.getColumn().setWidth(200);\r
- col.setLabelProvider(new ColumnLabelProvider() {\r
- public String getText(Object element) {\r
- try {\r
- return PropertyType.nameFromValue(((Property) element)\r
- .getType());\r
+ }\r
+ return value;\r
} catch (RepositoryException e) {\r
throw new ArgeoException(\r
"Unexpected exception in label provider", e);\r
if (isResultFolder) {\r
source = ((ParentNodeFolder) lastSelectedSourceElement)\r
.getNode();\r
- if (tpNode.getPath().startsWith(source.getPath()))\r
+ if (tpNode.getPath().startsWith(source.getPath())\r
+ || source.getParent().getPath()\r
+ .equals(tpNode.getPath()))\r
doit = false;\r
} else if (lastSelectedSourceElement instanceof SingleResultNode) {\r
source = ((SingleResultNode) lastSelectedSourceElement)\r
for (Node node : nodesToRefresh)\r
jcrRefresh(node);\r
refresh(null);\r
-\r
- // boolean wasRemoved = false;\r
- // boolean wasAdded = false;\r
- //\r
- // for (Event event : events) {\r
- // // if (log.isDebugEnabled())\r
- // // log.debug("Received event " + event);\r
- // int eventType = event.getType();\r
- // if (eventType == Event.NODE_REMOVED) {\r
- // String path = event.getPath();\r
- // String parPath = JcrUtils.parentPath(path);\r
- // if (session.nodeExists(parPath)) {\r
- // Node currNode = session.getNode(parPath);\r
- // if (currNode.isNodeType(NodeType.NT_UNSTRUCTURED)) {\r
- // // jcrRefresh(currNode);\r
- // wasRemoved = true;\r
- // }\r
- // }\r
- // } else if (eventType == Event.NODE_ADDED) {\r
- // // refresh(lastSelectedTargetElement);\r
- // String path = event.getPath();\r
- // if (session.nodeExists(path)) {\r
- // Node currNode = session.getNode(path);\r
- // if (currNode.isNodeType(SlcTypes.SLC_TEST_RESULT)\r
- // || currNode\r
- // .isNodeType(SlcTypes.SLC_RESULT_FOLDER)) {\r
- // // refresh(lastSelectedTargetElement);\r
- // wasAdded = true;\r
- // // resultTreeViewer.expandToLevel(\r
- // // lastSelectedTargetElement, 1);\r
- // }\r
- // }\r
- // }\r
- // }\r
- // if (wasRemoved || wasAdded)\r
- // refresh(lastSelectedSourceElementParent);\r
}\r
}\r
\r
\r
protected void onEventInUiThread(List<Event> events)\r
throws RepositoryException {\r
- for (Event event : events) {\r
- if (log.isDebugEnabled())\r
- log.debug("Received event " + event);\r
- }\r
- refresh(lastSelectedSourceElementParent);\r
+ if (lastSelectedSourceElementParent != null)\r
+ refresh(lastSelectedSourceElementParent);\r
}\r
}\r
\r
public Object[] getElements(Object inputElement) {\r
try {\r
if (inputElement instanceof Node) {\r
- List<Property> props = new ArrayList<Property>();\r
- PropertyIterator pit = ((Node) inputElement)\r
- .getProperties();\r
- while (pit.hasNext())\r
- props.add(pit.nextProperty());\r
- return props.toArray();\r
+ Node node = (Node) inputElement;\r
+ if (node.isNodeType(SlcTypes.SLC_TEST_RESULT)) {\r
+ List<Property> props = new ArrayList<Property>();\r
+ if (node.hasProperty(SlcNames.SLC_TEST_CASE))\r
+ props.add(node.getProperty(SlcNames.SLC_TEST_CASE));\r
+ if (node.hasProperty(SlcNames.SLC_COMPLETED))\r
+ props.add(node.getProperty(SlcNames.SLC_COMPLETED));\r
+ if (node.hasNode(SlcNames.SLC_STATUS)) {\r
+ Node status = node.getNode(SlcNames.SLC_STATUS);\r
+ props.add(status.getProperty(SlcNames.SLC_SUCCESS));\r
+ if (status.hasProperty(SlcNames.SLC_MESSAGE))\r
+ props.add(status\r
+ .getProperty(SlcNames.SLC_MESSAGE));\r
+ if (status.hasProperty(SlcNames.SLC_ERROR_MESSAGE))\r
+ props.add(status\r
+ .getProperty(SlcNames.SLC_ERROR_MESSAGE));\r
+ }\r
+ return props.toArray();\r
+ }\r
}\r
return new Object[] {};\r
+\r
} catch (RepositoryException e) {\r
throw new ArgeoException("Cannot get element for "\r
+ inputElement, e);\r