Author: phuong_vu
Date: 2011-04-15 03:37:46 -0400 (Fri, 15 Apr 2011)
New Revision: 6229
Modified:
portal/branches/decoupled-webos/webui/portal/src/main/java/org/exoplatform/portal/webui/page/UIPage.java
portal/branches/decoupled-webos/webui/portal/src/main/java/org/exoplatform/portal/webui/page/UIPageBrowser.java
Log:
GTNPORTAL-1785 EditInfoActionListener of UIPageBrowser should delegate the actual work to
the actual UIPage
Modified:
portal/branches/decoupled-webos/webui/portal/src/main/java/org/exoplatform/portal/webui/page/UIPage.java
===================================================================
---
portal/branches/decoupled-webos/webui/portal/src/main/java/org/exoplatform/portal/webui/page/UIPage.java 2011-04-15
07:36:05 UTC (rev 6228)
+++
portal/branches/decoupled-webos/webui/portal/src/main/java/org/exoplatform/portal/webui/page/UIPage.java 2011-04-15
07:37:46 UTC (rev 6229)
@@ -19,6 +19,7 @@
package org.exoplatform.portal.webui.page;
+import org.exoplatform.portal.application.PortalRequestContext;
import org.exoplatform.portal.config.UserACL;
import org.exoplatform.portal.config.model.Page;
import org.exoplatform.portal.webui.application.UIPortlet;
@@ -32,6 +33,7 @@
import org.exoplatform.portal.webui.workspace.UIPortalToolPanel;
import org.exoplatform.portal.webui.workspace.UIWorkingWorkspace;
import org.exoplatform.web.application.ApplicationMessage;
+import org.exoplatform.webui.application.WebuiRequestContext;
import org.exoplatform.webui.config.annotation.ComponentConfig;
import org.exoplatform.webui.config.annotation.EventConfig;
import org.exoplatform.webui.event.Event;
@@ -140,60 +142,64 @@
{
this.maximizedUIPortlet = maximizedUIPortlet;
}
-
- public static class EditCurrentPageActionListener extends EventListener<UIPage>
+
+ public void switchToEditMode() throws Exception
{
- @Override
- public void execute(Event<UIPage> event) throws Exception {
- UIPortalApplication uiApp = Util.getUIPortalApplication();
- UIWorkingWorkspace uiWorkingWS = uiApp
- .getChildById(UIPortalApplication.UI_WORKING_WS_ID);
+ Page page = PortalDataMapper.toPageModel(this);
+ switchToEditMode(page);
+ }
- // check edit permission for page
- UIPageBody pageBody = uiWorkingWS
- .findFirstComponentOfType(UIPageBody.class);
- UIPage uiPage = (UIPage) pageBody.getUIComponent();
- if (uiPage == null) {
- uiApp.addMessage(new ApplicationMessage(
- "UIPageBrowser.msg.PageNotExist", null));
- return;
- }
- Page page = PortalDataMapper.toPageModel(uiPage);
+ public void switchToEditMode(Page page) throws Exception
+ {
+ WebuiRequestContext context = WebuiRequestContext.getCurrentInstance();
- UserACL userACL = uiApp.getApplicationComponent(UserACL.class);
- if (!userACL.hasEditPermission(page)) {
- uiApp.addMessage(new ApplicationMessage(
- "UIPortalManagement.msg.Invalid-EditPage-Permission", null));
- return;
- }
+ // check edit permission for page
+ UserACL userACL = getApplicationComponent(UserACL.class);
+ if (!userACL.hasEditPermission(page)) {
+ context.getUIApplication().addMessage(new ApplicationMessage(
+ "UIPortalManagement.msg.Invalid-EditPage-Permission", null));
+ return;
+ }
- uiWorkingWS.setRenderedChild(UIEditInlineWorkspace.class);
+ UIPortalApplication uiApp = Util.getUIPortalApplication();
+ UIWorkingWorkspace uiWorkingWS = uiApp
+ .getChildById(UIPortalApplication.UI_WORKING_WS_ID);
+ uiWorkingWS.setRenderedChild(UIEditInlineWorkspace.class);
- UIPortalComposer portalComposer = uiWorkingWS.findFirstComponentOfType(
- UIPortalComposer.class).setRendered(true);
- portalComposer.setComponentConfig(UIPortalComposer.class, "UIPageEditor");
- portalComposer.setId("UIPageEditor");
- portalComposer.setShowControl(true);
- portalComposer.setEditted(false);
- portalComposer.setCollapse(false);
+ UIPortalComposer portalComposer = uiWorkingWS.findFirstComponentOfType(
+ UIPortalComposer.class).setRendered(true);
+ portalComposer.setComponentConfig(UIPortalComposer.class,
"UIPageEditor");
+ portalComposer.setId("UIPageEditor");
+ portalComposer.setShowControl(true);
+ portalComposer.setEditted(false);
+ portalComposer.setCollapse(false);
- UIPortalToolPanel uiToolPanel = uiWorkingWS
- .findFirstComponentOfType(UIPortalToolPanel.class);
- uiToolPanel.setShowMaskLayer(false);
- uiApp.setModeState(UIPortalApplication.APP_BLOCK_EDIT_MODE);
+ UIPortalToolPanel uiToolPanel = uiWorkingWS
+ .findFirstComponentOfType(UIPortalToolPanel.class);
+ uiToolPanel.setShowMaskLayer(false);
+ uiApp.setModeState(UIPortalApplication.APP_BLOCK_EDIT_MODE);
- // We clone the edited UIPage object, that is required for Abort action
- Class<? extends UIPage> clazz = UIPage.getRealClass(uiPage.getFactoryId());
- UIPage newUIPage = uiWorkingWS.createUIComponent(clazz, null, null);
- PortalDataMapper.toUIPage(newUIPage, page);
- uiToolPanel.setWorkingComponent(newUIPage);
+ // We clone the edited UIPage object, that is required for Abort action
+ UIPage newUIPage = uiWorkingWS.createUIComponent(UIPage.class, null, null);
+ PortalDataMapper.toUIPage(newUIPage, page);
+ uiToolPanel.setWorkingComponent(newUIPage);
- // Remove current UIPage from UIPageBody
- pageBody.setUIComponent(null);
+ // Remove current UIPage from UIPageBody
+ UIPageBody pageBody = uiWorkingWS
+ .findFirstComponentOfType(UIPageBody.class);
+ pageBody.setUIComponent(null);
- event.getRequestContext().addUIComponentToUpdateByAjax(uiWorkingWS);
- Util.getPortalRequestContext().setFullRender(true);
-
- }
+ PortalRequestContext prContext = Util.getPortalRequestContext();
+ prContext.addUIComponentToUpdateByAjax(uiWorkingWS);
+ prContext.setFullRender(true);
}
+
+ public static class EditCurrentPageActionListener extends EventListener<UIPage>
+ {
+ @Override
+ public void execute(Event<UIPage> event) throws Exception
+ {
+ event.getSource().switchToEditMode();
+ }
+ }
}
\ No newline at end of file
Modified:
portal/branches/decoupled-webos/webui/portal/src/main/java/org/exoplatform/portal/webui/page/UIPageBrowser.java
===================================================================
---
portal/branches/decoupled-webos/webui/portal/src/main/java/org/exoplatform/portal/webui/page/UIPageBrowser.java 2011-04-15
07:36:05 UTC (rev 6228)
+++
portal/branches/decoupled-webos/webui/portal/src/main/java/org/exoplatform/portal/webui/page/UIPageBrowser.java 2011-04-15
07:37:46 UTC (rev 6229)
@@ -29,7 +29,6 @@
import org.exoplatform.portal.application.PortalRequestContext;
import org.exoplatform.portal.config.DataStorage;
import org.exoplatform.portal.config.Query;
-import org.exoplatform.portal.config.UserACL;
import org.exoplatform.portal.config.UserPortalConfigService;
import org.exoplatform.portal.config.model.ModelObject;
import org.exoplatform.portal.config.model.Page;
@@ -39,10 +38,8 @@
import org.exoplatform.portal.webui.application.UIPortlet;
import org.exoplatform.portal.webui.portal.PageNodeEvent;
import org.exoplatform.portal.webui.portal.UIPortal;
-import org.exoplatform.portal.webui.portal.UIPortalComposer;
import org.exoplatform.portal.webui.util.PortalDataMapper;
import org.exoplatform.portal.webui.util.Util;
-import org.exoplatform.portal.webui.workspace.UIEditInlineWorkspace;
import org.exoplatform.portal.webui.workspace.UIMaskWorkspace;
import org.exoplatform.portal.webui.workspace.UIPortalApplication;
import org.exoplatform.portal.webui.workspace.UIWorkingWorkspace;
@@ -400,66 +397,21 @@
public void execute(Event<UIPageBrowser> event) throws Exception
{
UIPageBrowser uiPageBrowser = event.getSource();
- PortalRequestContext pcontext = Util.getPortalRequestContext();
- UIPortalApplication uiPortalApp =
(UIPortalApplication)pcontext.getUIApplication();
- String id = pcontext.getRequestParameter(OBJECTID);
- UserPortalConfigService service =
uiPageBrowser.getApplicationComponent(UserPortalConfigService.class);
+ WebuiRequestContext context = event.getRequestContext();
+ String pageID = context.getRequestParameter(OBJECTID);
+ DataStorage service = uiPageBrowser.getApplicationComponent(DataStorage.class);
//Check existence of the page
- Page page = service.getPage(id);
+ Page page = service.getPage(pageID);
if (page == null)
{
- uiPortalApp.addMessage(new
ApplicationMessage("UIPageBrowser.msg.PageNotExist", new String[]{id}, 1));
- pcontext.addUIComponentToUpdateByAjax(uiPortalApp.getUIPopupMessages());
+ context.getUIApplication().addMessage(new
ApplicationMessage("UIPageBrowser.msg.PageNotExist", new String[]{pageID}, 1));
return;
}
- if (page.getName().equals("webos"))
- {
- uiPortalApp.addMessage(new
ApplicationMessage("UIPageBrowser.msg.edit.NotEditDesktopPage", new
String[]{id}, 1));
- pcontext.addUIComponentToUpdateByAjax(uiPortalApp.getUIPopupMessages());
- return;
- }
-
- //Check current user 's permissions on the page
- UserACL userACL = uiPageBrowser.getApplicationComponent(UserACL.class);
- if (!userACL.hasEditPermission(page))
- {
- uiPortalApp.addMessage(new
ApplicationMessage("UIPageBrowser.msg.edit.NotEditPage", new String[]{id}, 1));
- pcontext.addUIComponentToUpdateByAjax(uiPortalApp.getUIPopupMessages());
- return;
- }
-
- //Switch portal application to edit mode
- uiPortalApp.setModeState(UIPortalApplication.APP_BLOCK_EDIT_MODE);
- UIWorkingWorkspace uiWorkingWS =
uiPortalApp.findFirstComponentOfType(UIWorkingWorkspace.class);
- UIEditInlineWorkspace editInlineWS =
uiWorkingWS.getChild(UIEditInlineWorkspace.class);
-
- //Clone a UIPage object, that is required for Abort action
- UIPage uiPage = editInlineWS.createUIComponent(UIPage.class, null, null);
- PortalDataMapper.toUIPage(uiPage, page);
-
- UIPageBody uiPageBody = uiPortalApp.findFirstComponentOfType(UIPageBody.class);
- if (uiPageBody.getUIComponent() != null)
- uiPageBody.setUIComponent(null);
-
- editInlineWS.setRendered(true);
- editInlineWS.setUIComponent(uiPage);
-
- UIPortalComposer portalComposer =
editInlineWS.getChild(UIPortalComposer.class).setRendered(true);
- portalComposer.setComponentConfig(UIPortalComposer.class,
"UIPageEditor");
- portalComposer.setShowControl(true);
- portalComposer.setEditted(false);
- portalComposer.setCollapse(false);
- portalComposer.setId("UIPageEditor");
-
- //toolPanel.setUIComponent(uiPage);
- //toolPanel.setShowMaskLayer(false);
- //uiWorkingWS.setRenderedChild(UIPortalToolPanel.class);
- //uiWorkingWS.addChild(UIPortalComposer.class, "UIPageEditor", null);
- uiWorkingWS.setRenderedChild(UIPortalApplication.UI_EDITTING_WS_ID);
- pcontext.addUIComponentToUpdateByAjax(uiWorkingWS);
- pcontext.ignoreAJAXUpdateOnPortlets(true);
+ //Need this code to override editpage action in extension project
+ Class<? extends UIPage> clazz = UIPage.getRealClass(page.getFactoryId());
+ clazz.getConstructor().newInstance().switchToEditMode(page);
}
}
@@ -530,6 +482,7 @@
}
page.setOwnerType(uiPage.getOwnerType());
+
List<UIPortlet> uiPortlets = new ArrayList<UIPortlet>();
findAllPortlet(uiPortlets, uiPage);
ArrayList<ModelObject> applications = new ArrayList<ModelObject>();
@@ -552,6 +505,7 @@
uiPage.getChildren().clear();
PortalDataMapper.toUIPage(uiPage, page);
+
// if (page.getTemplate() == null) page.setTemplate(uiPage.getTemplate());
if (page.getChildren() == null)
page.setChildren(new ArrayList<ModelObject>());