<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>wicket praxis &#187; Refactoring</title>
	<atom:link href="http://www.wicket-praxis.de/blog/tag/refactoring/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.wicket-praxis.de/blog</link>
	<description>erfahrungen mit wicket aus dem projektalltag</description>
	<lastBuildDate>Thu, 15 Jul 2010 07:13:46 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Wicket und Scala &#8211; der Rückweg ist anstrengend</title>
		<link>http://www.wicket-praxis.de/blog/2009/06/19/wicket-scala/</link>
		<comments>http://www.wicket-praxis.de/blog/2009/06/19/wicket-scala/#comments</comments>
		<pubDate>Fri, 19 Jun 2009 07:20:14 +0000</pubDate>
		<dc:creator>michael</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Refactoring]]></category>
		<category><![CDATA[Wicket]]></category>
		<category><![CDATA[scala]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[lines]]></category>

		<guid isPermaLink="false">http://www.wicket-praxis.de/blog/?p=70</guid>
		<description><![CDATA[Ich habe mal ein wenig mit Scala rumgespielt und mit den Sprachmöglichkeiten, die Scala bietet, versucht aus einem Java-lastigen Wicket-Beispiel etwas zu machen, was sich wie Scala anfühlt. Zuerst der Java-Code:
package de.flapdoodle.incubator.scalawicket.web.pages;&#160;import org.apache.wicket.Component;import org.apache.wicket.IClusterable;import org.apache.wicket.ajax.AjaxRequestTarget;import org.apache.wicket.ajax.markup.html.AjaxFallbackLink;import org.apache.wicket.ajax.markup.html.AjaxLink;import org.apache.wicket.markup.html.WebPage;import org.apache.wicket.markup.html.basic.Label;import org.apache.wicket.markup.html.form.Form;import org.apache.wicket.markup.html.form.TextField;import org.apache.wicket.model.CompoundPropertyModel;import org.apache.wicket.model.IModel;import org.apache.wicket.model.Model;import org.apache.wicket.model.PropertyModel;&#160;public class StartJava extends WebPage&#123;&#160;&#160;public StartJava&#40;&#41;&#160;&#160;&#123;&#160;&#160;&#160;&#160;IModel messageModel=Model.of&#40;&#34;Huiii&#34;&#41;;&#160;&#160;&#160;&#160;final Label label=new Label&#40;&#34;message&#34;,messageModel&#41;;&#160;&#160;&#160;&#160;label.setOutputMarkupId&#40;true&#41;;&#160;&#160;&#160;&#160;&#160;add&#40;label&#41;;&#160;&#160;&#160;&#160;&#160;final Bean [...]]]></description>
			<content:encoded><![CDATA[<p>Ich habe mal ein wenig mit Scala rumgespielt und mit den Sprachmöglichkeiten, die Scala bietet, versucht aus einem Java-lastigen Wicket-Beispiel etwas zu machen, was sich wie Scala anfühlt. Zuerst der Java-Code:<br />
<!--DEVFMTCODE--><pre class="devcodeblock" title="Java"><div class="devcodeoverflow"><ol><li><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">de.flapdoodle.incubator.scalawicket.web.pages</span><span style="color: #339933;">;</span></li><li>&nbsp;</li><li><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.wicket.Component</span><span style="color: #339933;">;</span></li><li><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.wicket.IClusterable</span><span style="color: #339933;">;</span></li><li><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.wicket.ajax.AjaxRequestTarget</span><span style="color: #339933;">;</span></li><li><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.wicket.ajax.markup.html.AjaxFallbackLink</span><span style="color: #339933;">;</span></li><li><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.wicket.ajax.markup.html.AjaxLink</span><span style="color: #339933;">;</span></li><li><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.wicket.markup.html.WebPage</span><span style="color: #339933;">;</span></li><li><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.wicket.markup.html.basic.Label</span><span style="color: #339933;">;</span></li><li><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.wicket.markup.html.form.Form</span><span style="color: #339933;">;</span></li><li><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.wicket.markup.html.form.TextField</span><span style="color: #339933;">;</span></li><li><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.wicket.model.CompoundPropertyModel</span><span style="color: #339933;">;</span></li><li><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.wicket.model.IModel</span><span style="color: #339933;">;</span></li><li><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.wicket.model.Model</span><span style="color: #339933;">;</span></li><li><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.wicket.model.PropertyModel</span><span style="color: #339933;">;</span></li><li>&nbsp;</li><li><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> StartJava <span style="color: #000000; font-weight: bold;">extends</span> WebPage</li><li><span style="color: #009900;">&#123;</span></li><li>&nbsp;&nbsp;<span style="color: #000000; font-weight: bold;">public</span> StartJava<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span></li><li>&nbsp;&nbsp;<span style="color: #009900;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;IModel messageModel<span style="color: #339933;">=</span>Model.<span style="color: #006633;">of</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Huiii&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">Label</span> label<span style="color: #339933;">=</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Label</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;message&quot;</span>,messageModel<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;label.<span style="color: #006633;">setOutputMarkupId</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;add<span style="color: #009900;">&#40;</span>label<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000000; font-weight: bold;">final</span> Bean bean<span style="color: #339933;">=</span><span style="color: #000000; font-weight: bold;">new</span> Bean<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;bean.<span style="color: #006633;">setName</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Klaus&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;bean.<span style="color: #006633;">setAlter</span><span style="color: #009900;">&#40;</span>12<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">Component</span> labelName <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Label</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;name&quot;</span>,<span style="color: #000000; font-weight: bold;">new</span> PropertyModel<span style="color: #009900;">&#40;</span>bean,<span style="color: #0000ff;">&quot;name&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">setOutputMarkupId</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">Component</span> labelAlter <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Label</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;alter&quot;</span>,<span style="color: #000000; font-weight: bold;">new</span> PropertyModel<span style="color: #009900;">&#40;</span>bean,<span style="color: #0000ff;">&quot;name&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">setOutputMarkupId</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;add<span style="color: #009900;">&#40;</span>labelName<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;add<span style="color: #009900;">&#40;</span>labelAlter<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000000; font-weight: bold;">final</span> Form form<span style="color: #339933;">=</span><span style="color: #000000; font-weight: bold;">new</span> Form<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;form&quot;</span>, <span style="color: #000000; font-weight: bold;">new</span> CompoundPropertyModel<span style="color: #009900;">&#40;</span>bean<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;form.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">TextField</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;name&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">TextField</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;alter&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;form.<span style="color: #006633;">setOutputMarkupId</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;add<span style="color: #009900;">&#40;</span>form<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;add<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> AjaxFallbackLink<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;link&quot;</span>,messageModel<span style="color: #009900;">&#41;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #009900;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onClick<span style="color: #009900;">&#40;</span>AjaxRequestTarget target<span style="color: #009900;">&#41;</span> </li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #009900;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getModel<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">setObject</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Klick&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bean.<span style="color: #006633;">setName</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Peter&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target.<span style="color: #006633;">addComponent</span><span style="color: #009900;">&#40;</span>form<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target.<span style="color: #006633;">addComponent</span><span style="color: #009900;">&#40;</span>label<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target.<span style="color: #006633;">addComponent</span><span style="color: #009900;">&#40;</span>labelName<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target.<span style="color: #006633;">addComponent</span><span style="color: #009900;">&#40;</span>labelAlter<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #009900;">&#125;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;add<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> AjaxLink<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;link2&quot;</span>,messageModel<span style="color: #009900;">&#41;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #009900;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@Override</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onClick<span style="color: #009900;">&#40;</span>AjaxRequestTarget target<span style="color: #009900;">&#41;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #009900;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getModel<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">setObject</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Klack&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bean.<span style="color: #006633;">setAlter</span><span style="color: #009900;">&#40;</span>24<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target.<span style="color: #006633;">addComponent</span><span style="color: #009900;">&#40;</span>form<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target.<span style="color: #006633;">addComponent</span><span style="color: #009900;">&#40;</span>label<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target.<span style="color: #006633;">addComponent</span><span style="color: #009900;">&#40;</span>labelName<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target.<span style="color: #006633;">addComponent</span><span style="color: #009900;">&#40;</span>labelAlter<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #009900;">&#125;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;<span style="color: #009900;">&#125;</span></li><li>&nbsp;</li><li>&nbsp;&nbsp;<span style="color: #000000; font-weight: bold;">class</span> Bean <span style="color: #000000; font-weight: bold;">implements</span> IClusterable</li><li>&nbsp;&nbsp;<span style="color: #009900;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #003399;">String</span> _name<span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000066; font-weight: bold;">int</span> _alter<span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">String</span> getName<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #009900;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000000; font-weight: bold;">return</span> _name<span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #009900;">&#125;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> setName<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> name<span style="color: #009900;">&#41;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #009900;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_name <span style="color: #339933;">=</span> name<span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #009900;">&#125;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">int</span> getAlter<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #009900;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000000; font-weight: bold;">return</span> _alter<span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #009900;">&#125;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> setAlter<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> alter<span style="color: #009900;">&#41;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #009900;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_alter <span style="color: #339933;">=</span> alter<span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #009900;">&#125;</span></li><li>&nbsp;&nbsp;<span style="color: #009900;">&#125;</span></li><li><span style="color: #009900;">&#125;</span></li></ol></div></pre><!--END_DEVFMTCODE--><br />
.. und nun das ganze in Scala<br />
<!--DEVFMTCODE--><pre class="devcodeblock" title="Scala"><div class="devcodeoverflow"><ol><li><span style="color: #0000ff; font-weight: bold;">package</span> de.<span style="color: #000000;">flapdoodle</span>.<span style="color: #000000;">incubator</span>.<span style="color: #000000;">scalawicket</span>.<span style="color: #000000;">web</span>.<span style="color: #000000;">pages</span><span style="color: #000080;">;</span></li><li>&nbsp;</li><li><span style="color: #0000ff; font-weight: bold;">import</span> org.<span style="color: #000000;">apache</span>.<span style="color: #000000;">wicket</span>.<span style="color: #000000;">Component</span><span style="color: #000080;">;</span></li><li><span style="color: #0000ff; font-weight: bold;">import</span> org.<span style="color: #000000;">apache</span>.<span style="color: #000000;">wicket</span>.<span style="color: #000000;">IClusterable</span><span style="color: #000080;">;</span></li><li><span style="color: #0000ff; font-weight: bold;">import</span> org.<span style="color: #000000;">apache</span>.<span style="color: #000000;">wicket</span>.<span style="color: #000000;">ajax</span>.<span style="color: #000000;">AjaxRequestTarget</span><span style="color: #000080;">;</span></li><li><span style="color: #0000ff; font-weight: bold;">import</span> org.<span style="color: #000000;">apache</span>.<span style="color: #000000;">wicket</span>.<span style="color: #000000;">ajax</span>.<span style="color: #000000;">markup</span>.<span style="color: #000000;">html</span>.<span style="color: #000000;">AjaxFallbackLink</span><span style="color: #000080;">;</span></li><li><span style="color: #0000ff; font-weight: bold;">import</span> org.<span style="color: #000000;">apache</span>.<span style="color: #000000;">wicket</span>.<span style="color: #000000;">ajax</span>.<span style="color: #000000;">markup</span>.<span style="color: #000000;">html</span>.<span style="color: #000000;">AjaxLink</span><span style="color: #000080;">;</span></li><li><span style="color: #0000ff; font-weight: bold;">import</span> org.<span style="color: #000000;">apache</span>.<span style="color: #000000;">wicket</span>.<span style="color: #000000;">markup</span>.<span style="color: #000000;">html</span>.<span style="color: #000000;">WebPage</span><span style="color: #000080;">;</span></li><li><span style="color: #0000ff; font-weight: bold;">import</span> org.<span style="color: #000000;">apache</span>.<span style="color: #000000;">wicket</span>.<span style="color: #000000;">markup</span>.<span style="color: #000000;">html</span>.<span style="color: #000000;">basic</span>.<span style="color: #000000;">Label</span><span style="color: #000080;">;</span></li><li><span style="color: #0000ff; font-weight: bold;">import</span> org.<span style="color: #000000;">apache</span>.<span style="color: #000000;">wicket</span>.<span style="color: #000000;">markup</span>.<span style="color: #000000;">html</span>.<span style="color: #000000;">form</span>.<span style="color: #000000;">Form</span><span style="color: #000080;">;</span></li><li><span style="color: #0000ff; font-weight: bold;">import</span> org.<span style="color: #000000;">apache</span>.<span style="color: #000000;">wicket</span>.<span style="color: #000000;">markup</span>.<span style="color: #000000;">html</span>.<span style="color: #000000;">form</span>.<span style="color: #000000;">TextField</span><span style="color: #000080;">;</span></li><li><span style="color: #0000ff; font-weight: bold;">import</span> org.<span style="color: #000000;">apache</span>.<span style="color: #000000;">wicket</span>.<span style="color: #000000;">model</span>.<span style="color: #000000;">CompoundPropertyModel</span><span style="color: #000080;">;</span></li><li><span style="color: #0000ff; font-weight: bold;">import</span> org.<span style="color: #000000;">apache</span>.<span style="color: #000000;">wicket</span>.<span style="color: #000000;">model</span>.<span style="color: #000000;">IModel</span><span style="color: #000080;">;</span></li><li><span style="color: #0000ff; font-weight: bold;">import</span> org.<span style="color: #000000;">apache</span>.<span style="color: #000000;">wicket</span>.<span style="color: #000000;">model</span>.<span style="color: #000000;">Model</span><span style="color: #000080;">;</span></li><li><span style="color: #0000ff; font-weight: bold;">import</span> org.<span style="color: #000000;">apache</span>.<span style="color: #000000;">wicket</span>.<span style="color: #000000;">model</span>.<span style="color: #000000;">PropertyModel</span><span style="color: #000080;">;</span></li><li><span style="color: #0000ff; font-weight: bold;">import</span> de.<span style="color: #000000;">flapdoodle</span>.<span style="color: #000000;">incubator</span>.<span style="color: #000000;">scalawicket</span>.<span style="color: #000000;">web</span>.<span style="color: #000000;">wicket</span>.<span style="color: #000000;">WicketHelper</span>.<span style="color: #000080;">_</span></li><li><span style="color: #0000ff; font-weight: bold;">import</span> scala.<span style="color: #000000;">reflect</span>.<span style="color: #000000;">BeanProperty</span><span style="color: #000080;">;</span></li><li>&nbsp;</li><li><span style="color: #0000ff; font-weight: bold;">class</span> Start <span style="color: #0000ff; font-weight: bold;">extends</span> WebPage </li><li><span style="color: #F78811;">&#123;</span></li><li>&nbsp;&nbsp;<span style="color: #0000ff; font-weight: bold;">val</span> messageModel<span style="color: #000080;">=</span>Model.<span style="color: #000000;">of</span><span style="color: #F78811;">&#40;</span><span style="color: #6666FF;">&quot;Huiii&quot;</span><span style="color: #F78811;">&#41;</span></li><li>&nbsp;&nbsp;<span style="color: #0000ff; font-weight: bold;">val</span> label<span style="color: #000080;">=</span><span style="color: #0000ff; font-weight: bold;">new</span> Label<span style="color: #F78811;">&#40;</span><span style="color: #6666FF;">&quot;message&quot;</span>,messageModel<span style="color: #F78811;">&#41;</span></li><li>&nbsp;&nbsp;label.<span style="color: #000000;">enableAjax</span></li><li>&nbsp;</li><li>&nbsp;&nbsp;<span style="color: #0000ff; font-weight: bold;">this</span>+<span style="color: #000080;">=</span>label<span style="color: #000080;">;</span></li><li>&nbsp;</li><li>&nbsp;&nbsp;<span style="color: #0000ff; font-weight: bold;">val</span> bean<span style="color: #000080;">=</span><span style="color: #0000ff; font-weight: bold;">new</span> Bean</li><li>&nbsp;&nbsp;bean.<span style="color: #000000;">name</span><span style="color: #000080;">=</span><span style="color: #6666FF;">&quot;Klaus&quot;</span><span style="color: #000080;">;</span></li><li>&nbsp;&nbsp;bean.<span style="color: #000000;">alter</span><span style="color: #000080;">=</span><span style="color: #F78811;">12</span><span style="color: #000080;">;</span></li><li>&nbsp;</li><li>&nbsp;&nbsp;<span style="color: #0000ff; font-weight: bold;">val</span> labelName <span style="color: #000080;">=</span> <span style="color: #0000ff; font-weight: bold;">new</span> Label<span style="color: #F78811;">&#40;</span><span style="color: #6666FF;">&quot;name&quot;</span>,bean model <span style="color: #F78811;">&#123;</span><span style="color: #000080;">_</span>.<span style="color: #000000;">name</span><span style="color: #F78811;">&#125;</span><span style="color: #F78811;">&#41;</span>.<span style="color: #000000;">enableAjax</span></li><li>&nbsp;&nbsp;<span style="color: #0000ff; font-weight: bold;">val</span> labelAlter <span style="color: #000080;">=</span> <span style="color: #0000ff; font-weight: bold;">new</span> Label<span style="color: #F78811;">&#40;</span><span style="color: #6666FF;">&quot;alter&quot;</span>,bean model <span style="color: #F78811;">&#123;</span><span style="color: #000080;">_</span>.<span style="color: #000000;">alter</span><span style="color: #F78811;">&#125;</span><span style="color: #F78811;">&#41;</span>.<span style="color: #000000;">enableAjax</span></li><li>&nbsp;&nbsp;<span style="color: #0000ff; font-weight: bold;">this</span>+<span style="color: #000080;">=</span>labelName</li><li>&nbsp;&nbsp;<span style="color: #0000ff; font-weight: bold;">this</span>+<span style="color: #000080;">=</span>labelAlter</li><li>&nbsp;</li><li>&nbsp;&nbsp;<span style="color: #0000ff; font-weight: bold;">val</span> form<span style="color: #000080;">=</span><span style="color: #0000ff; font-weight: bold;">new</span> Form<span style="color: #F78811;">&#91;</span>Bean<span style="color: #F78811;">&#93;</span><span style="color: #F78811;">&#40;</span><span style="color: #6666FF;">&quot;form&quot;</span>, <span style="color: #0000ff; font-weight: bold;">new</span> CompoundPropertyModel<span style="color: #F78811;">&#91;</span>Bean<span style="color: #F78811;">&#93;</span><span style="color: #F78811;">&#40;</span>bean<span style="color: #F78811;">&#41;</span><span style="color: #F78811;">&#41;</span><span style="color: #000080;">;</span></li><li>&nbsp;&nbsp;form+<span style="color: #000080;">=</span><span style="color: #F78811;">&#40;</span><span style="color: #0000ff; font-weight: bold;">new</span> TextField<span style="color: #F78811;">&#40;</span><span style="color: #6666FF;">&quot;name&quot;</span><span style="color: #F78811;">&#41;</span>,<span style="color: #0000ff; font-weight: bold;">new</span> TextField<span style="color: #F78811;">&#40;</span><span style="color: #6666FF;">&quot;alter&quot;</span><span style="color: #F78811;">&#41;</span><span style="color: #F78811;">&#41;</span></li><li>&nbsp;&nbsp;form.<span style="color: #000000;">enableAjax</span></li><li>&nbsp;&nbsp;<span style="color: #0000ff; font-weight: bold;">this</span>+<span style="color: #000080;">=</span>form</li><li>&nbsp;</li><li>&nbsp;&nbsp;<span style="color: #0000ff; font-weight: bold;">this</span>+<span style="color: #000080;">=</span><span style="color: #0000ff; font-weight: bold;">new</span> AjaxFallbackLink<span style="color: #F78811;">&#91;</span>String<span style="color: #F78811;">&#93;</span><span style="color: #F78811;">&#40;</span><span style="color: #6666FF;">&quot;link&quot;</span>,messageModel<span style="color: #F78811;">&#41;</span></li><li>&nbsp;&nbsp;<span style="color: #F78811;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000ff; font-weight: bold;">override</span> <span style="color: #0000ff; font-weight: bold;">def</span> onClick<span style="color: #F78811;">&#40;</span>target<span style="color: #000080;">:</span> AjaxRequestTarget<span style="color: #F78811;">&#41;</span> <span style="color: #000080;">=</span> </li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #F78811;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000ff; font-weight: bold;">this</span>.<span style="color: #000000;">model</span> set <span style="color: #6666FF;">&quot;Klick&quot;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bean.<span style="color: #000000;">name</span><span style="color: #000080;">=</span><span style="color: #6666FF;">&quot;Peter&quot;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target.<span style="color: #000000;">refresh</span><span style="color: #F78811;">&#40;</span>form,label,labelName,labelAlter<span style="color: #F78811;">&#41;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #F78811;">&#125;</span></li><li>&nbsp;&nbsp;<span style="color: #F78811;">&#125;</span><span style="color: #000080;">;</span></li><li>&nbsp;</li><li>&nbsp;&nbsp;<span style="color: #0000ff; font-weight: bold;">this</span>+<span style="color: #000080;">=</span><span style="color: #0000ff; font-weight: bold;">new</span> AjaxLink<span style="color: #F78811;">&#40;</span><span style="color: #6666FF;">&quot;link2&quot;</span>,messageModel<span style="color: #F78811;">&#41;</span></li><li>&nbsp;&nbsp;<span style="color: #F78811;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000ff; font-weight: bold;">override</span> <span style="color: #0000ff; font-weight: bold;">def</span> onClick<span style="color: #F78811;">&#40;</span>target<span style="color: #000080;">:</span> AjaxRequestTarget<span style="color: #F78811;">&#41;</span> <span style="color: #000080;">=</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #F78811;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000ff; font-weight: bold;">this</span>.<span style="color: #000000;">model</span> set <span style="color: #6666FF;">&quot;Klack&quot;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bean.<span style="color: #000000;">alter</span><span style="color: #000080;">=</span>24</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target.<span style="color: #000000;">refresh</span><span style="color: #F78811;">&#40;</span>form,label,labelName,labelAlter<span style="color: #F78811;">&#41;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #F78811;">&#125;</span></li><li>&nbsp;&nbsp;<span style="color: #F78811;">&#125;</span><span style="color: #000080;">;</span></li><li>&nbsp;</li><li>&nbsp;&nbsp;<span style="color: #0000ff; font-weight: bold;">class</span> Bean <span style="color: #0000ff; font-weight: bold;">extends</span> IClusterable</li><li>&nbsp;&nbsp;<span style="color: #F78811;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000080;">@</span>BeanProperty</li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000ff; font-weight: bold;">var</span> name<span style="color: #000080;">:</span> String <span style="color: #000080;">=</span> <span style="color: #000080;">_;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000080;">@</span>BeanProperty</li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000ff; font-weight: bold;">var</span> alter<span style="color: #000080;">:</span> Integer <span style="color: #000080;">=</span> <span style="color: #000080;">_;</span></li><li>&nbsp;&nbsp;<span style="color: #F78811;">&#125;</span></li><li><span style="color: #F78811;">&#125;</span></li></ol></div></pre><!--END_DEVFMTCODE--><br />
Zuerst zu den offensichtlichen Dingen:</p>
<ul>
<li>Java: Zeilen=91, Wörter=155, Zeichen=2.567</li>
<li>Scala: Zeilen=69(75%), Wörter=126(81%), Zeichen=1.921(75%)</li>
</ul>
<p>In diesem Beispiel kann Scala seine Vorteile vielleicht noch nicht richtig ausspielen. Wobei 25% weniger Schreibarbeit (wenn man vernachlässigt, dass ich einmalig etwas Scala-Code schreiben musste, was mir das ermöglicht) für dieses Beispiel vielleicht auch schon eine bemerkenswerte Menge ist.</p>
<p>Spannender ist folgender Umstand: Ich habe den Java-Code aus dem Scala-Code abgeleitet. Wenn ich das Beispiel direkt in Java geschrieben hätte, sähe der Code fast genauso aus. Als ich aber den Scala-Code rückübersetzte, fiel es mir sehr schwer, die ganzen Typ-Definitionen zu schreiben, die abschließende Semikolons zu setzen und Parameter in geschweifte Klammern einzubetten. Auch wenn die Unterstützung für Scala in Eclipse noch einiges Potential hat, kann man a) damit bereits erstaunlich gut arbeiten (wenn man bedenkt, welche interessanten Sprachmöglichkeiten (und damit Schwierigkeiten für eine IDE) Scala bietet).</p>
<p>Meine schönste Zeile Code ist in diesem Beispiel das Erzeugen eines AbstractReadOnlyModel durch den Aufruf von <strong>&#8220;bean model { _.alter }&#8221;</strong>, der in diesem Fall das selbe leistet wie ein PropertyModel, nur dass das Attribut nicht erst per Reflection ermittelt wird.</p>
<p>Ich warte eigentlich darauf, dass jemand Wicket nach Scala portiert, denn das Lift-Framework gefällt mir nicht so gut (da wird wieder Code in die Templates verlagert). Jetzt geht es erst einmal weiter mit Java, auch wenn der Rückweg jetzt schon ein beschwerlicher war.</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share and Enjoy:</strong>
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F06%2F19%2Fwicket-scala%2F&amp;title=Wicket%20und%20Scala%20-%20der%20R%C3%BCckweg%20ist%20anstrengend&amp;bodytext=Ich%20habe%20mal%20ein%20wenig%20mit%20Scala%20rumgespielt%20und%20mit%20den%20Sprachm%C3%B6glichkeiten%2C%20die%20Scala%20bietet%2C%20versucht%20aus%20einem%20Java-lastigen%20Wicket-Beispiel%20etwas%20zu%20machen%2C%20was%20sich%20wie%20Scala%20anf%C3%BChlt.%20Zuerst%20der%20Java-Code%3A%0D%0Apackage%20de.flapdoodle.incubator.sca" title="Digg"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F06%2F19%2Fwicket-scala%2F" title="Sphinn"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F06%2F19%2Fwicket-scala%2F&amp;title=Wicket%20und%20Scala%20-%20der%20R%C3%BCckweg%20ist%20anstrengend&amp;notes=Ich%20habe%20mal%20ein%20wenig%20mit%20Scala%20rumgespielt%20und%20mit%20den%20Sprachm%C3%B6glichkeiten%2C%20die%20Scala%20bietet%2C%20versucht%20aus%20einem%20Java-lastigen%20Wicket-Beispiel%20etwas%20zu%20machen%2C%20was%20sich%20wie%20Scala%20anf%C3%BChlt.%20Zuerst%20der%20Java-Code%3A%0D%0Apackage%20de.flapdoodle.incubator.sca" title="del.icio.us"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F06%2F19%2Fwicket-scala%2F&amp;t=Wicket%20und%20Scala%20-%20der%20R%C3%BCckweg%20ist%20anstrengend" title="Facebook"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F06%2F19%2Fwicket-scala%2F&amp;title=Wicket%20und%20Scala%20-%20der%20R%C3%BCckweg%20ist%20anstrengend" title="Mixx"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F06%2F19%2Fwicket-scala%2F&amp;title=Wicket%20und%20Scala%20-%20der%20R%C3%BCckweg%20ist%20anstrengend&amp;annotation=Ich%20habe%20mal%20ein%20wenig%20mit%20Scala%20rumgespielt%20und%20mit%20den%20Sprachm%C3%B6glichkeiten%2C%20die%20Scala%20bietet%2C%20versucht%20aus%20einem%20Java-lastigen%20Wicket-Beispiel%20etwas%20zu%20machen%2C%20was%20sich%20wie%20Scala%20anf%C3%BChlt.%20Zuerst%20der%20Java-Code%3A%0D%0Apackage%20de.flapdoodle.incubator.sca" title="Google Bookmarks"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>
</ul>
</div>
<h3  class="related_post_title">Andere Beiträge</h3><ul class="related_post"><li>26. August 2009 -- <a href="http://www.wicket-praxis.de/blog/2009/08/26/scala-vs-java/" title="Scala vs Java">Scala vs Java</a></li><li>21. Juli 2009 -- <a href="http://www.wicket-praxis.de/blog/2009/07/21/sails-die-scala-version-von-rails-grail/" title="Sails &#8211; die Scala Version von Rails/Grails">Sails &#8211; die Scala Version von Rails/Grails</a></li><li>7. Juli 2009 -- <a href="http://www.wicket-praxis.de/blog/2009/07/07/scala-kommt/" title="Scala kommt">Scala kommt</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.wicket-praxis.de/blog/2009/06/19/wicket-scala/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Wicket Migration von 1.3.5 auf 1.4-rc2</title>
		<link>http://www.wicket-praxis.de/blog/2009/03/02/wicket-migration-von-135-auf-14-rc2/</link>
		<comments>http://www.wicket-praxis.de/blog/2009/03/02/wicket-migration-von-135-auf-14-rc2/#comments</comments>
		<pubDate>Mon, 02 Mar 2009 13:52:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Refactoring]]></category>
		<category><![CDATA[Wicket]]></category>
		<category><![CDATA[1.3.5]]></category>
		<category><![CDATA[1.4]]></category>

		<guid isPermaLink="false">http://www.wicket-praxis.de/blog/?p=53</guid>
		<description><![CDATA[Soeben habe ich eine Migration auf Wicket 1.4-rc2 durchgeführt. Ausschlaggebend für die Migration war die Überarbeitung im Model-Bereich. Typisierte Modelle sind sehr viel handlicher und machen den Code sehr viel lesbarer. Da man die Komponenten ja auch schon generisch angelegt hat, ging diese Information bisher in den Modellen verloren.
Interessante Statistik:

Anzahl der Java-Dateien im Webprojekt: 376
Anzahl [...]]]></description>
			<content:encoded><![CDATA[<p>Soeben habe ich eine Migration auf Wicket 1.4-rc2 durchgeführt. Ausschlaggebend für die Migration war die Überarbeitung im Model-Bereich. Typisierte Modelle sind sehr viel handlicher und machen den Code sehr viel lesbarer. Da man die Komponenten ja auch schon generisch angelegt hat, ging diese Information bisher in den Modellen verloren.</p>
<p>Interessante Statistik:</p>
<ul>
<li>Anzahl der Java-Dateien im Webprojekt: 376</li>
<li>Anzahl der Java-Dateien, die angepasst werden mussten: 32</li>
<li>Zeitaufwand für die Umstellung: 1h,30min</li>
</ul>
<p>Ich glaube, das Risiko ist gering und der Vorteil ist groß. Meine Empfehlung: Umsteigen.</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share and Enjoy:</strong>
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F03%2F02%2Fwicket-migration-von-135-auf-14-rc2%2F&amp;title=Wicket%20Migration%20von%201.3.5%20auf%201.4-rc2&amp;bodytext=Soeben%20habe%20ich%20eine%20Migration%20auf%20Wicket%201.4-rc2%20durchgef%C3%BChrt.%20Ausschlaggebend%20f%C3%BCr%20die%20Migration%20war%20die%20%C3%9Cberarbeitung%20im%20Model-Bereich.%20Typisierte%20Modelle%20sind%20sehr%20viel%20handlicher%20und%20machen%20den%20Code%20sehr%20viel%20lesbarer.%20Da%20man%20die%20Komponenten%20j" title="Digg"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F03%2F02%2Fwicket-migration-von-135-auf-14-rc2%2F" title="Sphinn"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F03%2F02%2Fwicket-migration-von-135-auf-14-rc2%2F&amp;title=Wicket%20Migration%20von%201.3.5%20auf%201.4-rc2&amp;notes=Soeben%20habe%20ich%20eine%20Migration%20auf%20Wicket%201.4-rc2%20durchgef%C3%BChrt.%20Ausschlaggebend%20f%C3%BCr%20die%20Migration%20war%20die%20%C3%9Cberarbeitung%20im%20Model-Bereich.%20Typisierte%20Modelle%20sind%20sehr%20viel%20handlicher%20und%20machen%20den%20Code%20sehr%20viel%20lesbarer.%20Da%20man%20die%20Komponenten%20j" title="del.icio.us"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F03%2F02%2Fwicket-migration-von-135-auf-14-rc2%2F&amp;t=Wicket%20Migration%20von%201.3.5%20auf%201.4-rc2" title="Facebook"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F03%2F02%2Fwicket-migration-von-135-auf-14-rc2%2F&amp;title=Wicket%20Migration%20von%201.3.5%20auf%201.4-rc2" title="Mixx"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F03%2F02%2Fwicket-migration-von-135-auf-14-rc2%2F&amp;title=Wicket%20Migration%20von%201.3.5%20auf%201.4-rc2&amp;annotation=Soeben%20habe%20ich%20eine%20Migration%20auf%20Wicket%201.4-rc2%20durchgef%C3%BChrt.%20Ausschlaggebend%20f%C3%BCr%20die%20Migration%20war%20die%20%C3%9Cberarbeitung%20im%20Model-Bereich.%20Typisierte%20Modelle%20sind%20sehr%20viel%20handlicher%20und%20machen%20den%20Code%20sehr%20viel%20lesbarer.%20Da%20man%20die%20Komponenten%20j" title="Google Bookmarks"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>
</ul>
</div>
<h3  class="related_post_title">Andere Beiträge</h3><ul class="related_post"><li>19. Juni 2009 -- <a href="http://www.wicket-praxis.de/blog/2009/06/19/wicket-scala/" title="Wicket und Scala &#8211; der Rückweg ist anstrengend">Wicket und Scala &#8211; der Rückweg ist anstrengend</a></li><li>15. Juli 2010 -- <a href="http://www.wicket-praxis.de/blog/2010/07/15/wicket-flexibilitat-mit-factories/" title="Wicket &#8211; Flexibilität mit Factories">Wicket &#8211; Flexibilität mit Factories</a></li><li>14. April 2010 -- <a href="http://www.wicket-praxis.de/blog/2010/04/14/wicket-eclipse-plugin-qwickie/" title="Wicket Eclipse Plugin &#8211;  qwickie">Wicket Eclipse Plugin &#8211;  qwickie</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.wicket-praxis.de/blog/2009/03/02/wicket-migration-von-135-auf-14-rc2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
