From 1e4ebecbaf289bd2f3a36e720271f007ed2a5373 Mon Sep 17 00:00:00 2001 From: Michael Mosmann Date: Thu, 7 Feb 2013 22:22:07 +0100 Subject: [PATCH] wicket reference models started --- .gitignore | 2 + wicket-reference-guide/models/pom.xml | 36 +++++++++++++++ .../reference/models/ModelsApplication.java | 33 ++++++++++++++ .../models/SerializableModelPage.html | 9 ++++ .../models/SerializableModelPage.java | 21 +++++++++ .../apache/wicket/reference/models/Start.html | 9 ++++ .../apache/wicket/reference/models/Start.java | 29 ++++++++++++ .../models/src/main/webapp/WEB-INF/web.xml | 44 +++++++++++++++++++ wicket-reference-guide/pom.xml | 1 + .../src/documentation/source/converter.rst | 5 +++ .../src/documentation/source/index.rst | 2 + .../src/documentation/source/models.rst | 30 ++++++++++++- .../src/documentation/source/requestcycle.rst | 6 +++ 13 files changed, 226 insertions(+), 1 deletion(-) create mode 100644 wicket-reference-guide/models/pom.xml create mode 100644 wicket-reference-guide/models/src/main/java/org/apache/wicket/reference/models/ModelsApplication.java create mode 100644 wicket-reference-guide/models/src/main/java/org/apache/wicket/reference/models/SerializableModelPage.html create mode 100644 wicket-reference-guide/models/src/main/java/org/apache/wicket/reference/models/SerializableModelPage.java create mode 100644 wicket-reference-guide/models/src/main/java/org/apache/wicket/reference/models/Start.html create mode 100644 wicket-reference-guide/models/src/main/java/org/apache/wicket/reference/models/Start.java create mode 100644 wicket-reference-guide/models/src/main/webapp/WEB-INF/web.xml create mode 100644 wicket-reference-guide/src/documentation/source/converter.rst create mode 100644 wicket-reference-guide/src/documentation/source/requestcycle.rst diff --git a/.gitignore b/.gitignore index 797d696ecb4..a68b3761ddb 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,6 @@ target velocity.log .project .classpath +.settings *velocity.log* +*~ diff --git a/wicket-reference-guide/models/pom.xml b/wicket-reference-guide/models/pom.xml new file mode 100644 index 00000000000..cecc5e95358 --- /dev/null +++ b/wicket-reference-guide/models/pom.xml @@ -0,0 +1,36 @@ + + + + 4.0.0 + + org.apache.wicket + wicket-reference-guide + 6.6.0-SNAPSHOT + ../pom.xml + + wicket-reference-guide-models + jar + Wicket Reference guide - Models + Models application for Wicket Reference guide. + + + org.apache.wicket + wicket-core + + + diff --git a/wicket-reference-guide/models/src/main/java/org/apache/wicket/reference/models/ModelsApplication.java b/wicket-reference-guide/models/src/main/java/org/apache/wicket/reference/models/ModelsApplication.java new file mode 100644 index 00000000000..f25569b2a19 --- /dev/null +++ b/wicket-reference-guide/models/src/main/java/org/apache/wicket/reference/models/ModelsApplication.java @@ -0,0 +1,33 @@ +/* + * 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 + * + * 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. + */ +package org.apache.wicket.reference.models; +//#docu +import org.apache.wicket.Page; +import org.apache.wicket.protocol.http.WebApplication; + +public class ModelsApplication extends WebApplication +{ + /** + * @see org.apache.wicket.Application#getHomePage() + */ + @Override + public Class getHomePage() + { + return Start.class; + } +} +//#docu \ No newline at end of file diff --git a/wicket-reference-guide/models/src/main/java/org/apache/wicket/reference/models/SerializableModelPage.html b/wicket-reference-guide/models/src/main/java/org/apache/wicket/reference/models/SerializableModelPage.html new file mode 100644 index 00000000000..229a800218f --- /dev/null +++ b/wicket-reference-guide/models/src/main/java/org/apache/wicket/reference/models/SerializableModelPage.html @@ -0,0 +1,9 @@ + + + + Models + + + The real message goes here + + diff --git a/wicket-reference-guide/models/src/main/java/org/apache/wicket/reference/models/SerializableModelPage.java b/wicket-reference-guide/models/src/main/java/org/apache/wicket/reference/models/SerializableModelPage.java new file mode 100644 index 00000000000..2cbfdbcfe13 --- /dev/null +++ b/wicket-reference-guide/models/src/main/java/org/apache/wicket/reference/models/SerializableModelPage.java @@ -0,0 +1,21 @@ +package org.apache.wicket.reference.models; + +import java.util.Date; + +import org.apache.wicket.markup.html.WebPage; +import org.apache.wicket.markup.html.basic.Label; +import org.apache.wicket.model.IModel; +import org.apache.wicket.model.Model; + +public class SerializableModelPage extends WebPage +{ + public SerializableModelPage() + { +//#docu +IModel message = Model.of("any message"); +message.setObject("current time: " + new Date()); + +add(new Label("message", message)); +//#docu + } +} diff --git a/wicket-reference-guide/models/src/main/java/org/apache/wicket/reference/models/Start.html b/wicket-reference-guide/models/src/main/java/org/apache/wicket/reference/models/Start.html new file mode 100644 index 00000000000..a99771b9077 --- /dev/null +++ b/wicket-reference-guide/models/src/main/java/org/apache/wicket/reference/models/Start.html @@ -0,0 +1,9 @@ + + + + Model Start Page + + + The real message goes here + + diff --git a/wicket-reference-guide/models/src/main/java/org/apache/wicket/reference/models/Start.java b/wicket-reference-guide/models/src/main/java/org/apache/wicket/reference/models/Start.java new file mode 100644 index 00000000000..71b816c0cf4 --- /dev/null +++ b/wicket-reference-guide/models/src/main/java/org/apache/wicket/reference/models/Start.java @@ -0,0 +1,29 @@ +/* + * 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 + * + * 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. + */ +package org.apache.wicket.reference.models; +//#docu +import org.apache.wicket.markup.html.WebPage; +import org.apache.wicket.markup.html.basic.Label; + +public class Start extends WebPage +{ + public Start() + { + add(new Label("message", "Hello World!")); + } +} +//#docu \ No newline at end of file diff --git a/wicket-reference-guide/models/src/main/webapp/WEB-INF/web.xml b/wicket-reference-guide/models/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 00000000000..ae1b6e97529 --- /dev/null +++ b/wicket-reference-guide/models/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,44 @@ + + + + + + ModelsApplication + org.apache.wicket.protocol.http.WicketFilter + + applicationClassName + org.apache.wicket.reference.models.ModelsApplication + + + + + ModelsApplication + /models/* + REQUEST + INCLUDE + ERROR + + + + 5 + + + diff --git a/wicket-reference-guide/pom.xml b/wicket-reference-guide/pom.xml index 8e6784a2f8b..beefa6843bd 100644 --- a/wicket-reference-guide/pom.xml +++ b/wicket-reference-guide/pom.xml @@ -29,6 +29,7 @@ Wicket Reference guide contains the official documentation for Apache Wicket with code samples. + models helloworld stateless diff --git a/wicket-reference-guide/src/documentation/source/converter.rst b/wicket-reference-guide/src/documentation/source/converter.rst new file mode 100644 index 00000000000..59ede98cec0 --- /dev/null +++ b/wicket-reference-guide/src/documentation/source/converter.rst @@ -0,0 +1,5 @@ +Converter +============== + +.. todo:: Custom converter + diff --git a/wicket-reference-guide/src/documentation/source/index.rst b/wicket-reference-guide/src/documentation/source/index.rst index 20a04af92bd..cab9e61b905 100644 --- a/wicket-reference-guide/src/documentation/source/index.rst +++ b/wicket-reference-guide/src/documentation/source/index.rst @@ -10,6 +10,8 @@ Contents: application components models + converter + requestcycle behaviors ajax events diff --git a/wicket-reference-guide/src/documentation/source/models.rst b/wicket-reference-guide/src/documentation/source/models.rst index 75338c89dca..c1541346a29 100644 --- a/wicket-reference-guide/src/documentation/source/models.rst +++ b/wicket-reference-guide/src/documentation/source/models.rst @@ -1,2 +1,30 @@ Model -===== +============================ +.. toctree:: + :maxdepth: 3 + +Models are a important part of any wicket application. Despite it's simple interface its a complex topic. But let's start with some easy examples. + +A very simple Model +------------------- + +There is a simple model implementation, which can hold any data, which is serializable (see :ref:`models--detach-label`). This implementation implements two methods from the IModel interface for interacting with the model value. + +.. includecode:: ../../../models/src/main/java/org/apache/wicket/reference/models/SerializableModelPage.java#docu + +This examples shows an easy way to create a model instance for a value and how the value can be changed afterwards. The Label component accepts any model value (not only strings, see :doc:`converter`). + +TODO +------------------- + +.. todo:: custom detach +.. todo:: cascading models + +.. _models--detach-label: + +Model and detach (TODO) +------------------- + +As any page contains mainly components and models. Most data is stored in models, it is important to know, that models are detached after the page is rendered (see :doc:`requestcycle`). to remove anything from the page which is not needed anymore. + + diff --git a/wicket-reference-guide/src/documentation/source/requestcycle.rst b/wicket-reference-guide/src/documentation/source/requestcycle.rst new file mode 100644 index 00000000000..11425863972 --- /dev/null +++ b/wicket-reference-guide/src/documentation/source/requestcycle.rst @@ -0,0 +1,6 @@ +Request Cycle +============= + +.. todo:: Detach +.. todo:: Render Cycle +