Analyse issue with reasult display
authorMathieu Baudier <mbaudier@argeo.org>
Thu, 8 Nov 2012 11:27:57 +0000 (11:27 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Thu, 8 Nov 2012 11:27:57 +0000 (11:27 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk@5740 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

plugins/org.argeo.slc.client.ui/src/main/java/org/argeo/slc/client/ui/views/JcrResultTreeView.java

index 798e6f25841109af9c4701adf2dbb77a4b09b1d1..40b295c42258854324358cae9494149889fc2a1a 100644 (file)
@@ -141,6 +141,19 @@ public class JcrResultTreeView extends ViewPart {
 \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
@@ -286,6 +299,33 @@ public class JcrResultTreeView extends ViewPart {
        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
@@ -294,6 +334,8 @@ public class JcrResultTreeView extends ViewPart {
         * \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
@@ -323,46 +365,6 @@ public class JcrResultTreeView extends ViewPart {
                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
@@ -670,6 +672,7 @@ public class JcrResultTreeView extends ViewPart {
 \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