You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by sv...@apache.org on 2012/07/20 19:28:31 UTC
git commit: WICKET-4666 ResourceModel assignment
Updated Branches:
refs/heads/master 803064915 -> 325049d69
WICKET-4666 ResourceModel assignment
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/325049d6
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/325049d6
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/325049d6
Branch: refs/heads/master
Commit: 325049d69e0c1b2886d26d950d3c67b1dd154e99
Parents: 8030649
Author: svenmeier <sv...@apache.org>
Authored: Fri Jul 20 19:27:55 2012 +0200
Committer: svenmeier <sv...@apache.org>
Committed: Fri Jul 20 19:27:55 2012 +0200
----------------------------------------------------------------------
.../org/apache/wicket/model/ResourceModel.java | 29 ++++++------
.../wicket/model/ResourceModelTest$TestPage.html | 1 +
.../model/ResourceModelTest$TestPage.properties | 3 +-
.../model/ResourceModelTest$TestPage_expected.html | 1 +
.../org/apache/wicket/model/ResourceModelTest.java | 34 ++++++++++++++-
5 files changed, 51 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/325049d6/wicket-core/src/main/java/org/apache/wicket/model/ResourceModel.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/model/ResourceModel.java b/wicket-core/src/main/java/org/apache/wicket/model/ResourceModel.java
index c798e89..60703d7 100644
--- a/wicket-core/src/main/java/org/apache/wicket/model/ResourceModel.java
+++ b/wicket-core/src/main/java/org/apache/wicket/model/ResourceModel.java
@@ -73,23 +73,27 @@ public class ResourceModel extends AbstractReadOnlyModel<String>
public String getObject()
{
// this shouldn't be called always wrapped!
- return Application.get().getResourceSettings().getLocalizer().getString(resourceKey, null, defaultValue);
+ return Application.get()
+ .getResourceSettings()
+ .getLocalizer()
+ .getString(resourceKey, null, defaultValue);
}
-
/**
* @see org.apache.wicket.model.IComponentAssignedModel#wrapOnAssignment(org.apache.wicket.Component)
*/
@Override
public IWrapModel<String> wrapOnAssignment(final Component component)
{
- return new AssignmentWrapper(resourceKey, defaultValue, component);
+ return new AssignmentWrapper(component);
}
/**
*
*/
- private class AssignmentWrapper extends ResourceModel implements IWrapModel<String>
+ private class AssignmentWrapper extends LoadableDetachableModel<String>
+ implements
+ IWrapModel<String>
{
private static final long serialVersionUID = 1L;
@@ -98,13 +102,10 @@ public class ResourceModel extends AbstractReadOnlyModel<String>
/**
* Construct.
*
- * @param resourceKey
- * @param defaultValue
* @param component
*/
- public AssignmentWrapper(String resourceKey, String defaultValue, Component component)
+ public AssignmentWrapper(Component component)
{
- super(resourceKey, defaultValue);
this.component = component;
}
@@ -117,20 +118,18 @@ public class ResourceModel extends AbstractReadOnlyModel<String>
return ResourceModel.this;
}
- /**
- * @see org.apache.wicket.model.AbstractReadOnlyModel#getObject()
- */
@Override
- public String getObject()
+ protected String load()
{
- return Application.get().getResourceSettings().getLocalizer().getString(resourceKey,
- component, defaultValue);
+ return Application.get()
+ .getResourceSettings()
+ .getLocalizer()
+ .getString(resourceKey, component, defaultValue);
}
@Override
public void detach()
{
- super.detach();
ResourceModel.this.detach();
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/325049d6/wicket-core/src/test/java/org/apache/wicket/model/ResourceModelTest$TestPage.html
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/model/ResourceModelTest$TestPage.html b/wicket-core/src/test/java/org/apache/wicket/model/ResourceModelTest$TestPage.html
index f89464e..78a14a3 100644
--- a/wicket-core/src/test/java/org/apache/wicket/model/ResourceModelTest$TestPage.html
+++ b/wicket-core/src/test/java/org/apache/wicket/model/ResourceModelTest$TestPage.html
@@ -1,5 +1,6 @@
<html>
<body>
<span wicket:id="testlabel">[a test]</span>
+<span wicket:id="otherlabel">[a test]</span>
</body>
</html>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/wicket/blob/325049d6/wicket-core/src/test/java/org/apache/wicket/model/ResourceModelTest$TestPage.properties
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/model/ResourceModelTest$TestPage.properties b/wicket-core/src/test/java/org/apache/wicket/model/ResourceModelTest$TestPage.properties
index 5206d46..194f706 100644
--- a/wicket-core/src/test/java/org/apache/wicket/model/ResourceModelTest$TestPage.properties
+++ b/wicket-core/src/test/java/org/apache/wicket/model/ResourceModelTest$TestPage.properties
@@ -1 +1,2 @@
-test.label=A test label from a resource bundle
+testlabel=A test label from a resource bundle
+otherlabel.testlabel=WILL NOT BE USED BECAUSE "otherlabel"'S RESOURCEMODEL IS ALREADY ASSIGNED TO "testlabel"
http://git-wip-us.apache.org/repos/asf/wicket/blob/325049d6/wicket-core/src/test/java/org/apache/wicket/model/ResourceModelTest$TestPage_expected.html
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/model/ResourceModelTest$TestPage_expected.html b/wicket-core/src/test/java/org/apache/wicket/model/ResourceModelTest$TestPage_expected.html
index cfa8b85..aa85a20 100644
--- a/wicket-core/src/test/java/org/apache/wicket/model/ResourceModelTest$TestPage_expected.html
+++ b/wicket-core/src/test/java/org/apache/wicket/model/ResourceModelTest$TestPage_expected.html
@@ -1,5 +1,6 @@
<html>
<body>
<span wicket:id="testlabel">A test label from a resource bundle</span>
+<span wicket:id="otherlabel">A test label from a resource bundle</span>
</body>
</html>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/wicket/blob/325049d6/wicket-core/src/test/java/org/apache/wicket/model/ResourceModelTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/model/ResourceModelTest.java b/wicket-core/src/test/java/org/apache/wicket/model/ResourceModelTest.java
index bbd0b1e..381e598 100644
--- a/wicket-core/src/test/java/org/apache/wicket/model/ResourceModelTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/model/ResourceModelTest.java
@@ -38,7 +38,10 @@ public class ResourceModelTest extends WicketTestCase
*/
public TestPage()
{
- add(new Label("testlabel", new ResourceModel("test.label")));
+ add(new Label("testlabel", new ResourceModel("testlabel")));
+
+ // another label with a model explicitely assigned to the page
+ add(new Label("otherlabel", new ResourceModel("testlabel").wrapOnAssignment(this)));
}
}
@@ -52,4 +55,33 @@ public class ResourceModelTest extends WicketTestCase
{
executeTest(TestPage.class, "ResourceModelTest$TestPage_expected.html");
}
+
+ /**
+ * Test forwarding of detach().
+ */
+ @Test
+ public void detaching()
+ {
+
+ final boolean[] detached = { false };
+
+ ResourceModel model = new ResourceModel("test")
+ {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public void detach()
+ {
+ super.detach();
+
+ detached[0] = true;
+ }
+ };
+
+ IModel<String> wrapped = model.wrapOnAssignment(null);
+
+ wrapped.detach();
+
+ assertTrue(null, detached[0]);
+ }
}