Author: julien(a)jboss.com
Date: 2008-07-07 14:31:34 -0400 (Mon, 07 Jul 2008)
New Revision: 11326
Removed:
modules/presentation/trunk/classic/src/main/java/org/jboss/portal/presentation/classic/model/ClassicUINode.java
modules/presentation/trunk/classic/src/main/java/org/jboss/portal/presentation/classic/model/ClassicViewPortContext.java
Modified:
modules/presentation/trunk/ajax/src/main/java/org/jboss/portal/presentation/ajax/server/model/AjaxViewPortContext.java
modules/presentation/trunk/classic/src/main/java/org/jboss/portal/presentation/classic/ClassicPresentationClient.java
modules/presentation/trunk/portal/src/main/java/org/jboss/portal/presentation/portal/model/ModelAdapter.java
modules/presentation/trunk/portal/src/main/java/org/jboss/portal/presentation/portal/model/ModelStructuralState.java
modules/presentation/trunk/presentation/src/main/java/org/jboss/portal/presentation/impl/state/structural/adapter/StructuralAdapter.java
modules/presentation/trunk/presentation/src/main/java/org/jboss/portal/presentation/impl/state/structural/adapter/StructuralStateContextImpl.java
Log:
update rest of codebase to work with framework changes
Modified:
modules/presentation/trunk/ajax/src/main/java/org/jboss/portal/presentation/ajax/server/model/AjaxViewPortContext.java
===================================================================
---
modules/presentation/trunk/ajax/src/main/java/org/jboss/portal/presentation/ajax/server/model/AjaxViewPortContext.java 2008-07-07
17:45:48 UTC (rev 11325)
+++
modules/presentation/trunk/ajax/src/main/java/org/jboss/portal/presentation/ajax/server/model/AjaxViewPortContext.java 2008-07-07
18:31:34 UTC (rev 11326)
@@ -23,11 +23,12 @@
package org.jboss.portal.presentation.ajax.server.model;
import org.jboss.portal.presentation.model.ViewPortContext;
-import org.jboss.portal.presentation.model.ui.UIObject;
+import org.jboss.portal.presentation.model.UIObjectContext;
import org.jboss.portal.presentation.model.ui.UIContext;
import org.jboss.portal.presentation.model.ui.UIPage;
import org.jboss.portal.presentation.model.ui.UIWindow;
import org.jboss.portal.presentation.model.ui.UILayout;
+import org.jboss.portal.presentation.model.ui.UIObject;
import org.jboss.portal.presentation.ajax.client.model.update.ModelUpdate;
import org.jboss.portal.presentation.ajax.client.model.update.AddObject;
import org.jboss.portal.presentation.ajax.client.model.update.RemoveObject;
@@ -36,12 +37,13 @@
import org.jboss.portal.presentation.ajax.client.model.update.AddChild;
import org.jboss.portal.presentation.ajax.client.model.update.RemoveChild;
import org.jboss.portal.presentation.ajax.client.model.update.ObjectType;
-import org.jboss.portal.presentation.state.StateType;
import org.jboss.portal.common.NotYetImplemented;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
+import java.util.Set;
+import java.io.Serializable;
/**
* @author <a href="mailto:julien@jboss-portal.org">Julien
Viet</a>
@@ -54,11 +56,11 @@
private ArrayList<ModelUpdate> updates;
/** . */
- private Map<String, UIObject> objects;
+ private Map<String, UIObjectContext> objects;
public AjaxViewPortContext()
{
- objects = new HashMap<String, UIObject>();
+ objects = new HashMap<String, UIObjectContext>();
updates = new ArrayList<ModelUpdate>();
}
@@ -69,12 +71,12 @@
return tmp;
}
- public UIObject getObject(String objectId)
+ public UIObjectContext getObject(String objectId)
{
return objects.get(objectId);
}
- public void addObject(UIObject object)
+ public void addObject(UIObjectContext object)
{
String objectId = object.getId();
@@ -82,20 +84,23 @@
objects.put(objectId, object);
//
+ Class<? extends UIObject> type = object.getType();
+
+ //
int objectType;
- if (object instanceof UIContext)
+ if (UIContext.class.isAssignableFrom(type))
{
objectType = ObjectType.CONTEXT;
}
- else if (object instanceof UIPage)
+ else if (UIPage.class.isAssignableFrom(type))
{
objectType = ObjectType.PAGE;
}
- else if (object instanceof UIWindow)
+ else if (UIWindow.class.isAssignableFrom(type))
{
objectType = ObjectType.WINDOW;
}
- else if (object instanceof UILayout)
+ else if (UILayout.class.isAssignableFrom(type))
{
objectType = ObjectType.PANE;
}
@@ -104,23 +109,14 @@
throw new NotYetImplemented();
}
- //
- Map objectProperties = new HashMap();
- for (String propertyName : object.getPropertyNames(StateType.STRUCTURAL))
- {
- Object propertyValue = object.getPropertyValue(StateType.STRUCTURAL,
propertyName, Object.class);
- objectProperties.put(propertyName, propertyValue);
- }
-
- //
- updates.add(new AddObject(objectId, objectType, objectProperties));
+ // We clone the map because of the immutability of the context properties that
cannot
+ // be serialized by GWT. The type javax.util.HashMap is serializable by GWT
+ updates.add(new AddObject(objectId, objectType, new HashMap<String,
Serializable>(object.getProperties())));
}
- public void updateObject(String objectId)
+ public void updateObject(String objectId, Set<String> removedProperties,
Map<String, Serializable> updatedProperties, Map<String, Serializable>
addedProperties)
{
-// updates
-//
- throw new NotYetImplemented();
+ throw new NotYetImplemented("todo");
}
public void removeObject(String objectId)
Modified:
modules/presentation/trunk/classic/src/main/java/org/jboss/portal/presentation/classic/ClassicPresentationClient.java
===================================================================
---
modules/presentation/trunk/classic/src/main/java/org/jboss/portal/presentation/classic/ClassicPresentationClient.java 2008-07-07
17:45:48 UTC (rev 11325)
+++
modules/presentation/trunk/classic/src/main/java/org/jboss/portal/presentation/classic/ClassicPresentationClient.java 2008-07-07
18:31:34 UTC (rev 11326)
@@ -22,8 +22,6 @@
******************************************************************************/
package org.jboss.portal.presentation.classic;
-import org.jboss.portal.presentation.classic.model.ClassicUINode;
-import org.jboss.portal.presentation.classic.model.ClassicViewPortContext;
import org.jboss.portal.presentation.classic.protocol.ClassicActionDecoderContext;
import org.jboss.portal.presentation.classic.protocol.ClassicActionEncoderContext;
import org.jboss.portal.presentation.view.PageViewPortScope;
@@ -33,6 +31,8 @@
import org.jboss.portal.presentation.protocol.codec.ActionEncoderContext;
import org.jboss.portal.presentation.client.PresentationClient;
import org.jboss.portal.presentation.impl.model.UIModelImpl;
+import org.jboss.portal.presentation.impl.model.pull.DetachedViewPortContext;
+import org.jboss.portal.presentation.impl.model.pull.DetachedUINode;
import
org.jboss.portal.presentation.impl.state.navigational.NavigationalStateContextImpl;
import
org.jboss.portal.presentation.impl.state.navigational.NavigationalStateContextSerialization;
import org.jboss.portal.presentation.model.UIModel;
@@ -240,7 +240,7 @@
//
StructuralStateContext ssc = server.getStructuralStateContext();
- ClassicViewPortContext context = new ClassicViewPortContext();
+ DetachedViewPortContext context = new
DetachedViewPortContext(navigationalStateContext);
UIModel model = new UIModelImpl(null, ssc);
ViewPort viewPort = model.createViewPort(context, scope);
@@ -248,7 +248,7 @@
viewPort.refresh();
//
- ClassicUINode node = context.getNode(nodeId);
+ DetachedUINode node = context.getNode(nodeId);
//
resp.setContentType("text/html");
Deleted:
modules/presentation/trunk/classic/src/main/java/org/jboss/portal/presentation/classic/model/ClassicUINode.java
===================================================================
---
modules/presentation/trunk/classic/src/main/java/org/jboss/portal/presentation/classic/model/ClassicUINode.java 2008-07-07
17:45:48 UTC (rev 11325)
+++
modules/presentation/trunk/classic/src/main/java/org/jboss/portal/presentation/classic/model/ClassicUINode.java 2008-07-07
18:31:34 UTC (rev 11326)
@@ -1,71 +0,0 @@
-/******************************************************************************
- * JBoss, a division of Red Hat *
- * Copyright 2008, Red Hat Middleware, LLC, and individual *
- * contributors as indicated by the @authors tag. See the *
- * copyright.txt in the distribution for a full listing of *
- * individual contributors. *
- * *
- * 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.jboss.portal.presentation.classic.model;
-
-import org.jboss.portal.presentation.model.ui.UIObject;
-import org.jboss.portal.presentation.model.UINode;
-
-import java.util.Collection;
-import java.util.Map;
-
-/**
- * @author <a href="mailto:julien@jboss-portal.org">Julien
Viet</a>
- * @version $Revision: 630 $
- */
-public class ClassicUINode implements UINode
-{
-
- /** . */
- private final UIObject object;
-
- /** . */
- ClassicUINode parent;
-
- /** . */
- Map<String, ClassicUINode> children;
-
- public ClassicUINode(UIObject object)
- {
- this.object = object;
- }
-
- public ClassicUINode getParent()
- {
- return parent;
- }
-
- public String getId()
- {
- return object.getId();
- }
-
- public UIObject getObject()
- {
- return object;
- }
-
- public Collection<? extends UINode> getChildren()
- {
- return children == null ? null : children.values();
- }
-}
Deleted:
modules/presentation/trunk/classic/src/main/java/org/jboss/portal/presentation/classic/model/ClassicViewPortContext.java
===================================================================
---
modules/presentation/trunk/classic/src/main/java/org/jboss/portal/presentation/classic/model/ClassicViewPortContext.java 2008-07-07
17:45:48 UTC (rev 11325)
+++
modules/presentation/trunk/classic/src/main/java/org/jboss/portal/presentation/classic/model/ClassicViewPortContext.java 2008-07-07
18:31:34 UTC (rev 11326)
@@ -1,103 +0,0 @@
-/******************************************************************************
- * JBoss, a division of Red Hat *
- * Copyright 2008, Red Hat Middleware, LLC, and individual *
- * contributors as indicated by the @authors tag. See the *
- * copyright.txt in the distribution for a full listing of *
- * individual contributors. *
- * *
- * 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.jboss.portal.presentation.classic.model;
-
-import org.jboss.portal.presentation.model.ui.UIObject;
-import org.jboss.portal.presentation.model.ViewPortContext;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * @author <a href="mailto:julien@jboss-portal.org">Julien
Viet</a>
- * @version $Revision: 630 $
- */
-public class ClassicViewPortContext implements ViewPortContext
-{
-
- /** . */
- final Map<String, ClassicUINode> nodes = new HashMap<String,
ClassicUINode>();
-
- public ClassicUINode getNode(String nodeId)
- {
- return nodes.get(nodeId);
- }
-
- public UIObject getObject(String objectId)
- {
- ClassicUINode node = nodes.get(objectId);
-
- //
- if (node == null)
- {
- return null;
- }
- else
- {
- return node.getObject();
- }
- }
-
- public void addObject(UIObject object)
- {
- ClassicUINode node = new ClassicUINode(object);
-
- //
- nodes.put(node.getId(), node);
- }
-
- public void updateObject(String objectId)
- {
- throw new UnsupportedOperationException();
- }
-
- public void removeObject(String objectId)
- {
- throw new UnsupportedOperationException();
- }
-
- public void createChildren(String parentId)
- {
- nodes.get(parentId).children = new HashMap<String, ClassicUINode>();
- }
-
- public void destroyChildren(String parentId)
- {
- throw new UnsupportedOperationException();
- }
-
- public void addChild(String parentId, String childId)
- {
- ClassicUINode parent = nodes.get(parentId);
- ClassicUINode child = nodes.get(childId);
-
- //
- parent.children.put(child.getId(), child);
- child.parent = parent;
- }
-
- public void removeChild(String parentId, String childId)
- {
- throw new UnsupportedOperationException();
- }
-}
Modified:
modules/presentation/trunk/portal/src/main/java/org/jboss/portal/presentation/portal/model/ModelAdapter.java
===================================================================
---
modules/presentation/trunk/portal/src/main/java/org/jboss/portal/presentation/portal/model/ModelAdapter.java 2008-07-07
17:45:48 UTC (rev 11325)
+++
modules/presentation/trunk/portal/src/main/java/org/jboss/portal/presentation/portal/model/ModelAdapter.java 2008-07-07
18:31:34 UTC (rev 11326)
@@ -305,12 +305,4 @@
//
return new ModelStructuralState(type, properties);
}
-
- public void lock(Object o)
- {
- }
-
- public void unlock(Object o)
- {
- }
}
Modified:
modules/presentation/trunk/portal/src/main/java/org/jboss/portal/presentation/portal/model/ModelStructuralState.java
===================================================================
---
modules/presentation/trunk/portal/src/main/java/org/jboss/portal/presentation/portal/model/ModelStructuralState.java 2008-07-07
17:45:48 UTC (rev 11325)
+++
modules/presentation/trunk/portal/src/main/java/org/jboss/portal/presentation/portal/model/ModelStructuralState.java 2008-07-07
18:31:34 UTC (rev 11326)
@@ -58,26 +58,4 @@
{
return properties;
}
-
- public boolean equals(Object obj)
- {
- if (obj == this)
- {
- return true;
- }
- if (obj instanceof ModelStructuralState)
- {
- ModelStructuralState that = (ModelStructuralState)obj;
-
- //
- if (!that.type.equals(this.type))
- {
- return false;
- }
-
- //
- return that.properties.equals(this.properties);
- }
- return false;
- }
}
Modified:
modules/presentation/trunk/presentation/src/main/java/org/jboss/portal/presentation/impl/state/structural/adapter/StructuralAdapter.java
===================================================================
---
modules/presentation/trunk/presentation/src/main/java/org/jboss/portal/presentation/impl/state/structural/adapter/StructuralAdapter.java 2008-07-07
17:45:48 UTC (rev 11325)
+++
modules/presentation/trunk/presentation/src/main/java/org/jboss/portal/presentation/impl/state/structural/adapter/StructuralAdapter.java 2008-07-07
18:31:34 UTC (rev 11326)
@@ -30,6 +30,14 @@
import java.io.Serializable;
/**
+ * The structural adapter used to adapt a back end model to a structural state context
interface. This framework
+ * should be used only to build prototypes.
+ *
+ * <ul>
+ * <li>Consistency is based on object equality and not versionning</li>
+ * <li>It MUST not be used in production as no locking is performed and performance
are not optimal</li>
+ * </ul>
+ *
* @author <a href="mailto:julien@jboss-portal.org">Julien
Viet</a>
* @version $Revision: 630 $
*/
@@ -40,20 +48,15 @@
N getNode(String id);
- N getParent(N n);
+ N getParent(N node);
- Collection<? extends N> getChildren(N n);
+ Collection<? extends N> getChildren(N node);
- String getId(N n);
+ String getId(N node);
- Class<? extends UIObject> getType(N n);
+ Class<? extends UIObject> getType(N node);
- Map<String, Serializable> getProperties(N n);
+ Map<String, Serializable> getProperties(N node);
- StructuralState getState(N n);
-
- void lock(N n);
-
- void unlock(N n);
-
+ StructuralState getState(N node);
}
Modified:
modules/presentation/trunk/presentation/src/main/java/org/jboss/portal/presentation/impl/state/structural/adapter/StructuralStateContextImpl.java
===================================================================
---
modules/presentation/trunk/presentation/src/main/java/org/jboss/portal/presentation/impl/state/structural/adapter/StructuralStateContextImpl.java 2008-07-07
17:45:48 UTC (rev 11325)
+++
modules/presentation/trunk/presentation/src/main/java/org/jboss/portal/presentation/impl/state/structural/adapter/StructuralStateContextImpl.java 2008-07-07
18:31:34 UTC (rev 11326)
@@ -71,33 +71,23 @@
private StructuralObjectImpl takeSnapshot(N node)
{
- adapter.lock(node);
+ StructuralState state = adapter.getState(node);
//
- try
+ Set<String> childrenIds = new HashSet<String>();
+ for (N childNode : adapter.getChildren(node))
{
- StructuralState state = adapter.getState(node);
+ childrenIds.add(adapter.getId(childNode));
+ }
- //
- Set<String> childrenIds = new HashSet<String>();
- for (N childNode : adapter.getChildren(node))
- {
- childrenIds.add(adapter.getId(childNode));
- }
+ //
+ N parent = adapter.getParent(node);
- //
- N parent = adapter.getParent(node);
+ //
+ String parentId = parent != null ? adapter.getId(parent) : null;
- //
- String parentId = parent != null ? adapter.getId(parent) : null;
-
- //
- return new StructuralObjectImpl(adapter.getId(node), parentId,
Collections.unmodifiableSet(childrenIds), state);
- }
- finally
- {
- adapter.unlock(node);
- }
+ //
+ return new StructuralObjectImpl(adapter.getId(node), parentId,
Collections.unmodifiableSet(childrenIds), state);
}
public Collection<StructuralObject> loadChildren(StructuralObject
structuralParent) throws IllegalArgumentException, StateException
@@ -116,7 +106,9 @@
throw new NoSuchStateException();
}
- if (!takeSnapshot(parentNode).equals(structuralParent))
+ //
+ StructuralState parentNodeState = adapter.getState(parentNode);
+ if (!equals(parentNodeState, structuralParent.getState()))
{
throw new StaleStateException();
}
@@ -134,6 +126,17 @@
return structuralChildren;
}
+ private boolean equals(StructuralState o1, StructuralState o2)
+ {
+ if (!o1.getType().equals(o2.getType()))
+ {
+ return false;
+ }
+
+ //
+ return o1.getProperties().equals(o2.getProperties());
+ }
+
public StructuralObject loadParent(StructuralObject structuralChild) throws
IllegalArgumentException, StateException
{
if (structuralChild == null)