\r
sashForm.setWeights(getWeights());\r
\r
+ try {\r
+ ObservationManager observationManager = session.getWorkspace()\r
+ .getObservationManager();\r
+ resultsObserver = new ResultObserver(resultTreeViewer.getTree()\r
+ .getDisplay());\r
+ observationManager.addEventListener(resultsObserver,\r
+ Event.NODE_MOVED | Event.NODE_ADDED | Event.NODE_REMOVED,\r
+ UserJcrUtils.getUserHome(session).getPath(), true, null,\r
+ observedNodeTypes, false);\r
+ } catch (RepositoryException e) {\r
+ throw new SlcException("Cannot register listeners", e);\r
+ }\r
+\r
// Refresh the view to initialize it\r
refresh(null);\r
}\r
public void setFocus() {\r
}\r
\r
+ /**\r
+ * refreshes the passed resultParent and its corresponding subtree. It\r
+ * refreshes the whole viewer if null is passed.\r
+ * \r
+ * @param ResultParent\r
+ * \r
+ */\r
+ public void refresh(ResultParent resultParent) {\r
+ if (log.isDebugEnabled())\r
+ log.debug("Refreshing '" + resultParent + "'...");\r
+ // Thread.dumpStack();\r
+ if (resultParent == null) {\r
+ resultTreeViewer.setInput(initializeResultTree());\r
+ } else {\r
+ if (resultParent instanceof ParentNodeFolder) {\r
+ ParentNodeFolder currFolder = (ParentNodeFolder) resultParent;\r
+ jcrRefresh(currFolder.getNode());\r
+ currFolder.forceFullRefresh();\r
+ }\r
+ // FIXME: specific refresh does not work\r
+ // resultTreeViewer.refresh(currFolder, true);\r
+ TreePath[] tps = resultTreeViewer.getExpandedTreePaths();\r
+ resultTreeViewer.setInput(initializeResultTree());\r
+ resultTreeViewer.setExpandedTreePaths(tps);\r
+ }\r
+ }\r
+\r
/**\r
* refreshes the passed node and its corresponding subtree.\r
* \r
* \r
*/\r
public boolean jcrRefresh(Node node) {\r
+ if (log.isDebugEnabled())\r
+ log.debug(" JCR refreshing " + node + "...");\r
boolean isPassed = true;\r
try {\r
if (node.isNodeType(SlcTypes.SLC_TEST_RESULT)) {\r
return isPassed;\r
}\r
\r
- /**\r
- * refreshes the passed resultParent and its corresponding subtree. It\r
- * refreshes the whole viewer if null is passed.\r
- * \r
- * @param ResultParent\r
- * \r
- */\r
- public void refresh(ResultParent resultParent) {\r
- if (resultParent == null) {\r
- resultTreeViewer.setInput(initializeResultTree());\r
- if (resultsObserver == null) {\r
- try {\r
- ObservationManager observationManager = session\r
- .getWorkspace().getObservationManager();\r
- resultsObserver = new ResultObserver(resultTreeViewer\r
- .getTree().getDisplay());\r
- observationManager.addEventListener(resultsObserver,\r
- Event.NODE_MOVED | Event.NODE_ADDED\r
- | Event.NODE_REMOVED, UserJcrUtils\r
- .getUserHome(session).getPath(), true,\r
- null, observedNodeTypes, false);\r
- } catch (RepositoryException e) {\r
- throw new SlcException("Cannot register listeners", e);\r
- }\r
- }\r
-\r
- } else {\r
- if (resultParent instanceof ParentNodeFolder) {\r
- ParentNodeFolder currFolder = (ParentNodeFolder) resultParent;\r
- jcrRefresh(currFolder.getNode());\r
- currFolder.forceFullRefresh();\r
- }\r
- // FIXME: specific refresh does not work\r
- // resultTreeViewer.refresh(currFolder, true);\r
- TreePath[] tps = resultTreeViewer.getExpandedTreePaths();\r
- resultTreeViewer.setInput(initializeResultTree());\r
- resultTreeViewer.setExpandedTreePaths(tps);\r
- }\r
- }\r
-\r
private ResultParent[] initializeResultTree() {\r
try {\r
if (session.nodeExists(SlcJcrResultUtils\r
\r
for (Event event : events) {\r
i++;\r
+ // if (log.isDebugEnabled())\r
// log.debug("Received event " + event);\r
int eventType = event.getType();\r
if (eventType == Event.NODE_REMOVED) {\r