bshined's picture
From bshined rss RSS  subscribe Subscribe

Wicket Introduction 



Wicket Introduction

 

 
 
Tags:  web  introduction  frameworks  wicket  tikal 
Views:  1556
Downloads:  14
Published:  December 17, 2009
 
0
download

Share plick with friends Share
save to favorite
Report Abuse Report Abuse
 
Related Plicks
No related plicks found
 
More from this user
FDI in Russia

FDI in Russia

From: bshined
Views: 834
Comments: 0

Fundraising on Facebook: A Case-Study on Cause-Related Marketing

Fundraising on Facebook: A Case-Study on Cause-Related Marketing

From: bshined
Views: 583
Comments: 0

Connecting With Brand Savvy Moms Q2 2011

Connecting With Brand Savvy Moms Q2 2011

From: bshined
Views: 5
Comments: 0

Up Ar 06e  I P C

Up Ar 06e I P C

From: bshined
Views: 420
Comments: 0

hp pavilion dm4 1277sb 14-inch notebook pc - silver

hp pavilion dm4 1277sb 14-inch notebook pc - silver

From: bshined
Views: 49
Comments: 0

Shurdi

Shurdi

From: bshined
Views: 451
Comments: 0

See all 
 
 
 URL:          AddThis Social Bookmark Button
Embed Thin Player: (fits in most blogs)
Embed Full Player :
 
 

Name

Email (will NOT be shown to other users)

 

 
 
Comments: (watch)
 
 
Notes:
 
Slide 1: Cost Benefit Open Source Solutions Introduction to By Eyal Golan – Senior Java Consultant @ Tikal Knowledge
Slide 2: “Apache Wicket is a component oriented Java web application framework. With proper mark-up/logic separation, a POJO data model, and a refreshing lack of XML, Apache Wicket makes developing web-apps simple and enjoyable again. Swap the boilerplate, complex debugging and brittle code for powerful, reusable components written with plain Java and HTML.*” *The Wicket Team Copyright 2007 Tikal Knowledge, Ltd. |2|
Slide 3: Introduction to Wicket - Agenda  What is Wicket? » Wicket in a Nutshell » Stateful, Just Java, Just HTML  Wicket Architecture  The component concept  Getting Wicket  Wicket’s Features  Wicket on the web  Q&A Copyright 2007 Tikal Knowledge, Ltd. |3|
Slide 4: Wicket in a Nutshell  “A Java software framework to enable component oriented, programmatic manipulation of markup.” (WIA) » Manipulation of markup – Use Wicket to manipulate the markup tags and their contents. (<span>[content]</span>) » Programmatic manipulation – Wicket forces a strict separation of presentation and logic. Java is used to derive the dynamic parts of the markup templates. » Component Oriented – The application is constructed of reusable components. The components have their own states and behaviors. It is very similar to programming with Swing / SWT. Copyright 2007 Tikal Knowledge, Ltd. |4|
Slide 5: Wicket is stateful  Wicket is a stateful framework. » Wicket was developed to solve the problems that REST introduced to web applications development • Security, modularization, state maintenance and everything as Strings » No need to decide how to pass state • Wicket manages state transparently » Wicket hides the fact that you work on a stateless protocol • Feels like regular Java programming  The state of components is managed for you. » public class EditBarLink extends Link { private final Person person; public EditBarLink(String id, Person person) { super(id); this.person = person; } public void onClick() { setResponsePage(new EditPersonPage(person)); } } Copyright 2007 Tikal Knowledge, Ltd. |5|
Slide 6: Just Java  You decide how components are created, assembled and combined and - to some extend – what their life cycle looks like » The developer is in charge of how the components are created • Constructor, inheritance etc. » Component classes can be designed in any way • Class members, hierarchy etc. Copyright 2007 Tikal Knowledge, Ltd. |6|
Slide 7: Just HTML  Just HTML » Presentation is defined in HTML markups » HTML templates you use with Wicket only contain static presentation code (markup) and placeholders where Java components are hooked in • There is never logic in the templates » You pretty much have to know the structure of your page* upfront • * Or any other component that has a corresponding markup (Page, Panel, Border and Fragment). This will be explained later • * The pieces can be put together dynamically » <tr> <td wicket:id=”list”> <span wicket:id=”name” /> </td> </tr> Copyright 2007 Tikal Knowledge, Ltd. |7| Dynamic Table
Slide 8: Introduction to Wicket - Agenda  What is Wicket?  Wicket Architecture / behind the scene » A brief explanation  The component concept  Getting Wicket  Wicket’s Features  Wicket on the web  Q&A Copyright 2007 Tikal Knowledge, Ltd. |8|
Slide 9: Wicket Architecture  In this section we will go over the main role players of a Wicket application » This is only a brief introduction » The section is intended only to be familiarized with the primary classes that create a Wicket application  Application » One object instance for an application » Bundles all components, markups, properties, settings files etc. » Acts as the central hub of processing » The Application object is used for customize the application’s behavior  Session » Holds the state of one user » Wicket allows to have custom session » With a custom session we know exactly what can be store in a session Copyright 2007 Tikal Knowledge, Ltd. |9|
Slide 10: Wicket Architecture (cont.)  RequestCycle » Responsible of processing requests » Uses Request and Response objects  Some examples of Application Customization » A SecuredSession that allows only logged in user to open a certain page » How to render a disabled link » How to mount pages with a nice readable URL  Component » Page, Form, Label, TextField, DropDown, WebMarkupContainer and much more  Model » The Model is an indirection for how to get the data that drives the Java components. Models hide ‘what’ data to get and ‘from where’ to get it, and Java components hide ‘when’ and ‘how’ that data is displayed Copyright 2007 Tikal Knowledge, Ltd. | 10 |
Slide 11: Introduction to Wicket - Agenda  What is Wicket?  Wicket Architecture  The component concept » Hello World… The shortest example ever! » Component – The building block • A few examples  Getting Wicket  Wicket’s Features  Wicket on the web  Q&A Copyright 2007 Tikal Knowledge, Ltd. | 11 |
Slide 12: Hello World – The Short Example Put it in your Java add(new Label("message", "Hello World!")); Copyright 2007 Tikal Knowledge, Ltd. | 12 |
Slide 13: Hello World – The Short Example Put it in your Java add(new Label("message", "Hello World!")); + <h1 wicket:id=“message”>[text goes here]</h1> Add it to your HTML Copyright 2007 Tikal Knowledge, Ltd. | 13 |
Slide 14: Hello World – The Short Example Put it in your Java add(new Label("message", "Hello World!")); + <h1 wicket:id=“message”>[text goes here]</h1> = <h1>Hello World!</h1> Add it to your HTML Et Voila Copyright 2007 Tikal Knowledge, Ltd. | 14 |
Slide 15: What about picking a date? DateTextField dateTxt = new DateTextField("dateTxt"); dateTxt.add(new DatePicker()); add(dateTxt); <input wicket:id=“dateTxt”></input> You can manipulate the header by adding calls to CSS and JS files. Copyright 2007 Tikal Knowledge, Ltd. | 15 |
Slide 16: Introduction to Wicket - Agenda  What is Wicket?  Wicket Architecture  The component concept » Hello World… The shortest example ever! » Component – The building block  Getting Wicket  Wicket’s Features  Wicket on the web  Q&A Copyright 2007 Tikal Knowledge, Ltd. | 16 |
Slide 17: About Components  “Apache Wicket is a component oriented …” » Components are the building blocks of Wicket  They are self contained and do not leak scope » Other components don’t have to know about it  They are reusable  You build them using plain Java » You use them using plain Java  Components can be nested to “components tree” » Each component that is added in the Java file must be added in the same hierarchy in the corresponding HTML file » Pages are special components that function as the root for such trees  The components are the objects that encapsulate the manipulation the markup  Their data is separated using the IModel interface Copyright 2007 Tikal Knowledge, Ltd. | 17 |
Slide 18: Components Tree Hierarchy Copyright 2007 Tikal Knowledge, Ltd. | 18 |
Slide 19: Component + Markup  Component has wicket id  Markup has the same wicket:id  Hierarchy must much Java Code Link link = new Link(“link”) {…} add(link); link.add(new Label("message", “My Message")); <a href=”#” wicket:id=“link”> <span wicket:id=“message”>[text replaced]</span> </a> HTML Code Copyright 2007 Tikal Knowledge, Ltd. | 19 |
Slide 20: Component + Markup  Some components have a markup file associated with them and others don’t  Components with an associated markup » Page, Panel, Border, Fragment » Both files should reside in the same package folder*, and should have the same name • src/com/tikal/presentation/HelloWorldPage.java • src/com/tikal/presentation/HelloWorldPage.html • *And naturally Wicket allows to configure this behavior  Some components without an associated markup » The markup for this components are located in their parent XXX.html » Label, Button, DropDown, Link, Form and more Copyright 2007 Tikal Knowledge, Ltd. | 20 |
Slide 21: Component – Link Example HTML Code <a href=”#” wicket:id=“link”>Click</a> Link link = new Link("link") { … @Override public void onClick() { setResponsePage(OrdersReportsPage.class); } }); Java Code Copyright 2007 Tikal Knowledge, Ltd. | 21 |
Slide 22: Component – AjaxLink Example The same as regular Link <a href=”#” wicket:id=“link”>Click</a> someComponent.setOutputMarkupId(true); AjaxLink link = new AjaxLink("link") { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { // Do Something target.addComponent(someComponent); target.appendJavaScript(“Effects.fade(‘foo’)”); } }); Some Ajax stuff in Java Copyright 2007 Tikal Knowledge, Ltd. | 22 |
Slide 23: Just Java + Just HTML (returned)  The designer creates the page with his favorite designing tool  The Wicket programmer adds wicket:id as a hook in the file  Minor issue – If the HTML hierarchy changes, it should be changed in the Java code as well Copyright 2007 Tikal Knowledge, Ltd. | 23 |
Slide 24: Introduction to Wicket - Agenda  What is Wicket?  Wicket Architecture  The component concept  Getting Wicket (So easy…) » Starting point for Wicket  Wicket’s Features  Wicket on the web  Q&A Copyright 2007 Tikal Knowledge, Ltd. | 24 |
Slide 25: Getting Wicket  A great quick start in Wicket’s site » http://wicket.apache.org/quickstart.html » Create a maven archetype to work with » Run • mvn jetty:run • Use the Start.java class that is created automatically • Create a war file and put in a web server (or an application server)  A quick start project that builds your own Wicket project » http://www.antwerkz.com/qwicket/app/home • A bit tricky to start with it  Wiki getting started » http://cwiki.apache.org/WICKET/newuserguide.html Copyright 2007 Tikal Knowledge, Ltd. | 25 |
Slide 26: Introduction to Wicket - Agenda  What is Wicket?  Wicket Architecture  The component concept  Getting Wicket  Wicket’s Features » A list of (most) features  Wicket on the web  Q&A Copyright 2007 Tikal Knowledge, Ltd. | 26 |
Slide 27: Wicket’s Features – The Short List  Automatic State (no HttpSession)  POJO for logic » Reusability  No XML, no configuration files  Like Swing  Simplicity  Active community Copyright 2007 Tikal Knowledge, Ltd. | 27 |
Slide 28: Wicket’s Features – The Long List        Clean / clear separation of presentation and logic POJO for logic No XML, no configuration files Security i18n Built-in Ajax without the need to write JavaScript Transparent state and session management » Stateful » Navigation history, support of multiple tabs/windows in the browser      Markup inheritance (OOD) Has validation Integrating with other frameworks (Spring, Hibernate) Has Lazy Loading facilities Active community | 28 | Copyright 2007 Tikal Knowledge, Ltd.
Slide 29: Introduction to Wicket - Agenda  What is Wicket?  Wicket Architecture  The component concept  Getting Wicket  Wicket’s Features  Wicket on the web » Some useful links  Q&A Copyright 2007 Tikal Knowledge, Ltd. | 29 |
Slide 30: Wicket on the Web  Home of Wicket » http://wicket.apache.org/index.html  Wicket-extension (expansion of Wicket) » http://wicket.apache.org/docs/wicket-1.3.2/wicket-extensions/index.htm  Wicket Forums » http://www.nabble.com/Apache-Wicket-f13974.html  Wicketstuff (cool libraries for Wicket) » http://wicketstuff.org/confluence/display/STUFFWEB/Home » http://wicketstuff.org/wicket13/ (examples)  InMethod (Wicket table component) » http://inmethod.com/  Wicket Blogs  Wicket W. Warrick » http://en.wikipedia.org/wiki/Wicket_W._Warrick » http://www.google.com/ig/add?feedurl=http%3A%2F%2Fpipes.yahoo.co Copyright 2007 Tikal Knowledge, Ltd. | 30 |
Slide 31: Wicket on the Books  Wicket In Action » Martijn Dashorst, Eelco Hillenius » http://wicketinaction.com/ » http://manning.com/dashorst/  Pro Wicket » Karthik Gurumurthy » http://www.apress.com/book/view/1590597222  Enjoying Web Development with Wicket » Kent Tong » http://www.agileskills2.org/EWDW/ Copyright 2007 Tikal Knowledge, Ltd. | 31 |
Slide 32: Copyright 2007 Tikal Knowledge, Ltd. | 32 |
Slide 33: Summary  Wicket is cool and fun  Wicket gives an easy and fast Web Application development  Has a very clear OOD approach  Lets the user concentrate on the business logic  The community is very dynamic and helpful  Wicket is a dynamic framework that is built upon users’ request and suggestion » Last Stable version 1.3.4 » Wicket 1.4-M3 is the next version to go out Copyright 2007 Tikal Knowledge, Ltd. | 33 |
Slide 34: Q&A Copyright 2007 Tikal Knowledge, Ltd. | 34 |
Slide 35: Thank You egolan@tikalk.com egolan74@gmail.com Copyright 2007 Tikal Knowledge, Ltd. | 35 |

   
Time on Slide Time on Plick
Slides per Visit Slide Views Views by Location