Author: julien_viet
Date: 2011-08-15 18:06:37 -0400 (Mon, 15 Aug 2011)
New Revision: 7140
Modified:
portal/branches/api/component/api-impl/src/main/java/org/gatein/portal/api/impl/portal/NavigationImpl.java
portal/branches/api/component/api-impl/src/main/java/org/gatein/portal/api/impl/portal/SiteImpl.java
portal/branches/api/component/api-impl/src/test/java/org/gatein/portal/api/impl/portal/NavigationTestCase.java
Log:
more work on API
Modified:
portal/branches/api/component/api-impl/src/main/java/org/gatein/portal/api/impl/portal/NavigationImpl.java
===================================================================
---
portal/branches/api/component/api-impl/src/main/java/org/gatein/portal/api/impl/portal/NavigationImpl.java 2011-08-15
21:29:37 UTC (rev 7139)
+++
portal/branches/api/component/api-impl/src/main/java/org/gatein/portal/api/impl/portal/NavigationImpl.java 2011-08-15
22:06:37 UTC (rev 7140)
@@ -157,7 +157,8 @@
String pageRef = context.getState().getPageRef();
if (pageRef != null)
{
- return gateIn.get(gateIn.pageId(site.getId(), pageRef));
+ // return gateIn.get(gateIn.pageId(site.getId(), pageRef));
+ throw new UnsupportedOperationException();
}
else
{
@@ -172,7 +173,16 @@
public void setTargetPage(Page.Id targetId)
{
- context.setState(new
NodeState.Builder(context.getState()).pageRef(targetId.toString()).build());
+ if (targetId != null)
+ {
+ String ref = targetId.getSite().getType().getName() + "::" +
targetId.getSite().getName() + "::" + targetId.getName();
+ context.setState(context.getState().builder().pageRef(ref).build());
+ }
+ else
+ {
+
+ context.setState(context.getState().builder().pageRef(null).build());
+ }
}
public Site getSite()
@@ -250,7 +260,7 @@
public Navigation get(String key)
{
- return get(getIdForChild(key));
+ return context.getNode(key);
}
public Navigation get(org.gatein.api.id.Id<Navigation> navigationId)
Modified:
portal/branches/api/component/api-impl/src/main/java/org/gatein/portal/api/impl/portal/SiteImpl.java
===================================================================
---
portal/branches/api/component/api-impl/src/main/java/org/gatein/portal/api/impl/portal/SiteImpl.java 2011-08-15
21:29:37 UTC (rev 7139)
+++
portal/branches/api/component/api-impl/src/main/java/org/gatein/portal/api/impl/portal/SiteImpl.java 2011-08-15
22:06:37 UTC (rev 7140)
@@ -44,6 +44,7 @@
import org.gatein.portal.api.impl.util.AdaptedIterableIdentifiableCollection;
import org.gatein.portal.api.impl.util.GateInTypesResolver;
+import java.lang.reflect.UndeclaredThrowableException;
import java.util.List;
/** @author <a href="mailto:chris.laprun@jboss.com">Chris
Laprun</a> */
@@ -129,7 +130,7 @@
static class PageContainer implements HierarchicalContainer<String, Page>
{
private final GateInImpl gateIn;
- private final Site site;
+ private final SiteImpl site;
private final Query<PageData> pageDataQuery;
PageContainer(GateInImpl gateIn, SiteImpl site)
@@ -149,11 +150,13 @@
try
{
gateIn.begin();
- return gateIn.getDataStorage().getPage(PageKey.create(key));
+ SiteKey sk = site.getSiteKey();
+ PageKey pk = new PageKey(sk.getTypeName(), sk.getName(), key);
+ return gateIn.getDataStorage().getPage(pk);
}
catch (Exception e)
{
- return null;
+ throw new UndeclaredThrowableException(e);
}
finally
{
Modified:
portal/branches/api/component/api-impl/src/test/java/org/gatein/portal/api/impl/portal/NavigationTestCase.java
===================================================================
---
portal/branches/api/component/api-impl/src/test/java/org/gatein/portal/api/impl/portal/NavigationTestCase.java 2011-08-15
21:29:37 UTC (rev 7139)
+++
portal/branches/api/component/api-impl/src/test/java/org/gatein/portal/api/impl/portal/NavigationTestCase.java 2011-08-15
22:06:37 UTC (rev 7140)
@@ -17,7 +17,9 @@
import org.exoplatform.portal.pom.data.ModelDataStorage;
import org.gatein.api.GateIn;
import org.gatein.api.portal.Navigation;
+import org.gatein.api.portal.Page;
import org.gatein.api.portal.Site;
+import org.gatein.api.util.HierarchicalContainer;
import org.gatein.portal.api.impl.GateInImpl;
import java.util.Iterator;
@@ -74,6 +76,9 @@
NavigationContext nav = new NavigationContext(SiteKey.portal("classic"),
new NavigationState(0));
navService.saveNavigation(nav);
root = navService.loadNode(NodeModel.SELF_MODEL, nav, Scope.ALL, null);
+
+ //
+ storage.create(new org.exoplatform.portal.config.model.Page("portal",
"classic", "homepage").build());
}
@Override
@@ -111,6 +116,25 @@
Navigation home = i.next();
assertSame(site, home.getSite());
assertEquals("home", home.getName());
+ assertSame(home, navigation.get("home"));
assertFalse(i.hasNext());
}
+
+ public void testPage()
+ {
+ root.add(null, "home");
+ navService.saveNode(root, null);
+
+ //
+ Site site = gatein.getPortal(new Site.Id(Site.PORTAL, "classic"));
+ HierarchicalContainer<String,Page> pages = site.getPageRegistry();
+ Page homePage = pages.get("homepage");
+ assertNotNull(homePage);
+
+ //
+ Navigation navigation = site.getNavigation();
+ Navigation home = navigation.get("home");
+ assertNull(home.getTargetPage());
+ home.setTargetPage(homePage);
+ }
}
Show replies by date