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