http://git-wip-us.apache.org/repos/asf/wicket-site/blob/2118a439/content/learn/examples/ajaxcounter.html ---------------------------------------------------------------------- diff --git a/content/learn/examples/ajaxcounter.html b/content/learn/examples/ajaxcounter.html index 69a341b..8460f2d 100644 --- a/content/learn/examples/ajaxcounter.html +++ b/content/learn/examples/ajaxcounter.html @@ -19,19 +19,19 @@ <div class="l-container"> <nav class="mainmenu"> <ul> - <!-- /start/quickstart.html || /learn/examples/ajaxcounter.html --> + <!-- /start/quickstart.html || /learn/examples/ajaxcounter --> <li class=""><a href="/start/quickstart.html">Quick Start</a></li> - <!-- /start/download.html || /learn/examples/ajaxcounter.html --> + <!-- /start/download.html || /learn/examples/ajaxcounter --> <li class=""><a href="/start/download.html">Download</a></li> - <!-- /learn || /learn/examples/ajaxcounter.html --> + <!-- /learn || /learn/examples/ajaxcounter --> <li class=""><a href="/learn">Documentation</a></li> - <!-- /help || /learn/examples/ajaxcounter.html --> + <!-- /help || /learn/examples/ajaxcounter --> <li class=""><a href="/help">Support</a></li> - <!-- /contribute || /learn/examples/ajaxcounter.html --> + <!-- /contribute || /learn/examples/ajaxcounter --> <li class=""><a href="/contribute">Contribute</a></li> - <!-- /community || /learn/examples/ajaxcounter.html --> + <!-- /community || /learn/examples/ajaxcounter --> <li class=""><a href="/community">Community</a></li> - <!-- /apache || /learn/examples/ajaxcounter.html --> + <!-- /apache || /learn/examples/ajaxcounter --> <li class=""><a href="/apache">Apache</a></li> </ul> </nav> @@ -63,39 +63,39 @@ applications. Specifically read and understand the <a href="helloworld.html">Hel example</a>.</p> <h2 id="counter-page">Counter page</h2> <p>First weâll create a page that just counts the number of times a link has been clicked. In the following markup youâll see a link and a label.</p> -<div class="highlight"><pre><code class="language-html" data-lang="html"><span class="nt"><html></span> +<figure class="highlight"><pre><code class="language-html" data-lang="html"><span class="nt"><html></span> <span class="nt"><head></head></span> <span class="nt"><body></span> - <span class="nt"><a</span> <span class="na">href=</span><span class="s">"#"</span> <span class="na">wicket:id=</span><span class="s">"link"</span><span class="nt">></span>click me<span class="nt"></a></span> + <span class="nt"><a</span> <span class="na">href=</span><span class="s">"#"</span> <span class="na">wicket:id=</span><span class="s">"link"</span><span class="nt">></span>click me<span class="nt"></a></span> <span class="nt"><p></span> - Counter: <span class="nt"><span</span> <span class="na">wicket:id=</span><span class="s">"counter"</span><span class="nt">></span>nr of times<span class="nt"></span></span> + Counter: <span class="nt"><span</span> <span class="na">wicket:id=</span><span class="s">"counter"</span><span class="nt">></span>nr of times<span class="nt"></span></span> <span class="nt"></p></span> <span class="nt"></body></span> -<span class="nt"></html></span></code></pre></div> +<span class="nt"></html></span></code></pre></figure> <p>The link component will refresh the page and the label will replace the text ânr of timesâ with the count. Take a look at the following Java file to see how it works on the Java side:</p> -<div class="highlight"><pre><code class="language-java" data-lang="java"><span class="kn">package</span> <span class="n">wicket</span><span class="o">.</span><span class="na">quickstart</span><span class="o">;</span> +<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="kn">package</span> <span class="n">wicket</span><span class="o">.</span><span class="na">quickstart</span><span class="o">;</span> <span class="kn">import</span> <span class="nn">wicket.Component</span><span class="o">;</span> <span class="kn">import</span> <span class="nn">wicket.markup.html.basic.Label</span><span class="o">;</span> <span class="kn">import</span> <span class="nn">wicket.markup.html.link.Link</span><span class="o">;</span> <span class="kn">import</span> <span class="nn">wicket.model.Model</span><span class="o">;</span> <span class="kd">public</span> <span class="kd">class</span> <span class="nc">Index</span> <span class="kd">extends</span> <span class="n">QuickStartPage</span> <span class="o">{</span> - <span class="kd">public</span> <span class="nf">Index</span><span class="o">()</span> <span class="o">{</span> + <span class="kd">public</span> <span class="n">Index</span><span class="o">()</span> <span class="o">{</span> <span class="n">Model</span><span class="o"><</span><span class="n">Integer</span><span class="o">></span> <span class="n">model</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Model</span><span class="o"><</span><span class="n">Integer</span><span class="o">>()</span> <span class="o">{</span> <span class="kd">private</span> <span class="kt">int</span> <span class="n">counter</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span> - <span class="kd">public</span> <span class="n">Integer</span> <span class="nf">getObject</span><span class="o">()</span> <span class="o">{</span> + <span class="kd">public</span> <span class="n">Integer</span> <span class="n">getObject</span><span class="o">()</span> <span class="o">{</span> <span class="k">return</span> <span class="n">counter</span><span class="o">++;</span> <span class="o">}</span> <span class="o">};</span> - <span class="n">add</span><span class="o">(</span><span class="k">new</span> <span class="nf">Link</span><span class="o">(</span><span class="s">"link"</span><span class="o">)</span> <span class="o">{</span> - <span class="kd">public</span> <span class="kt">void</span> <span class="nf">onClick</span><span class="o">()</span> <span class="o">{</span> + <span class="n">add</span><span class="o">(</span><span class="k">new</span> <span class="n">Link</span><span class="o">(</span><span class="s">"link"</span><span class="o">)</span> <span class="o">{</span> + <span class="kd">public</span> <span class="kt">void</span> <span class="n">onClick</span><span class="o">()</span> <span class="o">{</span> <span class="c1">// do nothing.</span> <span class="o">}</span> <span class="o">});</span> - <span class="n">add</span><span class="o">(</span><span class="k">new</span> <span class="n">Label</span><span class="o"><</span><span class="n">Integer</span><span class="o">>(</span><span class="s">"counter"</span><span class="o">,</span> <span class="n">model</span><span class="o">));</span> + <span class="n">add</span><span class="o">(</span><span class="k">new</span> <span class="n">Label</span><span class="o"><</span><span class="n">Integer</span><span class="o">>(</span><span class="s">"counter"</span><span class="o">,</span> <span class="n">model</span><span class="o">));</span> <span class="o">}</span> -<span class="o">}</span></code></pre></div> +<span class="o">}</span></code></pre></figure> <p>In this class we created a <code>Model</code> subclass that increases its counter everytime the <code>getObject</code> method gets called, and returns its value. We set this model on the label component, so that each time the label gets rendered @@ -110,52 +110,52 @@ so letâs make it more modern by adding some Ajax stuff.</p> we need to make the link an Ajax link. Wicket provides several types of Ajax links, but the best one for our purposes is the <code>AjaxFallbackLink</code>, as it provides a fallback to a normal request in case no Ajax is available.</p> -<div class="highlight"><pre><code class="language-java" data-lang="java"><span class="kn">package</span> <span class="n">wicket</span><span class="o">.</span><span class="na">quickstart</span><span class="o">;</span> +<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="kn">package</span> <span class="n">wicket</span><span class="o">.</span><span class="na">quickstart</span><span class="o">;</span> <span class="kn">import</span> <span class="nn">wicket.Component</span><span class="o">;</span> <span class="kn">import</span> <span class="nn">wicket.ajax.AjaxRequestTarget</span><span class="o">;</span> <span class="kn">import</span> <span class="nn">wicket.ajax.markup.html.AjaxFallbackLink</span><span class="o">;</span> <span class="kn">import</span> <span class="nn">wicket.markup.html.basic.Label</span><span class="o">;</span> <span class="kn">import</span> <span class="nn">wicket.model.Model</span><span class="o">;</span> <span class="kd">public</span> <span class="kd">class</span> <span class="nc">Index</span> <span class="kd">extends</span> <span class="n">QuickStartPage</span> <span class="o">{</span> - <span class="kd">public</span> <span class="nf">Index</span><span class="o">()</span> <span class="o">{</span> + <span class="kd">public</span> <span class="n">Index</span><span class="o">()</span> <span class="o">{</span> <span class="n">Model</span><span class="o"><</span><span class="n">Integer</span><span class="o">></span> <span class="n">model</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Model</span><span class="o"><</span><span class="n">Integer</span><span class="o">>()</span> <span class="o">{</span> <span class="kd">private</span> <span class="kt">int</span> <span class="n">counter</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span> - <span class="kd">public</span> <span class="n">Integer</span> <span class="nf">getObject</span><span class="o">()</span> <span class="o">{</span> + <span class="kd">public</span> <span class="n">Integer</span> <span class="n">getObject</span><span class="o">()</span> <span class="o">{</span> <span class="k">return</span> <span class="n">counter</span><span class="o">++;</span> <span class="o">}</span> <span class="o">};</span> - <span class="n">add</span><span class="o">(</span><span class="k">new</span> <span class="nf">AjaxFallbackLink</span><span class="o">(</span><span class="s">"link"</span><span class="o">)</span> <span class="o">{</span> - <span class="kd">public</span> <span class="kt">void</span> <span class="nf">onClick</span><span class="o">(</span><span class="n">AjaxRequestTarget</span> <span class="n">target</span><span class="o">)</span> <span class="o">{</span> + <span class="n">add</span><span class="o">(</span><span class="k">new</span> <span class="n">AjaxFallbackLink</span><span class="o">(</span><span class="s">"link"</span><span class="o">)</span> <span class="o">{</span> + <span class="kd">public</span> <span class="kt">void</span> <span class="n">onClick</span><span class="o">(</span><span class="n">AjaxRequestTarget</span> <span class="n">target</span><span class="o">)</span> <span class="o">{</span> <span class="c1">// add the components that need to be updated to </span> <span class="c1">// the target</span> <span class="o">}</span> <span class="o">});</span> - <span class="n">add</span><span class="o">(</span><span class="k">new</span> <span class="n">Label</span><span class="o"><</span><span class="n">Integer</span><span class="o">>(</span><span class="s">"counter"</span><span class="o">,</span> <span class="n">model</span><span class="o">));</span> + <span class="n">add</span><span class="o">(</span><span class="k">new</span> <span class="n">Label</span><span class="o"><</span><span class="n">Integer</span><span class="o">>(</span><span class="s">"counter"</span><span class="o">,</span> <span class="n">model</span><span class="o">));</span> <span class="o">}</span> -<span class="o">}</span></code></pre></div> +<span class="o">}</span></code></pre></figure> <p>As you can see, the <code>Link</code> has been replaced with the <code>AjaxFallbackLink</code>, and the <code>onClick</code> method now takes a new argument: the <code>AjaxRequestTarget</code>. If you want a component to be updated in the Ajax request, youâll have to add them to the target. So letâs alter the file to make it possible to add the label to the request target.</p> -<div class="highlight"><pre><code class="language-java" data-lang="java"><span class="kn">package</span> <span class="n">wicket</span><span class="o">.</span><span class="na">quickstart</span><span class="o">;</span> +<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="kn">package</span> <span class="n">wicket</span><span class="o">.</span><span class="na">quickstart</span><span class="o">;</span> <span class="kn">import</span> <span class="nn">wicket.Component</span><span class="o">;</span> <span class="kn">import</span> <span class="nn">wicket.ajax.AjaxRequestTarget</span><span class="o">;</span> <span class="kn">import</span> <span class="nn">wicket.ajax.markup.html.AjaxFallbackLink</span><span class="o">;</span> <span class="kn">import</span> <span class="nn">wicket.markup.html.basic.Label</span><span class="o">;</span> <span class="kn">import</span> <span class="nn">wicket.model.Model</span><span class="o">;</span> <span class="kd">public</span> <span class="kd">class</span> <span class="nc">Index</span> <span class="kd">extends</span> <span class="n">QuickStartPage</span> <span class="o">{</span> - <span class="kd">public</span> <span class="nf">Index</span><span class="o">()</span> <span class="o">{</span> + <span class="kd">public</span> <span class="n">Index</span><span class="o">()</span> <span class="o">{</span> <span class="n">Model</span><span class="o"><</span><span class="n">Integer</span><span class="o">></span> <span class="n">model</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Model</span><span class="o"><</span><span class="n">Integer</span><span class="o">>()</span> <span class="o">{</span> <span class="kd">private</span> <span class="kt">int</span> <span class="n">counter</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span> - <span class="kd">public</span> <span class="n">Integer</span> <span class="nf">getObject</span><span class="o">()</span> <span class="o">{</span> + <span class="kd">public</span> <span class="n">Integer</span> <span class="n">getObject</span><span class="o">()</span> <span class="o">{</span> <span class="k">return</span> <span class="n">counter</span><span class="o">++;</span> <span class="o">}</span> <span class="o">};</span> - <span class="kd">final</span> <span class="n">Label</span><span class="o"><</span><span class="n">Integer</span><span class="o">></span> <span class="n">label</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Label</span><span class="o"><</span><span class="n">Integer</span><span class="o">>(</span><span class="s">"counter"</span><span class="o">,</span> <span class="n">model</span><span class="o">);</span> + <span class="kd">final</span> <span class="n">Label</span><span class="o"><</span><span class="n">Integer</span><span class="o">></span> <span class="n">label</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Label</span><span class="o"><</span><span class="n">Integer</span><span class="o">>(</span><span class="s">"counter"</span><span class="o">,</span> <span class="n">model</span><span class="o">);</span> <span class="n">label</span><span class="o">.</span><span class="na">setOutputMarkupId</span><span class="o">(</span><span class="kc">true</span><span class="o">);</span> - <span class="n">add</span><span class="o">(</span><span class="k">new</span> <span class="nf">AjaxFallbackLink</span><span class="o">(</span><span class="s">"link"</span><span class="o">)</span> <span class="o">{</span> - <span class="kd">public</span> <span class="kt">void</span> <span class="nf">onClick</span><span class="o">(</span><span class="n">AjaxRequestTarget</span> <span class="n">target</span><span class="o">)</span> <span class="o">{</span> + <span class="n">add</span><span class="o">(</span><span class="k">new</span> <span class="n">AjaxFallbackLink</span><span class="o">(</span><span class="s">"link"</span><span class="o">)</span> <span class="o">{</span> + <span class="kd">public</span> <span class="kt">void</span> <span class="n">onClick</span><span class="o">(</span><span class="n">AjaxRequestTarget</span> <span class="n">target</span><span class="o">)</span> <span class="o">{</span> <span class="k">if</span> <span class="o">(</span><span class="n">target</span> <span class="o">!=</span> <span class="kc">null</span><span class="o">)</span> <span class="o">{</span> <span class="c1">// target is only available in an Ajax request</span> <span class="n">target</span><span class="o">.</span><span class="na">addComponent</span><span class="o">(</span><span class="n">label</span><span class="o">);</span> @@ -164,7 +164,7 @@ request target.</p> <span class="o">});</span> <span class="n">add</span><span class="o">(</span><span class="n">label</span><span class="o">);</span> <span class="o">}</span> -<span class="o">}</span></code></pre></div> +<span class="o">}</span></code></pre></figure> <p>Weâve moved the instantiation of the label to the beginning of the page constructor and made a local, final variable. This way we can reference the label in the event handler of the link component.</p>
http://git-wip-us.apache.org/repos/asf/wicket-site/blob/2118a439/content/learn/examples/dropdownchoice.html ---------------------------------------------------------------------- diff --git a/content/learn/examples/dropdownchoice.html b/content/learn/examples/dropdownchoice.html index ba29948..627cf5e 100644 --- a/content/learn/examples/dropdownchoice.html +++ b/content/learn/examples/dropdownchoice.html @@ -19,19 +19,19 @@ <div class="l-container"> <nav class="mainmenu"> <ul> - <!-- /start/quickstart.html || /learn/examples/dropdownchoice.html --> + <!-- /start/quickstart.html || /learn/examples/dropdownchoice --> <li class=""><a href="/start/quickstart.html">Quick Start</a></li> - <!-- /start/download.html || /learn/examples/dropdownchoice.html --> + <!-- /start/download.html || /learn/examples/dropdownchoice --> <li class=""><a href="/start/download.html">Download</a></li> - <!-- /learn || /learn/examples/dropdownchoice.html --> + <!-- /learn || /learn/examples/dropdownchoice --> <li class=""><a href="/learn">Documentation</a></li> - <!-- /help || /learn/examples/dropdownchoice.html --> + <!-- /help || /learn/examples/dropdownchoice --> <li class=""><a href="/help">Support</a></li> - <!-- /contribute || /learn/examples/dropdownchoice.html --> + <!-- /contribute || /learn/examples/dropdownchoice --> <li class=""><a href="/contribute">Contribute</a></li> - <!-- /community || /learn/examples/dropdownchoice.html --> + <!-- /community || /learn/examples/dropdownchoice --> <li class=""><a href="/community">Community</a></li> - <!-- /apache || /learn/examples/dropdownchoice.html --> + <!-- /apache || /learn/examples/dropdownchoice --> <li class=""><a href="/apache">Apache</a></li> </ul> </nav> @@ -61,49 +61,49 @@ used in Wicket (you can read more on models example will expand on that usage. The component is particularly designed to work with objects. So letâs say we have a list of people and we want to select the manager of an employee.</p> -<div class="highlight"><pre><code class="language-java" data-lang="java"><span class="kd">public</span> <span class="kd">class</span> <span class="nc">Person</span> <span class="o">{</span> +<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="kd">public</span> <span class="kd">class</span> <span class="nc">Person</span> <span class="o">{</span> <span class="kd">private</span> <span class="n">Long</span> <span class="n">id</span><span class="o">;</span> <span class="kd">private</span> <span class="n">String</span> <span class="n">name</span><span class="o">;</span> <span class="kd">private</span> <span class="n">Person</span> <span class="n">managedBy</span><span class="o">;</span> <span class="c1">// ... insert getters and setters</span> - <span class="cm">/**</span> -<span class="cm"> * Used to display the person.</span> -<span class="cm"> */</span> - <span class="kd">public</span> <span class="n">String</span> <span class="nf">toString</span><span class="o">()</span> <span class="o">{</span> + <span class="cm">/** + * Used to display the person. + */</span> + <span class="kd">public</span> <span class="n">String</span> <span class="n">toString</span><span class="o">()</span> <span class="o">{</span> <span class="k">return</span> <span class="n">name</span><span class="o">;</span> <span class="o">}</span> - <span class="cm">/**</span> -<span class="cm"> * Gets the list of possible managers from the database.</span> -<span class="cm"> */</span> - <span class="kd">public</span> <span class="kd">static</span> <span class="n">List</span><span class="o"><</span><span class="n">Person</span><span class="o">></span> <span class="nf">getManagers</span><span class="o">()</span> <span class="o">{</span> + <span class="cm">/** + * Gets the list of possible managers from the database. + */</span> + <span class="kd">public</span> <span class="kd">static</span> <span class="n">List</span><span class="o"><</span><span class="n">Person</span><span class="o">></span> <span class="n">getManagers</span><span class="o">()</span> <span class="o">{</span> <span class="c1">// gets the managers from the database</span> <span class="o">}</span> -<span class="o">}</span></code></pre></div> +<span class="o">}</span></code></pre></figure> <h2 id="the-assign-manager-page">The assign manager page</h2> <p>Next we want to create a page where we assign a manager to an employee. This is how the page would look like in HTML:</p> -<div class="highlight"><pre><code class="language-html" data-lang="html"><span class="nt"><html></span> +<figure class="highlight"><pre><code class="language-html" data-lang="html"><span class="nt"><html></span> <span class="nt"><body></span> -<span class="nt"><form</span> <span class="na">wicket:id=</span><span class="s">"form"</span><span class="nt">></span> +<span class="nt"><form</span> <span class="na">wicket:id=</span><span class="s">"form"</span><span class="nt">></span> <span class="nt"><h1></span>Assign manager<span class="nt"></h1></span> <span class="nt"><table></span> <span class="nt"><tr></span> <span class="nt"><th></span>Name<span class="nt"></th></span> - <span class="nt"><td</span> <span class="na">wicket:id=</span><span class="s">"name"</span><span class="nt">></span>Some employee<span class="nt"></td></span> + <span class="nt"><td</span> <span class="na">wicket:id=</span><span class="s">"name"</span><span class="nt">></span>Some employee<span class="nt"></td></span> <span class="nt"></tr></span> <span class="nt"><tr></span> <span class="nt"><th></span>Managed by<span class="nt"></th></span> - <span class="nt"><td><select</span> <span class="na">wicket:id=</span><span class="s">"managedBy"</span><span class="nt">></span> + <span class="nt"><td><select</span> <span class="na">wicket:id=</span><span class="s">"managedBy"</span><span class="nt">></span> <span class="nt"><option></span>Some Person<span class="nt"></option></span> <span class="nt"><option></span>Some Other Person<span class="nt"></option></span> <span class="nt"></select></span> <span class="nt"></td></span> <span class="nt"></tr></span> -<span class="nt"><tr><td</span> <span class="na">colspan=</span><span class="s">"2"</span><span class="nt">><input</span> <span class="na">type=</span><span class="s">"submit"</span> <span class="na">value=</span><span class="s">"Save"</span><span class="nt">/></td></tr></span> +<span class="nt"><tr><td</span> <span class="na">colspan=</span><span class="s">"2"</span><span class="nt">><input</span> <span class="na">type=</span><span class="s">"submit"</span> <span class="na">value=</span><span class="s">"Save"</span><span class="nt">/></td></tr></span> <span class="nt"></table></span> <span class="nt"></form></span> <span class="nt"></body></span> -<span class="nt"></html></span></code></pre></div> +<span class="nt"></html></span></code></pre></figure> <p>This page has three components:</p> <ul> <li>a form (needed to process the input),</li> @@ -114,24 +114,24 @@ is how the page would look like in HTML:</p> The <code><option></code> tags are there for preview, our component will replace them with the generated choices.</p> <p>Letâs see how the page looks like from the Java side:</p> -<div class="highlight"><pre><code class="language-java" data-lang="java"><span class="kd">public</span> <span class="kd">class</span> <span class="nc">AssignManagerPage</span> <span class="kd">extends</span> <span class="n">WebPage</span> <span class="o">{</span> - <span class="kd">public</span> <span class="nf">AssignManagerPage</span><span class="o">(</span><span class="n">Person</span> <span class="n">employee</span><span class="o">)</span> <span class="o">{</span> - <span class="n">Form</span> <span class="n">form</span> <span class="o">=</span> <span class="k">new</span> <span class="nf">Form</span><span class="o">(</span><span class="s">"form"</span><span class="o">);</span> +<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="kd">public</span> <span class="kd">class</span> <span class="nc">AssignManagerPage</span> <span class="kd">extends</span> <span class="n">WebPage</span> <span class="o">{</span> + <span class="kd">public</span> <span class="n">AssignManagerPage</span><span class="o">(</span><span class="n">Person</span> <span class="n">employee</span><span class="o">)</span> <span class="o">{</span> + <span class="n">Form</span> <span class="n">form</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Form</span><span class="o">(</span><span class="s">"form"</span><span class="o">);</span> <span class="n">add</span><span class="o">(</span><span class="n">form</span><span class="o">);</span> - <span class="n">form</span><span class="o">.</span><span class="na">add</span><span class="o">(</span><span class="k">new</span> <span class="nf">Label</span><span class="o">(</span><span class="s">"name"</span><span class="o">,</span> <span class="k">new</span> <span class="n">PropertyModel</span><span class="o"><</span><span class="n">String</span><span class="o">>(</span><span class="n">employee</span><span class="o">,</span> <span class="s">"name"</span><span class="o">)));</span> + <span class="n">form</span><span class="o">.</span><span class="na">add</span><span class="o">(</span><span class="k">new</span> <span class="n">Label</span><span class="o">(</span><span class="s">"name"</span><span class="o">,</span> <span class="k">new</span> <span class="n">PropertyModel</span><span class="o"><</span><span class="n">String</span><span class="o">>(</span><span class="n">employee</span><span class="o">,</span> <span class="s">"name"</span><span class="o">)));</span> <span class="n">DropDownChoice</span><span class="o"><</span><span class="n">Person</span><span class="o">></span> <span class="n">ddc</span> <span class="o">=</span> - <span class="k">new</span> <span class="n">DropDownChoice</span><span class="o"><</span><span class="n">Person</span><span class="o">>(</span><span class="s">"name"</span><span class="o">,</span> - <span class="k">new</span> <span class="n">PropertyModel</span><span class="o"><</span><span class="n">Person</span><span class="o">>(</span><span class="n">employee</span><span class="o">,</span> <span class="s">"managedBy"</span><span class="o">),</span> + <span class="k">new</span> <span class="n">DropDownChoice</span><span class="o"><</span><span class="n">Person</span><span class="o">>(</span><span class="s">"name"</span><span class="o">,</span> + <span class="k">new</span> <span class="n">PropertyModel</span><span class="o"><</span><span class="n">Person</span><span class="o">>(</span><span class="n">employee</span><span class="o">,</span> <span class="s">"managedBy"</span><span class="o">),</span> <span class="k">new</span> <span class="n">LoadableDetachableModel</span><span class="o"><</span><span class="n">List</span><span class="o"><</span><span class="n">Person</span><span class="o">>>()</span> <span class="o">{</span> <span class="nd">@Override</span> - <span class="kd">protected</span> <span class="n">Object</span> <span class="nf">load</span><span class="o">()</span> <span class="o">{</span> + <span class="kd">protected</span> <span class="n">Object</span> <span class="n">load</span><span class="o">()</span> <span class="o">{</span> <span class="k">return</span> <span class="n">Person</span><span class="o">.</span><span class="na">getManagers</span><span class="o">();</span> <span class="o">}</span> <span class="o">}</span> <span class="o">);</span> <span class="n">form</span><span class="o">.</span><span class="na">add</span><span class="o">(</span><span class="n">ddc</span><span class="o">));</span> <span class="o">}</span> -<span class="o">}</span></code></pre></div> +<span class="o">}</span></code></pre></figure> <p>In this example you see that we add the <code>DropDownChoice</code> to the form, and provide it with 3 parameters. The first is the component identifier. The second is the item that needs to be updated, in this case the <code>managedBy</code> @@ -141,18 +141,18 @@ that retrieves the list of available choices.</p> need to read the JavaDoc documentation to pick the right one for you.</p> <p>This generates (basically) the following markup when the list of managers is Kyle Brovlovski, Stan Marsh, Eric Cartman, and Kenny McCormick:</p> -<div class="highlight"><pre><code class="language-html" data-lang="html"><span class="nt"><tr></span> +<figure class="highlight"><pre><code class="language-html" data-lang="html"><span class="nt"><tr></span> <span class="nt"><th></span>Managed by<span class="nt"></th></span> <span class="nt"><td></span> - <span class="nt"><select</span> <span class="na">wicket:id=</span><span class="s">"managedBy"</span> <span class="na">name=</span><span class="s">"managedBy"</span><span class="nt">></span> - <span class="nt"><option</span> <span class="na">selected=</span><span class="s">"selected"</span> <span class="na">value=</span><span class="s">""</span><span class="nt">></span>Choose one<span class="nt"></option></span> - <span class="nt"><option</span> <span class="na">value=</span><span class="s">"0"</span><span class="nt">></span>Kyle Brovlovski<span class="nt"></option></span> - <span class="nt"><option</span> <span class="na">value=</span><span class="s">"1"</span><span class="nt">></span>Stan Marsh<span class="nt"></option></span> - <span class="nt"><option</span> <span class="na">value=</span><span class="s">"2"</span><span class="nt">></span>Eric Cartman<span class="nt"></option></span> - <span class="nt"><option</span> <span class="na">value=</span><span class="s">"3"</span><span class="nt">></span>Kenny McCormick<span class="nt"></option></span> + <span class="nt"><select</span> <span class="na">wicket:id=</span><span class="s">"managedBy"</span> <span class="na">name=</span><span class="s">"managedBy"</span><span class="nt">></span> + <span class="nt"><option</span> <span class="na">selected=</span><span class="s">"selected"</span> <span class="na">value=</span><span class="s">""</span><span class="nt">></span>Choose one<span class="nt"></option></span> + <span class="nt"><option</span> <span class="na">value=</span><span class="s">"0"</span><span class="nt">></span>Kyle Brovlovski<span class="nt"></option></span> + <span class="nt"><option</span> <span class="na">value=</span><span class="s">"1"</span><span class="nt">></span>Stan Marsh<span class="nt"></option></span> + <span class="nt"><option</span> <span class="na">value=</span><span class="s">"2"</span><span class="nt">></span>Eric Cartman<span class="nt"></option></span> + <span class="nt"><option</span> <span class="na">value=</span><span class="s">"3"</span><span class="nt">></span>Kenny McCormick<span class="nt"></option></span> <span class="nt"></select></span> <span class="nt"></td></span> -<span class="nt"></tr></span></code></pre></div> +<span class="nt"></tr></span></code></pre></figure> <p>As you can see from this markup is that Wicket added the items of the managers list and numbered the values of the options. These are the indices of the items in the list. If the order of the list can change between @@ -176,11 +176,11 @@ correct models.</p> <p>If you want to select a default value for the manager, then all you need to do is assign the default manager to the employee and Wicket will take care of the rest:</p> -<div class="highlight"><pre><code class="language-java" data-lang="java"><span class="c1">// some add new employee code</span> -<span class="n">Employee</span> <span class="n">manager</span> <span class="o">=</span> <span class="n">Employee</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="s">"Eric Cartman"</span><span class="o">);</span> <span class="c1">// gets a manager</span> -<span class="n">Employee</span> <span class="n">newEmployee</span> <span class="o">=</span> <span class="k">new</span> <span class="nf">Employee</span><span class="o">();</span> +<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="c1">// some add new employee code</span> +<span class="n">Employee</span> <span class="n">manager</span> <span class="o">=</span> <span class="n">Employee</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="s">"Eric Cartman"</span><span class="o">);</span> <span class="c1">// gets a manager</span> +<span class="n">Employee</span> <span class="n">newEmployee</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Employee</span><span class="o">();</span> <span class="n">newEmployee</span><span class="o">.</span><span class="na">setManagedBy</span><span class="o">(</span><span class="n">manager</span><span class="o">);</span> -<span class="n">setResponsePage</span><span class="o">(</span><span class="k">new</span> <span class="nf">AssignManagerPage</span><span class="o">(</span><span class="n">newEmployee</span><span class="o">));</span></code></pre></div> +<span class="n">setResponsePage</span><span class="o">(</span><span class="k">new</span> <span class="n">AssignManagerPage</span><span class="o">(</span><span class="n">newEmployee</span><span class="o">));</span></code></pre></figure> <h2 id="summary">Summary</h2> <p>This concludes the (small) example of using a <code>DropDownChoice</code> component correctly. The ideas behind Wicket are perfectly reflected in this component: http://git-wip-us.apache.org/repos/asf/wicket-site/blob/2118a439/content/learn/examples/guestbook.html ---------------------------------------------------------------------- diff --git a/content/learn/examples/guestbook.html b/content/learn/examples/guestbook.html index 8c8603e..6367fa4 100644 --- a/content/learn/examples/guestbook.html +++ b/content/learn/examples/guestbook.html @@ -19,19 +19,19 @@ <div class="l-container"> <nav class="mainmenu"> <ul> - <!-- /start/quickstart.html || /learn/examples/guestbook.html --> + <!-- /start/quickstart.html || /learn/examples/guestbook --> <li class=""><a href="/start/quickstart.html">Quick Start</a></li> - <!-- /start/download.html || /learn/examples/guestbook.html --> + <!-- /start/download.html || /learn/examples/guestbook --> <li class=""><a href="/start/download.html">Download</a></li> - <!-- /learn || /learn/examples/guestbook.html --> + <!-- /learn || /learn/examples/guestbook --> <li class=""><a href="/learn">Documentation</a></li> - <!-- /help || /learn/examples/guestbook.html --> + <!-- /help || /learn/examples/guestbook --> <li class=""><a href="/help">Support</a></li> - <!-- /contribute || /learn/examples/guestbook.html --> + <!-- /contribute || /learn/examples/guestbook --> <li class=""><a href="/contribute">Contribute</a></li> - <!-- /community || /learn/examples/guestbook.html --> + <!-- /community || /learn/examples/guestbook --> <li class=""><a href="/community">Community</a></li> - <!-- /apache || /learn/examples/guestbook.html --> + <!-- /apache || /learn/examples/guestbook --> <li class=""><a href="/apache">Apache</a></li> </ul> </nav> @@ -60,34 +60,34 @@ another. It is possible to alter this behavior, but that is beyond the scope of this example.</p> <h2 id="commentjava">Comment.java</h2> <p>The Comment POJO model is very straightforward:</p> -<div class="highlight"><pre><code class="language-java" data-lang="java"><span class="kn">package</span> <span class="n">org</span><span class="o">.</span><span class="na">apache</span><span class="o">.</span><span class="na">wicket</span><span class="o">.</span><span class="na">examples</span><span class="o">.</span><span class="na">guestbook</span><span class="o">;</span> +<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="kn">package</span> <span class="n">org</span><span class="o">.</span><span class="na">apache</span><span class="o">.</span><span class="na">wicket</span><span class="o">.</span><span class="na">examples</span><span class="o">.</span><span class="na">guestbook</span><span class="o">;</span> <span class="kn">import</span> <span class="nn">java.util.Date</span><span class="o">;</span> <span class="kn">import</span> <span class="nn">org.apache.wicket.IClusterable</span><span class="o">;</span> <span class="kd">public</span> <span class="kd">class</span> <span class="nc">Comment</span> <span class="kd">implements</span> <span class="n">IClusterable</span> <span class="o">{</span> <span class="kd">private</span> <span class="n">String</span> <span class="n">text</span><span class="o">;</span> - <span class="kd">private</span> <span class="n">Date</span> <span class="n">date</span> <span class="o">=</span> <span class="k">new</span> <span class="nf">Date</span><span class="o">();</span> - <span class="kd">public</span> <span class="nf">Comment</span><span class="o">()</span> <span class="o">{</span> + <span class="kd">private</span> <span class="n">Date</span> <span class="n">date</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Date</span><span class="o">();</span> + <span class="kd">public</span> <span class="n">Comment</span><span class="o">()</span> <span class="o">{</span> <span class="o">}</span> - <span class="kd">public</span> <span class="nf">Comment</span><span class="o">(</span><span class="kd">final</span> <span class="n">Comment</span> <span class="n">comment</span><span class="o">)</span> <span class="o">{</span> + <span class="kd">public</span> <span class="n">Comment</span><span class="o">(</span><span class="kd">final</span> <span class="n">Comment</span> <span class="n">comment</span><span class="o">)</span> <span class="o">{</span> <span class="k">this</span><span class="o">.</span><span class="na">text</span> <span class="o">=</span> <span class="n">comment</span><span class="o">.</span><span class="na">text</span><span class="o">;</span> <span class="k">this</span><span class="o">.</span><span class="na">date</span> <span class="o">=</span> <span class="n">comment</span><span class="o">.</span><span class="na">date</span><span class="o">;</span> <span class="o">}</span> - <span class="kd">public</span> <span class="n">String</span> <span class="nf">getText</span><span class="o">()</span> <span class="o">{</span> + <span class="kd">public</span> <span class="n">String</span> <span class="n">getText</span><span class="o">()</span> <span class="o">{</span> <span class="k">return</span> <span class="n">text</span><span class="o">;</span> <span class="o">}</span> - <span class="kd">public</span> <span class="kt">void</span> <span class="nf">setText</span><span class="o">(</span><span class="n">String</span> <span class="n">text</span><span class="o">)</span> <span class="o">{</span> + <span class="kd">public</span> <span class="kt">void</span> <span class="n">setText</span><span class="o">(</span><span class="n">String</span> <span class="n">text</span><span class="o">)</span> <span class="o">{</span> <span class="k">this</span><span class="o">.</span><span class="na">text</span> <span class="o">=</span> <span class="n">text</span><span class="o">;</span> <span class="o">}</span> - <span class="kd">public</span> <span class="n">Date</span> <span class="nf">getDate</span><span class="o">()</span> <span class="o">{</span> + <span class="kd">public</span> <span class="n">Date</span> <span class="n">getDate</span><span class="o">()</span> <span class="o">{</span> <span class="k">return</span> <span class="n">date</span><span class="o">;</span> <span class="o">}</span> - <span class="kd">public</span> <span class="kt">void</span> <span class="nf">setDate</span><span class="o">(</span><span class="n">Date</span> <span class="n">date</span><span class="o">)</span> <span class="o">{</span> + <span class="kd">public</span> <span class="kt">void</span> <span class="n">setDate</span><span class="o">(</span><span class="n">Date</span> <span class="n">date</span><span class="o">)</span> <span class="o">{</span> <span class="k">this</span><span class="o">.</span><span class="na">date</span> <span class="o">=</span> <span class="n">date</span><span class="o">;</span> <span class="o">}</span> - <span class="kd">public</span> <span class="n">String</span> <span class="nf">toString</span><span class="o">()</span> <span class="o">{</span> - <span class="k">return</span> <span class="s">"[Comment date = "</span> <span class="o">+</span> <span class="n">date</span> <span class="o">+</span> <span class="s">", text = "</span> <span class="o">+</span> <span class="n">text</span> <span class="o">+</span> <span class="s">"]"</span><span class="o">;</span> + <span class="kd">public</span> <span class="n">String</span> <span class="n">toString</span><span class="o">()</span> <span class="o">{</span> + <span class="k">return</span> <span class="s">"[Comment date = "</span> <span class="o">+</span> <span class="n">date</span> <span class="o">+</span> <span class="s">", text = "</span> <span class="o">+</span> <span class="n">text</span> <span class="o">+</span> <span class="s">"]"</span><span class="o">;</span> <span class="o">}</span> -<span class="o">}</span></code></pre></div> +<span class="o">}</span></code></pre></figure> <h2 id="guestbookjava">GuestBook.java</h2> <p>In the file <code>GuestBook.java</code> we have put the Java component code for the guestbook page. This is the homepage for the guestbook application. The page @@ -101,7 +101,7 @@ the comments. Notice how the model is passed in as the second argument to the <p>The implementation below obtains the <code>Comment</code> POJO from the list item and adds label components for the date and text of the <code>Comment</code>. This is all accomplished in just a few lines of code.</p> -<div class="highlight"><pre><code class="language-java" data-lang="java"><span class="kn">package</span> <span class="n">org</span><span class="o">.</span><span class="na">apache</span><span class="o">.</span><span class="na">wicket</span><span class="o">.</span><span class="na">examples</span><span class="o">.</span><span class="na">guestbook</span><span class="o">;</span> +<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="kn">package</span> <span class="n">org</span><span class="o">.</span><span class="na">apache</span><span class="o">.</span><span class="na">wicket</span><span class="o">.</span><span class="na">examples</span><span class="o">.</span><span class="na">guestbook</span><span class="o">;</span> <span class="kn">import</span> <span class="nn">java.util.ArrayList</span><span class="o">;</span> <span class="kn">import</span> <span class="nn">java.util.Collections</span><span class="o">;</span> <span class="kn">import</span> <span class="nn">java.util.Date</span><span class="o">;</span> @@ -120,63 +120,63 @@ accomplished in just a few lines of code.</p> <span class="kd">public</span> <span class="kd">final</span> <span class="kd">class</span> <span class="nc">GuestBook</span> <span class="kd">extends</span> <span class="n">WicketExamplePage</span> <span class="o">{</span> <span class="cm">/** A global list of all comments from all users across all sessions */</span> <span class="kd">private</span> <span class="kd">static</span> <span class="kd">final</span> <span class="n">List</span><span class="o"><</span><span class="n">Comment</span><span class="o">></span> <span class="n">commentList</span> <span class="o">=</span> <span class="n">Collections</span><span class="o">.</span><span class="na">synchronizedList</span><span class="o">(</span><span class="k">new</span> <span class="n">ArrayList</span><span class="o"><</span><span class="n">Comment</span><span class="o">>());</span> - <span class="cm">/**</span> -<span class="cm"> * Constructor that is invoked when page is invoked without a session.</span> -<span class="cm"> */</span> - <span class="kd">public</span> <span class="nf">GuestBook</span><span class="o">()</span> <span class="o">{</span> + <span class="cm">/** + * Constructor that is invoked when page is invoked without a session. + */</span> + <span class="kd">public</span> <span class="n">GuestBook</span><span class="o">()</span> <span class="o">{</span> <span class="c1">// Add comment form</span> - <span class="n">add</span><span class="o">(</span><span class="k">new</span> <span class="nf">CommentForm</span><span class="o">(</span><span class="s">"commentForm"</span><span class="o">));</span> + <span class="n">add</span><span class="o">(</span><span class="k">new</span> <span class="n">CommentForm</span><span class="o">(</span><span class="s">"commentForm"</span><span class="o">));</span> <span class="c1">// Add commentListView of existing comments</span> - <span class="n">add</span><span class="o">(</span><span class="k">new</span> <span class="n">PropertyListView</span><span class="o"><</span><span class="n">Comment</span><span class="o">>(</span><span class="s">"comments"</span><span class="o">,</span> <span class="n">commentList</span><span class="o">)</span> <span class="o">{</span> + <span class="n">add</span><span class="o">(</span><span class="k">new</span> <span class="n">PropertyListView</span><span class="o"><</span><span class="n">Comment</span><span class="o">>(</span><span class="s">"comments"</span><span class="o">,</span> <span class="n">commentList</span><span class="o">)</span> <span class="o">{</span> <span class="nd">@Override</span> - <span class="kd">public</span> <span class="kt">void</span> <span class="nf">populateItem</span><span class="o">(</span><span class="kd">final</span> <span class="n">ListItem</span><span class="o"><</span><span class="n">Comment</span><span class="o">></span> <span class="n">listItem</span><span class="o">)</span> <span class="o">{</span> - <span class="n">listItem</span><span class="o">.</span><span class="na">add</span><span class="o">(</span><span class="k">new</span> <span class="nf">Label</span><span class="o">(</span><span class="s">"date"</span><span class="o">));</span> - <span class="n">listItem</span><span class="o">.</span><span class="na">add</span><span class="o">(</span><span class="k">new</span> <span class="nf">MultiLineLabel</span><span class="o">(</span><span class="s">"text"</span><span class="o">));</span> + <span class="kd">public</span> <span class="kt">void</span> <span class="n">populateItem</span><span class="o">(</span><span class="kd">final</span> <span class="n">ListItem</span><span class="o"><</span><span class="n">Comment</span><span class="o">></span> <span class="n">listItem</span><span class="o">)</span> <span class="o">{</span> + <span class="n">listItem</span><span class="o">.</span><span class="na">add</span><span class="o">(</span><span class="k">new</span> <span class="n">Label</span><span class="o">(</span><span class="s">"date"</span><span class="o">));</span> + <span class="n">listItem</span><span class="o">.</span><span class="na">add</span><span class="o">(</span><span class="k">new</span> <span class="n">MultiLineLabel</span><span class="o">(</span><span class="s">"text"</span><span class="o">));</span> <span class="o">}</span> <span class="o">}).</span><span class="na">setVersioned</span><span class="o">(</span><span class="kc">false</span><span class="o">);</span> <span class="o">}</span> - <span class="cm">/**</span> -<span class="cm"> * A form that allows a user to add a comment.</span> -<span class="cm"> */</span> + <span class="cm">/** + * A form that allows a user to add a comment. + */</span> <span class="kd">public</span> <span class="kd">final</span> <span class="kd">class</span> <span class="nc">CommentForm</span> <span class="kd">extends</span> <span class="n">Form</span><span class="o"><</span><span class="n">ValueMap</span><span class="o">></span> <span class="o">{</span> - <span class="kd">public</span> <span class="nf">CommentForm</span><span class="o">(</span><span class="kd">final</span> <span class="n">String</span> <span class="n">id</span><span class="o">)</span> <span class="o">{</span> + <span class="kd">public</span> <span class="n">CommentForm</span><span class="o">(</span><span class="kd">final</span> <span class="n">String</span> <span class="n">id</span><span class="o">)</span> <span class="o">{</span> <span class="c1">// Construct form with no validation listener</span> - <span class="kd">super</span><span class="o">(</span><span class="n">id</span><span class="o">,</span> <span class="k">new</span> <span class="n">CompoundPropertyModel</span><span class="o"><</span><span class="n">ValueMap</span><span class="o">>(</span><span class="k">new</span> <span class="nf">ValueMap</span><span class="o">()));</span> + <span class="kd">super</span><span class="o">(</span><span class="n">id</span><span class="o">,</span> <span class="k">new</span> <span class="n">CompoundPropertyModel</span><span class="o"><</span><span class="n">ValueMap</span><span class="o">>(</span><span class="k">new</span> <span class="n">ValueMap</span><span class="o">()));</span> <span class="c1">// this is just to make the unit test happy</span> - <span class="n">setMarkupId</span><span class="o">(</span><span class="s">"commentForm"</span><span class="o">);</span> + <span class="n">setMarkupId</span><span class="o">(</span><span class="s">"commentForm"</span><span class="o">);</span> <span class="c1">// Add text entry widget</span> - <span class="n">add</span><span class="o">(</span><span class="k">new</span> <span class="n">TextArea</span><span class="o"><</span><span class="n">String</span><span class="o">>(</span><span class="s">"text"</span><span class="o">).</span><span class="na">setType</span><span class="o">(</span><span class="n">String</span><span class="o">.</span><span class="na">class</span><span class="o">));</span> + <span class="n">add</span><span class="o">(</span><span class="k">new</span> <span class="n">TextArea</span><span class="o"><</span><span class="n">String</span><span class="o">>(</span><span class="s">"text"</span><span class="o">).</span><span class="na">setType</span><span class="o">(</span><span class="n">String</span><span class="o">.</span><span class="na">class</span><span class="o">));</span> <span class="c1">// Add simple automated spam prevention measure.</span> - <span class="n">add</span><span class="o">(</span><span class="k">new</span> <span class="n">TextField</span><span class="o"><</span><span class="n">String</span><span class="o">>(</span><span class="s">"comment"</span><span class="o">).</span><span class="na">setType</span><span class="o">(</span><span class="n">String</span><span class="o">.</span><span class="na">class</span><span class="o">));</span> + <span class="n">add</span><span class="o">(</span><span class="k">new</span> <span class="n">TextField</span><span class="o"><</span><span class="n">String</span><span class="o">>(</span><span class="s">"comment"</span><span class="o">).</span><span class="na">setType</span><span class="o">(</span><span class="n">String</span><span class="o">.</span><span class="na">class</span><span class="o">));</span> <span class="o">}</span> - <span class="cm">/**</span> -<span class="cm"> * Show the resulting valid edit</span> -<span class="cm"> */</span> + <span class="cm">/** + * Show the resulting valid edit + */</span> <span class="nd">@Override</span> - <span class="kd">public</span> <span class="kd">final</span> <span class="kt">void</span> <span class="nf">onSubmit</span><span class="o">()</span> <span class="o">{</span> + <span class="kd">public</span> <span class="kd">final</span> <span class="kt">void</span> <span class="n">onSubmit</span><span class="o">()</span> <span class="o">{</span> <span class="n">ValueMap</span> <span class="n">values</span> <span class="o">=</span> <span class="n">getModelObject</span><span class="o">();</span> <span class="c1">// check if the honey pot is filled</span> - <span class="k">if</span> <span class="o">(</span><span class="n">StringUtils</span><span class="o">.</span><span class="na">isNotBlank</span><span class="o">((</span><span class="n">String</span><span class="o">)</span><span class="n">values</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="s">"comment"</span><span class="o">)))</span> <span class="o">{</span> - <span class="n">error</span><span class="o">(</span><span class="s">"Caught a spammer!!!"</span><span class="o">);</span> + <span class="k">if</span> <span class="o">(</span><span class="n">StringUtils</span><span class="o">.</span><span class="na">isNotBlank</span><span class="o">((</span><span class="n">String</span><span class="o">)</span><span class="n">values</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="s">"comment"</span><span class="o">)))</span> <span class="o">{</span> + <span class="n">error</span><span class="o">(</span><span class="s">"Caught a spammer!!!"</span><span class="o">);</span> <span class="k">return</span><span class="o">;</span> <span class="o">}</span> <span class="c1">// Construct a copy of the edited comment</span> - <span class="n">Comment</span> <span class="n">comment</span> <span class="o">=</span> <span class="k">new</span> <span class="nf">Comment</span><span class="o">();</span> + <span class="n">Comment</span> <span class="n">comment</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Comment</span><span class="o">();</span> <span class="c1">// Set date of comment to add</span> - <span class="n">comment</span><span class="o">.</span><span class="na">setDate</span><span class="o">(</span><span class="k">new</span> <span class="nf">Date</span><span class="o">());</span> - <span class="n">comment</span><span class="o">.</span><span class="na">setText</span><span class="o">((</span><span class="n">String</span><span class="o">)</span><span class="n">values</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="s">"text"</span><span class="o">));</span> + <span class="n">comment</span><span class="o">.</span><span class="na">setDate</span><span class="o">(</span><span class="k">new</span> <span class="n">Date</span><span class="o">());</span> + <span class="n">comment</span><span class="o">.</span><span class="na">setText</span><span class="o">((</span><span class="n">String</span><span class="o">)</span><span class="n">values</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="s">"text"</span><span class="o">));</span> <span class="n">commentList</span><span class="o">.</span><span class="na">add</span><span class="o">(</span><span class="mi">0</span><span class="o">,</span> <span class="n">comment</span><span class="o">);</span> <span class="c1">// Clear out the text component</span> - <span class="n">values</span><span class="o">.</span><span class="na">put</span><span class="o">(</span><span class="s">"text"</span><span class="o">,</span> <span class="s">""</span><span class="o">);</span> + <span class="n">values</span><span class="o">.</span><span class="na">put</span><span class="o">(</span><span class="s">"text"</span><span class="o">,</span> <span class="s">""</span><span class="o">);</span> <span class="o">}</span> <span class="o">}</span> - <span class="cm">/**</span> -<span class="cm"> * Clears the comments.</span> -<span class="cm"> */</span> - <span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">clear</span><span class="o">()</span> <span class="o">{</span> + <span class="cm">/** + * Clears the comments. + */</span> + <span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="n">clear</span><span class="o">()</span> <span class="o">{</span> <span class="n">commentList</span><span class="o">.</span><span class="na">clear</span><span class="o">();</span> <span class="o">}</span> -<span class="o">}</span></code></pre></div> +<span class="o">}</span></code></pre></figure> <p>When the <code>CommentForm</code> is submitted, the <code>onSubmit()</code> method is called. Notice that nothing gets the value of the <code>TextArea</code> that was added in the <code>CommentForm</code> constructor. This is because the comment is the model and the @@ -199,26 +199,26 @@ structure as the HTML.</p> <p>Finally, notice the <code><wicket:remove></code> block. This is simply markup that is there for previewing purposes only. When the page renders, it is stripped out.</p> -<div class="highlight"><pre><code class="language-html" data-lang="html"><span class="nt"><html</span> <span class="na">xmlns:wicket=</span><span class="s">"http://wicket.apache.org/"</span><span class="nt">></span> +<figure class="highlight"><pre><code class="language-html" data-lang="html"><span class="nt"><html</span> <span class="na">xmlns:wicket=</span><span class="s">"http://wicket.apache.org/"</span><span class="nt">></span> <span class="nt"><head></span> <span class="nt"><title></span>Wicket Examples - guestbook<span class="nt"></title></span> - <span class="nt"><link</span> <span class="na">rel=</span><span class="s">"stylesheet"</span> <span class="na">type=</span><span class="s">"text/css"</span> <span class="na">href=</span><span class="s">"style.css"</span><span class="nt">/></span> + <span class="nt"><link</span> <span class="na">rel=</span><span class="s">"stylesheet"</span> <span class="na">type=</span><span class="s">"text/css"</span> <span class="na">href=</span><span class="s">"style.css"</span><span class="nt">/></span> <span class="nt"></head></span> <span class="nt"><body></span> - <span class="nt"><span</span> <span class="na">wicket:id=</span><span class="s">"mainNavigation"</span><span class="nt">/></span> - <span class="nt"><form</span> <span class="na">wicket:id=</span><span class="s">"commentForm"</span><span class="nt">></span> + <span class="nt"><span</span> <span class="na">wicket:id=</span><span class="s">"mainNavigation"</span><span class="nt">/></span> + <span class="nt"><form</span> <span class="na">wicket:id=</span><span class="s">"commentForm"</span><span class="nt">></span> Add your comment here: <span class="nt"><p></span> - <span class="nt"><textarea</span> <span class="na">wicket:id=</span><span class="s">"text"</span><span class="nt">></span>This is a comment<span class="nt"></textarea></span> - <span class="nt"><input</span> <span class="na">type=</span><span class="s">"text"</span> <span class="na">wicket:id=</span><span class="s">"comment"</span> <span class="na">class=</span><span class="s">"nospam"</span> <span class="na">onfocus=</span><span class="s">"getElementById('formsubmit').focus();"</span><span class="nt">/></span> + <span class="nt"><textarea</span> <span class="na">wicket:id=</span><span class="s">"text"</span><span class="nt">></span>This is a comment<span class="nt"></textarea></span> + <span class="nt"><input</span> <span class="na">type=</span><span class="s">"text"</span> <span class="na">wicket:id=</span><span class="s">"comment"</span> <span class="na">class=</span><span class="s">"nospam"</span> <span class="na">onfocus=</span><span class="s">"getElementById('formsubmit').focus();"</span><span class="nt">/></span> <span class="nt"><p></span> - <span class="nt"><input</span> <span class="na">type=</span><span class="s">"submit"</span> <span class="na">value=</span><span class="s">"Submit"</span> <span class="na">id=</span><span class="s">"formsubmit"</span><span class="nt">/></span> + <span class="nt"><input</span> <span class="na">type=</span><span class="s">"submit"</span> <span class="na">value=</span><span class="s">"Submit"</span> <span class="na">id=</span><span class="s">"formsubmit"</span><span class="nt">/></span> <span class="nt"></form></span> <span class="nt"><p/></span> - <span class="nt"><span</span> <span class="na">wicket:id=</span><span class="s">"comments"</span><span class="nt">></span> + <span class="nt"><span</span> <span class="na">wicket:id=</span><span class="s">"comments"</span><span class="nt">></span> <span class="nt"><p></span> - <span class="nt"><span</span> <span class="na">wicket:id=</span><span class="s">"date"</span><span class="nt">></span>1/1/2004<span class="nt"></span><br></span> - <span class="nt"><span</span> <span class="na">wicket:id=</span><span class="s">"text"</span><span class="nt">></span>Comment text goes here.<span class="nt"></span></span> + <span class="nt"><span</span> <span class="na">wicket:id=</span><span class="s">"date"</span><span class="nt">></span>1/1/2004<span class="nt"></span><br></span> + <span class="nt"><span</span> <span class="na">wicket:id=</span><span class="s">"text"</span><span class="nt">></span>Comment text goes here.<span class="nt"></span></span> <span class="nt"></p></span> <span class="nt"></span></span> <span class="nt"><wicket:remove></span> @@ -228,32 +228,32 @@ out.</p> <span class="nt"></p></span> <span class="nt"></wicket:remove></span> <span class="nt"></body></span> -<span class="nt"></html></span></code></pre></div> +<span class="nt"></html></span></code></pre></figure> <h2 id="guestbookapplicationjava">GuestBookApplication.java</h2> <p>For completeness, weâve included the <code>GuestBookApplication</code> class, and as a final treat the modifications to the <code>web.xml</code> file.</p> -<div class="highlight"><pre><code class="language-java" data-lang="java"><span class="kn">package</span> <span class="n">org</span><span class="o">.</span><span class="na">apache</span><span class="o">.</span><span class="na">wicket</span><span class="o">.</span><span class="na">examples</span><span class="o">.</span><span class="na">guestbook</span><span class="o">;</span> +<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="kn">package</span> <span class="n">org</span><span class="o">.</span><span class="na">apache</span><span class="o">.</span><span class="na">wicket</span><span class="o">.</span><span class="na">examples</span><span class="o">.</span><span class="na">guestbook</span><span class="o">;</span> <span class="kn">import</span> <span class="nn">org.apache.wicket.Page</span><span class="o">;</span> <span class="kn">import</span> <span class="nn">org.apache.wicket.examples.WicketExampleApplication</span><span class="o">;</span> <span class="kd">public</span> <span class="kd">class</span> <span class="nc">GuestBookApplication</span> <span class="kd">extends</span> <span class="n">WicketExampleApplication</span> <span class="o">{</span> - <span class="kd">public</span> <span class="nf">GuestBookApplication</span><span class="o">()</span> <span class="o">{</span> + <span class="kd">public</span> <span class="n">GuestBookApplication</span><span class="o">()</span> <span class="o">{</span> <span class="o">}</span> <span class="nd">@Override</span> - <span class="kd">public</span> <span class="n">Class</span><span class="o"><</span> <span class="o">?</span> <span class="kd">extends</span> <span class="n">Page</span><span class="o">></span> <span class="nf">getHomePage</span><span class="o">()</span> <span class="o">{</span> + <span class="kd">public</span> <span class="n">Class</span><span class="o"><</span> <span class="o">?</span> <span class="kd">extends</span> <span class="n">Page</span><span class="o">></span> <span class="n">getHomePage</span><span class="o">()</span> <span class="o">{</span> <span class="k">return</span> <span class="n">GuestBook</span><span class="o">.</span><span class="na">class</span><span class="o">;</span> <span class="o">}</span> -<span class="o">}</span></code></pre></div> +<span class="o">}</span></code></pre></figure> <h2 id="webxml">web.xml</h2> <p>Add the following two sections (servlet and servlet-mapping) to your web.xml file for running this application.</p> -<div class="highlight"><pre><code class="language-xml" data-lang="xml"><span class="nt"><filter></span> +<figure class="highlight"><pre><code class="language-xml" data-lang="xml"><span class="nt"><filter></span> <span class="nt"><filter-name></span>GuestBookApplication<span class="nt"></filter-name></span> <span class="nt"><filter-class></span>org.apache.wicket.protocol.http.WicketFilter<span class="nt"></filter-class></span> <span class="nt"><init-param></span> <span class="nt"><param-name></span>applicationClassName<span class="nt"></param-name></span> <span class="nt"><param-value></span>org.apache.wicket.examples.guestbook.GuestBookApplication<span class="nt"></param-value></span> <span class="nt"></init-param></span> -<span class="nt"></filter></span></code></pre></div> +<span class="nt"></filter></span></code></pre></figure> </section> </div> </main> http://git-wip-us.apache.org/repos/asf/wicket-site/blob/2118a439/content/learn/examples/helloworld.html ---------------------------------------------------------------------- diff --git a/content/learn/examples/helloworld.html b/content/learn/examples/helloworld.html index 5d00539..3889498 100644 --- a/content/learn/examples/helloworld.html +++ b/content/learn/examples/helloworld.html @@ -19,19 +19,19 @@ <div class="l-container"> <nav class="mainmenu"> <ul> - <!-- /start/quickstart.html || /learn/examples/helloworld.html --> + <!-- /start/quickstart.html || /learn/examples/helloworld --> <li class=""><a href="/start/quickstart.html">Quick Start</a></li> - <!-- /start/download.html || /learn/examples/helloworld.html --> + <!-- /start/download.html || /learn/examples/helloworld --> <li class=""><a href="/start/download.html">Download</a></li> - <!-- /learn || /learn/examples/helloworld.html --> + <!-- /learn || /learn/examples/helloworld --> <li class=""><a href="/learn">Documentation</a></li> - <!-- /help || /learn/examples/helloworld.html --> + <!-- /help || /learn/examples/helloworld --> <li class=""><a href="/help">Support</a></li> - <!-- /contribute || /learn/examples/helloworld.html --> + <!-- /contribute || /learn/examples/helloworld --> <li class=""><a href="/contribute">Contribute</a></li> - <!-- /community || /learn/examples/helloworld.html --> + <!-- /community || /learn/examples/helloworld --> <li class=""><a href="/community">Community</a></li> - <!-- /apache || /learn/examples/helloworld.html --> + <!-- /apache || /learn/examples/helloworld --> <li class=""><a href="/apache">Apache</a></li> </ul> </nav> @@ -66,29 +66,29 @@ without having to go through the whole build-deploy cycle.</p> <h3 id="helloworldapplicationjava">HelloWorldApplication.java</h3> <p>Each Wicket application is defined by an Application object. This object defines what the home page is, and allows for some configuration.</p> -<div class="highlight"><pre><code class="language-java" data-lang="java"><span class="kn">import</span> <span class="nn">org.apache.wicket.protocol.http.WebApplication</span><span class="o">;</span> +<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="kn">import</span> <span class="nn">org.apache.wicket.protocol.http.WebApplication</span><span class="o">;</span> <span class="kd">public</span> <span class="kd">class</span> <span class="nc">HelloWorldApplication</span> <span class="kd">extends</span> <span class="n">WebApplication</span> <span class="o">{</span> - <span class="kd">public</span> <span class="nf">HelloWorldApplication</span><span class="o">()</span> <span class="o">{</span> + <span class="kd">public</span> <span class="n">HelloWorldApplication</span><span class="o">()</span> <span class="o">{</span> <span class="o">}</span> - <span class="cm">/**</span> -<span class="cm"> * @see org.apache.wicket.Application#getHomePage()</span> -<span class="cm"> */</span> + <span class="cm">/** + * @see org.apache.wicket.Application#getHomePage() + */</span> <span class="nd">@Override</span> - <span class="kd">public</span> <span class="n">Class</span> <span class="nf">getHomePage</span><span class="o">()</span> <span class="o">{</span> + <span class="kd">public</span> <span class="n">Class</span> <span class="n">getHomePage</span><span class="o">()</span> <span class="o">{</span> <span class="k">return</span> <span class="n">HelloWorld</span><span class="o">.</span><span class="na">class</span><span class="o">;</span> <span class="o">}</span> -<span class="o">}</span></code></pre></div> +<span class="o">}</span></code></pre></figure> <p>Here you can see that we define <code>wicket.examples.helloworld.HelloWorld</code> to be our home page. When the base URL of our application is requested, the markup rendered by the HelloWorld page is returned.</p> <h3 id="helloworldjava">HelloWorld.java</h3> -<div class="highlight"><pre><code class="language-java" data-lang="java"><span class="kn">import</span> <span class="nn">org.apache.wicket.markup.html.WebPage</span><span class="o">;</span> +<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="kn">import</span> <span class="nn">org.apache.wicket.markup.html.WebPage</span><span class="o">;</span> <span class="kn">import</span> <span class="nn">org.apache.wicket.markup.html.basic.Label</span><span class="o">;</span> <span class="kd">public</span> <span class="kd">class</span> <span class="nc">HelloWorld</span> <span class="kd">extends</span> <span class="n">WebPage</span> <span class="o">{</span> - <span class="kd">public</span> <span class="nf">HelloWorld</span><span class="o">()</span> <span class="o">{</span> - <span class="n">add</span><span class="o">(</span><span class="k">new</span> <span class="nf">Label</span><span class="o">(</span><span class="s">"message"</span><span class="o">,</span> <span class="s">"Hello World!"</span><span class="o">));</span> + <span class="kd">public</span> <span class="n">HelloWorld</span><span class="o">()</span> <span class="o">{</span> + <span class="n">add</span><span class="o">(</span><span class="k">new</span> <span class="n">Label</span><span class="o">(</span><span class="s">"message"</span><span class="o">,</span> <span class="s">"Hello World!"</span><span class="o">));</span> <span class="o">}</span> -<span class="o">}</span></code></pre></div> +<span class="o">}</span></code></pre></figure> <p>The Label is constructed using two parameters:</p> <ol> <li> @@ -103,11 +103,11 @@ the <code>Label</code> component in your HTML markup. The second parameter is th which the <code>Label</code> should render.</p> <h3 id="helloworldhtml">HelloWorld.html</h3> <p>The HTML file that defines our Hello World functionality is as follows:</p> -<div class="highlight"><pre><code class="language-html" data-lang="html"><span class="nt"><html></span> +<figure class="highlight"><pre><code class="language-html" data-lang="html"><span class="nt"><html></span> <span class="nt"><body></span> - <span class="nt"><span</span> <span class="na">wicket:id=</span><span class="s">"message"</span><span class="nt">></span>Message goes here<span class="nt"></span></span> + <span class="nt"><span</span> <span class="na">wicket:id=</span><span class="s">"message"</span><span class="nt">></span>Message goes here<span class="nt"></span></span> <span class="nt"></body></span> -<span class="nt"></html></span></code></pre></div> +<span class="nt"></html></span></code></pre></figure> <p>In this file, you see two elements that need some attention:</p> <ul> <li> @@ -125,10 +125,10 @@ content of the component is determined by your Java code.</p> <h3 id="webxml">web.xml</h3> <p>In order to deploy our HelloWorld program, we need to make our application known to the application server by means of the web.xml file.</p> -<div class="highlight"><pre><code class="language-xml" data-lang="xml"><span class="cp"><?xml version="1.0" encoding="UTF-8"?></span> -<span class="cp"><!DOCTYPE web-app</span> -<span class="cp"> PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"</span> -<span class="cp"> "http://java.sun.com/dtd/web-app_2_3.dtd"></span> +<figure class="highlight"><pre><code class="language-xml" data-lang="xml"><span class="cp"><?xml version="1.0" encoding="UTF-8"?></span> +<span class="cp"><!DOCTYPE web-app + PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" + "http://java.sun.com/dtd/web-app_2_3.dtd"></span> <span class="nt"><web-app></span> <span class="nt"><display-name></span>Wicket Examples<span class="nt"></display-name></span> <span class="nt"><filter></span> @@ -143,7 +143,7 @@ known to the application server by means of the web.xml file.</p> <span class="nt"><filter-name></span>HelloWorldApplication<span class="nt"></filter-name></span> <span class="nt"><url-pattern></span>/*<span class="nt"></url-pattern></span> <span class="nt"></filter-mapping></span> -<span class="nt"></web-app></span></code></pre></div> +<span class="nt"></web-app></span></code></pre></figure> <p>In this definition you see the Wicket filter defined, which handles all requests. In order to let Wicket know which application is available, only the applicationClassName filter parameter is needed.</p> http://git-wip-us.apache.org/repos/asf/wicket-site/blob/2118a439/content/learn/examples/index.html ---------------------------------------------------------------------- diff --git a/content/learn/examples/index.html b/content/learn/examples/index.html index 5bce172..ec871fe 100644 --- a/content/learn/examples/index.html +++ b/content/learn/examples/index.html @@ -19,19 +19,19 @@ <div class="l-container"> <nav class="mainmenu"> <ul> - <!-- /start/quickstart.html || /learn/examples --> + <!-- /start/quickstart.html || /learn/examples/ --> <li class=""><a href="/start/quickstart.html">Quick Start</a></li> - <!-- /start/download.html || /learn/examples --> + <!-- /start/download.html || /learn/examples/ --> <li class=""><a href="/start/download.html">Download</a></li> - <!-- /learn || /learn/examples --> + <!-- /learn || /learn/examples/ --> <li class=""><a href="/learn">Documentation</a></li> - <!-- /help || /learn/examples --> + <!-- /help || /learn/examples/ --> <li class=""><a href="/help">Support</a></li> - <!-- /contribute || /learn/examples --> + <!-- /contribute || /learn/examples/ --> <li class=""><a href="/contribute">Contribute</a></li> - <!-- /community || /learn/examples --> + <!-- /community || /learn/examples/ --> <li class=""><a href="/community">Community</a></li> - <!-- /apache || /learn/examples --> + <!-- /apache || /learn/examples/ --> <li class=""><a href="/apache">Apache</a></li> </ul> </nav>
