Author: rfelden
Date: Tue Dec 11 14:44:56 2007
New Revision: 19360
URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D19360&repname=
=3Djahia
Log:
GWT dynamic sitemap module
Added:
branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/conf/java/org/jahia/ajax/gwt=
/gwtsitemap/
branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/conf/java/org/jahia/ajax/gwt=
/gwtsitemap/GWTSitemapManager.gwt.xml
branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/conf/java/org/jahia/ajax/gwt=
/gwtsitemap/client/
branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/conf/java/org/jahia/ajax/gwt=
/gwtsitemap/public/
branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/conf/java/org/jahia/ajax/gwt=
/gwtsitemap/public/gwtsitemap.html
branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/base=
/client/beans/GWTJahiaPageWrapper.java
branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/base=
/client/beans/GWTLink.java
branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/gwts=
itemap/
branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/gwts=
itemap/client/
branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/gwts=
itemap/client/GWTSitemapManager.java
branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/gwts=
itemap/client/widgets/
branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/gwts=
itemap/client/widgets/GWTSitemapTree.java
branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/gwts=
itemap/client/widgets/GWTSitemapTreeItem.java
branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/gwts=
itemap/client/widgets/GWTSitemapTreeItemChildren.java
Modified:
branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/base=
/client/JahiaService.java
branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/base=
/client/JahiaServiceAsync.java
branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/base=
/server/JahiaServiceImpl.java
Added: branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/conf/java/org/jahia/ajax/=
gwt/gwtsitemap/GWTSitemapManager.gwt.xml
URL: https://svndev.jahia.net/websvn/filedetails.php?path=3D/branches/JAHIA=
-INCLUDE-TAG-BRANCH/core/src/conf/java/org/jahia/ajax/gwt/gwtsitemap/GWTSit=
emapManager.gwt.xml&rev=3D19360&repname=3Djahia
=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=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/conf/java/org/jahia/ajax/gwt=
/gwtsitemap/GWTSitemapManager.gwt.xml (added)
+++ branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/conf/java/org/jahia/ajax/gwt=
/gwtsitemap/GWTSitemapManager.gwt.xml Tue Dec 11 14:44:56 2007
@@ -0,0 +1,10 @@
+<module>
+ <inherits name=3D'com.google.gwt.user.User'/>
+ <inherits name=3D"com.google.gwt.i18n.I18N"/>
+ <!-- jahia services -->
+ <inherits name=3D'org.jahia.ajax.gwt.base.jahiaService'/>
+ <!-- css -->
+ <!--stylesheet src=3D'layoutmanager.css'/-->
+
+ <entry-point class=3D'org.jahia.ajax.gwt.gwtsitemap.client.GWTSitemapM=
anager'/>
+</module>
\ No newline at end of file
Added: branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/conf/java/org/jahia/ajax/=
gwt/gwtsitemap/public/gwtsitemap.html
URL: https://svndev.jahia.net/websvn/filedetails.php?path=3D/branches/JAHIA=
-INCLUDE-TAG-BRANCH/core/src/conf/java/org/jahia/ajax/gwt/gwtsitemap/public=
/gwtsitemap.html&rev=3D19360&repname=3Djahia
=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=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/conf/java/org/jahia/ajax/gwt=
/gwtsitemap/public/gwtsitemap.html (added)
+++ branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/conf/java/org/jahia/ajax/gwt=
/gwtsitemap/public/gwtsitemap.html Tue Dec 11 14:44:56 2007
@@ -0,0 +1,21 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+ <script type=3D"text/javascript">
+ var jahiaGWTParameters =3D {
+ pid: "9",
+ op: "edit",
+ serviceEntryPoint: "/org.jahia.ajax.gwt.gwtsitemap.GWTSitemapM=
anager/"
+ };
+ </script>
+</head>
+<body>
+<!-- The fully-qualified module name, followed by 'nocache.js' -->
+<script language=3D"javascript" src=3D"org.jahia.ajax.gwt.gwtsitemap.GWTSi=
temapManager.nocache.js"></script>
+
+
+<!-- layout area-->
+<div id=3D"siteMap"></div>
+</body>
+</html>
\ No newline at end of file
Modified: branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gw=
t/base/client/JahiaService.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-INCLUD=
E-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/base/client/JahiaService.java=
&rev=3D19360&repname=3Djahia
=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=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/base=
/client/JahiaService.java (original)
+++ branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/base=
/client/JahiaService.java Tue Dec 11 14:44:56 2007
@@ -1,9 +1,12 @@
package org.jahia.ajax.gwt.base.client;
=
-import com.google.gwt.user.client.rpc.ServiceDefTarget;
-import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.core.client.GWT;
-import org.jahia.ajax.gwt.base.client.beans.*;
+import com.google.gwt.user.client.rpc.RemoteService;
+import com.google.gwt.user.client.rpc.ServiceDefTarget;
+import org.jahia.ajax.gwt.base.client.beans.GWTJahiaPageWrapper;
+import org.jahia.ajax.gwt.base.client.beans.JahiaGWTContainer;
+import org.jahia.ajax.gwt.base.client.beans.JahiaGWTContainerList;
+import org.jahia.ajax.gwt.base.client.beans.JahiaGWTPage;
import org.jahia.ajax.gwt.base.client.config.JahiaGWTParameters;
import org.jahia.ajax.gwt.base.client.util.URL;
=
@@ -57,7 +60,11 @@
=
public void saveUserProperties(JahiaGWTPage page, List properties);
=
- public Map loadPageUserProperties(JahiaGWTPage page,String propType);
+ public Map loadPageUserProperties(JahiaGWTPage page,String propType);
+
+ public GWTJahiaPageWrapper[] getSubPagesForCurrentUser(int pid, String=
mode, GWTJahiaPageWrapper parentPage) ;
+
+ public GWTJahiaPageWrapper getHomePageForCurrentUser(int pid, String m=
ode, boolean recursive) ;
=
=
/**
Modified: branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gw=
t/base/client/JahiaServiceAsync.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-INCLUD=
E-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/base/client/JahiaServiceAsync=
.java&rev=3D19360&repname=3Djahia
=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=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/base=
/client/JahiaServiceAsync.java (original)
+++ branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/base=
/client/JahiaServiceAsync.java Tue Dec 11 14:44:56 2007
@@ -15,44 +15,47 @@
*/
public interface JahiaServiceAsync {
=
- public void loadContainerList(JahiaGWTPage page, String containerListN=
ame, AsyncCallback async);
+ void loadContainerList(JahiaGWTPage page, String containerListName, As=
yncCallback async);
=
- public void insertAddContainerHref(JahiaGWTPage page, AsyncCallback as=
ync);
+ void insertAddContainerHref(JahiaGWTPage page, AsyncCallback async);
=
- public void saveContainerProperty(JahiaGWTPage page, int containerId, =
String propertyName, String propertyValue, AsyncCallback async);
+ void saveContainerProperty(JahiaGWTPage page, int containerId, String =
propertyName, String propertyValue, AsyncCallback async);
=
- public void getContent(JahiaGWTPage page, int containerId, AsyncCallba=
ck async);
+ void getContent(JahiaGWTPage page, int containerId, AsyncCallback asyn=
c);
=
- public void getFieldValues(int containerId, String field, AsyncCallbac=
k async);
+ void getFieldValues(int containerId, String field, AsyncCallback async=
);
=
- public void drawAdministrationLauncher(JahiaGWTPage page, AsyncCallbac=
k async);
+ void drawAdministrationLauncher(JahiaGWTPage page, AsyncCallback async=
);
=
- public void drawLoginUrl(JahiaGWTPage page, AsyncCallback async);
+ void drawLogoutUrl(JahiaGWTPage page, AsyncCallback async);
=
- public void drawLogoutUrl(JahiaGWTPage page, AsyncCallback async);
+ void drawLoginUrl(JahiaGWTPage page, AsyncCallback async);
=
- public void drawPagePropertiesUrl(JahiaGWTPage page, AsyncCallback asy=
nc);
+ void drawPagePropertiesUrl(JahiaGWTPage page, AsyncCallback async);
=
- public void drawAddContainerUrl(JahiaGWTPage page, int parentConatiner=
Id,String containerListName, AsyncCallback async);
+ void workflowLauncher(JahiaGWTPage page, AsyncCallback async);
=
- public void workflowLauncher(JahiaGWTPage page, AsyncCallback async);
+ void loadContainer(int containerId, AsyncCallback async);
=
- public void loadContainer(int containerId, AsyncCallback async);
+ void getPagePropertyValue(JahiaGWTPage page, String propertyName, Asyn=
cCallback async);
=
- public void getPagePropertyValue(JahiaGWTPage page, String propertyNam=
e, AsyncCallback async);
+ void updatePagePropertyValue(JahiaGWTPage page, String propertyName, S=
tring propertyValue, AsyncCallback async);
=
- public void updatePagePropertyValue(JahiaGWTPage page, String property=
Name, String propertyValue, AsyncCallback async);
+ void drawNormalModeLink(JahiaGWTPage page, AsyncCallback async);
=
- public void drawNormalModeLink(JahiaGWTPage page, AsyncCallback async);
+ void drawEditModeLink(JahiaGWTPage page, AsyncCallback async);
=
- public void drawEditModeLink(JahiaGWTPage page, AsyncCallback async);
+ void drawPreviewModeLink(JahiaGWTPage page, AsyncCallback async);
=
- public void drawPreviewModeLink(JahiaGWTPage page, AsyncCallback async=
);
+ void drawAddContainerUrl(JahiaGWTPage page, int parentConatinerId, Str=
ing containerListName, AsyncCallback async);
=
- public void drawFileManagerLauncher(JahiaGWTPage page,AsyncCallback as=
ync);
+ void drawFileManagerLauncher(JahiaGWTPage page, AsyncCallback async);
=
- public void saveUserProperties(JahiaGWTPage page, List properties,Asyn=
cCallback async);
+ void saveUserProperties(JahiaGWTPage page, List properties, AsyncCallb=
ack async);
=
- public void loadPageUserProperties(JahiaGWTPage page,String propType,A=
syncCallback async);
+ void loadPageUserProperties(JahiaGWTPage page, String propType, AsyncC=
allback async);
=
+ void getSubPagesForCurrentUser(int pid, String mode, GWTJahiaPageWrapp=
er parentPage, AsyncCallback async) ;
+
+ void getHomePageForCurrentUser(int pid, String mode, boolean recursive=
, AsyncCallback async);
}
Added: branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/b=
ase/client/beans/GWTJahiaPageWrapper.java
URL: https://svndev.jahia.net/websvn/filedetails.php?path=3D/branches/JAHIA=
-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/base/client/beans/GWTJ=
ahiaPageWrapper.java&rev=3D19360&repname=3Djahia
=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=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/base=
/client/beans/GWTJahiaPageWrapper.java (added)
+++ branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/base=
/client/beans/GWTJahiaPageWrapper.java Tue Dec 11 14:44:56 2007
@@ -0,0 +1,64 @@
+package org.jahia.ajax.gwt.base.client.beans;
+
+import com.google.gwt.user.client.rpc.IsSerializable;
+
+import java.util.ArrayList;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @author rfelden
+ * @version 5 d=C3=A9c. 2007
+ */
+public class GWTJahiaPageWrapper implements IsSerializable {
+
+ private int pid ;
+ private String title ;
+ private boolean hasChildren ;
+ private String link =3D "#" ;
+ private GWTJahiaPageWrapper[] subpages =3D null ;
+
+ public GWTJahiaPageWrapper() {
+ }
+
+ public int getPid() {
+ return pid;
+ }
+
+ public void setPid(int pid) {
+ this.pid =3D pid;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public void setTitle(String title) {
+ this.title =3D title;
+ }
+
+ public boolean hasChildren() {
+ return hasChildren;
+ }
+
+ public void setHasChildren(boolean hasChildren) {
+ this.hasChildren =3D hasChildren;
+ }
+
+ public String getLink() {
+ return link;
+ }
+
+ public void setLink(String link) {
+ this.link =3D link;
+ }
+
+ public void setSubpages(GWTJahiaPageWrapper[] pages) {
+ subpages =3D pages ;
+ }
+
+ public GWTJahiaPageWrapper[] getSubpages() {
+ return subpages;
+ }
+ =
+}
Added: branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/b=
ase/client/beans/GWTLink.java
URL: https://svndev.jahia.net/websvn/filedetails.php?path=3D/branches/JAHIA=
-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/base/client/beans/GWTL=
ink.java&rev=3D19360&repname=3Djahia
=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=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/base=
/client/beans/GWTLink.java (added)
+++ branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/base=
/client/beans/GWTLink.java Tue Dec 11 14:44:56 2007
@@ -0,0 +1,18 @@
+package org.jahia.ajax.gwt.base.client.beans;
+
+import com.google.gwt.user.client.ui.HTML;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @author rfelden
+ * @version 10 d=C3=A9c. 2007
+ */
+public class GWTLink extends HTML {
+
+ public GWTLink(String label, String link) {
+ super() ;
+ setHTML("<a href=3D\"" + link + "\">"+ label + "</a>") ;
+ }
+
+}
Modified: branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gw=
t/base/server/JahiaServiceImpl.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-INCLUD=
E-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/base/server/JahiaServiceImpl.=
java&rev=3D19360&repname=3Djahia
=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=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/base=
/server/JahiaServiceImpl.java (original)
+++ branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/base=
/server/JahiaServiceImpl.java Tue Dec 11 14:44:56 2007
@@ -2,10 +2,7 @@
=
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
import org.jahia.ajax.gwt.base.client.JahiaService;
-import org.jahia.ajax.gwt.base.client.beans.JahiaGWTContainer;
-import org.jahia.ajax.gwt.base.client.beans.JahiaGWTPage;
-import org.jahia.ajax.gwt.base.client.beans.JahiaGWTContainerList;
-import org.jahia.ajax.gwt.base.client.beans.GWTPageUserProperty;
+import org.jahia.ajax.gwt.base.client.beans.*;
import org.jahia.params.ProcessingContext;
import org.jahia.params.ProcessingContextFactory;
import org.jahia.data.JahiaData;
@@ -20,11 +17,13 @@
import org.jahia.services.pages.JahiaPageService;
import org.jahia.services.pages.PageProperty;
import org.jahia.services.pages.JahiaPage;
+import org.jahia.services.pages.PageLoadFlags;
import org.jahia.services.pagesusers.JahiaPageUserPropService;
import org.jahia.services.pagesusers.PageUserProperty;
import org.jahia.registries.ServicesRegistry;
import org.jahia.resourcebundle.ResourceBundleMarker;
import org.jahia.content.ContentPageKey;
+import org.jahia.exceptions.JahiaException;
import org.springframework.beans.factory.BeanFactory;
import org.apache.log4j.Logger;
=
@@ -524,6 +523,107 @@
}
}
=
+ // todo add rank
+ /**
+ * Get the subpages for a given jahia page, considering the current us=
er and the mode.
+ *
+ * @param pid the pid of the current paqe (to create processing contex=
t)
+ * @param mode the current mode (to create processing context)
+ * @param parentPage the parent page as a GWT-specific bean (page wrap=
per)
+ * @return an array of pages (page wrapper) containing all visible sub=
pages
+ */
+ public GWTJahiaPageWrapper[] getSubPagesForCurrentUser(int pid, String=
mode, GWTJahiaPageWrapper parentPage) {
+ ProcessingContext jParams =3D retrieveParamBean(pid, mode);
+ if (parentPage =3D=3D null) { // this is the home page case
+ JahiaPage jPage =3D jParams.getSite().getHomePage() ;
+ parentPage =3D new GWTJahiaPageWrapper() ;
+ parentPage.setTitle(jPage.getTitle()) ;
+ parentPage.setPid(jPage.getID());
+ }
+
+ ArrayList<GWTJahiaPageWrapper> children =3D new ArrayList<GWTJahia=
PageWrapper>() ;
+ try {
+ Vector<JahiaPage> childs =3D servicesRegistry.getJahiaPageServ=
ice().getPageChilds(parentPage.getPid(), PageLoadFlags.ALL, jParams.getUser=
()) ;
+
+ // sort children
+ for (JahiaPage page: childs) {
+ if (page.hasActiveEntries() || (!page.hasActiveEntries() &=
& page.checkWriteAccess(jParams.getUser())) ) {
+ GWTJahiaPageWrapper wPage =3D new GWTJahiaPageWrapper(=
) ;
+ wPage.setTitle(page.getTitle());
+ wPage.setPid(page.getID());
+ wPage.setLink(page.getURL(jParams));
+ wPage.setHasChildren(servicesRegistry.getJahiaPageServ=
ice().pageHasChildren(page.getID(), PageLoadFlags.ALL, jParams.getUser()));
+ children.add(wPage) ;
+ }
+ }
+ =
+ } catch (JahiaException e) {
+ logger.error("could not find children for page " + pid, e);
+ }
+ return children.toArray(new GWTJahiaPageWrapper[0]) ;
+ }
+
+ /**
+ * Retrieve the home page for the current site in order to get the sit=
emap entry point.
+ *
+ * @param pid the pid of the current page (to create processing contex=
t)
+ * @param mode the current mode (to create processing context)
+ * @param rec choose whether the sitemap should be retrieved in one ca=
ll or not
+ * @return the home page as a GWT specific bean (page wrapper) contain=
ing all subpages if specified (arg "rec")
+ */
+ public GWTJahiaPageWrapper getHomePageForCurrentUser(int pid, String m=
ode, boolean rec) {
+ ProcessingContext jParams =3D retrieveParamBean(pid, mode);
+ GWTJahiaPageWrapper page =3D new GWTJahiaPageWrapper() ;
+ JahiaPage home =3D jParams.getSite().getHomePage() ;
+ page.setPid(home.getID());
+ page.setTitle(home.getTitle());
+ try {
+ page.setLink(home.getURL(jParams));
+ page.setHasChildren(servicesRegistry.getJahiaPageService().pag=
eHasChildren(home.getID(), PageLoadFlags.ALL, jParams.getUser()));
+ if (rec && page.hasChildren()) {
+ page.setSubpages(getSubPagesForCurrentUserRec(page.getPid(=
), jParams));
+ }
+ } catch (JahiaException e) {
+ page.setHasChildren(true);
+ logger.error("could not retrieve home page", e);
+ }
+ return page ;
+ }
+
+ /**
+ * Recursive method to get the complete sitemap in one call
+ *
+ * @param parentId
+ * @param jParams
+ * @return
+ */
+ private GWTJahiaPageWrapper[] getSubPagesForCurrentUserRec(int parentI=
d, ProcessingContext jParams) {
+
+ ArrayList<GWTJahiaPageWrapper> children =3D new ArrayList<GWTJahia=
PageWrapper>() ;
+ try {
+ Vector<JahiaPage> childs =3D servicesRegistry.getJahiaPageServ=
ice().getPageChilds(parentId, PageLoadFlags.ALL, jParams.getUser()) ;
+
+ // sort children
+ for (JahiaPage page: childs) {
+ if (page.hasActiveEntries() || (!page.hasActiveEntries() &=
& page.checkWriteAccess(jParams.getUser())) ) {
+ GWTJahiaPageWrapper wPage =3D new GWTJahiaPageWrapper(=
) ;
+ wPage.setTitle(page.getTitle());
+ wPage.setPid(page.getID());
+ wPage.setLink(page.getURL(jParams));
+ wPage.setHasChildren(servicesRegistry.getJahiaPageServ=
ice().pageHasChildren(page.getID(), PageLoadFlags.ALL, jParams.getUser()));
+ if (wPage.hasChildren()) {
+ wPage.setSubpages(getSubPagesForCurrentUserRec(wPa=
ge.getPid(), jParams));
+ }
+ children.add(wPage) ;
+ }
+ }
+
+ } catch (JahiaException e) {
+ logger.error("could not find children for page " + parentId, e=
);
+ }
+ return children.toArray(new GWTJahiaPageWrapper[0]) ;
+ }
+
public String getHTML(String jspPath) {
logger.debug("get html from a jsp file");
String output =3D null;
Added: branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/g=
wtsitemap/client/GWTSitemapManager.java
URL: https://svndev.jahia.net/websvn/filedetails.php?path=3D/branches/JAHIA=
-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/gwtsitemap/client/GWTS=
itemapManager.java&rev=3D19360&repname=3Djahia
=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=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/gwts=
itemap/client/GWTSitemapManager.java (added)
+++ branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/gwts=
itemap/client/GWTSitemapManager.java Tue Dec 11 14:44:56 2007
@@ -0,0 +1,38 @@
+package org.jahia.ajax.gwt.gwtsitemap.client;
+
+import com.google.gwt.user.client.ui.*;
+import org.jahia.ajax.gwt.base.client.JahiaPageEntryPoint;
+import org.jahia.ajax.gwt.base.client.beans.JahiaGWTPage;
+import org.jahia.ajax.gwt.gwtsitemap.client.widgets.GWTSitemapTree;
+
+/**
+ *
+ */
+public class GWTSitemapManager extends JahiaPageEntryPoint {
+ public static final String SITEMAP_ID =3D "siteMap";
+
+ public void onModuleLoad() {
+ RootPanel rootPanel =3D getRootPanel();
+
+ // init panel
+ final JahiaGWTPage page =3D getJahiaGWTPage();
+ final GWTSitemapTree sitemap =3D new GWTSitemapTree(page) ;
+ DockPanel panel =3D new DockPanel() ;
+ Button expandAll =3D new Button("Expand sitemap") ;
+ expandAll.addClickListener(new ClickListener() {
+ public void onClick(Widget widget) {
+ sitemap.expandAll(page) ;
+ }
+ });
+ panel.add(expandAll, DockPanel.WEST) ;
+ panel.add(sitemap, DockPanel.CENTER) ;
+ rootPanel.add(panel);
+
+ }
+
+ public RootPanel getRootPanel() {
+ return RootPanel.get(SITEMAP_ID);
+ }
+
+
+}
\ No newline at end of file
Added: branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/g=
wtsitemap/client/widgets/GWTSitemapTree.java
URL: https://svndev.jahia.net/websvn/filedetails.php?path=3D/branches/JAHIA=
-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/gwtsitemap/client/widg=
ets/GWTSitemapTree.java&rev=3D19360&repname=3Djahia
=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=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/gwts=
itemap/client/widgets/GWTSitemapTree.java (added)
+++ branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/gwts=
itemap/client/widgets/GWTSitemapTree.java Tue Dec 11 14:44:56 2007
@@ -0,0 +1,130 @@
+package org.jahia.ajax.gwt.gwtsitemap.client.widgets;
+
+import com.google.gwt.user.client.Window;
+import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.google.gwt.user.client.ui.*;
+import org.jahia.ajax.gwt.base.client.JahiaService;
+import org.jahia.ajax.gwt.base.client.JahiaServiceAsync;
+import org.jahia.ajax.gwt.base.client.beans.GWTJahiaPageWrapper;
+import org.jahia.ajax.gwt.base.client.beans.JahiaGWTPage;
+
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @author rfelden
+ * @version 5 d=C3=A9c. 2007
+ */
+public class GWTSitemapTree extends Tree {
+
+ private Tree dis =3D this ;
+
+ private JahiaServiceAsync jahiaService =3D JahiaService.App.getInstanc=
e() ;
+ private TreeListener listener ;
+
+
+ /**
+ *
+ * @param page the current page (to retrieve current pid & mode)
+ */
+ public GWTSitemapTree(final JahiaGWTPage page) {
+ super() ;
+
+ jahiaService.getHomePageForCurrentUser(page.getPid(), page.getMode=
(), false, new AsyncCallback() {
+ public void onFailure(Throwable throwable) {
+ Window.alert("Can't build tree\n\n" + throwable.toString()=
) ;
+ }
+
+ public void onSuccess(Object o) {
+ GWTJahiaPageWrapper homePage =3D (GWTJahiaPageWrapper) o ;
+ GWTSitemapTreeItem root =3D new GWTSitemapTreeItem(homePag=
e) ;
+ root.addItem(new GWTSitemapTreeItemChildren()) ;
+ dis.addItem(root);
+ listener =3D new MySitemapTreeListener(page, dis) ;
+ dis.addTreeListener(listener) ;
+ }
+ });
+ }
+
+ public void expandAll(final JahiaGWTPage page) {
+
+ jahiaService.getHomePageForCurrentUser(page.getPid(), page.getMode=
(), true, new AsyncCallback() {
+ public void onFailure(Throwable throwable) {
+ Window.alert("Can't build tree\n\n" + throwable.toString()=
) ;
+ }
+
+ public void onSuccess(Object o) {
+ dis.clear();
+ dis.removeTreeListener(listener);
+ GWTJahiaPageWrapper homePage =3D (GWTJahiaPageWrapper) o ;
+ GWTSitemapTreeItem root =3D new GWTSitemapTreeItem(homePag=
e) ;
+ dis.addItem(root);
+ recMapPagesToTree(root, homePage) ;
+ dis.addTreeListener(listener) ;
+ }
+ });
+ }
+
+ public void recMapPagesToTree(GWTSitemapTreeItem node, GWTJahiaPageWra=
pper page) {
+ if (page.hasChildren()) {
+ for (int i=3D0; i<page.getSubpages().length; i++) {
+ GWTJahiaPageWrapper subpage =3D page.getSubpages()[i] ;
+ GWTSitemapTreeItem item =3D new GWTSitemapTreeItem(subpage=
) ;
+ node.addItem(item) ;
+ if (!node.getState()) node.setState(true);
+ recMapPagesToTree(item, subpage);
+ }
+ }
+ }
+
+
+ private class MySitemapTreeListener implements TreeListener {
+
+ private JahiaGWTPage page ;
+ private Tree pageTree ;
+
+ public MySitemapTreeListener(JahiaGWTPage page, Tree pageTree) {
+ this.page =3D page ;
+ this.pageTree =3D pageTree ;
+ }
+
+ public void onTreeItemSelected(TreeItem treeItem) {}
+
+
+ public void onTreeItemStateChanged(final TreeItem treeItem) {
+ boolean hasBeenOpened =3D treeItem.getState() ;
+ if (hasBeenOpened) {
+ =
+ int pid =3D page.getPid();
+ String mode =3D page.getMode() ;
+ GWTJahiaPageWrapper page =3D null ;
+ if (pageTree.getItem(0) !=3D treeItem) {
+ page =3D ( (GWTSitemapTreeItem) treeItem).getPage() ;
+ }
+ jahiaService.getSubPagesForCurrentUser(pid, mode, page, ne=
w AsyncCallback() {
+
+ public void onFailure(Throwable throwable) {
+ Window.alert("Can't find subpages\n\n" + throwable=
.toString()) ;
+ }
+
+ public void onSuccess(Object o) {
+ treeItem.removeItems() ;
+ GWTJahiaPageWrapper[] subpages =3D (GWTJahiaPageWr=
apper[])o ;
+ for (int i=3D0; i<subpages.length; i++) {
+ GWTSitemapTreeItem currentItem =3D new GWTSite=
mapTreeItem(subpages[i]) ;
+ if (subpages[i].hasChildren()) {
+ currentItem.addItem(new GWTSitemapTreeItem=
Children());
+ }
+ treeItem.addItem(currentItem) ;
+ }
+ }
+ });
+ }
+ else {
+ treeItem.removeItems();
+ treeItem.addItem(new GWTSitemapTreeItemChildren()) ;
+ }
+ }
+ }
+
+}
Added: branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/g=
wtsitemap/client/widgets/GWTSitemapTreeItem.java
URL: https://svndev.jahia.net/websvn/filedetails.php?path=3D/branches/JAHIA=
-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/gwtsitemap/client/widg=
ets/GWTSitemapTreeItem.java&rev=3D19360&repname=3Djahia
=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=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/gwts=
itemap/client/widgets/GWTSitemapTreeItem.java (added)
+++ branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/gwts=
itemap/client/widgets/GWTSitemapTreeItem.java Tue Dec 11 14:44:56 2007
@@ -0,0 +1,35 @@
+package org.jahia.ajax.gwt.gwtsitemap.client.widgets;
+
+import com.google.gwt.user.client.ui.TreeItem;
+import org.jahia.ajax.gwt.base.client.beans.GWTJahiaPageWrapper;
+import org.jahia.ajax.gwt.base.client.beans.GWTLink;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @author rfelden
+ * @version 6 d=C3=A9c. 2007
+ */
+public class GWTSitemapTreeItem extends TreeItem {
+
+ private GWTJahiaPageWrapper page ;
+
+ public GWTSitemapTreeItem(GWTJahiaPageWrapper page) {
+ super(new GWTLink(page.getTitle(), page.getLink())) ;
+ this.page =3D page ;
+ }
+
+ public GWTJahiaPageWrapper getPage() {
+ return page;
+ }
+
+ public void setPage(GWTJahiaPageWrapper page) {
+ this.page =3D page;
+ }
+
+ public String getLink() {
+ return page.getLink() ;
+ }
+
+
+}
Added: branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/g=
wtsitemap/client/widgets/GWTSitemapTreeItemChildren.java
URL: https://svndev.jahia.net/websvn/filedetails.php?path=3D/branches/JAHIA=
-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/gwtsitemap/client/widg=
ets/GWTSitemapTreeItemChildren.java&rev=3D19360&repname=3Djahia
=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=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/gwts=
itemap/client/widgets/GWTSitemapTreeItemChildren.java (added)
+++ branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/ajax/gwt/gwts=
itemap/client/widgets/GWTSitemapTreeItemChildren.java Tue Dec 11 14:44:56 2=
007
@@ -0,0 +1,21 @@
+package org.jahia.ajax.gwt.gwtsitemap.client.widgets;
+
+import com.google.gwt.user.client.ui.TreeItem;
+import org.jahia.ajax.gwt.base.client.beans.GWTLink;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @author rfelden
+ * @version 6 d=C3=A9c. 2007
+ */
+public class GWTSitemapTreeItemChildren extends TreeItem {
+
+ public static final String LOADING_CHILDREN_STRING =3D "loading childr=
en..." ;
+ public static final String LOADING_CHILDREN_LINK =3D "#" ;
+
+ public GWTSitemapTreeItemChildren() {
+ super(new GWTLink(LOADING_CHILDREN_STRING, LOADING_CHILDREN_LINK))=
;
+ }
+
+}
_______________________________________________
cvs_list mailing list
[email protected]
http://lists.jahia.org/cgi-bin/mailman/listinfo/cvs_list