dpillot 2005/10/19 16:23:53 CEST
Modified files:
core/src/java/org/jahia/engines/selectpage
SelectPage_Engine.java
Log:
content pick final enhancements
Revision Changes Path
1.6 +143 -106
jahia/core/src/java/org/jahia/engines/selectpage/SelectPage_Engine.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/engines/selectpage/SelectPage_Engine.java.diff?r1=1.5&r2=1.6&f=h
Index: SelectPage_Engine.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/engines/selectpage/SelectPage_Engine.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- SelectPage_Engine.java 6 Oct 2005 13:17:17 -0000 1.5
+++ SelectPage_Engine.java 19 Oct 2005 14:23:53 -0000 1.6
@@ -35,7 +35,7 @@
* 2002)</p> <p>Company: Jahia Solutions Sarl</p>
*
* @author MAP
- * @version 1.0
+ * @version $Id: SelectPage_Engine.java,v 1.6 2005/10/19 14:23:53 dpillot
Exp $
*/
public class SelectPage_Engine implements JahiaEngine {
@@ -61,6 +61,9 @@
// Set to -1 for page creation.
public static final String PAGE_ID = "pageID";
+ // homepage ID used to set the virtual site to tree-display
+ public static final String HOMEPAGE_ID = "homepageID";
+
// Engine redirection
private static final String SELECT_PAGE_JSP = "select_page";
private static final String CLOSE_JSP = "selectPage_close";
@@ -72,7 +75,7 @@
// Display any page for selection.
public static final String SELECT_ANY_PAGE_OPERATION = "selectAnyPage";
- private HashSet possibleOperations = new HashSet ();
+ private HashSet possibleOperations = new HashSet();
private EngineToolBox toolBox;
private static SelectPage_Engine instance = null;
@@ -80,15 +83,15 @@
private final static String[] tabOptions = {"treeView", "flatView"};
private static final org.apache.log4j.Logger logger =
- org.apache.log4j.Logger.getLogger (SelectPage_Engine.class);
+ org.apache.log4j.Logger.getLogger(SelectPage_Engine.class);
/**
* @return This object instance
*/
- public static synchronized SelectPage_Engine getInstance () {
+ public static synchronized SelectPage_Engine getInstance() {
if (instance == null) {
- instance = new SelectPage_Engine ();
+ instance = new SelectPage_Engine();
}
return instance;
}
@@ -97,10 +100,9 @@
* Autorize render.
*
* @param jParams ;)
- *
* @return Always true.
*/
- public boolean authoriseRender (ProcessingContext jParams) {
+ public boolean authoriseRender(ProcessingContext jParams) {
return true;
}
@@ -109,56 +111,76 @@
*
* @param jParams The ProcessingContext.
* @param anObject An object dont on se tape.
- *
* @return The URL to call this engine.
- *
* @throws JahiaException
*/
- public String renderLink (final ProcessingContext jParams, final Object
anObject)
+ public String renderLink(final ProcessingContext jParams, final Object
anObject)
throws JahiaException {
final String lastDisplay = tabOptions[SiteMapViewHelper.TREE_VIEW];
final HashMap params = (HashMap) anObject;
- final String operation = (String) params.get (OPERATION);
- final Integer parentPageID = (Integer) params.get (PARENT_PAGE_ID);
- final Integer pageID = (Integer) params.get (PAGE_ID);
- return jParams.composeEngineUrl (ENGINE_NAME, "?screen=display" +
- constructDisplayParams (lastDisplay, jParams.getLocale
().toString(),
+ final String operation = (String) params.get(OPERATION);
+ final Integer parentPageID = (Integer) params.get(PARENT_PAGE_ID);
+ final Integer pageID = (Integer) params.get(PAGE_ID);
+ final Integer homepageID;
+ if (params.get(HOMEPAGE_ID) != null)
+ homepageID = (Integer) params.get(HOMEPAGE_ID);
+ else
+ homepageID = new Integer(0);
+ return jParams.composeEngineUrl(ENGINE_NAME, "?screen=display" +
+ constructDisplayParams(
+ lastDisplay,
+ jParams.getLocale().toString(),
operation,
- parentPageID.intValue (),
- pageID.intValue ()));
+ parentPageID.intValue(),
+ pageID.intValue(),
+ homepageID.intValue()));
}
- public static String constructDisplayParams (final String display, final
String languageCode,
- final String operation,
final int parentPageID,
- final int pageID) {
- final StringBuffer displayParams = new StringBuffer ();
+ /**
+ * construct the url with the parameters
+ *
+ * @param display
+ * @param languageCode
+ * @param operation
+ * @param parentPageID
+ * @param pageID
+ * @param homepageID (could be 0 to use the default context)
+ * @return a stringified url whith queries parameters
+ */
+ public static String constructDisplayParams(final String display, final
String languageCode,
+ final String operation,
final int parentPageID,
+ final int pageID, final int
homepageID) {
+ final StringBuffer displayParams = new StringBuffer();
displayParams.append("&display=");
- displayParams.append (display);
- displayParams.append ("&language_code=");
- displayParams.append (languageCode);
- displayParams.append ("&");
- displayParams.append (OPERATION);
- displayParams.append ("=");
- displayParams.append (operation);
- displayParams.append ("&");
- displayParams.append (PARENT_PAGE_ID);
- displayParams.append ("=");
- displayParams.append (parentPageID);
- displayParams.append ("&");
- displayParams.append (PAGE_ID);
- displayParams.append ("=");
- displayParams.append (pageID);
- return displayParams.toString ();
+ displayParams.append(display);
+ displayParams.append("&language_code=");
+ displayParams.append(languageCode);
+ displayParams.append("&");
+ displayParams.append(OPERATION);
+ displayParams.append("=");
+ displayParams.append(operation);
+ displayParams.append("&");
+ displayParams.append(PARENT_PAGE_ID);
+ displayParams.append("=");
+ displayParams.append(parentPageID);
+ displayParams.append("&");
+ displayParams.append(PAGE_ID);
+ displayParams.append("=");
+ displayParams.append(pageID);
+ displayParams.append("&");
+ displayParams.append(HOMEPAGE_ID);
+ displayParams.append("=");
+ displayParams.append(homepageID);
+ return displayParams.toString();
}
/**
* Set if this engine needs Jahia data.
*
* @param jParams The ProcessingContext.
- *
* @return Always false
*/
- public boolean needsJahiaData (ProcessingContext jParams) {
+ public boolean needsJahiaData(ProcessingContext jParams) {
return false;
}
@@ -169,86 +191,99 @@
*
* @param jParams The ProcessingContext.
* @param jData The JahiaData object dont on se tape.
- *
* @throws JahiaException
*/
- public EngineValidationHelper handleActions (final ProcessingContext
jParams, final JahiaData jData)
+ public EngineValidationHelper handleActions(final ProcessingContext
jParams, final JahiaData jData)
throws JahiaException {
- final HashMap engineMap = new HashMap ();
- engineMap.put ("tabOptions", tabOptions);
- final String actionScreen = jParams.getParameter ("screen");
-
+ final HashMap engineMap = new HashMap();
+ engineMap.put("tabOptions", tabOptions);
+ final String actionScreen = jParams.getParameter("screen");
+ int hpi;
+ final String homepageID = jParams.getParameter("homepageID");//param
to set virtual site to map
+ final String callbackvalue = jParams.getParameter("cond");//
specific param for contentpick
+ if(callbackvalue!=null && !callbackvalue.equalsIgnoreCase("")) {
+ logger.debug("found cond parameter:"+callbackvalue);
+ engineMap.put("cond",callbackvalue);//store in enginemap
+ }
+ if (homepageID != null && !homepageID.equalsIgnoreCase(""))
+ hpi = Integer.parseInt(homepageID);
+ else
+ hpi = 0;
+ logger.debug("homepageid=" + hpi);
logger.debug("actionScreen: " + actionScreen);
// screen = display
- if ("display".equals (actionScreen)) {
- HashMap selectedPageParams = (HashMap) jParams.getSessionState
().getAttribute (
+ if ("display".equals(actionScreen)) {
+ HashMap selectedPageParams = (HashMap)
jParams.getSessionState().getAttribute(
SESSION_PARAMS);
if (selectedPageParams == null) {
- selectedPageParams = new HashMap ();
- selectedPageParams.put (SOURCE_PAGE_ID, new Integer (-1));
- selectedPageParams.put (COPIED_PAGE_LEVEL, new Integer (-1));
- jParams.getSessionState ().setAttribute (SESSION_PARAMS,
selectedPageParams);
+ selectedPageParams = new HashMap();
+ selectedPageParams.put(SOURCE_PAGE_ID, new Integer(-1));
+ selectedPageParams.put(COPIED_PAGE_LEVEL, new Integer(-1));
+ jParams.getSessionState().setAttribute(SESSION_PARAMS,
selectedPageParams);
} else {
- String selectPageOperation = (String) selectedPageParams.get
(OPERATION);
- if (!possibleOperations.contains (selectPageOperation)) {
- engineMap.put ("engineError", selectPageOperation);
+ String selectPageOperation = (String)
selectedPageParams.get(OPERATION);
+ if (!possibleOperations.contains(selectPageOperation)) {
+ engineMap.put("engineError", selectPageOperation);
}
}
// Get a site map helper for the site home page.
- final ContentPage contentPage = ServicesRegistry.getInstance ().
- getJahiaPageService ().lookupContentPage (
- jParams.getSite ().getHomePageID (), false);
- final JahiaSiteMapService siteMapService =
ServicesRegistry.getInstance ().
- getJahiaSiteMapService ();
+
+ if (hpi == 0) hpi = jParams.getSite().getHomePageID();//we get
the default homepageid
+
+ final ContentPage contentPage = ServicesRegistry.getInstance().
+ getJahiaPageService().lookupContentPage(hpi, false);
+ final JahiaSiteMapService siteMapService =
ServicesRegistry.getInstance().
+ getJahiaSiteMapService();
final int pageInfosFlag = ContentPage.ACTIVE_PAGE_INFOS |
ContentPage.STAGING_PAGE_INFOS;
SiteMapViewHelper siteMapViewHelper = siteMapService.
- getTreeSiteMapViewHelper (jParams.getUser (),
contentPage,
- jParams.getSessionID (), pageInfosFlag, null,
+ getTreeSiteMapViewHelper(jParams.getUser(), contentPage,
+ jParams.getSessionID(), pageInfosFlag, null,
SiteMapViewHelper.DEFAULT_LEVEL);
- engineMap.put ("treeJahiaSiteMap", siteMapViewHelper);
+ engineMap.put("treeJahiaSiteMap", siteMapViewHelper);
siteMapViewHelper = siteMapService.
- getFlatSiteMapViewHelper (jParams.getUser (),
contentPage,
- jParams.getSessionID (), pageInfosFlag, null,
+ getFlatSiteMapViewHelper(jParams.getUser(), contentPage,
+ jParams.getSessionID(), pageInfosFlag, null,
SiteMapViewHelper.DISPLAY_ALL_LEVEL);
- engineMap.put ("flatJahiaSiteMap", siteMapViewHelper);
+ engineMap.put("flatJahiaSiteMap", siteMapViewHelper);
// Has the user made a site map handling (collapse, expand...)...
- final String siteMapParam = jParams.getParameter ("sitemap");
+ final String siteMapParam = jParams.getParameter("sitemap");
// If tab selected, which one ?
- final String display = jParams.getParameter ("display");
- if (tabOptions[SiteMapViewHelper.TREE_VIEW].equals (display)) {
- engineMap.put ("activeTabOption", new Integer
(SiteMapViewHelper.TREE_VIEW));
+ final String display = jParams.getParameter("display");
+ if (tabOptions[SiteMapViewHelper.TREE_VIEW].equals(display)) {
+ engineMap.put("activeTabOption", new
Integer(SiteMapViewHelper.TREE_VIEW));
if (siteMapParam != null) {
- siteMapService.invokeTreeSiteMapViewHelperMethod
(jParams.getUser (),
- contentPage, jParams.getSessionID (),
pageInfosFlag,
+
siteMapService.invokeTreeSiteMapViewHelperMethod(jParams.getUser(),
+ contentPage, jParams.getSessionID(),
pageInfosFlag,
null, siteMapParam);
}
- } else if (tabOptions[SiteMapViewHelper.FLAT_VIEW].equals
(display)) {
- engineMap.put ("activeTabOption", new Integer
(SiteMapViewHelper.FLAT_VIEW));
+ } else if
(tabOptions[SiteMapViewHelper.FLAT_VIEW].equals(display)) {
+ engineMap.put("activeTabOption", new
Integer(SiteMapViewHelper.FLAT_VIEW));
if (siteMapParam != null) {
- siteMapService.invokeFlatSiteMapViewHelperMethod
(jParams.getUser (),
- contentPage, jParams.getSessionID (),
pageInfosFlag,
+
siteMapService.invokeFlatSiteMapViewHelperMethod(jParams.getUser(),
+ contentPage, jParams.getSessionID(),
pageInfosFlag,
null, siteMapParam);
}
}
// Save the form selection to the session.
- storeSelectedPageParameters (jParams);
- engineMap.put ("jspSource", SELECT_PAGE_JSP);
- jParams.setAttribute ("engineTitle", "Select Page"); //
Displayed in 'engine.jsp'
+ storeSelectedPageParameters(jParams);
+ engineMap.put("jspSource", SELECT_PAGE_JSP);
+ jParams.setAttribute("engineTitle", "Select Page"); // Displayed
in 'engine.jsp'
// screen = save
- } else if ("save".equals (actionScreen)) {
+ } else if ("save".equals(actionScreen)) {
+ logger.debug("closing selectpage...");
// Save the form selection to the session.
- storeSelectedPageParameters (jParams);
- engineMap.put ("jspSource", CLOSE_JSP);
+ storeSelectedPageParameters(jParams);
+ engineMap.put("jspSource", CLOSE_JSP);
engineMap.put(SelectPage_Engine.OPERATION,
jParams.getParameter(SelectPage_Engine.OPERATION));
}
engineMap.put("screen", actionScreen);
- engineMap.put (RENDER_TYPE_PARAM, new Integer
(JahiaEngine.RENDERTYPE_FORWARD));
+ engineMap.put(RENDER_TYPE_PARAM, new
Integer(JahiaEngine.RENDERTYPE_FORWARD));
engineMap.put(ENGINE_NAME_PARAM, ENGINE_NAME);
engineMap.put(ENGINE_URL_PARAM,
jParams.composeEngineUrl(ENGINE_NAME));
- toolBox.displayScreen (jParams, engineMap);
+ toolBox.displayScreen(jParams, engineMap);
return null;
}
@@ -258,7 +293,7 @@
*
* @return the engine name.
*/
- public final String getName () {
+ public final String getName() {
return ENGINE_NAME;
}
@@ -266,20 +301,19 @@
* Get the selected page ID from the session.
*
* @param session the HTTP session
- *
* @return The page ID in the session or -1 if none.
*/
- public int getSelectedPageID (SessionState session)
+ public int getSelectedPageID(SessionState session)
throws JahiaException {
- final HashMap selectedPageParams = (HashMap) session.getAttribute
(SESSION_PARAMS);
+ final HashMap selectedPageParams = (HashMap)
session.getAttribute(SESSION_PARAMS);
if (selectedPageParams == null) {
return -1;
}
- final Integer sourcePageID = (Integer) selectedPageParams.get
(SOURCE_PAGE_ID);
+ final Integer sourcePageID = (Integer)
selectedPageParams.get(SOURCE_PAGE_ID);
if (sourcePageID == null) {
return -1;
}
- return sourcePageID.intValue ();
+ return sourcePageID.intValue();
}
/**
@@ -288,31 +322,37 @@
* (not implemented yet).
*
* @param jParams The ProcessingContext
- *
*/
- private void storeSelectedPageParameters (final ProcessingContext
jParams) {
- final HashMap selectedPageParams = (HashMap) jParams.getSessionState
().
- getAttribute (SESSION_PARAMS);
- final String sourcePageIDStr = jParams.getParameter (SOURCE_PAGE_ID);
+ private void storeSelectedPageParameters(final ProcessingContext
jParams) {
+ final HashMap selectedPageParams = (HashMap)
jParams.getSessionState().
+ getAttribute(SESSION_PARAMS);
+ final String sourcePageIDStr = jParams.getParameter(SOURCE_PAGE_ID);
if (sourcePageIDStr != null) {
- final Integer sourcePageID = Integer.valueOf (sourcePageIDStr);
- selectedPageParams.put (SOURCE_PAGE_ID, sourcePageID);
+ final Integer sourcePageID = Integer.valueOf(sourcePageIDStr);
+ selectedPageParams.put(SOURCE_PAGE_ID, sourcePageID);
}
- final String copiedPageLevelStr = jParams.getParameter
(COPIED_PAGE_LEVEL);
+ final String copiedPageLevelStr =
jParams.getParameter(COPIED_PAGE_LEVEL);
if (copiedPageLevelStr != null) {
- final Integer copiedPageLevel = Integer.valueOf
(copiedPageLevelStr);
- selectedPageParams.put (COPIED_PAGE_LEVEL, copiedPageLevel);
+ final Integer copiedPageLevel =
Integer.valueOf(copiedPageLevelStr);
+ selectedPageParams.put(COPIED_PAGE_LEVEL, copiedPageLevel);
}
}
- private SelectPage_Engine () {
- logger.debug ("***** Starting " + SelectPage_Engine.class.getName ()
+ " engine *****");
- toolBox = EngineToolBox.getInstance ();
- possibleOperations.add (MOVE_OPERATION);
- possibleOperations.add (LINK_OPERATION);
- possibleOperations.add (COPY_OPERATION);
- possibleOperations.add (SELECT_ANY_PAGE_OPERATION);
+ private SelectPage_Engine() {
+ logger.debug("***** Starting " + SelectPage_Engine.class.getName() +
" engine *****");
+ toolBox = EngineToolBox.getInstance();
+ possibleOperations.add(MOVE_OPERATION);
+ possibleOperations.add(LINK_OPERATION);
+ possibleOperations.add(COPY_OPERATION);
+ possibleOperations.add(SELECT_ANY_PAGE_OPERATION);
}
}
+
+/**
+ * $Log: SelectPage_Engine.java,v $
+ * Revision 1.6 2005/10/19 14:23:53 dpillot
+ * content pick final enhancements
+ *
+ */
\ No newline at end of file