Author: ivaynberg
Date: Mon Jan 29 17:50:31 2007
New Revision: 501283
URL: http://svn.apache.org/viewvc?view=rev&rev=501283
Log:
model hierarchy cleanup
Removed:
incubator/wicket/trunk/wicket/src/main/java/wicket/model/AbstractDetachableModel.java
incubator/wicket/trunk/wicket/src/main/java/wicket/model/AbstractModel.java
incubator/wicket/trunk/wicket/src/main/java/wicket/model/AbstractReadOnlyDetachableModel.java
Modified:
incubator/wicket/trunk/wicket-examples/.classpath
incubator/wicket/trunk/wicket-examples/src/main/java/wicket/examples/compref/SelectPage.java
incubator/wicket/trunk/wicket-examples/src/main/java/wicket/examples/repeater/DataTablePage.java
incubator/wicket/trunk/wicket-examples/src/main/java/wicket/examples/repeater/DetachableContactModel.java
incubator/wicket/trunk/wicket-examples/src/main/java/wicket/examples/unicodeconverter/UnicodeConverter.java
incubator/wicket/trunk/wicket-extensions/src/main/java/wicket/extensions/markup/html/repeater/data/sort/OrderByLink.java
incubator/wicket/trunk/wicket-extensions/src/main/java/wicket/extensions/markup/html/repeater/data/table/filter/FilterForm.java
incubator/wicket/trunk/wicket-extensions/src/main/java/wicket/extensions/markup/html/repeater/data/table/filter/FilterStateModel.java
incubator/wicket/trunk/wicket-extensions/src/main/java/wicket/extensions/markup/html/tree/Tree.java
incubator/wicket/trunk/wicket/src/main/java/wicket/markup/html/list/ListItemModel.java
incubator/wicket/trunk/wicket/src/main/java/wicket/model/AbstractReadOnlyModel.java
incubator/wicket/trunk/wicket/src/main/java/wicket/model/LoadableDetachableModel.java
incubator/wicket/trunk/wicket/src/main/java/wicket/model/Model.java
incubator/wicket/trunk/wicket/src/main/java/wicket/model/StringResourceModel.java
incubator/wicket/trunk/wicket/src/main/java/wicket/util/resource/TextTemplateHeaderContributor.java
incubator/wicket/trunk/wicket/src/test/java/wicket/AttributeModifierComponentPage.java
incubator/wicket/trunk/wicket/src/test/java/wicket/markup/html/debug/WicketComponentTreeTestPage_ExpectedResult.html
incubator/wicket/trunk/wicket/src/test/java/wicket/model/ModelToStringTest.java
incubator/wicket/trunk/wicket/src/test/java/wicket/model/StringResourceModelTest.java
Modified: incubator/wicket/trunk/wicket-examples/.classpath
URL:
http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket-examples/.classpath?view=diff&rev=501283&r1=501282&r2=501283
==============================================================================
--- incubator/wicket/trunk/wicket-examples/.classpath (original)
+++ incubator/wicket/trunk/wicket-examples/.classpath Mon Jan 29 17:50:31 2007
@@ -3,6 +3,8 @@
<classpathentry kind="src" path="src/main/java"/>
<classpathentry kind="src" output="target/test-classes"
path="src/test/java"/>
<classpathentry kind="con"
path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/wicket"/>
+ <classpathentry combineaccessrules="false" kind="src"
path="/wicket-extensions"/>
<classpathentry kind="var"
path="M2_REPO/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar"
sourcepath="M2_REPO/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2-sources.jar"/>
<classpathentry kind="var"
path="M2_REPO/mx4j/mx4j-tools/3.0.1/mx4j-tools-3.0.1.jar"
sourcepath="M2_REPO/mx4j/mx4j-tools/3.0.1/mx4j-tools-3.0.1-sources.jar"/>
<classpathentry kind="var"
path="M2_REPO/org/mortbay/jetty/servlet-api-2.5/6.0.1/servlet-api-2.5-6.0.1.jar"/>
@@ -35,7 +37,5 @@
<classpathentry kind="var"
path="M2_REPO/xalan/xalan/2.6.0/xalan-2.6.0.jar"/>
<classpathentry kind="var"
path="M2_REPO/tomcat/jasper-compiler/4.1.30/jasper-compiler-4.1.30.jar"
sourcepath="M2_REPO/tomcat/jasper-compiler/4.1.30/jasper-compiler-4.1.30-sources.jar"/>
<classpathentry kind="var"
path="M2_REPO/org/mortbay/jetty/jetty/6.0.1/jetty-6.0.1.jar"
sourcepath="M2_REPO/org/mortbay/jetty/jetty/6.0.1/jetty-6.0.1-sources.jar"/>
- <classpathentry combineaccessrules="false" kind="src" path="/wicket"/>
- <classpathentry combineaccessrules="false" kind="src"
path="/wicket-extensions"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>
Modified:
incubator/wicket/trunk/wicket-examples/src/main/java/wicket/examples/compref/SelectPage.java
URL:
http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket-examples/src/main/java/wicket/examples/compref/SelectPage.java?view=diff&rev=501283&r1=501282&r2=501283
==============================================================================
---
incubator/wicket/trunk/wicket-examples/src/main/java/wicket/examples/compref/SelectPage.java
(original)
+++
incubator/wicket/trunk/wicket-examples/src/main/java/wicket/examples/compref/SelectPage.java
Mon Jan 29 17:50:31 2007
@@ -26,6 +26,7 @@
import wicket.examples.WicketExamplePage;
import wicket.extensions.markup.html.form.select.IOptionRenderer;
import wicket.extensions.markup.html.form.select.Select;
+import wicket.extensions.markup.html.form.select.SelectMultiple;
import wicket.extensions.markup.html.form.select.SelectOption;
import wicket.extensions.markup.html.form.select.SelectOptions;
import wicket.markup.html.form.Form;
@@ -78,7 +79,7 @@
new SelectOption<String>(site, "site3", new
Model<String>("sd"));
new SelectOption<String>(site, "site4", new
Model<String>("bn"));
- Select choices = new Select(form, "choices");
+ SelectMultiple choices = new SelectMultiple(form, "choices");
IOptionRenderer renderer = new IOptionRenderer()
{
public String getDisplayValue(Object object)
Modified:
incubator/wicket/trunk/wicket-examples/src/main/java/wicket/examples/repeater/DataTablePage.java
URL:
http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket-examples/src/main/java/wicket/examples/repeater/DataTablePage.java?view=diff&rev=501283&r1=501282&r2=501283
==============================================================================
---
incubator/wicket/trunk/wicket-examples/src/main/java/wicket/examples/repeater/DataTablePage.java
(original)
+++
incubator/wicket/trunk/wicket-examples/src/main/java/wicket/examples/repeater/DataTablePage.java
Mon Jan 29 17:50:31 2007
@@ -21,6 +21,7 @@
import java.util.ArrayList;
import java.util.List;
+import
wicket.extensions.ajax.markup.html.repeater.data.table.AjaxFallbackDefaultDataTable;
import wicket.extensions.markup.html.repeater.data.table.AbstractColumn;
import wicket.extensions.markup.html.repeater.data.table.DefaultDataTable;
import wicket.extensions.markup.html.repeater.data.table.IColumn;
@@ -59,6 +60,6 @@
columns.add(new PropertyColumn<String>(new Model<String>("Home
Phone"), "homePhone"));
columns.add(new PropertyColumn<String>(new Model<String>("Cell
Phone"), "cellPhone"));
- new DefaultDataTable(this, "table", columns, new
SortableContactDataProvider(), 8);
+ new AjaxFallbackDefaultDataTable(this, "table", columns, new
SortableContactDataProvider(), 8);
}
}
Modified:
incubator/wicket/trunk/wicket-examples/src/main/java/wicket/examples/repeater/DetachableContactModel.java
URL:
http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket-examples/src/main/java/wicket/examples/repeater/DetachableContactModel.java?view=diff&rev=501283&r1=501282&r2=501283
==============================================================================
---
incubator/wicket/trunk/wicket-examples/src/main/java/wicket/examples/repeater/DetachableContactModel.java
(original)
+++
incubator/wicket/trunk/wicket-examples/src/main/java/wicket/examples/repeater/DetachableContactModel.java
Mon Jan 29 17:50:31 2007
@@ -1,7 +1,7 @@
/*
* $Id: DetachableContactModel.java 5832 2006-05-24 05:36:28 +0000 (Wed, 24 May
- * 2006) ivaynberg $ $Revision$ $Date: 2006-05-24 05:36:28 +0000 (Wed, 24
- * May 2006) $
+ * 2006) ivaynberg $ $Revision$ $Date: 2006-05-24 05:36:28 +0000 (Wed,
+ * 24 May 2006) $
*
* ====================================================================
Licensed
* under the Apache License, Version 2.0 (the "License"); you may not use this
@@ -19,7 +19,7 @@
package wicket.examples.repeater;
import wicket.markup.repeater.IItemReuseStrategy;
-import wicket.model.AbstractReadOnlyDetachableModel;
+import wicket.model.LoadableDetachableModel;
/**
* detachable model for an instance of contact
@@ -27,10 +27,9 @@
* @author igor
*
*/
-public class DetachableContactModel extends
AbstractReadOnlyDetachableModel<Contact>
+public class DetachableContactModel extends LoadableDetachableModel<Contact>
{
private long id;
- private transient Contact contact;
protected ContactsDatabase getContactsDB()
{
@@ -42,8 +41,14 @@
*/
public DetachableContactModel(final Contact c)
{
- this(c.getId());
- contact = c;
+ super(c);
+ if (c == null)
+ {
+ throw new IllegalArgumentException();
+
+ }
+ id = c.getId();
+
}
/**
@@ -58,27 +63,6 @@
this.id = id;
}
- @Override
- protected void onAttach()
- {
- if (contact == null)
- {
- contact = getContactsDB().get(id);
- }
- }
-
- @Override
- protected void onDetach()
- {
- contact = null;
- }
-
- @Override
- protected Contact onGetObject()
- {
- return contact;
- }
-
/**
* @see java.lang.Object#hashCode()
*/
@@ -98,11 +82,29 @@
@Override
public boolean equals(final Object obj)
{
- if (obj instanceof DetachableContactModel)
+ if (obj == this)
+ {
+ return true;
+ }
+ else if (obj == null)
+ {
+ return false;
+ }
+ else if (obj instanceof DetachableContactModel)
{
DetachableContactModel other =
(DetachableContactModel)obj;
return other.id == this.id;
}
return false;
+ }
+
+ /**
+ * @see wicket.model.LoadableDetachableModel#load()
+ */
+ @Override
+ protected Contact load()
+ {
+ // loads contact from the database
+ return getContactsDB().get(id);
}
}
Modified:
incubator/wicket/trunk/wicket-examples/src/main/java/wicket/examples/unicodeconverter/UnicodeConverter.java
URL:
http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket-examples/src/main/java/wicket/examples/unicodeconverter/UnicodeConverter.java?view=diff&rev=501283&r1=501282&r2=501283
==============================================================================
---
incubator/wicket/trunk/wicket-examples/src/main/java/wicket/examples/unicodeconverter/UnicodeConverter.java
(original)
+++
incubator/wicket/trunk/wicket-examples/src/main/java/wicket/examples/unicodeconverter/UnicodeConverter.java
Mon Jan 29 17:50:31 2007
@@ -26,8 +26,8 @@
import wicket.markup.html.form.DropDownChoice;
import wicket.markup.html.form.Form;
import wicket.markup.html.form.TextArea;
-import wicket.model.AbstractModel;
import wicket.model.CompoundPropertyModel;
+import wicket.model.Model;
import wicket.util.string.Strings;
/**
@@ -62,7 +62,7 @@
* [EMAIL PROTECTED] Component#getModelObject()} on the component that
holds it, and we
* would have a recent value.
*/
- private final class ConverterModel extends AbstractModel<String>
+ private final class ConverterModel extends Model<String>
{
/**
* @see wicket.model.IModel#getObject()
Modified:
incubator/wicket/trunk/wicket-extensions/src/main/java/wicket/extensions/markup/html/repeater/data/sort/OrderByLink.java
URL:
http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket-extensions/src/main/java/wicket/extensions/markup/html/repeater/data/sort/OrderByLink.java?view=diff&rev=501283&r1=501282&r2=501283
==============================================================================
---
incubator/wicket/trunk/wicket-extensions/src/main/java/wicket/extensions/markup/html/repeater/data/sort/OrderByLink.java
(original)
+++
incubator/wicket/trunk/wicket-extensions/src/main/java/wicket/extensions/markup/html/repeater/data/sort/OrderByLink.java
Mon Jan 29 17:50:31 2007
@@ -21,7 +21,7 @@
import wicket.AttributeModifier;
import wicket.MarkupContainer;
import wicket.markup.html.link.Link;
-import wicket.model.AbstractModel;
+import wicket.model.Model;
import wicket.util.lang.Objects;
import wicket.version.undo.Change;
@@ -200,7 +200,7 @@
*/
public CssModifier(final OrderByLink link, final ICssProvider
provider)
{
- super("class", true, new AbstractModel()
+ super("class", true, new Model()
{
private static final long serialVersionUID = 1L;
Modified:
incubator/wicket/trunk/wicket-extensions/src/main/java/wicket/extensions/markup/html/repeater/data/table/filter/FilterForm.java
URL:
http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket-extensions/src/main/java/wicket/extensions/markup/html/repeater/data/table/filter/FilterForm.java?view=diff&rev=501283&r1=501282&r2=501283
==============================================================================
---
incubator/wicket/trunk/wicket-extensions/src/main/java/wicket/extensions/markup/html/repeater/data/table/filter/FilterForm.java
(original)
+++
incubator/wicket/trunk/wicket-extensions/src/main/java/wicket/extensions/markup/html/repeater/data/table/filter/FilterForm.java
Mon Jan 29 17:50:31 2007
@@ -23,7 +23,6 @@
import wicket.markup.html.form.Form;
import wicket.markup.html.form.FormComponent;
import wicket.markup.html.form.HiddenField;
-import wicket.model.AbstractModel;
import wicket.model.Model;
/**
@@ -136,7 +135,7 @@
* @author Igor Vaynberg (ivaynberg)
*
*/
- private static class FilterStateModel extends AbstractModel<Object>
+ private static class FilterStateModel extends Model<Object>
{
private static final long serialVersionUID = 1L;
Modified:
incubator/wicket/trunk/wicket-extensions/src/main/java/wicket/extensions/markup/html/repeater/data/table/filter/FilterStateModel.java
URL:
http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket-extensions/src/main/java/wicket/extensions/markup/html/repeater/data/table/filter/FilterStateModel.java?view=diff&rev=501283&r1=501282&r2=501283
==============================================================================
---
incubator/wicket/trunk/wicket-extensions/src/main/java/wicket/extensions/markup/html/repeater/data/table/filter/FilterStateModel.java
(original)
+++
incubator/wicket/trunk/wicket-extensions/src/main/java/wicket/extensions/markup/html/repeater/data/table/filter/FilterStateModel.java
Mon Jan 29 17:50:31 2007
@@ -16,7 +16,7 @@
*/
package wicket.extensions.markup.html.repeater.data.table.filter;
-import wicket.model.AbstractModel;
+import wicket.model.Model;
/**
* Model that wraps filter state locator to make its use transparent to wicket
@@ -35,7 +35,7 @@
*
* @author Igor Vaynberg (ivaynberg)
*/
-class FilterStateModel extends AbstractModel
+class FilterStateModel extends Model
{
private static final long serialVersionUID = 1L;
Modified:
incubator/wicket/trunk/wicket-extensions/src/main/java/wicket/extensions/markup/html/tree/Tree.java
URL:
http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket-extensions/src/main/java/wicket/extensions/markup/html/tree/Tree.java?view=diff&rev=501283&r1=501282&r2=501283
==============================================================================
---
incubator/wicket/trunk/wicket-extensions/src/main/java/wicket/extensions/markup/html/tree/Tree.java
(original)
+++
incubator/wicket/trunk/wicket-extensions/src/main/java/wicket/extensions/markup/html/tree/Tree.java
Mon Jan 29 17:50:31 2007
@@ -1,18 +1,18 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
+ * contributor license agreements. See the NOTICE file distributed with this
+ * work for additional information regarding copyright ownership. The ASF
+ * licenses this file to You under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
* Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
under
+ * the License.
*/
package wicket.extensions.markup.html.tree;
@@ -39,7 +39,6 @@
import wicket.markup.html.list.ListView;
import wicket.markup.html.list.Loop;
import wicket.markup.html.panel.Panel;
-import wicket.model.AbstractReadOnlyDetachableModel;
import wicket.model.IModel;
/**
@@ -219,9 +218,7 @@
/**
* Model for the paths of the tree.
*/
- private final class TreePathsModel
- extends
-
AbstractReadOnlyDetachableModel<List<DefaultMutableTreeNode>>
+ private final class TreePathsModel implements
IModel<List<DefaultMutableTreeNode>>
{
private static final long serialVersionUID = 1L;
@@ -231,44 +228,7 @@
/** tree paths. */
private List<DefaultMutableTreeNode> paths = new
ArrayList<DefaultMutableTreeNode>();
- /**
- * @see wicket.model.AbstractDetachableModel#onAttach()
- */
- @Override
- protected void onAttach()
- {
- if (dirty)
- {
- paths.clear();
- TreeModel model = getTreeState().getModel();
- DefaultMutableTreeNode rootNode =
(DefaultMutableTreeNode)model.getRoot();
- Enumeration e = rootNode.preorderEnumeration();
- while (e.hasMoreElements())
- {
- DefaultMutableTreeNode treeNode =
(DefaultMutableTreeNode)e.nextElement();
- // TreePath path = new
TreePath(treeNode.getPath());
- paths.add(treeNode);
- }
- dirty = false;
- }
- }
-
- /**
- * @see wicket.model.AbstractDetachableModel#onDetach()
- */
- @Override
- protected void onDetach()
- {
- }
-
- /**
- * @see wicket.model.AbstractDetachableModel#onGetObject()
- */
- @Override
- protected List<DefaultMutableTreeNode> onGetObject()
- {
- return paths;
- }
+ private transient boolean attached = false;
/**
* Inserts the given node in the path list with the given index.
@@ -304,6 +264,37 @@
void remove(DefaultMutableTreeNode node)
{
paths.remove(node);
+ }
+
+
+ public List<DefaultMutableTreeNode> getObject()
+ {
+ if (dirty && !attached)
+ {
+ paths.clear();
+ TreeModel model = getTreeState().getModel();
+ DefaultMutableTreeNode rootNode =
(DefaultMutableTreeNode)model.getRoot();
+ Enumeration e = rootNode.preorderEnumeration();
+ while (e.hasMoreElements())
+ {
+ DefaultMutableTreeNode treeNode =
(DefaultMutableTreeNode)e.nextElement();
+ // TreePath path = new
TreePath(treeNode.getPath());
+ paths.add(treeNode);
+ }
+ dirty = false;
+ }
+ attached = true;
+ return paths;
+ }
+
+ public void setObject(List<DefaultMutableTreeNode> object)
+ {
+ throw new UnsupportedOperationException("This is a
read-only model");
+ }
+
+ public void detach()
+ {
+ attached = false;
}
}
Modified:
incubator/wicket/trunk/wicket/src/main/java/wicket/markup/html/list/ListItemModel.java
URL:
http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket/src/main/java/wicket/markup/html/list/ListItemModel.java?view=diff&rev=501283&r1=501282&r2=501283
==============================================================================
---
incubator/wicket/trunk/wicket/src/main/java/wicket/markup/html/list/ListItemModel.java
(original)
+++
incubator/wicket/trunk/wicket/src/main/java/wicket/markup/html/list/ListItemModel.java
Mon Jan 29 17:50:31 2007
@@ -16,7 +16,7 @@
*/
package wicket.markup.html.list;
-import wicket.model.AbstractDetachableModel;
+import wicket.model.LoadableDetachableModel;
/**
* Model for list items.
@@ -25,18 +25,14 @@
* Type of model object this model holds
*
*/
-public class ListItemModel<T> extends AbstractDetachableModel<T>
+public class ListItemModel<T> extends LoadableDetachableModel<T>
{
private static final long serialVersionUID = 1L;
- // It is easy and cheap to re-build it if necessary.
- // Avoid synchronising it in a cluster
- private transient T object;
-
/** The ListView's list model */
private final ListView<T> listView;
- /* The list item's index */
+ /** The list item's index */
private final int index;
/**
@@ -51,43 +47,12 @@
{
this.listView = listView;
this.index = index;
- attach();
- }
-
- /**
- * @see wicket.model.AbstractDetachableModel#onAttach()
- */
- @Override
- protected void onAttach()
- {
- // Re-attach the model object based on index and ListView model
object
- this.object = listView.getModelObject().get(index);
- }
-
- /**
- * @see wicket.model.AbstractDetachableModel#onDetach()
- */
- @Override
- protected void onDetach()
- {
- this.object = null;
}
- /**
- * @see wicket.model.AbstractDetachableModel#onGetObject()
- */
- @Override
- protected T onGetObject()
- {
- return object;
- }
- /**
- * @see
wicket.model.AbstractDetachableModel#onSetObject(java.lang.Object)
- */
@Override
- protected void onSetObject(final T object)
+ protected T load()
{
- this.object = object;
+ return listView.getModelObject().get(index);
}
}
Modified:
incubator/wicket/trunk/wicket/src/main/java/wicket/model/AbstractReadOnlyModel.java
URL:
http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket/src/main/java/wicket/model/AbstractReadOnlyModel.java?view=diff&rev=501283&r1=501282&r2=501283
==============================================================================
---
incubator/wicket/trunk/wicket/src/main/java/wicket/model/AbstractReadOnlyModel.java
(original)
+++
incubator/wicket/trunk/wicket/src/main/java/wicket/model/AbstractReadOnlyModel.java
Mon Jan 29 17:50:31 2007
@@ -26,7 +26,7 @@
*
* @author Igor Vaynberg ( ivaynberg )
*/
-public abstract class AbstractReadOnlyModel<T> extends AbstractModel<T>
+public abstract class AbstractReadOnlyModel<T> implements IModel<T>
{
/**
@@ -56,5 +56,12 @@
public String toString()
{
return super.toString();
+ }
+
+ /**
+ * @see wicket.model.IDetachable#detach()
+ */
+ public void detach()
+ {
}
}
Modified:
incubator/wicket/trunk/wicket/src/main/java/wicket/model/LoadableDetachableModel.java
URL:
http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket/src/main/java/wicket/model/LoadableDetachableModel.java?view=diff&rev=501283&r1=501282&r2=501283
==============================================================================
---
incubator/wicket/trunk/wicket/src/main/java/wicket/model/LoadableDetachableModel.java
(original)
+++
incubator/wicket/trunk/wicket/src/main/java/wicket/model/LoadableDetachableModel.java
Mon Jan 29 17:50:31 2007
@@ -123,7 +123,8 @@
@Override
public String toString()
{
- StringBuffer sb = new StringBuffer(super.toString());
+ StringBuffer sb = new StringBuffer();
+
sb.append("Model:classname=[").append(getClass().getName()).append("]");
sb.append(":attached=").append(attached).append(":tempModelObject=[").append(
this.transientModelObject).append("]");
return sb.toString();
Modified: incubator/wicket/trunk/wicket/src/main/java/wicket/model/Model.java
URL:
http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket/src/main/java/wicket/model/Model.java?view=diff&rev=501283&r1=501282&r2=501283
==============================================================================
--- incubator/wicket/trunk/wicket/src/main/java/wicket/model/Model.java
(original)
+++ incubator/wicket/trunk/wicket/src/main/java/wicket/model/Model.java Mon Jan
29 17:50:31 2007
@@ -37,7 +37,7 @@
* @author Chris Turner
* @author Eelco Hillenius
*/
-public class Model<T> extends AbstractModel<T>
+public class Model<T> implements IModel<T>
{
private static final long serialVersionUID = 1L;
@@ -141,8 +141,16 @@
@Override
public String toString()
{
- StringBuffer sb = new StringBuffer(super.toString());
- sb.append(":object=[").append(this.object).append("]");
+ StringBuffer sb = new StringBuffer();
+
sb.append("Model:classname=[").append(getClass().getName()).append("]:object=[")
+ .append(this.object).append("]");
return sb.toString();
+ }
+
+ /**
+ * @see wicket.model.IDetachable#detach()
+ */
+ public void detach()
+ {
}
}
Modified:
incubator/wicket/trunk/wicket/src/main/java/wicket/model/StringResourceModel.java
URL:
http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket/src/main/java/wicket/model/StringResourceModel.java?view=diff&rev=501283&r1=501282&r2=501283
==============================================================================
---
incubator/wicket/trunk/wicket/src/main/java/wicket/model/StringResourceModel.java
(original)
+++
incubator/wicket/trunk/wicket/src/main/java/wicket/model/StringResourceModel.java
Mon Jan 29 17:50:31 2007
@@ -87,15 +87,15 @@
* In its simplest form, the model can be used as follows:
*
* <pre>
- *
- * public MyPage extends WebPage
- * {
- * public MyPage(final PageParameters parameters)
- * {
- * add(new Label("username", new
StringResourceModel("label.username", this, null)));
- * }
- * }
*
+ * public MyPage extends WebPage
+ * {
+ * public MyPage(final PageParameters parameters)
+ * {
+ * add(new Label("username", new
StringResourceModel("label.username", this, null)));
+ * }
+ * }
+ *
* </pre>
*
* Where the resource bundle for the page contains the entry
@@ -107,17 +107,17 @@
* property expression:
*
* <pre>
- *
- * public MyPage extends WebPage
- * {
- * public MyPage(final PageParameters parameters)
- * {
- * WeatherStation ws = new WeatherStation();
- * add(new Label("weatherMessage",
- * new
StringResourceModel("weather.${currentStatus}", this, new Model(ws)));
- * }
- * }
*
+ * public MyPage extends WebPage
+ * {
+ * public MyPage(final PageParameters parameters)
+ * {
+ * WeatherStation ws = new WeatherStation();
+ * add(new Label("weatherMessage",
+ * new
StringResourceModel("weather.${currentStatus}", this, new Model(ws)));
+ * }
+ * }
+ *
* </pre>
*
* Which will call the WeatherStation.getCurrentStatus() method each time the
@@ -125,12 +125,12 @@
* contains the entries:
*
* <pre>
- *
- * weather.sunny=Don't forget sunscreen!
- * weather.raining=You might need an umberella
- * weather.snowing=Got your skis?
- * weather.overcast=Best take a coat to be safe
*
+ * weather.sunny=Don't forget sunscreen!
+ * weather.raining=You might need an umberella
+ * weather.snowing=Got your skis?
+ * weather.overcast=Best take a coat to be safe
+ *
* </pre>
*
* <p>
@@ -140,25 +140,25 @@
* is substituted via the model:
*
* <pre>
- *
*
*
*
*
- * public MyPage extends WebPage
- * {
- * public MyPage(final PageParameters parameters)
- * {
- * WeatherStation ws = new WeatherStation();
- * add(new Label("weatherMessage",
- * new
StringResourceModel("weather.message", this, new Model(ws)));
- * }
- * }
+ *
+ * public MyPage extends WebPage
+ * {
+ * public MyPage(final PageParameters parameters)
+ * {
+ * WeatherStation ws = new WeatherStation();
+ * add(new Label("weatherMessage",
+ * new
StringResourceModel("weather.message", this, new Model(ws)));
+ * }
+ * }
+ *
*
*
*
*
- *
* </pre>
*
* Where the resource bundle contains the entry
@@ -172,56 +172,56 @@
* powerful use of the string resource model:
*
* <pre>
- *
*
*
*
*
- * public MyPage extends WebPage
- * {
- * public MyPage(final PageParameters parameters)
- * {
- * WeatherStation ws = new WeatherStation();
- * Model model = new Model(ws);
- * add(new Label("weatherMessage",
- * new StringResourceModel(
- * "weather.detail", this,
model,
- * new Object[]
- * {
- * new Date(),
- * new PropertyModel(model,
"currentStatus"),
- * new PropertyModel(model,
"currentTemperature"),
- * new PropertyModel(model,
"units")
- * }));
- * }
- * }
+ *
+ * public MyPage extends WebPage
+ * {
+ * public MyPage(final PageParameters parameters)
+ * {
+ * WeatherStation ws = new WeatherStation();
+ * Model model = new Model(ws);
+ * add(new Label("weatherMessage",
+ * new StringResourceModel(
+ * "weather.detail", this,
model,
+ * new Object[]
+ * {
+ * new Date(),
+ * new PropertyModel(model,
"currentStatus"),
+ * new PropertyModel(model,
"currentTemperature"),
+ * new PropertyModel(model,
"units")
+ * }));
+ * }
+ * }
+ *
*
*
*
*
- *
* </pre>
*
* And where the resource bundle entry is:
*
* <pre>
- *
*
*
*
*
- * weather.detail=The report for {0,date}, shows the
temparature as {2,number,###.##} {3} \
- * and the weather to be {1}
+ *
+ * weather.detail=The report for {0,date}, shows the
temparature as {2,number,###.##} {3} \
+ * and the weather to be {1}
+ *
*
*
*
*
- *
* </pre>
*
* @author Chris Turner
*/
-public class StringResourceModel extends
AbstractReadOnlyDetachableModel<String>
+public class StringResourceModel extends LoadableDetachableModel<String>
{
private static final long serialVersionUID = 1L;
@@ -263,7 +263,7 @@
public StringResourceModel(final String resourceKey, final Component
component,
final IModel model)
{
- this(resourceKey, component, model, null,null);
+ this(resourceKey, component, model, null, null);
}
/**
@@ -275,15 +275,15 @@
* The component that the resource is relative to
* @param model
* The model to use for property substitutions
- * @param defaultValue
+ * @param defaultValue
* The default value if the resource key is not found.
- *
+ *
* @see #StringResourceModel(String, Component, IModel, Object[])
*/
public StringResourceModel(final String resourceKey, final Component
component,
final IModel model, final String defaultValue)
{
- this(resourceKey, component, model, null,defaultValue);
+ this(resourceKey, component, model, null, defaultValue);
}
/**
@@ -297,9 +297,9 @@
* The model to use for property substitutions
* @param parameters
* The parameters to substitute using a Java MessageFormat
object
- * @param defaultValue
+ * @param defaultValue
* The default value if the resource key is not found.
- *
+ *
* @see #StringResourceModel(String, Component, IModel, Object[])
*/
public StringResourceModel(final String resourceKey, final Component
component,
@@ -307,7 +307,7 @@
{
this(resourceKey, component, model, parameters, null);
}
-
+
/**
* Creates a new string resource model using the supplied parameters.
* <p>
@@ -330,7 +330,7 @@
* The model to use for property substitutions
* @param parameters
* The parameters to substitute using a Java MessageFormat
object
- * @param defaultValue
+ * @param defaultValue
* The default value if the resource key is not found.
*/
public StringResourceModel(final String resourceKey, final Component
component,
@@ -383,9 +383,10 @@
// Get the string resource, doing any property substitutions as
part
// of the get operation
String s = localizer.getString(getResourceKey(), component,
model);
- if(s == null) s = defaultValue;
+ if (s == null)
+ s = defaultValue;
- if(s != null)
+ if (s != null)
{
// Substitute any parameters if necessary
Object[] parameters = getParameters();
@@ -401,15 +402,15 @@
}
else if (model != null && parameters[i]
instanceof String)
{
- realParams[i] =
PropertyVariableInterpolator.interpolate((String)parameters[i],
-
model.getObject());
+ realParams[i] =
PropertyVariableInterpolator.interpolate(
+
(String)parameters[i], model.getObject());
}
else
{
realParams[i] = parameters[i];
}
}
-
+
// Apply the parameters
final MessageFormat format = new
MessageFormat(s, component != null ? component
.getLocale() : locale);
@@ -477,10 +478,13 @@
}
/**
- * Attaches to the given session.
+ * Gets the string that this string resource model currently
represents. The
+ * string is returned as an object to allow it to be used generically
within
+ * components.
+ *
*/
@Override
- protected final void onAttach()
+ protected String load()
{
// Initialise information that we need to work successfully
final Session session = Session.get();
@@ -494,13 +498,14 @@
throw new WicketRuntimeException(
"Cannot attach a string resource model
without a Session context because that is required to get a Localizer");
}
+ return getString();
}
/**
* Detaches from the given session
*/
@Override
- protected final void onDetach()
+ public final void detach()
{
// Detach any model
if (model != null)
@@ -511,18 +516,9 @@
// Null out references
this.localizer = null;
this.locale = null;
- }
- /**
- * Gets the string that this string resource model currently
represents. The
- * string is returned as an object to allow it to be used generically
within
- * components.
- *
- * @see AbstractDetachableModel#onGetObject()
- */
- @Override
- protected final String onGetObject()
- {
- return getString();
+ super.detach();
}
+
+
}
Modified:
incubator/wicket/trunk/wicket/src/main/java/wicket/util/resource/TextTemplateHeaderContributor.java
URL:
http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket/src/main/java/wicket/util/resource/TextTemplateHeaderContributor.java?view=diff&rev=501283&r1=501282&r2=501283
==============================================================================
---
incubator/wicket/trunk/wicket/src/main/java/wicket/util/resource/TextTemplateHeaderContributor.java
(original)
+++
incubator/wicket/trunk/wicket/src/main/java/wicket/util/resource/TextTemplateHeaderContributor.java
Mon Jan 29 17:50:31 2007
@@ -19,8 +19,8 @@
import java.util.Map;
import wicket.behavior.StringHeaderContributor;
-import wicket.model.AbstractReadOnlyDetachableModel;
import wicket.model.IModel;
+import wicket.model.LoadableDetachableModel;
/**
* A header contributor that will contribute the contents of the given template
@@ -34,7 +34,7 @@
* This model holds the template and returns the interpolation of the
* template with of any of the
*/
- private static final class TemplateModel extends
AbstractReadOnlyDetachableModel<String>
+ private static final class TemplateModel extends
LoadableDetachableModel<String>
{
private static final long serialVersionUID = 1L;
@@ -69,31 +69,23 @@
this.variablesModel = variablesModel;
}
- /**
- * @see wicket.model.AbstractDetachableModel#onAttach()
- */
- @Override
- protected void onAttach()
- {
- }
- /**
- * @see wicket.model.AbstractDetachableModel#onDetach()
- */
@Override
- protected void onDetach()
+ public void detach()
{
if (variablesModel != null)
{
variablesModel.detach();
}
+ super.detach();
}
+
/**
- * @see wicket.model.AbstractDetachableModel#onGetObject()
+ * @see wicket.model.LoadableDetachableModel#load()
*/
@Override
- protected String onGetObject()
+ protected String load()
{
if (variablesModel != null)
{
@@ -105,6 +97,7 @@
}
return template.asString();
}
+
}
private static final long serialVersionUID = 1L;
Modified:
incubator/wicket/trunk/wicket/src/test/java/wicket/AttributeModifierComponentPage.java
URL:
http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket/src/test/java/wicket/AttributeModifierComponentPage.java?view=diff&rev=501283&r1=501282&r2=501283
==============================================================================
---
incubator/wicket/trunk/wicket/src/test/java/wicket/AttributeModifierComponentPage.java
(original)
+++
incubator/wicket/trunk/wicket/src/test/java/wicket/AttributeModifierComponentPage.java
Mon Jan 29 17:50:31 2007
@@ -18,7 +18,7 @@
import wicket.markup.html.WebPage;
import wicket.markup.html.basic.Label;
-import wicket.model.AbstractDetachableModel;
+import wicket.model.LoadableDetachableModel;
import wicket.model.Model;
/**
@@ -49,35 +49,18 @@
// Label with attribute inserter
Label label3 = new Label(this, "label3", new
Model<String>("Label 3"));
- label3.add(new AttributeModifier("class", true, new
AbstractDetachableModel<String>()
+ label3.add(new AttributeModifier("class", true, new
LoadableDetachableModel<String>()
{
private static final long serialVersionUID = 1L;
private transient String text = null;
@Override
- public void onDetach()
+ protected String load()
{
- text = null;
+ return "insertLabel";
}
- @Override
- public void onAttach()
- {
- text = "insertLabel";
- }
-
- @Override
- public String onGetObject()
- {
- return text;
- }
-
- @Override
- public void onSetObject(final String object)
- {
- text = object.toString();
- }
}));
}
Modified:
incubator/wicket/trunk/wicket/src/test/java/wicket/markup/html/debug/WicketComponentTreeTestPage_ExpectedResult.html
URL:
http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket/src/test/java/wicket/markup/html/debug/WicketComponentTreeTestPage_ExpectedResult.html?view=diff&rev=501283&r1=501282&r2=501283
==============================================================================
---
incubator/wicket/trunk/wicket/src/test/java/wicket/markup/html/debug/WicketComponentTreeTestPage_ExpectedResult.html
(original)
+++
incubator/wicket/trunk/wicket/src/test/java/wicket/markup/html/debug/WicketComponentTreeTestPage_ExpectedResult.html
Mon Jan 29 17:50:31 2007
@@ -46,13 +46,13 @@
</tr><tr wicket:id="components">
<td valign="top" align="left"><span
wicket:id="row">3</span> </td>
<td valign="top" align="left"><span
wicket:id="path">label1</span> </td>
- <td valign="top" align="left" nowrap><span
wicket:id="size">512 bytes</span> </td>
+ <td valign="top" align="left" nowrap><span
wicket:id="size">471 bytes</span> </td>
<td valign="top" align="left"><span
wicket:id="type">wicket.markup.html.basic.Label</span> </td>
<td valign="top" align="left"><span
wicket:id="model">test1</span> </td>
</tr><tr wicket:id="components">
<td valign="top" align="left"><span
wicket:id="row">4</span> </td>
<td valign="top" align="left"><span
wicket:id="path">label2</span> </td>
- <td valign="top" align="left" nowrap><span
wicket:id="size">513 bytes</span> </td>
+ <td valign="top" align="left" nowrap><span
wicket:id="size">472 bytes</span> </td>
<td valign="top" align="left"><span
wicket:id="type">wicket.markup.html.basic.Label</span> </td>
<td valign="top" align="left"><span
wicket:id="model">test22</span> </td>
</tr>
Modified:
incubator/wicket/trunk/wicket/src/test/java/wicket/model/ModelToStringTest.java
URL:
http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket/src/test/java/wicket/model/ModelToStringTest.java?view=diff&rev=501283&r1=501282&r2=501283
==============================================================================
---
incubator/wicket/trunk/wicket/src/test/java/wicket/model/ModelToStringTest.java
(original)
+++
incubator/wicket/trunk/wicket/src/test/java/wicket/model/ModelToStringTest.java
Mon Jan 29 17:50:31 2007
@@ -165,50 +165,6 @@
}
}
- /**
- * Tests AbstractReadOnlyModel.toString().
- */
- public void testAbstractReadOnlyModel()
- {
- AbstractReadOnlyModel model = new MyAbstractReadOnlyModel();
- String expected = "Model:classname=[" +
model.getClass().getName() + "]";
- assertEquals(expected, model.toString());
- }
-
- /**
- * Test stub for testing AbstractReadOnlyDetachableModel.toString()
- */
- private static class MyAbstractReadOnlyDetachableModel extends
AbstractReadOnlyDetachableModel
- {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void onAttach()
- {
- }
-
- @Override
- protected void onDetach()
- {
- }
-
- @Override
- protected Object onGetObject()
- {
- return null;
- }
- }
-
- /**
- * Tests AbstractReadOnlyModel.toString().
- */
- public void testAbstractReadOnlyDetachableModel()
- {
- AbstractReadOnlyDetachableModel model = new
MyAbstractReadOnlyDetachableModel();
- String expected = "Model:classname=[" +
model.getClass().getName() + "]"
- + ":attached=false";
- assertEquals(expected, model.toString());
- }
private static final class MyLoadableDetachableModel extends
LoadableDetachableModel
{
Modified:
incubator/wicket/trunk/wicket/src/test/java/wicket/model/StringResourceModelTest.java
URL:
http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket/src/test/java/wicket/model/StringResourceModelTest.java?view=diff&rev=501283&r1=501282&r2=501283
==============================================================================
---
incubator/wicket/trunk/wicket/src/test/java/wicket/model/StringResourceModelTest.java
(original)
+++
incubator/wicket/trunk/wicket/src/test/java/wicket/model/StringResourceModelTest.java
Mon Jan 29 17:50:31 2007
@@ -65,7 +65,7 @@
ws = new WeatherStation();
wsModel = new Model<WeatherStation>(ws);
}
-
+
@Override
protected void tearDown() throws Exception
{
@@ -195,8 +195,9 @@
{
StringResourceModel model = new
StringResourceModel("simple.text", page, wsModel);
tester.setupRequestAndResponse();
- new WebRequestCycle(tester.getWicketSession(),
tester.getWicketRequest(), tester.getWicketResponse());
- model.attach();
+ new WebRequestCycle(tester.getWicketSession(),
tester.getWicketRequest(), tester
+ .getWicketResponse());
+ model.getObject();
Assert.assertNotNull(model.getLocalizer());
model.detach();
Assert.assertNull(model.getLocalizer());
@@ -207,35 +208,25 @@
*/
public void testDetachAttachDetachableModel() throws Exception
{
- IModel wsDetachModel = new
AbstractReadOnlyDetachableModel<WeatherStation>()
+ IModel wsDetachModel = new
LoadableDetachableModel<WeatherStation>()
{
private static final long serialVersionUID = 1L;
private transient WeatherStation station;
@Override
- protected void onAttach()
- {
- station = new WeatherStation();
- }
-
- @Override
- protected void onDetach()
+ protected WeatherStation load()
{
- station = null;
+ return new WeatherStation();
}
- @Override
- protected WeatherStation onGetObject()
- {
- return station;
- }
};
StringResourceModel model = new
StringResourceModel("simple.text", page, wsDetachModel);
tester.setupRequestAndResponse();
- new WebRequestCycle(tester.getWicketSession(),
tester.getWicketRequest(), tester.getWicketResponse());
- model.attach();
+ new WebRequestCycle(tester.getWicketSession(),
tester.getWicketRequest(), tester
+ .getWicketResponse());
+ model.getObject();
Assert.assertNotNull(model.getLocalizer());
model.detach();
// Removed this because getObject() will reattach now...