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.NavigationBean;
|
||||
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.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
@@ -103,8 +105,7 @@ public class NavigatorPluginBean implements IContextListener
|
||||
// get all the child folder objects for the parent
|
||||
List<ChildAssociationRef> childRefs = this.nodeService.getChildAssocs(parentNodeRef,
|
||||
ContentModel.ASSOC_CONTAINS, RegexQNamePattern.MATCH_ALL);
|
||||
|
||||
StringBuilder xml = new StringBuilder("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\" ?><nodes>");
|
||||
List<TreeNode> sortedNodes = new ArrayList<TreeNode>();
|
||||
for (ChildAssociationRef ref: childRefs)
|
||||
{
|
||||
NodeRef nodeRef = ref.getChildRef();
|
||||
@@ -115,9 +116,23 @@ public class NavigatorPluginBean implements IContextListener
|
||||
TreeNode childNode = createTreeNode(nodeRef);
|
||||
parentNode.addChild(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>");
|
||||
|
||||
// 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.ajax.NavigatorPluginBean;
|
||||
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.component.SelfRenderingComponent;
|
||||
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);
|
||||
}
|
||||
|
||||
// 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
|
||||
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.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.renderer.BaseRenderer;
|
||||
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
|
||||
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);
|
||||
}
|
||||
|
Reference in New Issue
Block a user