Modified: wicket/common/site/trunk/_site/guide/guide/whyLearn.html URL: http://svn.apache.org/viewvc/wicket/common/site/trunk/_site/guide/guide/whyLearn.html?rev=1562075&r1=1562074&r2=1562075&view=diff ============================================================================== --- wicket/common/site/trunk/_site/guide/guide/whyLearn.html (original) +++ wicket/common/site/trunk/_site/guide/guide/whyLearn.html Tue Jan 28 14:13:34 2014 @@ -51,55 +51,55 @@ function addJsClass() { <div class="toc-item" style="margin-left:0"><a href="../guide/requestProcessing.html"><strong>9</strong><span>Under the hood of the request processing</span></a> </div> - <div class="toc-item" style="margin-left:0"><a href="../guide/chapter9.html"><strong>10</strong><span>Wicket Links and URL generation</span></a> + <div class="toc-item" style="margin-left:0"><a href="../guide/urls.html"><strong>10</strong><span>Wicket Links and URL generation</span></a> </div> - <div class="toc-item" style="margin-left:0"><a href="../guide/chapter10.html"><strong>11</strong><span>Wicket models and forms</span></a> + <div class="toc-item" style="margin-left:0"><a href="../guide/modelsforms.html"><strong>11</strong><span>Wicket models and forms</span></a> </div> - <div class="toc-item" style="margin-left:0"><a href="../guide/chapter11.html"><strong>12</strong><span>Wicket forms in detail</span></a> + <div class="toc-item" style="margin-left:0"><a href="../guide/forms2.html"><strong>12</strong><span>Wicket forms in detail</span></a> </div> - <div class="toc-item" style="margin-left:0"><a href="../guide/chapter12.html"><strong>13</strong><span>Displaying multiple items with repeaters</span></a> + <div class="toc-item" style="margin-left:0"><a href="../guide/repeaters.html"><strong>13</strong><span>Displaying multiple items with repeaters</span></a> </div> - <div class="toc-item" style="margin-left:0"><a href="../guide/chapter13.html"><strong>14</strong><span>Internationalization with Wicket</span></a> + <div class="toc-item" style="margin-left:0"><a href="../guide/i18n.html"><strong>14</strong><span>Internationalization with Wicket</span></a> </div> - <div class="toc-item" style="margin-left:0"><a href="../guide/chapter14.html"><strong>15</strong><span>Resource management with Wicket</span></a> + <div class="toc-item" style="margin-left:0"><a href="../guide/resources.html"><strong>15</strong><span>Resource management with Wicket</span></a> </div> - <div class="toc-item" style="margin-left:0"><a href="../guide/chapter15.html"><strong>16</strong><span>An example of integration with JavaScript</span></a> + <div class="toc-item" style="margin-left:0"><a href="../guide/jsintegration.html"><strong>16</strong><span>An example of integration with JavaScript</span></a> </div> - <div class="toc-item" style="margin-left:0"><a href="../guide/chapter16.html"><strong>17</strong><span>Wicket advanced topics</span></a> + <div class="toc-item" style="margin-left:0"><a href="../guide/advanced.html"><strong>17</strong><span>Wicket advanced topics</span></a> </div> - <div class="toc-item" style="margin-left:0"><a href="../guide/chapter17.html"><strong>18</strong><span>Working with AJAX</span></a> + <div class="toc-item" style="margin-left:0"><a href="../guide/ajax.html"><strong>18</strong><span>Working with AJAX</span></a> </div> - <div class="toc-item" style="margin-left:0"><a href="../guide/chapter18.html"><strong>19</strong><span>Integration with enterprise containers</span></a> + <div class="toc-item" style="margin-left:0"><a href="../guide/jee.html"><strong>19</strong><span>Integration with enterprise containers</span></a> </div> - <div class="toc-item" style="margin-left:0"><a href="../guide/chapter19.html"><strong>20</strong><span>Security with Wicket</span></a> + <div class="toc-item" style="margin-left:0"><a href="../guide/security.html"><strong>20</strong><span>Security with Wicket</span></a> </div> - <div class="toc-item" style="margin-left:0"><a href="../guide/chapter20.html"><strong>21</strong><span>Test Driven Development with Wicket</span></a> + <div class="toc-item" style="margin-left:0"><a href="../guide/testing.html"><strong>21</strong><span>Test Driven Development with Wicket</span></a> </div> - <div class="toc-item" style="margin-left:0"><a href="../guide/chapter21.html"><strong>22</strong><span>Test Driven Development with Wicket and Spring</span></a> + <div class="toc-item" style="margin-left:0"><a href="../guide/testingspring.html"><strong>22</strong><span>Test Driven Development with Wicket and Spring</span></a> </div> - <div class="toc-item" style="margin-left:0"><a href="../guide/chapter22.html"><strong>23</strong><span>Wicket Best Practices</span></a> + <div class="toc-item" style="margin-left:0"><a href="../guide/bestpractices.html"><strong>23</strong><span>Wicket Best Practices</span></a> </div> - <div class="toc-item" style="margin-left:0"><a href="../guide/chapter23.html"><strong>24</strong><span>Working with Maven (Appendix)</span></a> + <div class="toc-item" style="margin-left:0"><a href="../guide/maven.html"><strong>24</strong><span>Working with Maven (Appendix)</span></a> </div> - <div class="toc-item" style="margin-left:0"><a href="../guide/chapter24.html"><strong>25</strong><span>Project WicketStuff (Appendix)</span></a> + <div class="toc-item" style="margin-left:0"><a href="../guide/wicketstuff.html"><strong>25</strong><span>Project WicketStuff (Appendix)</span></a> </div> - <div class="toc-item" style="margin-left:0"><a href="../guide/chapter25.html"><strong>26</strong><span>Lost In Redirection With Apache Wicket (Appendix)</span></a> + <div class="toc-item" style="margin-left:0"><a href="../guide/redirects.html"><strong>26</strong><span>Lost In Redirection With Apache Wicket (Appendix)</span></a> </div> <div class="toc-item" style="margin-left:0"><a href="../guide/contributing.html"><strong>27</strong><span>Contributing to this guide (Appendix)</span></a> @@ -200,7 +200,7 @@ Let's quickly review the main advantages <ul class="star"> <li><strong class="bold">Web pages are objects</strong>: web pages are not just text files sent back to the client. They are object instances and we can harness OOP to design web pages and their components. With Wicket we can also apply inheritance to HTML markup in order to build a consistent graphic layout for our applications (we will see markup inheritance in <a href="../guide/single.html#layout_2" class="guide">chapter 4.2</a>).</li> <li><strong class="bold">We don't have to worry about application's state</strong>: pages and components can be considered stateful entities. They are Java objects and they can keep a state inside them and reference other objects. We can stop worrying about keeping track of user data stored inside the <code>HttpSession</code> and we can start managing them in a natural and transparent way.</li> -<li><strong class="bold">Testing web applications is much easier</strong>: since pages and components are pure objects, you can use JUnit to test their behavior and to ensure that they render as expected. Wicket has a set of utility classes for unit testing that simulate user interaction with web pages, hence we can write acceptance tests using just JUnit without any other test framework (unit testing is covered in <a href="../guide/single.html#chapter20" class="guide">chapter 20</a>).</li> +<li><strong class="bold">Testing web applications is much easier</strong>: since pages and components are pure objects, you can use JUnit to test their behavior and to ensure that they render as expected. Wicket has a set of utility classes for unit testing that simulate user interaction with web pages, hence we can write acceptance tests using just JUnit without any other test framework (unit testing is covered in <a href="../guide/single.html#testing" class="guide">chapter 21</a>).</li> </ul><p class="paragraph"/> @@ -210,7 +210,7 @@ Wicket is not the only component oriente <li><strong class="bold">Wicket is 100% open source</strong>: Wicket is a top Apache project and it doesn't depend on any private company. You don't have to worry about future licensing changes, Wicket will always be released under Apache license 2.0 and freely available.</li> <li><strong class="bold">Wicket is a community driven project</strong>: The Wicket team supports and promotes the dialogue with the framework's users through two mailing lists <a href="http://wicket.apache.org/help/email.html" target="blank">(one for users and another one for framework developers)</a> and an <a href="https://issues.apache.org/jira/browse/WICKET" target="blank">Apache JIRA</a> (the issue tracking system). Moreover, as any other Apache project, Wicket is developed paying great attention to user feedbacks and to suggested features.</li> <li><strong class="bold">Wicket is just about Java and good old HTML</strong>: almost all web frameworks force users to adopt special tags or to use server side code inside HTML markup. This is clearly in contrast with the concept of separation between presentation and business logic and it leads to a more confusing code in our pages. In Wicket we don't have to take care of generating HTML inside the page itself, and we won't need to use any tag other than standard HTML tags. All we have to do is to attach our components (Java instances) to the HTML tags using a simple tag attribute called <code>wicket:id</code> (we will shortly see how to use it).</li> -<li><strong class="bold">With Wicket we can easily use JavaBeans and <a href="http://en.wikipedia.org/wiki/Plain_Old_Java_Object" target="blank">POJO</a> in our web tier</strong>: one of the most annoying and error-prone task in web development is collecting user input through a form and keeping form fields updated with previously inserted values. This usually requires a huge amount of code to extract input from request parameters (which are strings), parse them to Java types and store them into some kind of variable. And this is just half of the work we have to do as we must implement the inverse path (load data from Java to the web form).Moreover, most of the times our forms will use a JavaBean or a POJO as backing object, meaning that we must manually map form fields with the corresponding object fields and vice versa. Wicket comes with an intuitive and flexible mechanism that does this mapping for us without any configuration overhead (using a convention over configuration appro ach) and in a transparent way. <a href="../guide/single.html#chapter10" class="guide">Chapter 10</a> will introduce the concept of Wicket model and we will learn how to harness this entity with forms.</li> +<li><strong class="bold">With Wicket we can easily use JavaBeans and <a href="http://en.wikipedia.org/wiki/Plain_Old_Java_Object" target="blank">POJO</a> in our web tier</strong>: one of the most annoying and error-prone task in web development is collecting user input through a form and keeping form fields updated with previously inserted values. This usually requires a huge amount of code to extract input from request parameters (which are strings), parse them to Java types and store them into some kind of variable. And this is just half of the work we have to do as we must implement the inverse path (load data from Java to the web form).Moreover, most of the times our forms will use a JavaBean or a POJO as backing object, meaning that we must manually map form fields with the corresponding object fields and vice versa. Wicket comes with an intuitive and flexible mechanism that does this mapping for us without any configuration overhead (using a convention over configuration appro ach) and in a transparent way. <a href="../guide/single.html#modelsforms" class="guide">Chapter 10</a> will introduce the concept of Wicket model and we will learn how to harness this entity with forms.</li> <li><strong class="bold">No complex XML needed</strong>: Wicket was designed to minimize the amount of configuration files needed to run our applications. No XML file is required except for the standard deployment descriptor web.xml (unless you are using Servlet 3 or a later version. See <a href="../guide/single.html#whyLearn_2" class="guide">Chapter 4</a> for more details).</li> </ul><p class="paragraph"/>
Added: wicket/common/site/trunk/_site/guide/guide/wicketstuff.html URL: http://svn.apache.org/viewvc/wicket/common/site/trunk/_site/guide/guide/wicketstuff.html?rev=1562075&view=auto ============================================================================== --- wicket/common/site/trunk/_site/guide/guide/wicketstuff.html (added) +++ wicket/common/site/trunk/_site/guide/guide/wicketstuff.html Tue Jan 28 14:13:34 2014 @@ -0,0 +1,298 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> +<head> + <title>25 Project WicketStuff (Appendix) 6.x</title> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> + <link rel="stylesheet" href="../css/main.css" type="text/css" media="screen, print" title="Style" charset="utf-8"/> + <link rel="stylesheet" href="../css/pdf.css" type="text/css" media="print" title="PDF" charset="utf-8"/> + <script type="text/javascript"> +function addJsClass() { + var classes = document.body.className.split(" "); + classes.push("js"); + document.body.className = classes.join(" "); +} + </script> +</head> + +<body class="body" onload="addJsClass();"> +<div id="navigation"> + <ul> + <li> + <div id="nav-summary" onmouseover="toggleNavSummary(false)" onmouseout="toggleNavSummary(true)"> + <a href="../guide/index.html" class="button">Table of contents</a> + + <div id="nav-summary-childs" style="display:none;"> + + <div class="toc-item" style="margin-left:0"><a href="../guide/introduction.html"><strong>1</strong><span>Introduction</span></a> + </div> + + <div class="toc-item" style="margin-left:0"><a href="../guide/howToSource.html"><strong>2</strong><span>How to use the example code</span></a> + </div> + + <div class="toc-item" style="margin-left:0"><a href="../guide/whyLearn.html"><strong>3</strong><span>Why should I learn Wicket?</span></a> + </div> + + <div class="toc-item" style="margin-left:0"><a href="../guide/helloWorld.html"><strong>4</strong><span>Wicket says “Hello world!”</span></a> + </div> + + <div class="toc-item" style="margin-left:0"><a href="../guide/layout.html"><strong>5</strong><span>Wicket as page layout manager</span></a> + </div> + + <div class="toc-item" style="margin-left:0"><a href="../guide/keepControl.html"><strong>6</strong><span>Keeping control over HTML</span></a> + </div> + + <div class="toc-item" style="margin-left:0"><a href="../guide/componentLifecycle.html"><strong>7</strong><span>Components lifecycle</span></a> + </div> + + <div class="toc-item" style="margin-left:0"><a href="../guide/versioningCaching.html"><strong>8</strong><span>Page versioning and caching</span></a> + </div> + + <div class="toc-item" style="margin-left:0"><a href="../guide/requestProcessing.html"><strong>9</strong><span>Under the hood of the request processing</span></a> + </div> + + <div class="toc-item" style="margin-left:0"><a href="../guide/urls.html"><strong>10</strong><span>Wicket Links and URL generation</span></a> + </div> + + <div class="toc-item" style="margin-left:0"><a href="../guide/modelsforms.html"><strong>11</strong><span>Wicket models and forms</span></a> + </div> + + <div class="toc-item" style="margin-left:0"><a href="../guide/forms2.html"><strong>12</strong><span>Wicket forms in detail</span></a> + </div> + + <div class="toc-item" style="margin-left:0"><a href="../guide/repeaters.html"><strong>13</strong><span>Displaying multiple items with repeaters</span></a> + </div> + + <div class="toc-item" style="margin-left:0"><a href="../guide/i18n.html"><strong>14</strong><span>Internationalization with Wicket</span></a> + </div> + + <div class="toc-item" style="margin-left:0"><a href="../guide/resources.html"><strong>15</strong><span>Resource management with Wicket</span></a> + </div> + + <div class="toc-item" style="margin-left:0"><a href="../guide/jsintegration.html"><strong>16</strong><span>An example of integration with JavaScript</span></a> + </div> + + <div class="toc-item" style="margin-left:0"><a href="../guide/advanced.html"><strong>17</strong><span>Wicket advanced topics</span></a> + </div> + + <div class="toc-item" style="margin-left:0"><a href="../guide/ajax.html"><strong>18</strong><span>Working with AJAX</span></a> + </div> + + <div class="toc-item" style="margin-left:0"><a href="../guide/jee.html"><strong>19</strong><span>Integration with enterprise containers</span></a> + </div> + + <div class="toc-item" style="margin-left:0"><a href="../guide/security.html"><strong>20</strong><span>Security with Wicket</span></a> + </div> + + <div class="toc-item" style="margin-left:0"><a href="../guide/testing.html"><strong>21</strong><span>Test Driven Development with Wicket</span></a> + </div> + + <div class="toc-item" style="margin-left:0"><a href="../guide/testingspring.html"><strong>22</strong><span>Test Driven Development with Wicket and Spring</span></a> + </div> + + <div class="toc-item" style="margin-left:0"><a href="../guide/bestpractices.html"><strong>23</strong><span>Wicket Best Practices</span></a> + </div> + + <div class="toc-item" style="margin-left:0"><a href="../guide/maven.html"><strong>24</strong><span>Working with Maven (Appendix)</span></a> + </div> + + <div class="toc-item" style="margin-left:0"><a href="../guide/wicketstuff.html"><strong>25</strong><span>Project WicketStuff (Appendix)</span></a> + </div> + + <div class="toc-item" style="margin-left:0"><a href="../guide/redirects.html"><strong>26</strong><span>Lost In Redirection With Apache Wicket (Appendix)</span></a> + </div> + + <div class="toc-item" style="margin-left:0"><a href="../guide/contributing.html"><strong>27</strong><span>Contributing to this guide (Appendix)</span></a> + </div> + + </div> + </div> + </li> + <li class="separator selected"> + <a id="ref-button" onclick="localToggle(); return false;" href="#">Quick Reference</a> + </li> + </ul> +</div> +<div id="header"> + <div class="images clearfix"> + + <span id="logo"><a href="/" target="_blank"><img height="80px" src="http://wicket.apache.org/guide/img/apache-wicket.png"/></a></span> + + + <span id="sponsor"><a href="http://www.apache.org/" target="_blank"><img height="60px" src="http://wicket.apache.org/guide/img/asf_logo.gif"/></a></span> + + </div> + <p>Free Online Guide for Apache Wicket framework</p> +</div> + + +<table id="colset" border="0" cellpadding="0" cellspacing="0"> + <tr> + <td id="col1"> + <div id="main" class="corner-all"> + + + <div class="toc-item prev-left"><a href="../guide/maven.html"><< <strong>24</strong><span>Working with Maven (Appendix)</span></a></div> + + + <span id='toggle-col1' class="toggle">(<a href="#" onclick="localToggle(); return false;">Quick Reference</a>)</span> + + + <div class="toc-item next-right"><a href="../guide/redirects.html"><strong>26</strong><span>Lost In Redirection With Apache Wicket (Appendix)</span> >></a></div> + + + + <div class="project"> + <h1>25 Project WicketStuff (Appendix) - Reference Documentation</h1> + + <p><strong>Authors:</strong> Andrea Del Bene, Carsten Hufe, Christian Kroemer, Daniel Bartl, Paul BorÈ</p> + + <p><strong>Version:</strong> 6.x</p> + + + </div> + + + <div id="table-of-content"> + <h2>Table of Contents</h2> + + <div class="toc-item" style="margin-left:0px"><a href="#wicketstuff_1"><strong>25.1</strong><span>What is project WicketStuff</span></a> + </div> + + <div class="toc-item" style="margin-left:0px"><a href="#wicketstuff_2"><strong>25.2</strong><span>Module tinymce</span></a> + </div> + + <div class="toc-item" style="margin-left:0px"><a href="#wicketstuff_3"><strong>25.3</strong><span>Module wicketstuff-gmap3</span></a> + </div> + + <div class="toc-item" style="margin-left:0px"><a href="#wicketstuff_4"><strong>25.4</strong><span>Module wicketstuff-googlecharts</span></a> + </div> + + <div class="toc-item" style="margin-left:0px"><a href="#wicketstuff_5"><strong>25.5</strong><span>Module wicketstuff-inmethod-grid</span></a> + </div> + + </div> + + + + +<h1 id="wicketstuff">25 Project WicketStuff (Appendix)</h1> + + + +<h2 id="wicketstuff_1">25.1 What is project WicketStuff</h2> +<p class="paragraph"/>WicketStuff is an umbrella project that gathers different Wicket-related projects developed and maintained by the community. The project is hosted on GitHub at <a href="https://github.com/wicketstuff/core." target="blank">https://github.com/wicketstuff/core</a> Every module is structured as a parent Maven project containing the actual project that implements the new functionality and an example project that illustrates how to use it in our code. The resulting directory structure of each module is the following:<p class="paragraph"/><div class="code"><pre><module name>-parent + | + +---<module name> + ---<module name>-examples</pre></div><p class="paragraph"/>So far we have introduced only modules Kryo Serializer and JavaEE Inject, but WicketStuff comes with many other modules that can be used in our applications. Some of them come in handy to improve the user experience of our pages with complex components or integrating some popular web services (like <a href="http://maps.google.com/" target="blank">Google Maps</a> ) and JavaScript libraries (like <a href="http://www.tinymce.com/" target="blank">TinyMCE</a> ).<p class="paragraph"/>This appendix provides a quick overview of what WicketStuff offers to enhance the usability and the visually-appealing of our pages.<p class="paragraph"/><blockquote class="note"> +Every WicketStuff module can be downloaded as JAR archive at <a href="http://mvnrepository.com" target="blank">http://mvnrepository.com</a> . This site provides also the XML fragment needed to include it as a dependency into our pom.xml file. +</blockquote> + + +<h2 id="wicketstuff_2">25.2 Module tinymce</h2> +<p class="paragraph"/>Module tinymce offers integration with the namesake JavaScript library that turns our âhumbleâ text-areas into a full-featured HTML WYSIWYG editor:<p class="paragraph"/><img border="0" class="center" src="../img/tinymce.png"></img><p class="paragraph"/>To âtinyfyâ a textarea component we must use behavior TinyMceBehavior:<p class="paragraph"/><div class="code"><pre>TextArea textArea = <span class="java-keyword">new</span> TextArea(<span class="java-quote">"textArea"</span>, <span class="java-keyword">new</span> Model(<span class="java-quote">""</span>)); +textArea.add(<span class="java-keyword">new</span> TinyMceBehavior());</pre></div><p class="paragraph"/>By default TinyMceBehavior adds only a basic set of functionalities to our textarea:<p class="paragraph"/><img border="0" class="center" src="../img/tinymce_basic.png"></img><p class="paragraph"/>To add more functionalities we must use class TinyMCESettings to register additional TinyMCE plugins and to customize the toolbars buttons. The following code is an excerpt from example page FullFeaturedTinyMCEPage:<p class="paragraph"/><div class="code"><pre>TinyMCESettings settings = <span class="java-keyword">new</span> TinyMCESettings( + TinyMCESettings.Theme.advanced); +//… +// first toolbar +//… +settings.add(Button.newdocument, TinyMCESettings.Toolbar.first, + TinyMCESettings.Position.before); +settings.add(Button.separator, TinyMCESettings.Toolbar.first, + TinyMCESettings.Position.before); +settings.add(Button.fontselect, TinyMCESettings.Toolbar.first, + TinyMCESettings.Position.after); +//… +// other settings +settings.setToolbarAlign( + TinyMCESettings.Align.left); +settings.setToolbarLocation( + TinyMCESettings.Location.top); +settings.setStatusbarLocation( + TinyMCESettings.Location.bottom); +settings.setResizing(<span class="java-keyword">true</span>); +//… +TextArea textArea = <span class="java-keyword">new</span> TextArea(<span class="java-quote">"ta"</span>, <span class="java-keyword">new</span> Model(TEXT)); +textArea.add(<span class="java-keyword">new</span> TinyMceBehavior(settings));</pre></div><p class="paragraph"/>For more configuration examples see pages inside package wicket.contrib.examples.tinymce in the example project of the module. + + + +<h2 id="wicketstuff_3">25.3 Module wicketstuff-gmap3</h2> +<p class="paragraph"/>Module wicketstuff-gmap3 integrates <a href="http://maps.google.com" target="blank">Google Maps</a> service with Wicket providing component org.wicketstuff.gmap.GMap. If we want to embed Google Maps into one of our pages we just need to add component GMap inside the page. The following snippet is taken from example page SimplePage:<p class="paragraph"/><strong class="bold">HTML:</strong><p class="paragraph"/><div class="code"><pre>… +<body> + <div wicket:id=<span class="java-quote">"map"</span>>Map</div> +</body> +...</pre></div><p class="paragraph"/><strong class="bold">Java code:</strong><p class="paragraph"/><div class="code"><pre><span class="java-keyword">public</span> class SimplePage <span class="java-keyword">extends</span> WicketExamplePage +{ + <span class="java-keyword">public</span> SimplePage() + { + GMap map = <span class="java-keyword">new</span> GMap(<span class="java-quote">"map"</span>); + map.setStreetViewControlEnabled(<span class="java-keyword">false</span>); + map.setScaleControlEnabled(<span class="java-keyword">true</span>); + map.setScrollWheelZoomEnabled(<span class="java-keyword">true</span>); + map.setCenter(<span class="java-keyword">new</span> GLatLng(52.47649, 13.228573)); + add(map); + } +}</pre></div><p class="paragraph"/>The component defines a number of setters to customize its behavior and appearance. More info can be found on wiki page <a href="https://github.com/wicketstuff/core/wiki/Gmap3" target="blank">https://github.com/wicketstuff/core/wiki/Gmap3</a> . + + +<h2 id="wicketstuff_4">25.4 Module wicketstuff-googlecharts</h2> +<p class="paragraph"/>To integrate the <a href="https://developers.google.com/chart/" target="blank">Google Chart</a> tool into our pages we can use module wicketstuff-googlecharts. To display a chart we must combine the following entities: component Chart, interface IChartData and class ChartProvider, all inside package org.wicketstuff.googlecharts. The following snippet is taken from example page Home:<p class="paragraph"/><strong class="bold">HTML:</strong><p class="paragraph"/><div class="code"><pre>… + <h2>Hello World</h2> + <img wicket:id=<span class="java-quote">"helloWorld"</span>/> +...</pre></div><p class="paragraph"/><strong class="bold">Java code:</strong><p class="paragraph"/><div class="code"><pre>IChartData data = <span class="java-keyword">new</span> AbstractChartData(){ + <span class="java-keyword">public</span> <span class="java-object">double</span>[][] getData(){ + <span class="java-keyword">return</span> <span class="java-keyword">new</span> <span class="java-object">double</span>[][] { { 34, 22 } }; + } +};<p class="paragraph"/>ChartProvider provider = <span class="java-keyword">new</span> ChartProvider(<span class="java-keyword">new</span> Dimension(250, 100), ChartType.PIE_3D, data); +provider.setPieLabels(<span class="java-keyword">new</span> <span class="java-object">String</span>[] { <span class="java-quote">"Hello"</span>, <span class="java-quote">"World"</span> }); +add(<span class="java-keyword">new</span> Chart(<span class="java-quote">"helloWorld"</span>, provider));</pre></div><p class="paragraph"/><strong class="bold">Displayed chart:</strong><p class="paragraph"/><img border="0" class="center" src="../img/googlechart.png"></img><p class="paragraph"/>As we can see in the snippet above, component Chart must be used with <img> tag while the input data returned by IChartData must be a two-dimensional array of double values. + + +<h2 id="wicketstuff_5">25.5 Module wicketstuff-inmethod-grid</h2> +<p class="paragraph"/>Module wicketstuff-inmethod-grid implements a sophisticated grid-component with class com. inmethod.grid.datagrid.DataGrid.<p class="paragraph"/>Just like pageable repeaters (seen in paragraph 11.4) DataGrid provides data pagination and uses interface IDataProvider as data source. In addition the component is completely ajaxified:<p class="paragraph"/><img border="0" class="center" src="../img/inmethod-grid1.png"></img><p class="paragraph"/>DataGrid supports also editable cells and row selection:<p class="paragraph"/><img border="0" class="center" src="../img/inmethod-grid2.png"></img><p class="paragraph"/>The following snippet illustrate how to use DataGrid and is taken from wiki page <a href="https://github.com/wicketstuff/core/wiki/InMethodGrid" target="blank">https://github.com/wicketstuff/core/wiki/InMethodGrid</a> :<p class="paragraph"/><strong class="bold">HTML:</strong><p class="paragraph"/><div class="code"><pre>… + <div wicket:id=<span class="java-quote">"grid"</span>>Grid</div> +...</pre></div><p class="paragraph"/><strong class="bold">Java code:</strong><p class="paragraph"/><div class="code"><pre><span class="java-keyword">final</span> List<Person> personList = //load a list of Persons +<span class="java-keyword">final</span> ListDataProvider listDataProvider = <span class="java-keyword">new</span> ListDataProvider(personList); +//define grid's columns +List<IGridColumn> cols = (List) Arrays.asList( + <span class="java-keyword">new</span> PropertyColumn(<span class="java-keyword">new</span> Model(<span class="java-quote">"First Name"</span>), <span class="java-quote">"firstName"</span>), + <span class="java-keyword">new</span> PropertyColumn(<span class="java-keyword">new</span> Model(<span class="java-quote">"Last Name"</span>), <span class="java-quote">"lastName"</span>));<p class="paragraph"/>DataGrid grid = <span class="java-keyword">new</span> DefaultDataGrid(<span class="java-quote">"grid"</span>, <span class="java-keyword">new</span> DataProviderAdapter(listDataProvider), cols); +add(grid);</pre></div><p class="paragraph"/>In the code above we have used convenience class DefaultDataGrid that is a subclass of DataGrid and it already comes with a navigation toolbar.<p class="paragraph"/>The example pages are under package com.inmethod.grid.examples.pages in the example project which is hosted at <a href="http://www.wicket-library.com/inmethod-grid/data-grid/simple" target="blank">http://www.wicket-library.com/inmethod-grid/data-grid/simple</a> .<p class="paragraph"/> + + + <div style="clear:both;margin-top:15px;"></div> + + <div class="toc-item prev-left"><a href="../guide/maven.html"><< <strong>24</strong><span>Working with Maven (Appendix)</span></a></div> + + <div class="toc-item next-right"><a href="../guide/redirects.html"><strong>26</strong><span>Lost In Redirection With Apache Wicket (Appendix)</span> >></a></div> + + <div style="clear:both"></div> + </div> + </td> + <td id="col2"> + <div class="local clearfix"> + <div class="local-title"> + <a href="../guide/index.html" target="mainFrame">Quick Reference</a> + <span class="toggle">(<a href="#" onclick="localToggle(); return false;">hide</a>)</span> + </div> + <div class="menu"> + + </div> + </div> + </td> + </tr> +</table> + +<div id="footer"> + +Copyright © 2013-2014 â <a href="http://www.apache.org/" target="_blank">The Apache Software Foundation</a> + â <b style="color:#E8590A !important;">(Generated on: 2014-01-28)</b> + + +</div> + +<script type="text/javascript" src="../js/docs.js"></script> + +</body> +</html>
