Author: julien(a)jboss.com
Date: 2008-07-07 08:56:40 -0400 (Mon, 07 Jul 2008)
New Revision: 11316
Modified:
modules/presentation/trunk/presentation/src/main/java/org/jboss/portal/presentation/impl/model/UpdatePhase.java
modules/presentation/trunk/presentation/src/main/java/org/jboss/portal/presentation/impl/model/pull/DetachedViewPortContext.java
modules/presentation/trunk/presentation/src/main/java/org/jboss/portal/presentation/model/ViewPortContext.java
modules/presentation/trunk/presentation/src/test/java/org/jboss/portal/presentation/test/model/NodeDef.java
modules/presentation/trunk/presentation/src/test/java/org/jboss/portal/presentation/test/model/UIObjectNode.java
modules/presentation/trunk/presentation/src/test/java/org/jboss/portal/presentation/test/model/UIObjectTree.java
modules/presentation/trunk/presentation/src/test/java/org/jboss/portal/presentation/test/model/UpdateObjectTestCase.java
Log:
correctly implement property state update
Modified:
modules/presentation/trunk/presentation/src/main/java/org/jboss/portal/presentation/impl/model/UpdatePhase.java
===================================================================
---
modules/presentation/trunk/presentation/src/main/java/org/jboss/portal/presentation/impl/model/UpdatePhase.java 2008-07-07
12:36:48 UTC (rev 11315)
+++
modules/presentation/trunk/presentation/src/main/java/org/jboss/portal/presentation/impl/model/UpdatePhase.java 2008-07-07
12:56:40 UTC (rev 11316)
@@ -170,6 +170,16 @@
}
else if (diff instanceof ObjectDiff.Update)
{
+ ObjectDiff.Update update = (ObjectDiff.Update)diff;
+
+ //
+ context.updateObject(
+ diff.getObjectId(),
+ update.getRemovedProperties(),
+ update.getUpdatedProperties(),
+ update.getAddedProperties());
+
+ //
if (diff instanceof ObjectDiff.RecursiveUpdate)
{
ObjectDiff.RecursiveUpdate recursiveUpdate =
(ObjectDiff.RecursiveUpdate)diff;
Modified:
modules/presentation/trunk/presentation/src/main/java/org/jboss/portal/presentation/impl/model/pull/DetachedViewPortContext.java
===================================================================
---
modules/presentation/trunk/presentation/src/main/java/org/jboss/portal/presentation/impl/model/pull/DetachedViewPortContext.java 2008-07-07
12:36:48 UTC (rev 11315)
+++
modules/presentation/trunk/presentation/src/main/java/org/jboss/portal/presentation/impl/model/pull/DetachedViewPortContext.java 2008-07-07
12:56:40 UTC (rev 11316)
@@ -27,6 +27,8 @@
import java.util.HashMap;
import java.util.Map;
+import java.util.Set;
+import java.io.Serializable;
/**
* @author <a href="mailto:julien@jboss-portal.org">Julien
Viet</a>
@@ -66,7 +68,7 @@
nodes.put(node.getId(), node);
}
- public void updateObject(String objectId)
+ public void updateObject(String objectId, Set<String> removedProperties,
Map<String, Serializable> updatedProperties, Map<String, Serializable>
addedProperties)
{
throw new UnsupportedOperationException();
}
Modified:
modules/presentation/trunk/presentation/src/main/java/org/jboss/portal/presentation/model/ViewPortContext.java
===================================================================
---
modules/presentation/trunk/presentation/src/main/java/org/jboss/portal/presentation/model/ViewPortContext.java 2008-07-07
12:36:48 UTC (rev 11315)
+++
modules/presentation/trunk/presentation/src/main/java/org/jboss/portal/presentation/model/ViewPortContext.java 2008-07-07
12:56:40 UTC (rev 11316)
@@ -24,6 +24,10 @@
import org.jboss.portal.presentation.model.ui.UIObject;
+import java.util.Set;
+import java.util.Map;
+import java.io.Serializable;
+
/**
* This interface defines read-write access to the structural information of a viewport.
*
@@ -52,8 +56,11 @@
* Signals the context that the object state has been updated.
*
* @param objectId the object id
+ * @param removedProperties the removed properties
+ * @param updatedProperties the updated properties
+ * @param addedProperties the added properties
*/
- void updateObject(String objectId);
+ void updateObject(String objectId, Set<String> removedProperties, Map<String,
Serializable> updatedProperties, Map<String, Serializable> addedProperties);
/**
* Removes the specified object from the context.
Modified:
modules/presentation/trunk/presentation/src/test/java/org/jboss/portal/presentation/test/model/NodeDef.java
===================================================================
---
modules/presentation/trunk/presentation/src/test/java/org/jboss/portal/presentation/test/model/NodeDef.java 2008-07-07
12:36:48 UTC (rev 11315)
+++
modules/presentation/trunk/presentation/src/test/java/org/jboss/portal/presentation/test/model/NodeDef.java 2008-07-07
12:56:40 UTC (rev 11316)
@@ -35,6 +35,7 @@
import java.util.Map;
import java.util.Set;
import java.util.Collection;
+import java.io.Serializable;
/**
* @author <a href="mailto:julien@jboss-portal.org">Julien
Viet</a>
@@ -196,7 +197,7 @@
for (String propertyName : properties.keySet())
{
String expectedProperty = properties.get(propertyName);
- String property = objectNode.getProperties().get(propertyName);
+ Serializable property = objectNode.getProperties().get(propertyName);
Assert.assertEquals(expectedProperty, property);
}
Modified:
modules/presentation/trunk/presentation/src/test/java/org/jboss/portal/presentation/test/model/UIObjectNode.java
===================================================================
---
modules/presentation/trunk/presentation/src/test/java/org/jboss/portal/presentation/test/model/UIObjectNode.java 2008-07-07
12:36:48 UTC (rev 11315)
+++
modules/presentation/trunk/presentation/src/test/java/org/jboss/portal/presentation/test/model/UIObjectNode.java 2008-07-07
12:56:40 UTC (rev 11316)
@@ -27,6 +27,7 @@
import java.util.HashMap;
import java.util.Map;
+import java.io.Serializable;
/**
* @author <a href="mailto:julien@jboss-portal.org">Julien
Viet</a>
@@ -42,7 +43,7 @@
private Map<String, UIObjectNode> children;
/** . */
- private Map<String, String> properties;
+ Map<String, Serializable> properties;
public UIObjectNode(UIObject object)
{
@@ -53,13 +54,13 @@
//
this.object = object;
- this.properties = new HashMap<String, String>();
+ this.properties = new HashMap<String, Serializable>();
//
updateState();
}
- public Map<String, String> getProperties()
+ public Map<String, Serializable> getProperties()
{
return properties;
}
Modified:
modules/presentation/trunk/presentation/src/test/java/org/jboss/portal/presentation/test/model/UIObjectTree.java
===================================================================
---
modules/presentation/trunk/presentation/src/test/java/org/jboss/portal/presentation/test/model/UIObjectTree.java 2008-07-07
12:36:48 UTC (rev 11315)
+++
modules/presentation/trunk/presentation/src/test/java/org/jboss/portal/presentation/test/model/UIObjectTree.java 2008-07-07
12:56:40 UTC (rev 11316)
@@ -30,6 +30,8 @@
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
+import java.util.Set;
+import java.io.Serializable;
/**
* @author <a href="mailto:julien@jboss-portal.org">Julien
Viet</a>
@@ -76,18 +78,6 @@
return node != null ? node.getObject() : null;
}
- public void updateObject(String objectId)
- {
- UIObjectNode node = nodes.get(objectId);
- if (node == null)
- {
- throw new IllegalStateException("No such object " + objectId);
- }
-
- //
- node.updateState();
- }
-
public void removeObject(String objectId)
{
if (nodes.remove(objectId) == null)
@@ -110,6 +100,22 @@
nodes.put(id, new UIObjectNode(object));
}
+// public void updateObject(String objectId)
+// {
+// UIObjectNode node = nodes.get(objectId);
+//
+// //
+// node.updateState();
+// }
+
+ public void updateObject(String objectId, Set<String> removedProperties,
Map<String, Serializable> updatedProperties, Map<String, Serializable>
addedProperties)
+ {
+ UIObjectNode node = nodes.get(objectId);
+ node.properties.keySet().removeAll(removedProperties);
+ node.properties.putAll(updatedProperties);
+ node.properties.putAll(addedProperties);
+ }
+
public void addChild(String parentId, String childId)
{
UIObjectNode parent = nodes.get(parentId);
Modified:
modules/presentation/trunk/presentation/src/test/java/org/jboss/portal/presentation/test/model/UpdateObjectTestCase.java
===================================================================
---
modules/presentation/trunk/presentation/src/test/java/org/jboss/portal/presentation/test/model/UpdateObjectTestCase.java 2008-07-07
12:36:48 UTC (rev 11315)
+++
modules/presentation/trunk/presentation/src/test/java/org/jboss/portal/presentation/test/model/UpdateObjectTestCase.java 2008-07-07
12:56:40 UTC (rev 11316)
@@ -56,17 +56,27 @@
rootDef.assertEquals(context.getNode(model.getRootId()));
//
- mockModel.getRoot().getChild("foo").setPropertyValue("juu",
"daa");
+ mockModel.getRoot().getChild("foo").setPropertyValue("juu",
"juu_value");
+ mockModel.getRoot().getChild("foo").setPropertyValue("daa",
"daa_value1");
//
+ rootDef.getChild("foo").setProperty("juu",
"juu_value");
+ rootDef.getChild("foo").setProperty("daa",
"daa_value1");
+
+ //
viewPort.refresh();
rootDef.assertEquals(context.getNode(model.getRootId()));
//
mockModel.getRoot().getChild("foo").setPropertyValue("juu",
null);
- mockModel.getRoot().getChild("foo").setPropertyValue("daa",
"juu2");
+ mockModel.getRoot().getChild("foo").setPropertyValue("daa",
"daa_value2");
+ mockModel.getRoot().getChild("foo").setPropertyValue("bar",
"bar_value");
//
+ rootDef.getChild("foo").setProperty("daa",
"daa_value2");
+ rootDef.getChild("foo").setProperty("bar",
"bar_value");
+
+ //
viewPort.refresh();
rootDef.assertEquals(context.getNode(model.getRootId()));
}