mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
- AWC-1089: Nodes in tree should be ordered alphabetically
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@5016 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -26,6 +26,8 @@ import org.alfresco.web.app.servlet.FacesHelper;
|
|||||||
import org.alfresco.web.bean.BrowseBean;
|
import org.alfresco.web.bean.BrowseBean;
|
||||||
import org.alfresco.web.bean.NavigationBean;
|
import org.alfresco.web.bean.NavigationBean;
|
||||||
import org.alfresco.web.bean.repository.Repository;
|
import org.alfresco.web.bean.repository.Repository;
|
||||||
|
import org.alfresco.web.data.IDataContainer;
|
||||||
|
import org.alfresco.web.data.QuickSort;
|
||||||
import org.alfresco.web.ui.repo.component.UITree.TreeNode;
|
import org.alfresco.web.ui.repo.component.UITree.TreeNode;
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
@@ -103,8 +105,7 @@ public class NavigatorPluginBean implements IContextListener
|
|||||||
// get all the child folder objects for the parent
|
// get all the child folder objects for the parent
|
||||||
List<ChildAssociationRef> childRefs = this.nodeService.getChildAssocs(parentNodeRef,
|
List<ChildAssociationRef> childRefs = this.nodeService.getChildAssocs(parentNodeRef,
|
||||||
ContentModel.ASSOC_CONTAINS, RegexQNamePattern.MATCH_ALL);
|
ContentModel.ASSOC_CONTAINS, RegexQNamePattern.MATCH_ALL);
|
||||||
|
List<TreeNode> sortedNodes = new ArrayList<TreeNode>();
|
||||||
StringBuilder xml = new StringBuilder("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\" ?><nodes>");
|
|
||||||
for (ChildAssociationRef ref: childRefs)
|
for (ChildAssociationRef ref: childRefs)
|
||||||
{
|
{
|
||||||
NodeRef nodeRef = ref.getChildRef();
|
NodeRef nodeRef = ref.getChildRef();
|
||||||
@@ -115,9 +116,23 @@ public class NavigatorPluginBean implements IContextListener
|
|||||||
TreeNode childNode = createTreeNode(nodeRef);
|
TreeNode childNode = createTreeNode(nodeRef);
|
||||||
parentNode.addChild(childNode);
|
parentNode.addChild(childNode);
|
||||||
currentNodes.put(childNode.getNodeRef(), childNode);
|
currentNodes.put(childNode.getNodeRef(), childNode);
|
||||||
xml.append(childNode.toXML());
|
sortedNodes.add(childNode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// order the tree nodes by the tree label
|
||||||
|
if (sortedNodes.size() > 1)
|
||||||
|
{
|
||||||
|
QuickSort sorter = new QuickSort(sortedNodes, "name", true, IDataContainer.SORT_CASEINSENSITIVE);
|
||||||
|
sorter.sort();
|
||||||
|
}
|
||||||
|
|
||||||
|
// generate the XML representation
|
||||||
|
StringBuilder xml = new StringBuilder("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\" ?><nodes>");
|
||||||
|
for (TreeNode childNode : sortedNodes)
|
||||||
|
{
|
||||||
|
xml.append(childNode.toXML());
|
||||||
|
}
|
||||||
xml.append("</nodes>");
|
xml.append("</nodes>");
|
||||||
|
|
||||||
// send the generated XML back to the tree
|
// send the generated XML back to the tree
|
||||||
|
@@ -22,6 +22,8 @@ import org.alfresco.web.bean.BrowseBean;
|
|||||||
import org.alfresco.web.bean.NavigationBean;
|
import org.alfresco.web.bean.NavigationBean;
|
||||||
import org.alfresco.web.bean.ajax.NavigatorPluginBean;
|
import org.alfresco.web.bean.ajax.NavigatorPluginBean;
|
||||||
import org.alfresco.web.bean.repository.Repository;
|
import org.alfresco.web.bean.repository.Repository;
|
||||||
|
import org.alfresco.web.data.IDataContainer;
|
||||||
|
import org.alfresco.web.data.QuickSort;
|
||||||
import org.alfresco.web.ui.common.Utils;
|
import org.alfresco.web.ui.common.Utils;
|
||||||
import org.alfresco.web.ui.common.component.SelfRenderingComponent;
|
import org.alfresco.web.ui.common.component.SelfRenderingComponent;
|
||||||
import org.alfresco.web.ui.repo.component.UITree.TreeNode;
|
import org.alfresco.web.ui.repo.component.UITree.TreeNode;
|
||||||
@@ -220,6 +222,13 @@ public class UINavigator extends SelfRenderingComponent
|
|||||||
areaTitle = Application.getMessage(context, NavigationBean.MSG_MYALFRESCO);
|
areaTitle = Application.getMessage(context, NavigationBean.MSG_MYALFRESCO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// order the root nodes by the tree label
|
||||||
|
if (rootNodesForArea != null && rootNodesForArea.size() > 1)
|
||||||
|
{
|
||||||
|
QuickSort sorter = new QuickSort(rootNodesForArea, "name", true, IDataContainer.SORT_CASEINSENSITIVE);
|
||||||
|
sorter.sort();
|
||||||
|
}
|
||||||
|
|
||||||
// main container div
|
// main container div
|
||||||
out.write("<div id=\"navigator\" class=\"navigator\">");
|
out.write("<div id=\"navigator\" class=\"navigator\">");
|
||||||
|
|
||||||
|
@@ -7,6 +7,8 @@ import javax.faces.component.UIComponent;
|
|||||||
import javax.faces.context.FacesContext;
|
import javax.faces.context.FacesContext;
|
||||||
import javax.faces.context.ResponseWriter;
|
import javax.faces.context.ResponseWriter;
|
||||||
|
|
||||||
|
import org.alfresco.web.data.IDataContainer;
|
||||||
|
import org.alfresco.web.data.QuickSort;
|
||||||
import org.alfresco.web.ui.common.Utils;
|
import org.alfresco.web.ui.common.Utils;
|
||||||
import org.alfresco.web.ui.common.renderer.BaseRenderer;
|
import org.alfresco.web.ui.common.renderer.BaseRenderer;
|
||||||
import org.alfresco.web.ui.repo.component.UITree;
|
import org.alfresco.web.ui.repo.component.UITree;
|
||||||
@@ -173,7 +175,15 @@ public class YahooTreeRenderer extends BaseRenderer
|
|||||||
// iterate through the child nodes and generate them
|
// iterate through the child nodes and generate them
|
||||||
if (node.isExpanded() && node.getChildren().size() > 0)
|
if (node.isExpanded() && node.getChildren().size() > 0)
|
||||||
{
|
{
|
||||||
for (TreeNode child : node.getChildren())
|
// order the children
|
||||||
|
List<TreeNode> children = node.getChildren();
|
||||||
|
if (children.size() > 1)
|
||||||
|
{
|
||||||
|
QuickSort sorter = new QuickSort(children, "name", true, IDataContainer.SORT_CASEINSENSITIVE);
|
||||||
|
sorter.sort();
|
||||||
|
}
|
||||||
|
|
||||||
|
for (TreeNode child : children)
|
||||||
{
|
{
|
||||||
generateNode(child, out, currentVarName);
|
generateNode(child, out, currentVarName);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user