[gatein-commits] gatein SVN: r1934 - in portal/trunk: webui/portal/src/main/java/org/exoplatform/portal/webui/page and 2 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Tue Mar 2 23:46:57 EST 2010
Author: hoang_to
Date: 2010-03-02 23:46:56 -0500 (Tue, 02 Mar 2010)
New Revision: 1934
Modified:
portal/trunk/component/portal/src/main/java/org/exoplatform/portal/config/UserPortalConfig.java
portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/page/UIPageActionListener.java
portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/portal/UIPortalComposer.java
portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/workspace/UIPortalApplication.java
Log:
GTNPORTAL-781: Edit Inline does not take effect on UI in special case
Modified: portal/trunk/component/portal/src/main/java/org/exoplatform/portal/config/UserPortalConfig.java
===================================================================
--- portal/trunk/component/portal/src/main/java/org/exoplatform/portal/config/UserPortalConfig.java 2010-03-03 03:32:24 UTC (rev 1933)
+++ portal/trunk/component/portal/src/main/java/org/exoplatform/portal/config/UserPortalConfig.java 2010-03-03 04:46:56 UTC (rev 1934)
@@ -61,6 +61,25 @@
this.selectedNavigation = _selectedNavigation;
}
+ /** Fetch navigation (specified by ownerType, ownerId) from the list of all navigations and set it as selected navigation **/
+ public void updateSelectedNavigation(String ownerType, String ownerId)
+ {
+ PageNavigation targetNavigation = null;
+ for (PageNavigation nav : navigations)
+ {
+ if (nav.getOwnerType().equals(ownerType) && nav.getOwnerId().equals(ownerId))
+ {
+ targetNavigation = nav;
+ break;
+ }
+ }
+
+ if (targetNavigation != null)
+ {
+ this.setSelectedNavigation(targetNavigation);
+ }
+ }
+
public PageNavigation getSelectedNavigation()
{
if(this.selectedNavigation != null)
Modified: portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/page/UIPageActionListener.java
===================================================================
--- portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/page/UIPageActionListener.java 2010-03-03 03:32:24 UTC (rev 1933)
+++ portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/page/UIPageActionListener.java 2010-03-03 04:46:56 UTC (rev 1934)
@@ -131,8 +131,15 @@
//Temporary solution to fix edit inline error while switching between navigations
DataStorage storageService = uiPortalApp.getApplicationComponent(DataStorage.class);
PortalConfig associatedPortalConfig = storageService.getPortalConfig(newNavType, newNavId);
- uiPortalApp.getUserPortalConfig().setPortal(associatedPortalConfig);
+ UserPortalConfig userPortalConfig = uiPortalApp.getUserPortalConfig();
+
+ //Update layout-related data on UserPortalConfig
+ userPortalConfig.setPortal(associatedPortalConfig);
+ //Update selected navigation on UserPortalConfig, that is mandatory as at the moment the PortalConfig
+ //does not hold any navigation data.
+ userPortalConfig.updateSelectedNavigation(newNavType, newNavId);
+
cachedUIPortal.refreshUIPage();
return;
}
@@ -146,7 +153,7 @@
newUIPortal.setSelectedNode(targetPageNode);
newUIPortal.setSelectedPath(targetedPathNodes);
uiPortalApp.setShowedUIPortal(newUIPortal);
- uiPortalApp.addUIPortal(newUIPortal);
+ uiPortalApp.addCachedUIPortal(newUIPortal);
newUIPortal.refreshUIPage();
return;
}
Modified: portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/portal/UIPortalComposer.java
===================================================================
--- portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/portal/UIPortalComposer.java 2010-03-03 03:32:24 UTC (rev 1933)
+++ portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/portal/UIPortalComposer.java 2010-03-03 04:46:56 UTC (rev 1934)
@@ -432,6 +432,9 @@
uiPortal.getChildren().clear();
PortalDataMapper.toUIPortal(uiPortal, uiPortalApp.getUserPortalConfig());
+ //Update the cache of UIPortal from UIPortalApplication
+ uiPortalApp.updateCachedUIPortal(uiPortal);
+
//To init the UIPage, that fixed a bug on AdminToolbarPortlet when edit the layout. Here is only a
//temporal solution. Complete solution is to avoid mapping UIPortal -- model, that requires
//multiple UIPortal (already available) and concept of SiteConfig
Modified: portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/workspace/UIPortalApplication.java
===================================================================
--- portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/workspace/UIPortalApplication.java 2010-03-03 03:32:24 UTC (rev 1933)
+++ portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/workspace/UIPortalApplication.java 2010-03-03 04:46:56 UTC (rev 1934)
@@ -217,7 +217,7 @@
return this.all_UIPortals.get(new UIPortalKey(ownerType, ownerId));
}
- public void addUIPortal(UIPortal uiPortal)
+ public void addCachedUIPortal(UIPortal uiPortal)
{
String ownerType = uiPortal.getOwnerType();
String ownerId = uiPortal.getOwner();
@@ -228,7 +228,7 @@
}
}
- public void removeUIPortal(String ownerType, String ownerId)
+ public void removeCachedUIPortal(String ownerType, String ownerId)
{
if(ownerType == null || ownerId == null)
{
@@ -237,6 +237,19 @@
this.all_UIPortals.remove(new UIPortalKey(ownerType, ownerId));
}
+ /** Update the UIPortal in the cache **/
+ public void updateCachedUIPortal(UIPortal uiPortal)
+ {
+ String ownerType = uiPortal.getOwnerType();
+ String ownerId = uiPortal.getOwner();
+
+ if(ownerType != null && ownerId != null)
+ {
+ this.all_UIPortals.put(new UIPortalKey(ownerType, ownerId), uiPortal);
+ }
+ }
+
+
public boolean isSessionOpen()
{
return isSessionOpen;
@@ -459,7 +472,7 @@
UIPortal uiPortal = createUIComponent(UIPortal.class, null, null);
PortalDataMapper.toUIPortal(uiPortal, userPortalConfig_);
- this.addUIPortal(uiPortal);
+ this.addCachedUIPortal(uiPortal);
this.showedUIPortal = uiPortal;
uiWorkingWorkspace.addChild(UIEditInlineWorkspace.class, null, UI_EDITTING_WS_ID).setRendered(false);
More information about the gatein-commits
mailing list