Woonsan Ko pushed to branch feature/CMS-10553 at cms-community / hippo-cms

Commits:
ee79d4fc by Woonsan Ko at 2017-05-23T14:15:31-04:00
CMS-10553: refreshing tree model to refresh tree after folder renaming.

- - - - -


2 changed files:

- api/src/main/java/org/hippoecm/frontend/model/tree/JcrTreeNode.java
- 
perspectives/src/main/java/org/hippoecm/frontend/plugins/cms/browse/tree/FolderTreePlugin.java


Changes:

=====================================
api/src/main/java/org/hippoecm/frontend/model/tree/JcrTreeNode.java
=====================================
--- a/api/src/main/java/org/hippoecm/frontend/model/tree/JcrTreeNode.java
+++ b/api/src/main/java/org/hippoecm/frontend/model/tree/JcrTreeNode.java
@@ -43,7 +43,7 @@ public class JcrTreeNode extends 
NodeModelWrapper<JcrTreeNode> implements IJcrTr
 
     static final int DETACHING = 0x00000001;
 
-    private List<? extends TreeNode> children;
+    private List<IJcrTreeNode> children;
 
     private final int hashCode;
     private boolean reloadChildren = true;
@@ -139,6 +139,18 @@ public class JcrTreeNode extends 
NodeModelWrapper<JcrTreeNode> implements IJcrTr
         return true;
     }
 
+    /**
+     * Ensure child tree nodes sorted properly.
+     */
+    public void ensureChildrenSorted() {
+        try {
+            ensureChildrenLoaded();
+            sortChildTreeNodes(children);
+        } catch (RepositoryException e) {
+            log.error("Failed to ensure children sorted.", e);
+        }
+    }
+
     // implement IDetachable
 
     @Override
@@ -242,7 +254,7 @@ public class JcrTreeNode extends 
NodeModelWrapper<JcrTreeNode> implements IJcrTr
         if (nodeModel.getObject() == null) {
             reloadChildren = false;
             reloadChildCount = false;
-            children = new ArrayList<TreeNode>();
+            children = new ArrayList<>();
             childCount = 0;
         } else if (children == null || reloadChildren) {
             try {
@@ -250,7 +262,7 @@ public class JcrTreeNode extends 
NodeModelWrapper<JcrTreeNode> implements IJcrTr
                 childCount = children.size();
             } catch (RepositoryException e) {
                 log.warn("Unable to load children, setting empty list: " + 
e.getMessage());
-                children = new ArrayList<TreeNode>();
+                children = new ArrayList<>();
                 childCount = 0;
             }
             reloadChildren = false;


=====================================
perspectives/src/main/java/org/hippoecm/frontend/plugins/cms/browse/tree/FolderTreePlugin.java
=====================================
--- 
a/perspectives/src/main/java/org/hippoecm/frontend/plugins/cms/browse/tree/FolderTreePlugin.java
+++ 
b/perspectives/src/main/java/org/hippoecm/frontend/plugins/cms/browse/tree/FolderTreePlugin.java
@@ -231,6 +231,8 @@ public class FolderTreePlugin extends RenderPlugin {
             @Override
             public void onTargetRespond(final AjaxRequestTarget target, 
boolean dirty) {
                 if (dirty) {
+                    rootNode.ensureChildrenSorted();
+                    tree.setDefaultModelObject(treeModel);
                     
target.appendJavaScript(treeHelperBehavior.getRenderString());
                 }
             }



View it on GitLab: 
https://code.onehippo.org/cms-community/hippo-cms/commit/ee79d4fcf43fc36d613847e6a03eac3de67c98df
_______________________________________________
Hippocms-svn mailing list
Hippocms-svn@lists.onehippo.org
https://lists.onehippo.org/mailman/listinfo/hippocms-svn

Reply via email to