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
  

Reply via email to