From do-not-reply at jboss.org Mon May 10 08:04:06 2010 Content-Type: multipart/mixed; boundary="===============5491700546820243878==" MIME-Version: 1.0 From: do-not-reply at jboss.org To: gatein-commits at lists.jboss.org Subject: [gatein-commits] gatein SVN: r3024 - portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/navigation. Date: Mon, 10 May 2010 08:04:05 -0400 Message-ID: <201005101204.o4AC45ce012499@svn01.web.mwc.hst.phx2.redhat.com> --===============5491700546820243878== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Author: hoang_to Date: 2010-05-10 08:04:05 -0400 (Mon, 10 May 2010) New Revision: 3024 Modified: portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/nav= igation/PageNavigationUtils.java portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/nav= igation/UINavigationNodeSelector.java Log: GTNPORTAL-1110: Refactor search methods in PageNavigationUtils and UINaviga= tionNodeSelector Modified: portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/we= bui/navigation/PageNavigationUtils.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/na= vigation/PageNavigationUtils.java 2010-05-10 08:22:32 UTC (rev 3023) +++ portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/na= vigation/PageNavigationUtils.java 2010-05-10 12:04:05 UTC (rev 3024) @@ -65,10 +65,14 @@ * = * 2. The element indexed 0 is its parent * = + * @deprecated Returning 2-element array would makes it difficult to un= derstand, handle the code. = + * Method searchParentChildPairByUri should be used instead. + * = * @param node * @param uri * @return */ + @Deprecated public static PageNode[] searchPageNodesByUri(PageNode node, String uri) { if (node.getUri().equals(uri)) @@ -89,6 +93,7 @@ return null; } = + @Deprecated public static PageNode[] searchPageNodesByUri(PageNavigation nav, Strin= g uri) { if (nav.getNodes() =3D=3D null) @@ -102,7 +107,62 @@ } return null; } - + = + /** + * This method returns a pair of a node matching the parsed uri and the= parent of this node. + * = + * @param nav + * @param uri + * @return + */ + public static ParentChildPair searchParentChildPairByUri(PageNavigation= nav, String uri) + { + List nodes =3D nav.getNodes(); + = + if(nodes =3D=3D null) + { + return null; + } + = + for(PageNode ele : nodes) + { + ParentChildPair parentChildPair =3D searchParentChildPairUnderNod= e(ele, uri); + if(parentChildPair !=3D null) + { + return parentChildPair; + } + } + = + return null; + } + = + public static ParentChildPair searchParentChildPairUnderNode(PageNode r= ootNode, String uri) + { + if(uri.equals(rootNode.getUri())) + { + return new ParentChildPair(null, rootNode); + } + = + List nodes =3D rootNode.getNodes(); + if(nodes =3D=3D null) + { + return null; + } + = + for(PageNode node : nodes) + { + ParentChildPair parentChildPair =3D searchParentChildPairUnderNod= e(node, uri); + if(parentChildPair !=3D null) + { + parentChildPair.setParentNode(node); + return parentChildPair; + } + } + = + return null; + } + = + = public static PageNode searchPageNodeByUri(PageNode node, String uri) { if (node.getUri().equals(uri)) @@ -326,4 +386,43 @@ } return null; } + = + /** + * = + * @author Minh Hoang TO + * @version $Id$ + * + */ + public static class ParentChildPair + { + private PageNode parentNode; + = + private PageNode childNode; + = + public ParentChildPair(PageNode _parentNode, PageNode _childNode) + { + this.parentNode =3D _parentNode; + this.childNode =3D _childNode; + } + = + public PageNode getParentNode() + { + return parentNode; + } + = + public PageNode getChildNode() + { + return childNode; + } + = + public void setParentNode(PageNode _parentNode) + { + this.parentNode =3D _parentNode; + } + = + public void setChildNode(PageNode _childNode) + { + this.childNode =3D _childNode; + } + } } Modified: portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/we= bui/navigation/UINavigationNodeSelector.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/na= vigation/UINavigationNodeSelector.java 2010-05-10 08:22:32 UTC (rev 3023) +++ portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/na= vigation/UINavigationNodeSelector.java 2010-05-10 12:04:05 UTC (rev 3024) @@ -26,6 +26,7 @@ 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.navigation.PageNavigationUtils.ParentC= hildPair; import org.exoplatform.portal.webui.page.UIPage; import org.exoplatform.portal.webui.page.UIPageNodeForm2; import org.exoplatform.portal.webui.portal.UIPortalComposer; @@ -804,31 +805,29 @@ return; } = - PageNode[] pageNodes =3D PageNavigationUtils.searchPageNodesByUri= (nav, uri); - if (pageNodes =3D=3D null) + ParentChildPair parentChildPair =3D PageNavigationUtils.searchPar= entChildPairByUri(nav, uri); + if (parentChildPair =3D=3D null) { return; } = - if (pageNodes[0] =3D=3D null) - { - if(pageNodes[1].isSystem()) { + PageNode parentNode =3D parentChildPair.getParentNode(); + PageNode childNode =3D parentChildPair.getChildNode(); + = + if(childNode.isSystem()) { uiApp.addMessage(new ApplicationMessage("UINavigationNodeSelecto= r.msg.systemnode-delete", null, ApplicationMessage.ERROR)); return; } - = - nav.getNodes().remove(pageNodes[1]); - return; + = + if(parentNode =3D=3D null) + { + nav.getNodes().remove(childNode); } - = - for (PageNode pageNode : pageNodes) { - if(pageNode.isSystem()) { - uiApp.addMessage(new ApplicationMessage("UINavigationNodeSelector.msg.= systemnode-delete", null, ApplicationMessage.ERROR)); - return; - } + else + { + parentNode.getNodes().remove(childNode); + uiNodeSelector.selectPageNodeByUri(parentNode.getUri()); } - pageNodes[0].getChildren().remove(pageNodes[1]); - uiNodeSelector.selectPageNodeByUri(pageNodes[0].getUri()); } } = --===============5491700546820243878==--