[gatein-commits] gatein SVN: r6226 - in portal/branches/decoupled-webos: portlet/exoadmin/src/main/java/org/exoplatform/toolbar/webui/component and 8 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Fri Apr 15 03:29:11 EDT 2011


Author: phuong_vu
Date: 2011-04-15 03:29:10 -0400 (Fri, 15 Apr 2011)
New Revision: 6226

Removed:
   portal/branches/decoupled-webos/web/portal/src/main/webapp/groovy/portal/webui/application/UIAddNewApplication.gtmpl
   portal/branches/decoupled-webos/web/portal/src/main/webapp/groovy/portal/webui/page/UIDesktopPage.gtmpl
   portal/branches/decoupled-webos/webui/portal/src/main/java/org/exoplatform/portal/webui/application/UIAddNewApplication.java
   portal/branches/decoupled-webos/webui/portal/src/main/java/org/exoplatform/portal/webui/page/UIDesktopPage.java
Modified:
   portal/branches/decoupled-webos/component/portal/src/main/java/org/exoplatform/portal/config/model/Page.java
   portal/branches/decoupled-webos/portlet/exoadmin/src/main/java/org/exoplatform/toolbar/webui/component/UIAdminToolbarPortlet.java
   portal/branches/decoupled-webos/portlet/exoadmin/src/main/webapp/WEB-INF/portlet.xml
   portal/branches/decoupled-webos/web/portal/src/main/webapp/WEB-INF/classes/locale/portal/webui_en.properties
   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/UIPageBody.java
   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/UIPageCreationWizard.java
   portal/branches/decoupled-webos/webui/portal/src/main/java/org/exoplatform/portal/webui/page/UIPageForm.java
   portal/branches/decoupled-webos/webui/portal/src/main/java/org/exoplatform/portal/webui/util/Util.java
   portal/branches/decoupled-webos/webui/portal/src/main/java/org/exoplatform/portal/webui/workspace/UIMainActionListener.java
   portal/branches/decoupled-webos/webui/portal/src/main/java/org/exoplatform/portal/webui/workspace/UIPortalToolPanel.java
   portal/branches/decoupled-webos/webui/portal/src/main/java/org/exoplatform/portal/webui/workspace/UIWorkingWorkspace.java
Log:
GTNPORTAL-1786 Remove WebOS checking from UIPageCreationWizard, UIPageForm, UIPortalToolPanel (squash a7fbb1e , 705608e, 024de96, ed54678)

Modified: portal/branches/decoupled-webos/component/portal/src/main/java/org/exoplatform/portal/config/model/Page.java
===================================================================
--- portal/branches/decoupled-webos/component/portal/src/main/java/org/exoplatform/portal/config/model/Page.java	2011-04-14 16:21:08 UTC (rev 6225)
+++ portal/branches/decoupled-webos/component/portal/src/main/java/org/exoplatform/portal/config/model/Page.java	2011-04-15 07:29:10 UTC (rev 6226)
@@ -31,9 +31,6 @@
  **/
 public class Page extends Container
 {
-
-   final static public String DESKTOP_PAGE = "Desktop";
-
    final static public String DEFAULT_PAGE = "Default";
 
    private String ownerType;
@@ -204,4 +201,18 @@
    {
       return "Page[ownerType=" + ownerType + ",ownerId=" + ownerId + ",name=" + name + "]";
    }
+   
+   @Override
+   public final String getFactoryId()
+   {
+      String factoryId = super.getFactoryId();
+      if (factoryId != null)
+      {
+         return factoryId;
+      }
+      else
+      {
+         return "org.exoplatform.portal.webui.page.UIPage";
+      }
+   }
 }
\ No newline at end of file

Modified: portal/branches/decoupled-webos/portlet/exoadmin/src/main/java/org/exoplatform/toolbar/webui/component/UIAdminToolbarPortlet.java
===================================================================
--- portal/branches/decoupled-webos/portlet/exoadmin/src/main/java/org/exoplatform/toolbar/webui/component/UIAdminToolbarPortlet.java	2011-04-14 16:21:08 UTC (rev 6225)
+++ portal/branches/decoupled-webos/portlet/exoadmin/src/main/java/org/exoplatform/toolbar/webui/component/UIAdminToolbarPortlet.java	2011-04-15 07:29:10 UTC (rev 6226)
@@ -40,9 +40,6 @@
 @ComponentConfig(lifecycle = UIApplicationLifecycle.class, template = "app:/groovy/admintoolbar/webui/component/UIAdminToolbarPortlet.gtmpl")
 public class UIAdminToolbarPortlet extends UIPortletApplication
 {
-   // Minh Hoang TO
-   // TODO: Add a ThreadLocal cache to avoid double invocation of editPermission
-   // check ( one in processRender method, and one in Groovy template )
 
    public UIAdminToolbarPortlet() throws Exception
    {

Modified: portal/branches/decoupled-webos/portlet/exoadmin/src/main/webapp/WEB-INF/portlet.xml
===================================================================
--- portal/branches/decoupled-webos/portlet/exoadmin/src/main/webapp/WEB-INF/portlet.xml	2011-04-14 16:21:08 UTC (rev 6225)
+++ portal/branches/decoupled-webos/portlet/exoadmin/src/main/webapp/WEB-INF/portlet.xml	2011-04-15 07:29:10 UTC (rev 6226)
@@ -22,6 +22,12 @@
 <portlet-app version="1.0" xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd">
+
+   <public-render-parameter>
+      <identifier>navigation_uri</identifier>
+      <qname xmlns:prp='http://www.gatein.org/xml/ns/prp_1_0'>prp:navigation_uri</qname>
+   </public-render-parameter>
+   
    <portlet>
       <description xml:lang="EN">Organization Portlet</description>
       <portlet-name>OrganizationPortlet</portlet-name>
@@ -253,6 +259,8 @@
          <short-title>Administration Toolbar</short-title>
          <keywords>gatein_internal</keywords>
       </portlet-info>
+      
+      <supported-public-render-parameter>navigation_uri</supported-public-render-parameter>
    </portlet>
 
    <portlet>

Modified: portal/branches/decoupled-webos/web/portal/src/main/webapp/WEB-INF/classes/locale/portal/webui_en.properties
===================================================================
--- portal/branches/decoupled-webos/web/portal/src/main/webapp/WEB-INF/classes/locale/portal/webui_en.properties	2011-04-14 16:21:08 UTC (rev 6225)
+++ portal/branches/decoupled-webos/web/portal/src/main/webapp/WEB-INF/classes/locale/portal/webui_en.properties	2011-04-15 07:29:10 UTC (rev 6226)
@@ -432,6 +432,7 @@
 UIPageBrowser.msg.NotViewPage=You have not the rights to view this page.
 UIPageBrowser.msg.edit.NotEditPage=You have not the rights to edit this page.
 UIPageBrowser.msg.delete.NotDelete=You have not the rights to delete this page.
+UIPageBrowser.msg.delete.DeleteCurrentUserPage=You have to switch to other page to delete this page
 UIPageBrowser.selectItem.ownerType=Owner Type
 UIPageBrowser.selectItem.ownerId=Owner Id
 UIPageBrowser.selectItem.name=Name

Deleted: portal/branches/decoupled-webos/web/portal/src/main/webapp/groovy/portal/webui/application/UIAddNewApplication.gtmpl
===================================================================
--- portal/branches/decoupled-webos/web/portal/src/main/webapp/groovy/portal/webui/application/UIAddNewApplication.gtmpl	2011-04-14 16:21:08 UTC (rev 6225)
+++ portal/branches/decoupled-webos/web/portal/src/main/webapp/groovy/portal/webui/application/UIAddNewApplication.gtmpl	2011-04-15 07:29:10 UTC (rev 6226)
@@ -1,152 +0,0 @@
-<%
-		import org.exoplatform.web.application.Parameter;
-		List appCategories = uicomponent.getApplicationCategories();
-%>
-<div class="UIAddApplication" id="UIAddNewApplication">
-	<div class="UIBarStyle">
-		<div class="TitleBar">
-			<div class="LeftBar">
-				<div class="RightBar">
-					<div class="MiddleBar"><%=_ctx.appRes("UIAddNewApplication.label.AddApplication")%></div>
-				</div>
-			</div>
-		</div>
-	</div>
-	
-	<div class="ContentContainerDetail">
-		<div class="CategoryContainer">
-			
-			<div class="UITabContentContainer">
-				<div class="UITabContent" style="display: block">
-					<div class="UIAddPortlet">
-						<div class="UIItemSelector">
-							<div class="LeftColumnStyle">
-								<div class="ItemListContainer">
-								
-									<div class="ItemListTitle">
-										<div class="TitleIcon ItemListIcon"><span></span></div>
-										<div class="Title"><%=_ctx.appRes("UIAddNewApplication.label.Categories")%></div>
-										<div class="ClearLeft"><span></span></div>
-									</div>
-									<div class="ItemList">
-									<%
-									boolean selected = true;
-									for(category in appCategories){
-									%>
-										<div onmouseout="eXo.webui.UIItemSelector.onOver(this, false);" onmouseover="eXo.webui.UIItemSelector.onOver(this, true);" onclick="eXo.webui.UIItemSelector.onClick(this);" class="<%= selected ? "SelectedItem" : "" %> Item" title="<%=category.getDisplayName()%>">
-												<div class="LeftItem">
-														<div class="RightItem"><div id="<%=category.getName()%>" class="ItemTitle"><div class="CenterItemTitle"><%=category.getDisplayName()%></div></div></div>
-												</div>
-										</div>
-									<% 
-										selected = false;
-									}
-									%>
-									</div>
-								
-								</div>
-								
-								<div class="ItemDetailList">
-										<div class="ItemDetailTitle">
-											<div class="TitleIcon ViewListIcon"><span></span></div>
-											<div class="Title"><%=_ctx.appRes("UIAddNewApplication.label.Select")%></div>
-											<div class="ClearLeft"><span></span></div>
-										</div>
-										<div class="ApplicationListContainer">
-										<% if(appCategories==null || appCategories.isEmpty()){ %>
-											<div class="ItemDetail" style="display:block">										
-														<div class="NoneAppsMessage" style="display:block">
-															<%=_ctx.appRes("UIAddNewApplication.label.NoneApp")%>
-														</div>
-											</div>
-										<% } %>
-										<%
-												selected = true;
-												for(category in appCategories) {
-													 List listApplication = category.getApplications();
-										%>
-											<div class="ItemDetail" style="display: <%= selected ? "block" : "none" %>">										
-										
-												<%
-													 for(application in listApplication) {
-													 		 String srcBG = application.getApplicationGroup() + "/skin/DefaultSkin/portletIcons/" + application.getApplicationName()+ ".png";
-															 String srcNormalBG = "/eXoResources/skin/sharedImages/Icon80x80/DefaultPortlet.png";
-
-															 //Create add Application Ajax request URL
-															 String callingAction = "AddApplication";
-															 String addApplicationURL = uicomponent.event(callingAction, application.getId());
-															 String addToStartup = uicomponent.event("AddToStartup", application.getId());
-												%>
-												<div class="Application">
-													<div class="ApplicationDescription">
-														<div onclick="$addApplicationURL" title="<%= application.getDisplayName() %>" class="PortletIcon">
-																<span><img src="/$srcBG" alt="" onError="src='$srcNormalBG'" /></span>
-														</div>
-														<div class="ApplicationContent">
-															<div class="TitleBarApplication">
-																 <div class="Title"><%= application.getDisplayName() %></div>
-																 <div class="ApplicationButton">
-																		<% if (org.exoplatform.web.application.Application.EXO_PORTLET_TYPE.equals(application.getApplicationType())) { %>
-																			<div title="<%=_ctx.appRes("UIAddNewApplication.label.AddToStartup")%>" class="AddToStartUp" onclick="$addToStartup" ><span></span></div>
-																		<%}%>
-																		<div title="<%=_ctx.appRes("UIAddNewApplication.label.Add")%>" class="AddButton" onclick="$addApplicationURL" ><span></span></div>
-																 </div>
-															</div>
-															<div class="ApplicationContentLabel">
-																<div class="ContentLabel">
-																		<span class="LeftLabel"><%=_ctx.appRes("UIAddNewApplication.label.Type")%></span>
-																		<span class="RightLabel"><%=application.getApplicationType()%></span>
-																</div>
-																<div class="ContentLabel">
-																		<span class="LeftLabel"><%=_ctx.appRes("UIAddNewApplication.label.Created")%></span>
-																		<span class="RightLabel">eXo Platform SAS.</span>
-																</div>
-																<div class="ContentLabel">
-																		<span class="LeftLabel"><%=_ctx.appRes("UIAddNewApplication.label.Description")%></span>
-																		<span class="RightLabel"><%= application.getDescription() %></span>
-																</div>
-															</div>
-														</div>
-													</div>
-													<div class="ClearRight"><span ></span></div>
-												</div>
-												<% 
-													 }
-												%>
-												
-											</div>
-										<% 
-												selected = false;
-										}
-										%>
-										</div>
-								</div>
-								 <div class="ClearLeft"><span></span></div>
-							</div>
-						</div>
-					</div>
-				</div>
-			</div>
-			
-		</div>
-	</div>
-	
-	<div class="UIAction">
-		<table class="ActionContainer">
-			<tr>
-				<td>
-					<div class="ActionButton LightBlueStyle" onclick="<%= uicomponent.event("Close") %>" >
-					<div class="ButtonLeft">
-						<div class="ButtonRight">
-							<div class="ButtonMiddle">
-								<a href="javascript:void(0);"><%=_ctx.appRes("UIAddNewApplication.label.Close")%></a>
-							</div>
-						</div>
-					</div>
-					</div>
-				</td>
-			</tr>
-		</table>
-	</div>
-	
-</div>
\ No newline at end of file

Deleted: portal/branches/decoupled-webos/web/portal/src/main/webapp/groovy/portal/webui/page/UIDesktopPage.gtmpl
===================================================================
--- portal/branches/decoupled-webos/web/portal/src/main/webapp/groovy/portal/webui/page/UIDesktopPage.gtmpl	2011-04-14 16:21:08 UTC (rev 6225)
+++ portal/branches/decoupled-webos/web/portal/src/main/webapp/groovy/portal/webui/page/UIDesktopPage.gtmpl	2011-04-15 07:29:10 UTC (rev 6226)
@@ -1,307 +0,0 @@
-<%	
-	import org.exoplatform.portal.webui.application.UIPortlet;
-	import org.exoplatform.web.application.JavascriptManager;
-	import org.exoplatform.portal.config.model.PageNavigation;
-	import org.exoplatform.portal.config.model.PageNode;
-	def rcontext = _ctx.getRequestContext();
-	JavascriptManager jsmanager = rcontext.getJavascriptManager();
-	
-	jsmanager.importJavascript('eXo.desktop.UIDesktop');
-	jsmanager.importJavascript('eXo.webui.UIPopupSelectCategory');
-	jsmanager.importJavascript('eXo.desktop.UIWindow');
-	jsmanager.importJavascript('eXo.webui.UIRightClickPopupMenu');
-	jsmanager.addCustomizedOnLoadScript("eXo.gadget.UIGadget.SaveTitle='" + _ctx.appRes("UIDashboardContainer.label.SaveTitle") + "';");
-	jsmanager.addCustomizedOnLoadScript("eXo.gadget.UIGadget.CancelTitle='" + _ctx.appRes("UIDashboardContainer.label.CancelTitle") + "';");
-	jsmanager.addCustomizedOnLoadScript("eXo.gadget.UIGadget.Cache='" + _ctx.appRes("UIDashboardContainer.label.Cache") + "';");
-	jsmanager.addCustomizedOnLoadScript("eXo.gadget.UIGadget.Debug='" + _ctx.appRes("UIDashboardContainer.label.Debug") + "';");
-	jsmanager.addCustomizedOnLoadScript('eXo.desktop.UIDockbar.initNav();');
-	
-	String docBase =	rcontext.getRequestContextPath();
-	String comId = uicomponent.getId();
-	boolean modifiable = uicomponent.isModifiable();
-	
-		void renderSinglePageNode(PageNavigation nav, PageNode node) {
-		String	href = uicomponent.event("ChangePage",	nav.getId() + "::" + node.getUri());
-		String icon = node.getIcon();
-		if(icon == null) icon = "DefaultPageIcon";
-		print """
-			<div class="MenuItem">
-				<div class="LabelItem">
-					<div class="Icon $icon"	style="padding-left: 18px">
-						<div class="LabelText"><a href="#" onclick="$href">$node.resolvedLabel</a></div>
-					</div>
-				</div>
-			</div>
-		""";
-	}
-	
-	void renderPageNode(PageNavigation nav, PageNode node) {
-		 String	href = uicomponent.event("ChangePage",	 nav.getId() + "::" +	node.getUri());
-		 String icon = node.getIcon();
-		 String scrollUpTitle = _ctx.appRes("UIExoStart.tooltip.scrollUp");
-		 String scrollDownTitle = _ctx.appRes("UIExoStart.tooltip.scrollDown");
-		 if(icon == null) icon = "DefaultPageIcon";
-		 print """
-			<div class="MenuItem">
-				<div class="LabelItem">
-					<div class="Icon $icon" style="padding-left: 18px"> 
-						<div class="BlackArrowIcon">
-							<div class="LabelText "><a href="#" onclick="$href">$node.resolvedLabel</a></div>
-						</div>
-					</div>
-				</div>
-				<div class="MenuItemContainer">
-					<div class="StartMenuDecorator">
-						<div class="StartMenuTL">
-							<div class="StartMenuTR">
-								<div class="StartMenuTC"><span></span></div>
-							</div>
-						</div>
-						<div class="StartMenuML">
-							<div class="StartMenuMR">
-								<div class="StartMenuBG" style="padding-bottom: 6px">
-									<div class="TopNavigator" style="display: none;" title="$scrollUpTitle">
-											<div class="UpNavigatorIcon"><span></span></div>
-									</div>
-									<div class="BlockMenu">
-									<div class="MenuContainer">					
-									""";
-									for(child in node.getChildren()) {
-										if(child.getChildren() != null && child.getChildren().size() > 0) renderPageNode(nav, child);
-										else renderSinglePageNode(nav, child);
-									}
-									print """
-									</div>
-									</div>
-									<div class="BottomNavigator" style="display: none;" title="$scrollDownTitle">
-											<div class="DownNavigatorIcon"><span></span></div>
-									</div>
-								</div>
-							</div>
-						</div>
-						<div class="StartMenuBL">
-							<div class="StartMenuBR">
-							<div class="StartMenuBC"><span></span></div>
-							</div>
-						</div>						 
-					</div>	
-				</div>
-			</div>
-		""";
-	}
-	
-	void renderPageNavigation(PageNavigation navigation) {
-		nodes = navigation.getNodes();
-		if(nodes.size() < 1) return;
-		String navTitle = _ctx.appRes("UIPageNavigation.label.titleBar");
-		navTitle = navTitle.replace("{0}", navigation.ownerId);
-		print """
-			<div class="PageNavigationBlock">
-				<div class="DecoratorBlock">
-					<div class="PageOwnerContainer">
-						<div class="TitleBar">$navTitle </div>
-						""";
-						for(node in nodes) {
-							if(node.getChildren() != null && node.getChildren().size() > 0) {
-								renderPageNode(navigation, node);
-							}
-							else renderSinglePageNode(navigation, node);
-						}
-						print """
-					</div>
-				</div>
-			</div>
-		""";		
-	}
-	
-	void renderNavigations() {
-		String label = _ctx.appRes(uicomponent.getId() + ".item.PageNavigation");
-		String scrollUpTitle = _ctx.appRes("UIExoStart.tooltip.scrollUp");
-		String scrollDownTitle = _ctx.appRes("UIExoStart.tooltip.scrollDown");
-		navigations = uicomponent.getNavigations();
-	 	//if (navigations != null && navigations.size() > 0 && navigations.get(0).getNodes().size() > 0) {
-	 	if (navigations != null && navigations.size() > 0) {
-			 	print """ 
-				<div class="MenuItemContainer NavigationContainer" style="position: absolute; top: -450px;">
-					<div class="StartMenuDecorator">
-						<div class="StartMenuTL">
-							<div class="StartMenuTR">
-								<div class="StartMenuTC"><span></span></div>
-							</div>
-						</div>
-						<div class="StartMenuML">
-							<div class="StartMenuMR">
-								<div class="StartMenuBG" style="padding: 5px 0px;">
-									<div class="TopNavigator" style="display: none;" title="$scrollUpTitle">
-										<div class="UpNavigatorIcon"><span></span></div>
-									</div>
-									<div class="BlockMenu">
-									<div class="MenuContainer"> 
-									""";
-									for(navigation in navigations) {
-										renderPageNavigation(navigation);
-									}
-									print """
-									</div>
-									</div>
-									<div class="BottomNavigator" style="display: none;" title="$scrollDownTitle">
-										<div class="DownNavigatorIcon"><span></span></div>
-									</div>
-								</div>
-							</div>
-						</div>
-						<div class="StartMenuBL">
-							<div class="StartMenuBR">
-							<div class="StartMenuBC"><span></span></div>
-							</div>
-						</div>
-					</div>	
-				</div>
-				""";
-		}
-	}
-	
-%>
-
-
-<div class="UIPage" id="UIPage-${uicomponent.id}">
-	<div class="META-DATA-BLOCK" style="display: none">
-		<div class="id">$uicomponent.id</div>
-		<div class="title"><%=_ctx.appRes("UIPage.label.title")%></div>
-		<div class="description"><%=_ctx.appRes("UIPage.label.description")%></div>
-	</div>
-	<div class="VIEW-PAGE">
-		<div id="UIPage">
-			<div class="UIPageDesktop" id="UIPageDesktop">
-				<%int x = 15; y = 15 %>
-				<%for(uiChild in uicomponent.getChildren()) {
-						if(!(uiChild instanceof UIPortlet)) {
-							uicomponent.renderUIComponent(uiChild);
-							continue;
-						}
-						
-						String	popupId = uiChild.getId();
-						String title = uiChild.getTitle();
-						if(title == null || title.trim().length() < 1) {
-							title = popupId;
-							uiChild.setTitle(title);
-						}
-						uiChild.setShowInfoBar(true);
-						uiChild.setPortletStyle("Window");
-						uicomponent.renderUIComponent(uiChild);
-						
-						String posX = uiChild.getProperties().get("locationX");
-						String posY = uiChild.getProperties().get("locationY");
-						
-						if(posX == null) posX = (String)x;
-						if(posY == null) posY = (String)y;
-						
-						jsmanager.addJavascript("eXo.desktop.UIWindow.init('UIWindow-${popupId}', true, ${posX}, ${posY});");
-				%>
-				<%	x += 10; y += 20;%>
-				<%}%>
-
-				<%//String containerMouseOver = "eXo.desktop.UIDockbar.containerMouseOver();";%>
-				<div class="UIDockBar" id="UIDockBar" onmouseover="eXo.desktop.UIDockbar.startDockBarEvt(event);">
-					<div id="DockNavigation" class="UIExoStart" style="position: absolute; display: none; width: 0px;">
-						<div class="StartMenuContainer">
-								<% renderNavigations(); %>
-						</div>
-					</div>	
-			<div class="UIRightClickPopupMenu" id="DockbarContextMenu" onmousedown="event.cancelBubble = true;">
-				<div class="UIContextMenuContainer" >
-					<div class="TopLeftRightClickPopupMenu">
-						<div class="TopRightRightClickPopupMenu">
-							<div class="TopCenterRightClickPopupMenu"><span></span></div>
-						</div>
-					</div>
-					<div class="MiddleLeftRightClickPopupMenu">
-						<div class="MiddleRightRightClickPopupMenu">
-							<div class="UIRightPopupMenuContainer">
-							 	<div class="MenuItem"> 	
-									<a	href="javascript:eXo.desktop.UIDesktop.removeApp('<%=uicomponent.url("RemoveChild", "_objectid_")%>')" onclick="return eXo.webui.UIRightClickPopupMenu.prepareObjectId(event, this);" 
-									 class="ItemIcon CloseDockBarIcon"><%=_ctx.appRes("UIPageDesktop.action.Close")%></a>
-							 	</div>
-							 	<div class="MenuItem">
-							 		<a class="ItemIcon QuitDockBarIcon" href="javascript:eXo.desktop.UIDesktop.removeWindowContent('_objectid_')" onclick="return eXo.webui.UIRightClickPopupMenu.prepareObjectId(event, this);" ><%=_ctx.appRes("UIPageDesktop.action.Quit")%></a>
-							 	</div>
-								<div class="RightClickCustomItem"><%=_ctx.appRes("UIPageDesktop.action.action.Open")%></div>
-							</div>
-						</div>
-					</div>
-					<div class="BottomLeftRightClickPopupMenu">
-						<div class="BottomRightRightClickPopupMenu">
-							<div class="BottomCenterRightClickPopupMenu">
-								<div class="ClickCenterBottom"><span></span></div>
-							</div>
-						</div>
-					</div>
-				</div>
-			</div>
-					<div class="DockbarLeft">
-						<div class="DockbarRight">
-							<div class="DockbarCenter" id="DockbarCenter">
-								
-								<div class="IconContainer" id="IconContainer" style="text-align: center;">
-									<img id="FixBug" alt="" src="/eXoResources/skin/sharedImages/Debug1x32.gif" />
-									
-									<%if(rcontext.getRemoteUser() == null) {%>
-											<img id="SignInIcon" class="Icon" src="/eXoResources/skin/sharedImages/Icon80x80/Signin.png" alt="" title=""
-														 onclick="<%=uicomponent.event("ShowLoginForm", null);%>" /><span class="Tooltip" style="display: none;"><%=_ctx.appRes("UIPageDesktop.title.SignIn")%></span>
-									<%} else {%>
-											<img id="SignOutIcon" class="Icon" src="/eXoResources/skin/sharedImages/Icon80x80/Signout.png" alt="" title=""
-														 onclick="eXo.portal.logout()" /><span class="Tooltip" style="display: none;"><%=_ctx.appRes("UIPageDesktop.title.SignOut")%></span>												
-									<%} %>
-											<img class="Separator" alt="" src="/webosResources/skin/Defaultskin/portal/webui/component/view/UIPageDesktop/background/Separator2x1.png"/>
-											
-									<% String changeLanguageAction = "if(document.getElementById('UIMaskWorkspace')) ajaxGet(eXo.env.server.createPortalURL('UIPortal', 'ChangeLanguage', true));"; %>
-											<img id="ChangeLanguageIcon" class="Icon" src="/eXoResources/skin/sharedImages/Icon80x80/ChangeLanguage.png" alt="" title=""
-														 onclick="$changeLanguageAction" /><span class="Tooltip" style="display: none;"><%=_ctx.appRes("UIExoStart.item.ChangeLanguage")%></span>
-
-											<img class="Icon" src="/eXoResources/skin/sharedImages/Icon80x80/NavigationIcon.png" alt="" title=""
-												 id="NavigationIcon"
-												 onclick="eXo.desktop.UIDockbar.showNavigation(event)"/><span class="Tooltip" style="display: none"><%=_ctx.appRes("UIPageDesktop.title.pageNavigation")%></span>
-											
-									<%if(modifiable) {%>
-											<img class="Icon" src="/eXoResources/skin/sharedImages/Icon80x80/AddPortlet.png" alt="" title=""
-													 id="UIAddApplicationIcon"
-													 onclick="<%=uicomponent.event("ShowAddNewApplication")%>"/><span class="Tooltip" style="display: none"><%=_ctx.appRes("UIPageDesktop.title.AddApplication")%></span>
-									<%}%>
-											<img class="Separator" alt="" src="/webosResources/skin/Defaultskin/portal/webui/component/view/UIPageDesktop/background/Separator2x1.png"/>
-									<%									
-										def res = rcontext.getApplicationResourceBundle();
-										String skin = rcontext.getUIApplication().getSkin();
-
-										for(uiChild in uicomponent.getChildren()) {
-											if(!(uiChild instanceof UIPortlet)) continue; 
-											String imgLocation = uiChild.getExoWindowID().getPortletApplicationName() + "/skin/DefaultSkin/portletIcons/" + uiChild.getExoWindowID().getPortletName();
-											String appStatus = uiChild.getProperties().get("appStatus");
-											boolean isVisible = "SHOW".equals(appStatus) || "HIDE".equals(appStatus);
-											
-										if(rcontext.getRemoteUser() != null) {
-									%>
-											<img id="DockItem${uiChild.id}" class="Icon <%=isVisible ? "ShowIcon": ""%>" onmousedown="eXo.webui.UIRightClickPopupMenu.clickRightMouse(event, this, 'DockbarContextMenu', '${uiChild.id}', null, 1)" src="/${imgLocation}.png" alt=""
-													 onerror="this.src='/eXoResources/skin/sharedImages/Icon80x80/DefaultPortlet.png'" onclick="eXo.desktop.UIDesktop.showHideWindow('UIWindow-${uiChild.id}', this);" /><span class="Tooltip" style="display: none"><%=uiChild.getTitle();%></span>
-									<%}else{%>
-											<img id="DockItem${uiChild.id}" class="Icon <%=isVisible ? "ShowIcon": ""%>" src="/${imgLocation}.png" alt=""
-													 onerror="this.src='/eXoResources/skin/sharedImages/Icon80x80/DefaultPortlet.png'" onclick="eXo.desktop.UIDesktop.showHideWindow('UIWindow-${uiChild.id}', this);" /><span class="Tooltip" style="display: none"><%=uiChild.getTitle();%></span>
-									<%}}%>
-			
-									<img class="Separator" alt="" src="/webosResources/skin/Defaultskin/portal/webui/component/view/UIPageDesktop/background/Separator2x1.png" />
-									<img id="PortletsViewer" class="Icon" src="/eXoResources/skin/sharedImages/Icon80x80/ShowPortletsViewer.png" alt="" title=""/><span class="Tooltip" style="display: none;"><%=_ctx.appRes("UIPageDesktop.title.ShowPortletDesktop")%></span>
-									<img id="GadgetsViewer" class="Icon" src="/eXoResources/skin/sharedImages/Icon80x80/HideWidgetsViewer.png" alt="" title=""/><span class="Tooltip" style="display: none;"><%=_ctx.appRes("UIPageDesktop.title.ShowWidgetDesktop")%></span>
-								</div>
-							</div>
-						</div>
-					</div>
-
-				</div> 
-			</div>
-		</div>
-	</div>
-</div>
-
-<%
-	jsmanager.addOnLoadJavascript('eXo.desktop.UIDesktop.init');
-	jsmanager.addOnResizeJavascript('eXo.desktop.UIDesktop.fixDesktop');
-%>
\ No newline at end of file

Deleted: portal/branches/decoupled-webos/webui/portal/src/main/java/org/exoplatform/portal/webui/application/UIAddNewApplication.java
===================================================================
--- portal/branches/decoupled-webos/webui/portal/src/main/java/org/exoplatform/portal/webui/application/UIAddNewApplication.java	2011-04-14 16:21:08 UTC (rev 6225)
+++ portal/branches/decoupled-webos/webui/portal/src/main/java/org/exoplatform/portal/webui/application/UIAddNewApplication.java	2011-04-15 07:29:10 UTC (rev 6226)
@@ -1,289 +0,0 @@
-/**
- * Copyright (C) 2009 eXo Platform SAS.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-
-package org.exoplatform.portal.webui.application;
-
-import org.exoplatform.application.registry.Application;
-import org.exoplatform.application.registry.ApplicationCategory;
-import org.exoplatform.application.registry.ApplicationRegistryService;
-import org.exoplatform.container.ExoContainer;
-import org.exoplatform.container.ExoContainerContext;
-import org.exoplatform.portal.application.PortalRequestContext;
-import org.exoplatform.portal.config.DataStorage;
-import org.exoplatform.portal.config.UserPortalConfigService;
-import org.exoplatform.portal.config.model.ApplicationType;
-import org.exoplatform.portal.config.model.CloneApplicationState;
-import org.exoplatform.portal.config.model.ModelObject;
-import org.exoplatform.portal.config.model.Page;
-import org.exoplatform.portal.config.model.TransientApplicationState;
-import org.exoplatform.portal.pom.spi.gadget.Gadget;
-import org.exoplatform.portal.pom.spi.portlet.Portlet;
-import org.exoplatform.portal.pom.spi.wsrp.WSRPState;
-import org.exoplatform.portal.webui.page.UIPage;
-import org.exoplatform.portal.webui.portal.UIPortal;
-import org.exoplatform.portal.webui.util.PortalDataMapper;
-import org.exoplatform.portal.webui.util.Util;
-import org.exoplatform.portal.webui.workspace.UIMaskWorkspace;
-import org.exoplatform.portal.webui.workspace.UIPortalApplication;
-import org.exoplatform.portal.webui.workspace.UIPortalToolPanel;
-import org.exoplatform.portal.webui.workspace.UIWorkingWorkspace;
-import org.exoplatform.webui.config.annotation.ComponentConfig;
-import org.exoplatform.webui.config.annotation.EventConfig;
-import org.exoplatform.webui.core.UIComponent;
-import org.exoplatform.webui.core.UIContainer;
-import org.exoplatform.webui.event.Event;
-import org.exoplatform.webui.event.EventListener;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-/** Created by The eXo Platform SARL Author : Anh Nguyen ntuananh.vn at gmail.com Oct 18, 2007 */
- at ComponentConfig(template = "system:/groovy/portal/webui/application/UIAddNewApplication.gtmpl", events = {
-   @EventConfig(listeners = UIMaskWorkspace.CloseActionListener.class),
-   @EventConfig(listeners = UIAddNewApplication.AddApplicationActionListener.class),
-   @EventConfig(listeners = UIAddNewApplication.AddToStartupActionListener.class)})
-public class UIAddNewApplication extends UIContainer
-{
-
-   private List<ApplicationCategory> listAppCategories;
-
-   private UIComponent uiComponentParent;
-
-   private boolean isInPage;
-
-   public List<ApplicationCategory> getApplicationCategories() throws Exception
-   {
-      return listAppCategories;
-   }
-
-   public List<ApplicationCategory> getApplicationCategories(String remoteUser,
-                                                             ApplicationType[] applicationType) throws Exception
-   {
-      ExoContainer container = ExoContainerContext.getCurrentContainer();
-      ApplicationRegistryService prService = (ApplicationRegistryService)container.getComponentInstanceOfType(ApplicationRegistryService.class);
-
-      if (applicationType == null)
-      {
-         applicationType = new ApplicationType[0];
-      }
-
-      List<ApplicationCategory> appCategories = prService.getApplicationCategories(remoteUser,
-         applicationType);
-
-      if (appCategories == null)
-      {
-         appCategories = new ArrayList();
-      }
-      else
-      {
-         Iterator<ApplicationCategory> cateItr = appCategories.iterator();
-         while (cateItr.hasNext())
-         {
-            ApplicationCategory cate = cateItr.next();
-            List<Application> applications = cate.getApplications();
-            if (applications.size() < 1)
-            {
-               cateItr.remove();
-            }
-         }
-      }
-      listAppCategories = appCategories;
-
-      return listAppCategories;
-
-   }
-
-   public UIComponent getUiComponentParent()
-   {
-      return uiComponentParent;
-   }
-
-   public void setUiComponentParent(UIComponent uiComponentParent)
-   {
-      this.uiComponentParent = uiComponentParent;
-   }
-
-   public boolean isInPage()
-   {
-      return isInPage;
-   }
-
-   public void setInPage(boolean isInPage)
-   {
-      this.isInPage = isInPage;
-   }
-
-   private Application getApplication(String id) throws Exception
-   {
-
-      List<ApplicationCategory> pCategories = getApplicationCategories();
-
-      for (ApplicationCategory pCategory : pCategories)
-      {
-         List<Application> applications = pCategory.getApplications();
-         for (Application application : applications)
-         {
-            if (application.getId().equals(id))
-            {
-               return application;
-            }
-         }
-      }
-
-      return null;
-   }
-
-   /**
-    * Add Application to UiPage
-    *
-    * @param event
-    * @throws Exception
-    */
-   private static void addApplicationToPage(Event<UIAddNewApplication> event, boolean atStartup) throws Exception
-   {
-      UIPortal uiPortal = Util.getUIPortal();
-
-      UIPortalApplication uiPortalApp = uiPortal.getAncestorOfType(UIPortalApplication.class);
-      UIPage uiPage;
-      if (uiPortal.isRendered())
-      {
-         uiPage = uiPortal.findFirstComponentOfType(UIPage.class);
-      }
-      else
-      {
-         UIPortalToolPanel uiPortalToolPanel = uiPortalApp.findFirstComponentOfType(UIPortalToolPanel.class);
-         uiPage = uiPortalToolPanel.findFirstComponentOfType(UIPage.class);
-      }
-
-      String applicationId = event.getRequestContext().getRequestParameter(UIComponent.OBJECTID);
-
-      Application application = event.getSource().getApplication(applicationId);
-      ApplicationType appType = application.getType();
-      String portletName = application.getApplicationName();
-//      String appGroup = application.getApplicationGroup();
-
-      // TODO review windowId for eXoWidget and eXoApplication
-      UIComponent component = null;
-      if (ApplicationType.GADGET.equals(appType))
-      {
-         UIGadget uiGadget = uiPage.createUIComponent(event.getRequestContext(), UIGadget.class, null, null);
-
-         uiGadget.setState(new TransientApplicationState<Gadget>(portletName));
-
-         // Set Properties For gadget
-         int posX = (int)(Math.random() * 400);
-         int posY = (int)(Math.random() * 200);
-
-         uiGadget.getProperties().put(UIApplication.locationX, String.valueOf(posX));
-         uiGadget.getProperties().put(UIApplication.locationY, String.valueOf(posY));
-
-         component = uiGadget;
-      }
-      else
-      {
-         boolean remote = ApplicationType.WSRP_PORTLET.equals(appType);
-
-         UIPortlet uiPortlet = uiPage.createUIComponent(UIPortlet.class, null, null);
-
-         CloneApplicationState appState;
-         Object appId;
-         if (!remote)
-         {
-            appState = new CloneApplicationState<Portlet>(application.getId());
-         }
-         else
-         {
-            appState = new CloneApplicationState<WSRPState>(application.getId());
-         }
-
-         ApplicationType applicationType = remote ? ApplicationType.WSRP_PORTLET : ApplicationType.PORTLET;
-         PortletState portletState = new PortletState(appState, applicationType);
-
-         uiPortlet.setState(portletState);
-         uiPortlet.setPortletInPortal(false);
-
-         if (atStartup)
-         {
-            uiPortlet.getProperties().setProperty("appStatus", "HIDE");
-         }
-
-         if (application != null)
-         {
-            String displayName = application.getDisplayName();
-            if (displayName != null)
-            {
-               uiPortlet.setTitle(displayName);
-            }
-            else if (portletName != null)
-            {
-               uiPortlet.setTitle(portletName);
-            }
-            uiPortlet.setDescription(application.getDescription());
-            List<String> accessPers = application.getAccessPermissions();
-            String[] accessPermissions = accessPers.toArray(new String[accessPers.size()]);
-            uiPortlet.setAccessPermissions(accessPermissions);
-
-            component = uiPortlet;
-         }
-      }
-
-      // Add component to page
-      uiPage.addChild(component);
-
-      // Save all changes
-      if (uiPage.isModifiable())
-      {
-         Page page = (Page)PortalDataMapper.buildModelObject(uiPage);
-         if (page.getChildren() == null)
-         {
-            page.setChildren(new ArrayList<ModelObject>());
-         }
-         DataStorage dataService = uiPortalApp.getApplicationComponent(DataStorage.class);
-         dataService.save(page);
-      }
-
-      PortalRequestContext pcontext = Util.getPortalRequestContext();
-      UIWorkingWorkspace uiWorkingWS = uiPortalApp.getChildById(UIPortalApplication.UI_WORKING_WS_ID);
-      pcontext.addUIComponentToUpdateByAjax(uiWorkingWS);
-      pcontext.ignoreAJAXUpdateOnPortlets(true);
-   }
-
-   static public class AddApplicationActionListener extends EventListener<UIAddNewApplication>
-   {
-      public void execute(Event<UIAddNewApplication> event) throws Exception
-      {
-         if (event.getSource().isInPage())
-         {
-            addApplicationToPage(event, false);
-         }
-      }
-   }
-
-   static public class AddToStartupActionListener extends EventListener<UIAddNewApplication>
-   {
-      public void execute(Event<UIAddNewApplication> event) throws Exception
-      {
-         if (event.getSource().isInPage())
-         {
-            addApplicationToPage(event, true);
-         }
-      }
-   }
-}

Deleted: portal/branches/decoupled-webos/webui/portal/src/main/java/org/exoplatform/portal/webui/page/UIDesktopPage.java
===================================================================
--- portal/branches/decoupled-webos/webui/portal/src/main/java/org/exoplatform/portal/webui/page/UIDesktopPage.java	2011-04-14 16:21:08 UTC (rev 6225)
+++ portal/branches/decoupled-webos/webui/portal/src/main/java/org/exoplatform/portal/webui/page/UIDesktopPage.java	2011-04-15 07:29:10 UTC (rev 6226)
@@ -1,237 +0,0 @@
-/**
- * Copyright (C) 2009 eXo Platform SAS.
- * 
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- * 
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-
-package org.exoplatform.portal.webui.page;
-
-import org.exoplatform.commons.serialization.api.annotations.Serialized;
-import org.exoplatform.portal.config.DataStorage;
-import org.exoplatform.portal.config.model.ModelObject;
-import org.exoplatform.portal.config.model.Page;
-import org.exoplatform.portal.config.model.PageNavigation;
-import org.exoplatform.portal.webui.application.UIAddNewApplication;
-import org.exoplatform.portal.webui.application.UIApplication;
-import org.exoplatform.portal.webui.application.UIGadget;
-import org.exoplatform.portal.webui.application.UIPortlet;
-import org.exoplatform.portal.webui.navigation.PageNavigationUtils;
-import org.exoplatform.portal.webui.page.UIPageActionListener.DeleteGadgetActionListener;
-import org.exoplatform.portal.webui.page.UIPageActionListener.RemoveChildActionListener;
-import org.exoplatform.portal.webui.portal.PageNodeEvent;
-import org.exoplatform.portal.webui.portal.UIPortal;
-import org.exoplatform.portal.webui.portal.UIPortalComponentActionListener.ShowLoginFormActionListener;
-import org.exoplatform.portal.webui.util.PortalDataMapper;
-import org.exoplatform.portal.webui.util.Util;
-import org.exoplatform.portal.webui.workspace.UIMaskWorkspace;
-import org.exoplatform.portal.webui.workspace.UIPortalApplication;
-import org.exoplatform.webui.config.annotation.ComponentConfig;
-import org.exoplatform.webui.config.annotation.EventConfig;
-import org.exoplatform.webui.core.UIComponent;
-import org.exoplatform.webui.event.Event;
-import org.exoplatform.webui.event.EventListener;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.CopyOnWriteArrayList;
-
-import javax.portlet.WindowState;
-
-/**
- * May 19, 2006
- */
-
- at ComponentConfig(lifecycle = UIPageLifecycle.class, template = "system:/groovy/portal/webui/page/UIDesktopPage.gtmpl", events = {
-   @EventConfig(listeners = ShowLoginFormActionListener.class),
-   @EventConfig(listeners = DeleteGadgetActionListener.class),
-   @EventConfig(listeners = RemoveChildActionListener.class),
-   @EventConfig(listeners = UIDesktopPage.SaveGadgetPropertiesActionListener.class),
-   @EventConfig(listeners = UIDesktopPage.SaveWindowPropertiesActionListener.class),
-   @EventConfig(listeners = UIDesktopPage.ShowAddNewApplicationActionListener.class),
-   @EventConfig(listeners = UIDesktopPage.ChangePageActionListener.class),
-   @EventConfig(listeners = UIDesktopPage.ShowPortletActionListener.class)})
- at Serialized
-public class UIDesktopPage extends UIPage
-{
-
-   public UIDesktopPage()
-   {
-      setChildren((List<UIComponent>)new CopyOnWriteArrayList<UIComponent>());
-   }
-
-   public boolean isShowMaxWindow()
-   {
-      return true;
-   }
-
-   public List<PageNavigation> getNavigations() throws Exception
-   {
-      List<PageNavigation> allNav = Util.getUIPortal().getNavigations();
-      String removeUser = Util.getPortalRequestContext().getRemoteUser();
-      List<PageNavigation> result = new ArrayList<PageNavigation>();
-      for (PageNavigation nav : allNav)
-      {
-         result.add(PageNavigationUtils.filter(nav, removeUser));
-      }
-      return result;
-   }
-
-   static public class SaveGadgetPropertiesActionListener extends EventListener<UIPage>
-   {
-      public void execute(Event<UIPage> event) throws Exception
-      {
-         UIPage uiPage = event.getSource();
-         String objectId = event.getRequestContext().getRequestParameter(UIComponent.OBJECTID);
-         List<UIGadget> uiGadgets = new ArrayList<UIGadget>();
-         uiPage.findComponentOfType(uiGadgets, UIGadget.class);
-         UIGadget uiGadget = null;
-         for (UIGadget ele : uiGadgets)
-         {
-            if (ele.getId().equals(objectId))
-            {
-               uiGadget = ele;
-               break;
-            }
-         }
-         if (uiGadget == null)
-            return;
-         String posX = event.getRequestContext().getRequestParameter("posX");
-         String posY = event.getRequestContext().getRequestParameter("posY");
-         String zIndex = event.getRequestContext().getRequestParameter(UIApplication.zIndex);
-
-         uiGadget.getProperties().put(UIApplication.locationX, posX);
-         uiGadget.getProperties().put(UIApplication.locationY, posY);
-         uiGadget.getProperties().put(UIApplication.zIndex, zIndex);
-
-         if (!uiPage.isModifiable())
-            return;
-         Page page = (Page)PortalDataMapper.buildModelObject(uiPage);
-         if (page.getChildren() == null)
-            page.setChildren(new ArrayList<ModelObject>());
-         DataStorage dataService = uiPage.getApplicationComponent(DataStorage.class);
-         dataService.save(page);
-      }
-   }
-
-   static public class SaveWindowPropertiesActionListener extends EventListener<UIPage>
-   {
-      public void execute(Event<UIPage> event) throws Exception
-      {
-         UIPage uiPage = event.getSource();
-         String objectId = event.getRequestContext().getRequestParameter(UIComponent.OBJECTID);
-
-         UIApplication uiApp = uiPage.getChildById(objectId);
-         if (uiApp == null)
-            return;
-
-         /*########################## Save Position ##########################*/
-         String posX = event.getRequestContext().getRequestParameter("posX");
-         String posY = event.getRequestContext().getRequestParameter("posY");
-
-         if (posX != null)
-            uiApp.getProperties().put(UIApplication.locationX, posX);
-         if (posY != null)
-            uiApp.getProperties().put(UIApplication.locationY, posY);
-
-         //System.out.println("\n\n\n\n\n\n\n\n\n\n\n SAVE POSX: "+posX+"\n SAVE POSY: "+posY+"\n\n\n\n\n\n\n\n\n");
-         /*########################## Save ZIndex ##########################*/
-         String zIndex = event.getRequestContext().getRequestParameter(UIApplication.zIndex);
-
-         if (zIndex != null)
-            uiApp.getProperties().put(UIApplication.zIndex, zIndex);
-
-         /*########################## Save Dimension ##########################*/
-         String windowWidth = event.getRequestContext().getRequestParameter("windowWidth");
-         String windowHeight = event.getRequestContext().getRequestParameter("windowHeight");
-
-         if (windowWidth != null)
-            uiApp.getProperties().put("windowWidth", windowWidth);
-         if (windowHeight != null)
-            uiApp.getProperties().put("windowHeight", windowHeight);
-
-         //      if(appWidth != null) uiComponent.getProperties().put(UIApplication.appWidth, appWidth);
-         //      if(appHeight != null) uiComponent.getProperties().put(UIApplication.appHeight, appHeight);
-
-         //      String applicationHeight = event.getRequestContext().getRequestParameter("applicationHeight");
-         //      if(applicationHeight != null) uiComponent.getProperties().put("applicationHeight", applicationHeight);
-
-         /*########################## Save Window status (SHOW / HIDE) ##########################*/
-         String appStatus = event.getRequestContext().getRequestParameter(UIApplication.appStatus);
-         if (appStatus != null)
-            uiApp.getProperties().put(UIApplication.appStatus, appStatus);
-
-         //      if(!uiPage.isModifiable()) return;
-         //      Page page = PortalDataMapper.toPageModel(uiPage);
-         //      UserPortalConfigService configService = uiPage.getApplicationComponent(UserPortalConfigService.class);
-         //      if(page.getChildren() == null) page.setChildren(new ArrayList<Object>());
-         //      configService.update(page);
-      }
-   }
-
-   static public class ShowAddNewApplicationActionListener extends EventListener<UIPage>
-   {
-      public void execute(Event<UIPage> event) throws Exception
-      {
-         UIPage uiPage = event.getSource();
-         UIPortalApplication uiPortalApp = uiPage.getAncestorOfType(UIPortalApplication.class);
-         UIMaskWorkspace uiMaskWorkspace = uiPortalApp.getChildById(UIPortalApplication.UI_MASK_WS_ID);
-
-         UIAddNewApplication uiAddApplication = uiPage.createUIComponent(UIAddNewApplication.class, null, null);
-         uiAddApplication.setInPage(true);
-         uiAddApplication.setUiComponentParent(uiPage);
-         uiAddApplication.getApplicationCategories(event.getRequestContext().getRemoteUser(), null);
-
-         uiMaskWorkspace.setWindowSize(700, 375);
-         uiMaskWorkspace.setUIComponent(uiAddApplication);
-         uiMaskWorkspace.setShow(true);
-         event.getRequestContext().addUIComponentToUpdateByAjax(uiMaskWorkspace);
-      }
-   }
-
-   static public class ChangePageActionListener extends EventListener<UIPage>
-   {
-      public void execute(Event<UIPage> event) throws Exception
-      {
-         String uri = event.getRequestContext().getRequestParameter(OBJECTID);
-         UIPortal uiPortal = Util.getUIPortal();
-         UIPageBody uiPageBody = uiPortal.findFirstComponentOfType(UIPageBody.class);
-         if (uiPageBody != null)
-         {
-            if (uiPageBody.getMaximizedUIComponent() != null)
-            {
-               UIPortlet currentPortlet = (UIPortlet)uiPageBody.getMaximizedUIComponent();
-               currentPortlet.setCurrentWindowState(WindowState.NORMAL);
-               uiPageBody.setMaximizedUIComponent(null);
-            }
-         }
-         PageNodeEvent<UIPortal> pnevent = new PageNodeEvent<UIPortal>(uiPortal, PageNodeEvent.CHANGE_PAGE_NODE, uri);
-         uiPortal.broadcast(pnevent, Event.Phase.PROCESS);
-      }
-   }
-
-   static public class ShowPortletActionListener extends EventListener<UIPage>
-   {
-      public void execute(Event<UIPage> event) throws Exception
-      {
-         UIPage uiPage = event.getSource();
-         String portletId = event.getRequestContext().getRequestParameter(UIComponent.OBJECTID);
-         UIPortlet uiPortlet = uiPage.getChildById(portletId);
-         uiPortlet.getProperties().setProperty("appStatus", "SHOW");
-         event.getRequestContext().addUIComponentToUpdateByAjax(uiPortlet);
-      }
-   }
-
-}
\ No newline at end of file

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-14 16:21:08 UTC (rev 6225)
+++ portal/branches/decoupled-webos/webui/portal/src/main/java/org/exoplatform/portal/webui/page/UIPage.java	2011-04-15 07:29:10 UTC (rev 6226)
@@ -19,16 +19,29 @@
 
 package org.exoplatform.portal.webui.page;
 
+import org.exoplatform.portal.config.UserACL;
+import org.exoplatform.portal.config.model.Page;
 import org.exoplatform.portal.webui.application.UIPortlet;
 import org.exoplatform.portal.webui.container.UIContainer;
+import org.exoplatform.portal.webui.portal.UIPortalComposer;
 import org.exoplatform.portal.webui.portal.UIPortalComponentActionListener.MoveChildActionListener;
+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.UIPortalApplication;
+import org.exoplatform.portal.webui.workspace.UIPortalToolPanel;
+import org.exoplatform.portal.webui.workspace.UIWorkingWorkspace;
+import org.exoplatform.web.application.ApplicationMessage;
 import org.exoplatform.webui.config.annotation.ComponentConfig;
 import org.exoplatform.webui.config.annotation.EventConfig;
+import org.exoplatform.webui.event.Event;
+import org.exoplatform.webui.event.EventListener;
 
 /**
  * May 19, 2006
  */
- at ComponentConfig(lifecycle = UIPageLifecycle.class, template = "system:/groovy/portal/webui/page/UIPage.gtmpl", events = {@EventConfig(listeners = MoveChildActionListener.class)})
+ at ComponentConfig(lifecycle = UIPageLifecycle.class, template = "system:/groovy/portal/webui/page/UIPage.gtmpl", events = {@EventConfig(listeners = MoveChildActionListener.class),
+	@EventConfig(name = "EditCurrentPage", listeners = UIPage.EditCurrentPageActionListener.class)})
 public class UIPage extends UIContainer
 {
 
@@ -104,4 +117,61 @@
    {
       this.maximizedUIPortlet = maximizedUIPortlet;
    }
+   
+   public static class EditCurrentPageActionListener extends EventListener<UIPage>
+   {
+		@Override
+		public void execute(Event<UIPage> event) throws Exception {
+			UIPortalApplication uiApp = Util.getUIPortalApplication();
+			UIWorkingWorkspace uiWorkingWS = uiApp
+					.getChildById(UIPortalApplication.UI_WORKING_WS_ID);
+
+			// 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);
+
+			UserACL userACL = uiApp.getApplicationComponent(UserACL.class);
+			if (!userACL.hasEditPermission(page)) {
+				uiApp.addMessage(new ApplicationMessage(
+						"UIPortalManagement.msg.Invalid-EditPage-Permission", null));
+				return;
+			}
+
+			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);
+
+			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 = Class.forName(page.getFactoryId())
+					.asSubclass(UIPage.class);
+			UIPage newUIPage = uiWorkingWS.createUIComponent(clazz, null, null);
+			PortalDataMapper.toUIPage(newUIPage, page);
+			uiToolPanel.setWorkingComponent(newUIPage);
+
+			// Remove current UIPage from UIPageBody
+			pageBody.setUIComponent(null);
+
+			event.getRequestContext().addUIComponentToUpdateByAjax(uiWorkingWS);
+			Util.getPortalRequestContext().setFullRender(true);
+
+		}
+   }
 }
\ No newline at end of file

Modified: portal/branches/decoupled-webos/webui/portal/src/main/java/org/exoplatform/portal/webui/page/UIPageBody.java
===================================================================
--- portal/branches/decoupled-webos/webui/portal/src/main/java/org/exoplatform/portal/webui/page/UIPageBody.java	2011-04-14 16:21:08 UTC (rev 6225)
+++ portal/branches/decoupled-webos/webui/portal/src/main/java/org/exoplatform/portal/webui/page/UIPageBody.java	2011-04-15 07:29:10 UTC (rev 6226)
@@ -146,14 +146,9 @@
          return uiPage;
       }
       
-      if (Page.DESKTOP_PAGE.equals(page.getFactoryId()))
-      {
-         uiPage = createUIComponent(context, UIDesktopPage.class, null, null);
-      }
-      else
-      {
-         uiPage = createUIComponent(context, UIPage.class, null, null);
-      }
+      Class<? extends UIPage> clazz =  Class.forName(page.getFactoryId()).asSubclass(UIPage.class);
+      uiPage = createUIComponent(context, clazz, null, null);
+      
       PortalDataMapper.toUIPage(uiPage, page);
       uiPortal.setUIPage(page.getId(), uiPage);
 

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-14 16:21:08 UTC (rev 6225)
+++ portal/branches/decoupled-webos/webui/portal/src/main/java/org/exoplatform/portal/webui/page/UIPageBrowser.java	2011-04-15 07:29:10 UTC (rev 6226)
@@ -19,6 +19,10 @@
 
 package org.exoplatform.portal.webui.page;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.ResourceBundle;
+
 import org.exoplatform.commons.serialization.api.annotations.Serialized;
 import org.exoplatform.commons.utils.PageList;
 import org.exoplatform.commons.utils.PageListAccess;
@@ -57,8 +61,8 @@
 import org.exoplatform.webui.core.lifecycle.UIFormLifecycle;
 import org.exoplatform.webui.core.model.SelectItemOption;
 import org.exoplatform.webui.event.Event;
-import org.exoplatform.webui.event.EventListener;
 import org.exoplatform.webui.event.Event.Phase;
+import org.exoplatform.webui.event.EventListener;
 import org.exoplatform.webui.form.UIForm;
 import org.exoplatform.webui.form.UIFormInputItemSelector;
 import org.exoplatform.webui.form.UIFormInputSet;
@@ -66,10 +70,6 @@
 import org.exoplatform.webui.form.UIFormStringInput;
 import org.exoplatform.webui.form.UISearchForm;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.ResourceBundle;
-
 @ComponentConfigs({
    @ComponentConfig(template = "system:/groovy/portal/webui/page/UIPageBrowser.gtmpl", events = {
       @EventConfig(listeners = UIPageBrowser.DeleteActionListener.class, confirm = "UIPageBrowse.deletePage"),
@@ -266,13 +266,23 @@
             return;
          }
          Page page = service.getPage(id, pcontext.getRemoteUser());
+
          if (page == null || !page.isModifiable())
          {
             uiPortalApp.addMessage(new ApplicationMessage("UIPageBrowser.msg.delete.NotDelete", new String[]{id}, 1));
             pcontext.addUIComponentToUpdateByAjax(uiPortalApp.getUIPopupMessages());
             return;
          }
-
+         
+         UIPortal uiPortal = Util.getUIPortal();
+         boolean isDeleteCurrentPage = uiPortal.getSelectedNode().getPageReference().equals(page.getPageId());
+         if (isDeleteCurrentPage && page.getOwnerType().equals(PortalConfig.USER_TYPE))
+         {
+            ApplicationMessage msg = new ApplicationMessage("UIPageBrowser.msg.delete.DeleteCurrentUserPage", null, ApplicationMessage.WARNING);
+            event.getRequestContext().getUIApplication().addMessage(msg);
+            return;
+         }
+         
          UIVirtualList virtualList = uiPageBrowser.getChild(UIVirtualList.class);
          UIRepeater repeater = (UIRepeater)virtualList.getDataFeed();
          PageListAccess datasource = (PageListAccess)repeater.getDataSource();
@@ -283,9 +293,8 @@
          //As we have multiple UIPortal, which means multiple caches of UIPage. It 's unwise to garbage
          // all UIPage caches at once. Better solution is to clear UIPage on browsing to PageNode having Page
          //removed
-         
-         UIPortal uiPortal = Util.getUIPortal();
-         if (uiPortal.getSelectedNode().getPageReference().equals(page.getPageId()))
+
+         if (isDeleteCurrentPage)
          {
             PageNodeEvent<UIPortal> pnevent =
                new PageNodeEvent<UIPortal>(uiPortal, PageNodeEvent.CHANGE_PAGE_NODE, uiPortal.getSelectedNode()
@@ -404,6 +413,13 @@
             pcontext.addUIComponentToUpdateByAjax(uiPortalApp.getUIPopupMessages());
             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);
@@ -413,7 +429,7 @@
             pcontext.addUIComponentToUpdateByAjax(uiPortalApp.getUIPopupMessages());
             return;
          }
-
+         
          //Switch portal application to edit mode
          uiPortalApp.setModeState(UIPortalApplication.APP_BLOCK_EDIT_MODE);
          UIWorkingWorkspace uiWorkingWS = uiPortalApp.findFirstComponentOfType(UIWorkingWorkspace.class);
@@ -427,17 +443,6 @@
          if (uiPageBody.getUIComponent() != null)
             uiPageBody.setUIComponent(null);
 
-         if (Page.DESKTOP_PAGE.equals(page.getFactoryId()))
-         {
-            UIMaskWorkspace uiMaskWS = uiPortalApp.getChildById(UIPortalApplication.UI_MASK_WS_ID);
-            UIPageForm uiPageForm = uiMaskWS.createUIComponent(UIPageForm.class, "UIBrowserPageForm", "UIPageForm");
-            uiPageForm.setValues(uiPage);
-            uiMaskWS.setUIComponent(uiPageForm);
-            uiMaskWS.setShow(true);
-            pcontext.addUIComponentToUpdateByAjax(uiMaskWS);
-            return;
-         }
-
          editInlineWS.setRendered(true);
          editInlineWS.setUIComponent(uiPage);
 
@@ -533,21 +538,6 @@
             applications.add(PortalDataMapper.buildModelObject(uiPortlet));
          }
 
-         if (Page.DESKTOP_PAGE.equals(uiPage.getFactoryId()) && !Page.DESKTOP_PAGE.equals(page.getFactoryId()))
-         {
-            page.setShowMaxWindow(false);
-            uiPage.getChildren().clear();
-            page.setChildren(applications);
-            PortalDataMapper.toUIPage(uiPage, page);
-            // if (page.getTemplate() == null)
-            // page.setTemplate(uiPage.getTemplate());
-            if (page.getChildren() == null)
-               page.setChildren(new ArrayList<ModelObject>());
-            dataService.save(page);
-            postSave(uiPortalApp, pcontext);
-            return;
-         }
-
          List<UIComponent> uiChildren = uiPage.getChildren();
          if (uiChildren == null)
             return;
@@ -565,11 +555,6 @@
          // if (page.getTemplate() == null) page.setTemplate(uiPage.getTemplate());
          if (page.getChildren() == null)
             page.setChildren(new ArrayList<ModelObject>());
-         if (Page.DESKTOP_PAGE.equals(uiPage.getFactoryId()))
-         {
-            dataService.save(page);
-            postSave(uiPortalApp, pcontext);
-         }
       }
 
       private void postSave(UIPortalApplication uiPortalApp, WebuiRequestContext context) throws Exception

Modified: portal/branches/decoupled-webos/webui/portal/src/main/java/org/exoplatform/portal/webui/page/UIPageCreationWizard.java
===================================================================
--- portal/branches/decoupled-webos/webui/portal/src/main/java/org/exoplatform/portal/webui/page/UIPageCreationWizard.java	2011-04-14 16:21:08 UTC (rev 6225)
+++ portal/branches/decoupled-webos/webui/portal/src/main/java/org/exoplatform/portal/webui/page/UIPageCreationWizard.java	2011-04-15 07:29:10 UTC (rev 6226)
@@ -19,6 +19,11 @@
 
 package org.exoplatform.portal.webui.page;
 
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+
 import org.exoplatform.portal.application.PortalRequestContext;
 import org.exoplatform.portal.config.DataStorage;
 import org.exoplatform.portal.config.UserACL;
@@ -27,7 +32,6 @@
 import org.exoplatform.portal.config.model.PageNode;
 import org.exoplatform.portal.config.model.PortalConfig;
 import org.exoplatform.portal.webui.navigation.UIPageNodeSelector;
-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;
@@ -36,7 +40,6 @@
 import org.exoplatform.portal.webui.workspace.UIPortalToolPanel;
 import org.exoplatform.portal.webui.workspace.UIWorkingWorkspace;
 import org.exoplatform.web.application.ApplicationMessage;
-import org.exoplatform.web.application.JavascriptManager;
 import org.exoplatform.webui.application.WebuiRequestContext;
 import org.exoplatform.webui.config.annotation.ComponentConfig;
 import org.exoplatform.webui.config.annotation.ComponentConfigs;
@@ -44,11 +47,6 @@
 import org.exoplatform.webui.event.Event;
 import org.exoplatform.webui.event.EventListener;
 
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.List;
-
 /** Created by The eXo Platform SARL Author : Dang Van Minh minhdv81 at yahoo.com Jun 23, 2006 */
 @ComponentConfigs(@ComponentConfig(template = "system:/groovy/webui/core/UIWizard.gtmpl", events = {
    @EventConfig(listeners = UIPageCreationWizard.ViewStep1ActionListener.class),
@@ -343,37 +341,14 @@
             page.setTitle(pageNode.getName());
          }
 
-         boolean isDesktopPage = Page.DESKTOP_PAGE.equals(page.getFactoryId());
-         if (isDesktopPage)
-         {
-            page.setShowMaxWindow(true);
-         }
-
          UIPagePreview uiPagePreview = uiWizard.getChild(UIPagePreview.class);
-         UIPage uiPage;
-         if (Page.DESKTOP_PAGE.equals(page.getFactoryId()))
-         {
-            uiPage = uiWizard.createUIComponent(context, UIDesktopPage.class, null, null);
-         }
-         else
-         {
-            uiPage = uiWizard.createUIComponent(context, UIPage.class, null, null);
-         }
-
+         
+         Class<? extends UIPage> clazz = Class.forName(page.getFactoryId()).asSubclass(UIPage.class);
+         UIPage uiPage = uiWizard.createUIComponent(context, clazz, null, null);
+         
          PortalDataMapper.toUIPage(uiPage, page);
          uiPagePreview.setUIComponent(uiPage);
 
-         if (isDesktopPage)
-         {
-            uiWizard.saveData();
-            PageNode selectedNode = uiNodeSelector.getSelectedPageNode();
-            UIPortal uiPortal = Util.getUIPortal();
-            PageNodeEvent<UIPortal> pnevent = new PageNodeEvent<UIPortal>(uiPortal, PageNodeEvent.CHANGE_PAGE_NODE, selectedNode.getUri());
-            uiPortal.broadcast(pnevent, Event.Phase.PROCESS);
-            uiWizard.updateUIPortal(event);
-            return;
-         }
-
          uiWizard.updateWizardComponent();
          uiPageTemplateOptions.setSelectedOption(null);
       }

Modified: portal/branches/decoupled-webos/webui/portal/src/main/java/org/exoplatform/portal/webui/page/UIPageForm.java
===================================================================
--- portal/branches/decoupled-webos/webui/portal/src/main/java/org/exoplatform/portal/webui/page/UIPageForm.java	2011-04-14 16:21:08 UTC (rev 6225)
+++ portal/branches/decoupled-webos/webui/portal/src/main/java/org/exoplatform/portal/webui/page/UIPageForm.java	2011-04-15 07:29:10 UTC (rev 6226)
@@ -19,10 +19,13 @@
 
 package org.exoplatform.portal.webui.page;
 
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
 import org.exoplatform.container.ExoContainer;
 import org.exoplatform.container.ExoContainerContext;
 import org.exoplatform.portal.application.PortalRequestContext;
-import org.exoplatform.portal.config.DataStorage;
 import org.exoplatform.portal.config.NoSuchDataException;
 import org.exoplatform.portal.config.UserACL;
 import org.exoplatform.portal.config.UserPortalConfig;
@@ -33,29 +36,23 @@
 import org.exoplatform.portal.webui.application.UIPortlet;
 import org.exoplatform.portal.webui.container.UIContainer;
 import org.exoplatform.portal.webui.portal.UIPortal;
-import org.exoplatform.portal.webui.portal.UIPortalComponent;
 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.UIMaskWorkspace;
 import org.exoplatform.portal.webui.workspace.UIPortalApplication;
-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.InitParams;
-import org.exoplatform.webui.config.Param;
 import org.exoplatform.webui.config.annotation.ComponentConfig;
 import org.exoplatform.webui.config.annotation.ComponentConfigs;
 import org.exoplatform.webui.config.annotation.EventConfig;
 import org.exoplatform.webui.config.annotation.ParamConfig;
 import org.exoplatform.webui.core.UIComponent;
 import org.exoplatform.webui.core.lifecycle.UIFormLifecycle;
-import org.exoplatform.webui.core.model.SelectItemCategory;
 import org.exoplatform.webui.core.model.SelectItemOption;
 import org.exoplatform.webui.event.Event;
-import org.exoplatform.webui.event.EventListener;
 import org.exoplatform.webui.event.Event.Phase;
+import org.exoplatform.webui.event.EventListener;
 import org.exoplatform.webui.form.UIFormCheckBoxInput;
 import org.exoplatform.webui.form.UIFormInputItemSelector;
 import org.exoplatform.webui.form.UIFormInputSet;
@@ -68,13 +65,9 @@
 import org.exoplatform.webui.form.validator.StringLengthValidator;
 import org.exoplatform.webui.organization.UIGroupMembershipSelector;
 import org.exoplatform.webui.organization.UIListPermissionSelector;
-import org.exoplatform.webui.organization.UIPermissionSelector;
 import org.exoplatform.webui.organization.UIListPermissionSelector.EmptyIteratorValidator;
+import org.exoplatform.webui.organization.UIPermissionSelector;
 
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
 @ComponentConfigs({
    @ComponentConfig(lifecycle = UIFormLifecycle.class, template = "system:/groovy/webui/form/UIFormTabPane.gtmpl", events = {
       @EventConfig(listeners = UIPageForm.SaveActionListener.class),
@@ -266,8 +259,6 @@
          {
             page.setFactoryId(itemOption.getIcon());
             //        page.setTemplate((String)itemOption.getValue());
-            if (page.getFactoryId().equals(Page.DESKTOP_PAGE))
-               page.setShowMaxWindow(true);
          }
       }
       UIPageTemplateOptions uiConfigOptions = getChild(UIPageTemplateOptions.class);
@@ -278,9 +269,6 @@
          return;
       page.setChildren(selectedPage.getChildren());
       page.setFactoryId(selectedPage.getFactoryId());
-      if (Page.DESKTOP_PAGE.equals(page.getFactoryId()))
-         page.setShowMaxWindow(true);
-
    }
 
    static public class SaveActionListener extends EventListener<UIPageForm>
@@ -311,43 +299,6 @@
             applications.add(PortalDataMapper.buildModelObject(uiPortlet));
          }
 
-         if (Page.DESKTOP_PAGE.equals(uiPage.getFactoryId()) && !Page.DESKTOP_PAGE.equals(page.getFactoryId()))
-         {
-            page.setShowMaxWindow(false);
-            uiPage.getChildren().clear();
-            page.setChildren(applications);
-
-            PortalDataMapper.toUIPage(uiPage, page);
-            if (page.getChildren() == null)
-               page.setChildren(new ArrayList<ModelObject>());
-
-            pcontext.ignoreAJAXUpdateOnPortlets(true);
-            UIWorkingWorkspace uiWorkingWS = uiPortalApp.getChildById(UIPortalApplication.UI_WORKING_WS_ID);
-            pcontext.addUIComponentToUpdateByAjax(uiWorkingWS);
-            pcontext.getJavascriptManager().addJavascript("eXo.portal.UIPortal.changeComposerSaveButton();");
-            return;
-         }
-
-         if (Page.DESKTOP_PAGE.equals(page.getFactoryId()))
-         {
-            uiPage.getChildren().clear();
-            page.setChildren(applications);
-
-            PortalDataMapper.toUIPage(uiPage, page);
-            if (page.getChildren() == null)
-               page.setChildren(new ArrayList<ModelObject>());
-
-            UIPortalToolPanel toolPanel = Util.getUIPortalToolPanel();
-            toolPanel.setShowMaskLayer(true);
-            pcontext.ignoreAJAXUpdateOnPortlets(true);
-            UIWorkingWorkspace uiWorkingWS = uiPortalApp.getChildById(UIPortalApplication.UI_WORKING_WS_ID);
-            pcontext.addUIComponentToUpdateByAjax(uiWorkingWS);
-            pcontext.getJavascriptManager().addJavascript("eXo.portal.UIPortal.changeComposerSaveButton();");
-            DataStorage dataService = uiPageForm.getApplicationComponent(DataStorage.class);
-            dataService.save(page);
-            return;
-         }
-
          List<UIComponent> uiChildren = uiPage.getChildren();
          if (uiChildren == null)
          {

Modified: portal/branches/decoupled-webos/webui/portal/src/main/java/org/exoplatform/portal/webui/util/Util.java
===================================================================
--- portal/branches/decoupled-webos/webui/portal/src/main/java/org/exoplatform/portal/webui/util/Util.java	2011-04-14 16:21:08 UTC (rev 6225)
+++ portal/branches/decoupled-webos/webui/portal/src/main/java/org/exoplatform/portal/webui/util/Util.java	2011-04-15 07:29:10 UTC (rev 6226)
@@ -19,13 +19,14 @@
 
 package org.exoplatform.portal.webui.util;
 
+import java.util.List;
+
 import org.exoplatform.portal.application.PortalRequestContext;
 import org.exoplatform.portal.config.UserPortalConfigService;
 import org.exoplatform.portal.config.model.Page;
 import org.exoplatform.portal.config.model.PageNode;
 import org.exoplatform.portal.webui.application.UIPortlet;
 import org.exoplatform.portal.webui.container.UIContainer;
-import org.exoplatform.portal.webui.page.UIDesktopPage;
 import org.exoplatform.portal.webui.page.UIPage;
 import org.exoplatform.portal.webui.portal.UIPortal;
 import org.exoplatform.portal.webui.portal.UIPortalComponent;
@@ -38,8 +39,6 @@
 import org.exoplatform.webui.core.UIComponentDecorator;
 import org.exoplatform.webui.event.Event;
 
-import java.util.List;
-
 /**
  * Jun 5, 2006
  */
@@ -226,14 +225,10 @@
       if (uiPage != null && uiPage.getId().equals(page.getId()))
          return uiPage;
       WebuiRequestContext context = Util.getPortalRequestContext();
-      if (Page.DESKTOP_PAGE.equals(page.getFactoryId()))
-      {
-         uiPage = uiParent.createUIComponent(context, UIDesktopPage.class, null, null);
-      }
-      else
-      {
-         uiPage = uiParent.createUIComponent(context, UIPage.class, null, null);
-      }
+      
+      Class<? extends UIPage> clazz = Class.forName(page.getFactoryId()).asSubclass(UIPage.class);
+      uiPage = uiParent.createUIComponent(context, clazz, null, null);
+      
       PortalDataMapper.toUIPage(uiPage, page);
       return uiPage;
    }

Modified: portal/branches/decoupled-webos/webui/portal/src/main/java/org/exoplatform/portal/webui/workspace/UIMainActionListener.java
===================================================================
--- portal/branches/decoupled-webos/webui/portal/src/main/java/org/exoplatform/portal/webui/workspace/UIMainActionListener.java	2011-04-14 16:21:08 UTC (rev 6225)
+++ portal/branches/decoupled-webos/webui/portal/src/main/java/org/exoplatform/portal/webui/workspace/UIMainActionListener.java	2011-04-15 07:29:10 UTC (rev 6226)
@@ -19,6 +19,8 @@
 
 package org.exoplatform.portal.webui.workspace;
 
+import java.lang.reflect.Method;
+
 import org.exoplatform.portal.application.PortalRequestContext;
 import org.exoplatform.portal.config.UserACL;
 import org.exoplatform.portal.config.UserPortalConfig;
@@ -36,7 +38,10 @@
 import org.exoplatform.portal.webui.portal.UIPortalForm;
 import org.exoplatform.portal.webui.util.PortalDataMapper;
 import org.exoplatform.portal.webui.util.Util;
+import org.exoplatform.services.log.ExoLogger;
+import org.exoplatform.services.log.Log;
 import org.exoplatform.web.application.ApplicationMessage;
+import org.exoplatform.webui.application.WebuiRequestContext;
 import org.exoplatform.webui.event.Event;
 import org.exoplatform.webui.event.EventListener;
 
@@ -88,8 +93,8 @@
          uiApp.setModeState(UIPortalApplication.APP_BLOCK_EDIT_MODE);
 
          // We clone the edited UIPage object, that is required for Abort action
-         //UIPage newUIPage = new UIPage();
-         UIPage newUIPage = uiWorkingWS.createUIComponent(UIPage.class, null, null);
+         Class<? extends UIPage> clazz = Class.forName(page.getFactoryId()).asSubclass(UIPage.class);
+         UIPage newUIPage = uiWorkingWS.createUIComponent(clazz, null, null);
          PortalDataMapper.toUIPage(newUIPage, page);
          uiToolPanel.setWorkingComponent(newUIPage);
 
@@ -224,5 +229,36 @@
          prContext.addUIComponentToUpdateByAjax(uiMaskWS);
       }
    }
+   
+   public static class EditBackgroundActionListener extends EventListener<UIWorkingWorkspace>
+   {
+      private Log log = ExoLogger.getExoLogger(this.getClass());
+      
+      @Override
+      public void execute(Event<UIWorkingWorkspace> event) throws Exception
+      {
+         
+         UIWorkingWorkspace workingWorkspace = event.getSource();
+         UIPage uiPage = workingWorkspace.findFirstComponentOfType(UIPage.class);
+         
+         Method showEditBackgroundPopupMethod = null;
+         try
+         {
+            if (uiPage == null)
+            {
+               return;
+            }
+            showEditBackgroundPopupMethod = uiPage.getClass().getDeclaredMethod("showEditBackgroundPopup", WebuiRequestContext.class);
+         }
+         catch (NoSuchMethodException ex)
+         {
+            log.warn(ex.getMessage(), ex);  
+         }
+         if(showEditBackgroundPopupMethod != null)
+         {
+            showEditBackgroundPopupMethod.invoke(uiPage, event.getRequestContext());
+         }
+      }
+   }
 
 }

Modified: portal/branches/decoupled-webos/webui/portal/src/main/java/org/exoplatform/portal/webui/workspace/UIPortalToolPanel.java
===================================================================
--- portal/branches/decoupled-webos/webui/portal/src/main/java/org/exoplatform/portal/webui/workspace/UIPortalToolPanel.java	2011-04-14 16:21:08 UTC (rev 6225)
+++ portal/branches/decoupled-webos/webui/portal/src/main/java/org/exoplatform/portal/webui/workspace/UIPortalToolPanel.java	2011-04-15 07:29:10 UTC (rev 6226)
@@ -19,8 +19,6 @@
 
 package org.exoplatform.portal.webui.workspace;
 
-import org.exoplatform.portal.config.model.Page;
-import org.exoplatform.portal.webui.page.UIPage;
 import org.exoplatform.web.application.JavascriptManager;
 import org.exoplatform.webui.application.WebuiRequestContext;
 import org.exoplatform.webui.config.annotation.ComponentConfig;
@@ -56,22 +54,6 @@
    public void processRender(WebuiRequestContext context) throws Exception
    {
       JavascriptManager jsmanager = context.getJavascriptManager();
-      UIComponent uiComponent = getUIComponent();
-      if (uiComponent instanceof UIPage)
-      {
-         UIPage uiPage = (UIPage)uiComponent;
-         //if(uiPage.isShowMaxWindow()){
-         if (Page.DESKTOP_PAGE.equals(uiPage.getFactoryId()))
-         {
-            uiComponent.processRender(context);
-            if (showMaskLayer)
-            {
-               jsmanager.importJavascript("eXo.core.UIMaskLayer");
-               jsmanager.addCustomizedOnLoadScript("eXo.core.UIMaskLayer.createMask('UIPage', null, 10) ;");
-            }
-            return;
-         }
-      }
 
       super.processRender(context);
       if (showMaskLayer)

Modified: portal/branches/decoupled-webos/webui/portal/src/main/java/org/exoplatform/portal/webui/workspace/UIWorkingWorkspace.java
===================================================================
--- portal/branches/decoupled-webos/webui/portal/src/main/java/org/exoplatform/portal/webui/workspace/UIWorkingWorkspace.java	2011-04-14 16:21:08 UTC (rev 6225)
+++ portal/branches/decoupled-webos/webui/portal/src/main/java/org/exoplatform/portal/webui/workspace/UIWorkingWorkspace.java	2011-04-15 07:29:10 UTC (rev 6226)
@@ -42,6 +42,7 @@
    @EventConfig(listeners = UIMainActionListener.CreatePortalActionListener.class),
    @EventConfig(listeners = UIMainActionListener.EditCurrentPageActionListener.class),
    @EventConfig(listeners = UIMainActionListener.PageCreationWizardActionListener.class),
+   @EventConfig(listeners = UIMainActionListener.EditBackgroundActionListener.class),
    @EventConfig(listeners = UIMainActionListener.EditInlineActionListener.class)})
 public class UIWorkingWorkspace extends UIContainer
 {



More information about the gatein-commits mailing list