Author: hoang_to
Date: 2010-04-29 12:52:29 -0400 (Thu, 29 Apr 2010)
New Revision: 2903
Modified:
portal/trunk/portlet/exoadmin/src/main/java/org/exoplatform/navigation/webui/component/UIGroupNavigationManagement.java
portal/trunk/portlet/exoadmin/src/main/java/org/exoplatform/navigation/webui/component/UISiteManagement.java
portal/trunk/web/portal/src/main/webapp/groovy/portal/webui/navigation/UINavigationNodeSelector.gtmpl
portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/navigation/UINavigationManagement.java
portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/navigation/UINavigationNodeSelector.java
Log:
GTNPORTAL-1087: Update java code with new approach to fix the issue, following the
creation of UIFilterableTree
Modified:
portal/trunk/portlet/exoadmin/src/main/java/org/exoplatform/navigation/webui/component/UIGroupNavigationManagement.java
===================================================================
---
portal/trunk/portlet/exoadmin/src/main/java/org/exoplatform/navigation/webui/component/UIGroupNavigationManagement.java 2010-04-29
16:45:12 UTC (rev 2902)
+++
portal/trunk/portlet/exoadmin/src/main/java/org/exoplatform/navigation/webui/component/UIGroupNavigationManagement.java 2010-04-29
16:52:29 UTC (rev 2903)
@@ -210,9 +210,7 @@
UINavigationNodeSelector selector =
pageManager.getChild(UINavigationNodeSelector.class);
- //TODO: Set correct value for filteredEdittedNavigation
- selector.setOriginalEdittedNavigation(navigation);
- selector.setFilteredEdittedNavigation(navigation);
+ selector.setEdittedNavigation(navigation);
selector.initTreeData();
popUp.setUIComponent(pageManager);
popUp.setWindowSize(400, 400);
@@ -354,16 +352,13 @@
uiPageNodeForm.createUIComponent(UINavigationManagement.class, null, null);
pageManager.setOwner(selectedNavigation.getOwnerId());
UINavigationNodeSelector selector =
pageManager.getChild(UINavigationNodeSelector.class);
- ArrayList<PageNavigation> navis = new ArrayList<PageNavigation>();
- navis.add(selectedNavigation);
- selector.initNavigations(navis);
if (uiPageNodeForm.getSelectedParent() instanceof PageNode)
{
PageNode selectedParent = (PageNode)uiPageNodeForm.getSelectedParent();
selector.selectPageNodeByUri(selectedParent.getUri());
}
- //selector.removeChild(UIRightClickPopupMenu.class);
+
uiNavigationPopup.setUIComponent(pageManager);
uiNavigationPopup.setWindowSize(400, 400);
uiNavigationPopup.setRendered(true);
Modified:
portal/trunk/portlet/exoadmin/src/main/java/org/exoplatform/navigation/webui/component/UISiteManagement.java
===================================================================
---
portal/trunk/portlet/exoadmin/src/main/java/org/exoplatform/navigation/webui/component/UISiteManagement.java 2010-04-29
16:45:12 UTC (rev 2902)
+++
portal/trunk/portlet/exoadmin/src/main/java/org/exoplatform/navigation/webui/component/UISiteManagement.java 2010-04-29
16:52:29 UTC (rev 2903)
@@ -332,12 +332,11 @@
UISiteManagement uicomp = event.getSource();
String portalName = event.getRequestContext().getRequestParameter(OBJECTID);
DataStorage dataService = uicomp.getApplicationComponent(DataStorage.class);
- PortalRequestContext prContext = Util.getPortalRequestContext();
WebuiRequestContext context = event.getRequestContext();
UIApplication uiApplication = context.getUIApplication();
- PageNavigation originalNavi =
dataService.getPageNavigation(PortalConfig.PORTAL_TYPE, portalName);
- if (originalNavi == null)
+ PageNavigation edittedNavigation =
dataService.getPageNavigation(PortalConfig.PORTAL_TYPE, portalName);
+ if (edittedNavigation == null)
{
uiApplication.addMessage(new
ApplicationMessage("UISiteManagement.msg.portal-not-exist",
new String[]{portalName}));
@@ -345,7 +344,7 @@
}
UserACL userACL = uicomp.getApplicationComponent(UserACL.class);
- if (!userACL.hasEditPermission(originalNavi))
+ if (!userACL.hasEditPermission(edittedNavigation))
{
uiApplication.addMessage(new
ApplicationMessage("UISiteManagement.msg.Invalid-editPermission", null));;
return;
@@ -356,20 +355,8 @@
naviManager.setOwner(portalName);
naviManager.setOwnerType(PortalConfig.PORTAL_TYPE);
- PageNavigation filteredNavi = null;
- try{
- filteredNavi = PageNavigationUtils.filterNavigation(originalNavi,
prContext.getRemoteUser(), true);
- }
- catch(Exception ex)
- {
-
- }
-
- uicomp.setOriginalSelectedNavigation(originalNavi);
UINavigationNodeSelector selector =
naviManager.getChild(UINavigationNodeSelector.class);
- selector.setOriginalEdittedNavigation(originalNavi);
- //TODO: Set the filteredNavi instead
- selector.setFilteredEdittedNavigation(originalNavi);
+ selector.setEdittedNavigation(edittedNavigation);
selector.initTreeData();
popUp.setUIComponent(naviManager);
@@ -392,10 +379,6 @@
uiPageNodeForm.createUIComponent(UINavigationManagement.class, null, null);
pageManager.setOwner(selectedNavigation.getOwnerId());
UINavigationNodeSelector selector =
pageManager.getChild(UINavigationNodeSelector.class);
- ArrayList<PageNavigation> navis = new ArrayList<PageNavigation>();
- navis.add(selectedNavigation);
- selector.initNavigations(navis);
- //selector.removeChild(UIRightClickPopupMenu.class);
uiNavigationPopup.setUIComponent(pageManager);
uiNavigationPopup.setWindowSize(400, 400);
event.getRequestContext().addUIComponentToUpdateByAjax(uiNavigationPopup.getParent());
Modified:
portal/trunk/web/portal/src/main/webapp/groovy/portal/webui/navigation/UINavigationNodeSelector.gtmpl
===================================================================
---
portal/trunk/web/portal/src/main/webapp/groovy/portal/webui/navigation/UINavigationNodeSelector.gtmpl 2010-04-29
16:45:12 UTC (rev 2902)
+++
portal/trunk/web/portal/src/main/webapp/groovy/portal/webui/navigation/UINavigationNodeSelector.gtmpl 2010-04-29
16:52:29 UTC (rev 2903)
@@ -4,9 +4,6 @@
import org.exoplatform.webui.core.UIRightClickPopupMenu ;
import org.exoplatform.web.application.JavascriptManager;
- navigations = uicomponent.getPageNavigations();
- def selectedNav = uicomponent.getSelectedNavigation();
-
UIRightClickPopupMenu uiPopupMenu = uicomponent.getChild(UIRightClickPopupMenu.class);
String popupMenu = "";
%>
@@ -40,13 +37,7 @@
<div class="ContainerConfigOptions">
<div class="UIVerticalSlideTabs ItemList CategoryContainer"
style="padding: 1px;">
<%
- if(navigations != null) {
- for(nav in navigations) {
- if(selectedNav != null && nav == selectedNav) {
- uicomponent.renderChild(UITree.class);
- }
- }
- }
+ uicomponent.renderChild(UITree.class);
%>
</div>
</div>
Modified:
portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/navigation/UINavigationManagement.java
===================================================================
---
portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/navigation/UINavigationManagement.java 2010-04-29
16:45:12 UTC (rev 2902)
+++
portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/navigation/UINavigationManagement.java 2010-04-29
16:52:29 UTC (rev 2903)
@@ -102,7 +102,7 @@
DataStorage dataService =
uiManagement.getApplicationComponent(DataStorage.class);
UserPortalConfigService portalConfigService =
uiManagement.getApplicationComponent(UserPortalConfigService.class);
- PageNavigation navigation = uiNodeSelector.getFilteredEdittedNavigation();
+ PageNavigation navigation = uiNodeSelector.getEdittedNavigation();
String editedOwnerType = navigation.getOwnerType();
String editedOwnerId = navigation.getOwnerId();
// Check existed
@@ -195,7 +195,7 @@
UIPageNodeForm2 uiNodeForm =
uiManagementPopup.createUIComponent(UIPageNodeForm2.class, null, null);
uiNodeForm.setValues(null);
uiManagementPopup.setUIComponent(uiNodeForm);
- PageNavigation nav = uiNodeSelector.getFilteredEdittedNavigation();
+ PageNavigation nav = uiNodeSelector.getEdittedNavigation();
uiNodeForm.setSelectedParent(nav);
// set owner type, owner
Modified:
portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/navigation/UINavigationNodeSelector.java
===================================================================
---
portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/navigation/UINavigationNodeSelector.java 2010-04-29
16:45:12 UTC (rev 2902)
+++
portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/navigation/UINavigationNodeSelector.java 2010-04-29
16:52:29 UTC (rev 2903)
@@ -25,6 +25,7 @@
import org.exoplatform.portal.config.model.PageNavigation;
import org.exoplatform.portal.config.model.PageNode;
import org.exoplatform.portal.config.model.PortalConfig;
+import org.exoplatform.portal.mop.Visibility;
import org.exoplatform.portal.webui.page.UIPage;
import org.exoplatform.portal.webui.page.UIPageNodeForm2;
import org.exoplatform.portal.webui.portal.UIPortalComposer;
@@ -44,14 +45,13 @@
import org.exoplatform.webui.core.UIApplication;
import org.exoplatform.webui.core.UIComponent;
import org.exoplatform.webui.core.UIContainer;
+import org.exoplatform.webui.core.UIFilterableTree;
import org.exoplatform.webui.core.UIPopupWindow;
import org.exoplatform.webui.core.UIRightClickPopupMenu;
import org.exoplatform.webui.core.UITree;
import org.exoplatform.webui.event.Event;
import org.exoplatform.webui.event.EventListener;
-import groovy.util.slurpersupport.FilteredNodeChildren;
-
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
@@ -77,11 +77,9 @@
public class UINavigationNodeSelector extends UIContainer
{
- private List<PageNavigation> navigations;
-
- private PageNavigation originalEdittedNavigation;
+ //private List<PageNavigation> navigations;
- private PageNavigation filteredEdittedNavigation;
+ private PageNavigation edittedNavigation;
private TreeNodeData edittedTreeNodeData;
@@ -96,55 +94,56 @@
addChild(UIRightClickPopupMenu.class,
"UINavigationNodeSelectorPopupMenu", null).setRendered(true);
rightClickPopup.setActions(new String[]{"AddNode",
"PasteNode"});
- UITree uiTree = addChild(UITree.class, null, "TreeNodeSelector");
+ UIFilterableTree uiTree = addChild(UIFilterableTree.class, null,
"TreeNodeSelector");
uiTree.setIcon("DefaultPageIcon");
uiTree.setSelectedIcon("DefaultPageIcon");
uiTree.setBeanIdField("uri");
uiTree.setBeanLabelField("encodedResolvedLabel");
uiTree.setBeanIconField("icon");
-
+
UIRightClickPopupMenu uiPopupMenu =
createUIComponent(UIRightClickPopupMenu.class,
"NavigationNodePopupMenu", null);
uiPopupMenu.setActions(new String[]{"AddNode", "EditPageNode",
"EditSelectedNode", "CopyNode", "CloneNode",
"CutNode", "DeleteNode", "MoveUp",
"MoveDown"});
uiTree.setUIRightClickPopupMenu(uiPopupMenu);
+ setupTreeFilter();
}
-
- public List<PageNavigation> getNavigations()
+
+ /**
+ * Setup a filter on the tree node. In this case, SYSTEM node is not displayed if user
is not super user
+ *
+ */
+ private void setupTreeFilter()
{
- return navigations;
+ UIFilterableTree.TreeNodeFilter nodeFilter = new UIFilterableTree.TreeNodeFilter()
+ {
+ public boolean filterThisNode(Object nodeObject, WebuiRequestContext context)
+ {
+ boolean isSystemNode = (((PageNode)nodeObject).getVisibility() ==
Visibility.SYSTEM );
+ if(!isSystemNode)
+ {
+ return false;
+ }else
+ {
+ UserACL userACL =
context.getUIApplication().getApplicationComponent(UserACL.class);
+ return !userACL.getSuperUser().equals(context.getRemoteUser());
+ }
+
+ }
+ };
+ this.getChild(UIFilterableTree.class).setTreeNodeFilter(nodeFilter);
}
- public void setOriginalEdittedNavigation(PageNavigation _originalEdittedNavigation)
throws Exception
+ public void setEdittedNavigation(PageNavigation _filteredEdittedNavigation) throws
Exception
{
- this.originalEdittedNavigation = _originalEdittedNavigation;
+ this.edittedNavigation = _filteredEdittedNavigation;
}
- public PageNavigation getOriginalEdittedNavigation()
+ public PageNavigation getEdittedNavigation()
{
- return this.originalEdittedNavigation;
+ return this.edittedNavigation;
}
-
- public void setFilteredEdittedNavigation(PageNavigation _filteredEdittedNavigation)
throws Exception
- {
- this.filteredEdittedNavigation = _filteredEdittedNavigation;
- }
-
- public PageNavigation getFilteredEdittedNavigation()
- {
- return this.filteredEdittedNavigation;
- }
-
- public void initNavigations(List<PageNavigation> navis) throws Exception
- {
- navigations = navis;
- WebuiRequestContext requestContext = WebuiRequestContext.getCurrentInstance();
- localizeNavigation(requestContext.getLocale());
-
- cleanTreeSibbling();
- initEdittedTreeNodeData();
- }
-
+
/**
* Init the UITree wrapped in UINavigationNodeSelector and localize the label
* @throws Exception
@@ -154,79 +153,45 @@
WebuiRequestContext requestContext = WebuiRequestContext.getCurrentInstance();
localizeNavigation(requestContext.getLocale());
- cleanTreeSibbling();
initEdittedTreeNodeData();
}
- public void loadNavigationByNavId(Integer navId, List<PageNavigation>
navigations) throws Exception
- {
- this.navigations = navigations;
- WebuiRequestContext requestContext = WebuiRequestContext.getCurrentInstance();
- localizeNavigation(requestContext.getLocale());
- selectNavigation(navId);
- }
-
- private void cleanTreeSibbling()
- {
- /*
- if (filteredEdittedNavigation == null)
- {
- getChild(UITree.class).setSibbling(null);
- return;
- }
- */
- }
-
/**
* Init the edited node as well as its parent, navigation
*
*/
private void initEdittedTreeNodeData()
{
- if(filteredEdittedNavigation == null)
+ if(edittedNavigation == null)
{
return;
}
if (edittedTreeNodeData == null)
{
- edittedTreeNodeData = new TreeNodeData(filteredEdittedNavigation);
+ edittedTreeNodeData = new TreeNodeData(edittedNavigation);
selectPageNodeByUri(edittedTreeNodeData.getNode().getUri());//TODO: Check null
}
UITree tree = getChild(UITree.class);
- tree.setSibbling(filteredEdittedNavigation.getNodes());
+ tree.setSibbling(edittedNavigation.getNodes());
}
- private void selectNavigation(int id)
- {
- for (int i = 0; i < navigations.size(); i++)
- {
- if (navigations.get(i).getId() != id)
- {
- continue;
- }
- edittedTreeNodeData = new TreeNodeData(navigations.get(i), null, null);
- selectPageNodeByUri(null);
- UITree uiTree = getChild(UITree.class);
- uiTree.setSibbling(navigations.get(i).getNodes());
- }
- }
private void localizeNavigation(Locale locale)
{
LocaleConfig localeConfig =
getApplicationComponent(LocaleConfigService.class).getLocaleConfig(locale.getLanguage());
- String ownerType = filteredEdittedNavigation.getOwnerType();
+ String ownerType = edittedNavigation.getOwnerType();
if (!PortalConfig.USER_TYPE.equals(ownerType))
{
- String ownerId = filteredEdittedNavigation.getOwnerId();
+ String ownerId = edittedNavigation.getOwnerId();
if (PortalConfig.GROUP_TYPE.equals(ownerType))
{
// Remove the trailing '/' for a group
ownerId = ownerId.substring(1);
}
ResourceBundle res = localeConfig.getNavigationResourceBundle(ownerType,
ownerId);
- for (PageNode node : filteredEdittedNavigation.getNodes())
+ for (PageNode node : edittedNavigation.getNodes())
{
resolveLabel(res, node);
}
@@ -324,54 +289,12 @@
return null;
}
- public List<PageNavigation> getPageNavigations()
- {
- List<PageNavigation> navs = new ArrayList<PageNavigation>(3);
- navs.add(filteredEdittedNavigation);
- return navs;
- }
-
- public void addPageNavigation(PageNavigation navigation)
- {
- if (navigations == null)
- {
- navigations = new ArrayList<PageNavigation>();
- }
- navigations.add(navigation);
- cleanTreeSibbling();
- }
-
- public void deletePageNavigation(PageNavigation navigation)
- {
- if (navigations == null || navigations.size() < 1)
- {
- return;
- }
- navigations.remove(navigation);
- deleteNavigations.add(navigation);
- edittedTreeNodeData = null;
- initEdittedTreeNodeData();
- cleanTreeSibbling();
- }
-
- public PageNavigation getPageNavigation(int id)
- {
- for (PageNavigation ele : getPageNavigations())
- {
- if (ele.getId() == id)
- {
- return ele;
- }
- }
- return null;
- }
-
public void processRender(WebuiRequestContext context) throws Exception
{
UIRightClickPopupMenu uiPopupMenu = getChild(UIRightClickPopupMenu.class);
if (uiPopupMenu != null)
{
- if (filteredEdittedNavigation == null)
+ if (edittedNavigation == null)
{
uiPopupMenu.setRendered(false);
}
@@ -424,7 +347,7 @@
uiManagementPopup.setUIComponent(uiNodeForm);
Object parent = null;
- PageNavigation filteredEdittedNavigation =
uiNodeSelector.getFilteredEdittedNavigation();
+ PageNavigation filteredEdittedNavigation =
uiNodeSelector.getEdittedNavigation();
List<PageNode> pageNodes = filteredEdittedNavigation.getNodes();
if (uri != null && uri.trim().length() > 0)
{
@@ -445,8 +368,8 @@
uiNodeForm.setSelectedParent(parent);
// set navigation owner, navigation type
-
uiNodeForm.setOwner(uiNodeSelector.getFilteredEdittedNavigation().getOwnerId());
-
uiNodeForm.setOwnerType(uiNodeSelector.getFilteredEdittedNavigation().getOwnerType());
+ uiNodeForm.setOwner(uiNodeSelector.getEdittedNavigation().getOwnerId());
+ uiNodeForm.setOwnerType(uiNodeSelector.getEdittedNavigation().getOwnerType());
uiManagementPopup.setWindowSize(800, 500);
event.getRequestContext().addUIComponentToUpdateByAjax(uiManagementPopup.getParent());
@@ -467,7 +390,7 @@
// get Selected PageNode
PageNode selectedPageNode = null;
- List<PageNode> pageNodes =
uiNodeSelector.getFilteredEdittedNavigation().getNodes();
+ List<PageNode> pageNodes =
uiNodeSelector.getEdittedNavigation().getNodes();
if (uri != null && uri.trim().length() > 0)
{
for (PageNode pageNode : pageNodes)
@@ -549,7 +472,7 @@
UIApplication uiApp = ctx.getUIApplication();
String uri =
event.getRequestContext().getRequestParameter(UIComponent.OBJECTID);
UINavigationNodeSelector uiNodeSelector =
popupMenu.getAncestorOfType(UINavigationNodeSelector.class);
- PageNavigation selectedNav = uiNodeSelector.getFilteredEdittedNavigation();
+ PageNavigation selectedNav = uiNodeSelector.getEdittedNavigation();
Object obj = PageNavigationUtils.searchParentNode(selectedNav, uri);
PageNode selectedNode = PageNavigationUtils.searchPageNodeByUri(selectedNav,
uri);
String pageId = selectedNode.getPageReference();
@@ -570,8 +493,8 @@
uiManagementPopup.setUIComponent(uiNodeForm);
// set navigation owner, navigation type
-
uiNodeForm.setOwner(uiNodeSelector.getFilteredEdittedNavigation().getOwnerId());
-
uiNodeForm.setOwnerType(uiNodeSelector.getFilteredEdittedNavigation().getOwnerType());
+ uiNodeForm.setOwner(uiNodeSelector.getEdittedNavigation().getOwnerId());
+ uiNodeForm.setOwnerType(uiNodeSelector.getEdittedNavigation().getOwnerType());
uiNodeForm.setValues(selectedNode);
uiNodeForm.setSelectedParent(obj);
@@ -591,7 +514,7 @@
uiManagement.setRenderedChildrenOfTypes(childrenToRender);
event.getRequestContext().addUIComponentToUpdateByAjax(uiManagement);
- PageNavigation nav = uiNodeSelector.getFilteredEdittedNavigation();
+ PageNavigation nav = uiNodeSelector.getEdittedNavigation();
if (nav == null)
{
return;
@@ -623,7 +546,7 @@
uiManagement.setRenderedChildrenOfTypes(childrenToRender);
event.getRequestContext().addUIComponentToUpdateByAjax(uiManagement);
- PageNavigation nav = uiNodeSelector.getFilteredEdittedNavigation();
+ PageNavigation nav = uiNodeSelector.getEdittedNavigation();
if (nav == null)
{
return;
@@ -685,7 +608,7 @@
}
PageNode newNode = selectedNode.getNode().clone();
- PageNavigation targetNav = uiNodeSelector.getFilteredEdittedNavigation();
+ PageNavigation targetNav = uiNodeSelector.getEdittedNavigation();
PageNode targetNode = PageNavigationUtils.searchPageNodeByUri(targetNav,
targetUri);
if (targetNode != null && newNode.getUri().equals(targetNode.getUri()))
@@ -830,7 +753,7 @@
String uri =
event.getRequestContext().getRequestParameter(UIComponent.OBJECTID);
UINavigationNodeSelector uiNodeSelector =
event.getSource().getAncestorOfType(UINavigationNodeSelector.class);
event.getRequestContext().addUIComponentToUpdateByAjax(uiNodeSelector.getParent());
- PageNavigation nav = uiNodeSelector.getFilteredEdittedNavigation();
+ PageNavigation nav = uiNodeSelector.getEdittedNavigation();
PageNode targetNode = PageNavigationUtils.searchPageNodeByUri(nav, uri);
Object parentNode = PageNavigationUtils.searchParentNode(nav, uri);
List<PageNode> children = new ArrayList<PageNode>();
@@ -878,7 +801,7 @@
UINavigationNodeSelector uiNodeSelector =
event.getSource().getAncestorOfType(UINavigationNodeSelector.class);
pcontext.addUIComponentToUpdateByAjax(uiNodeSelector);
- PageNavigation nav = uiNodeSelector.getFilteredEdittedNavigation();
+ PageNavigation nav = uiNodeSelector.getEdittedNavigation();
if (nav == null)
{
return;