List All Pages
Chapter 1 introduces Java EE 6, Glassfish 3, JUnit 4, Derby and Maven.
I downloaded latest-glassfish-windows.exe and latest-glassfish-unix.sh from http://download.java.net/glassfish/v3/promoted....
Chapter 2 Deployed Example
JPA allows you to map entities to databases and also to query them using different criteria.
JPA’s power is that it offers the ability to query entities and their...
The key lesson from Chapter 6: don't let more than one sniffer get in your archive.
If you follow the book, you will create a jar file that can't be deployed because:
"The problem with the example...
I bought this book on 6/1/2009 and stopped at chapter 6 because Glassfish 3 didn't support the EJB example.
On 9/16 EJBContainer was finally implemented in the GlassFish V3 Promoted Build, so I...
package com.apress.javaee6.chapter02;
import javax.persistence.*;
@Entity
@NamedQuery(name = "findAllBooks", query = "SELECT b FROM Book b")
public class Book {
@Id
@GeneratedValue...
package com.apress.javaee6.chapter02;
import java.util.List;
import java.sql.SQLException;
import javax.persistence.*;
import org.junit.BeforeClass;
import org.junit.Before;
import...
Chapter 2 code with directory structure:
. JavaEE6
. pom.xml
. . Chapter02
. . pom.xml
… . src
… … main
… … . . java
… … … . com
… … … … apress
… … … … . ....
package com.apress.javaee6.chapter02;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import...
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
<persistence-unit name="chapter02PU"...
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"...
Ran "mvn test" from C:\JavaEE6\Chapter02
After a ton of download messages, the test ran:
-------------------------------------------------------
T E S T...
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
<persistence-unit name="chapter02PU"...
package com.apress.javaee6.chapter06a;
import javax.ejb.EJB;
/**
* @author Antonio Goncalves
* APress Book - Beginning Java EE 6 with Glassfish
* http://www.apress.com/
*...
package com.apress.javaee6.chapter06;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import...
package com.apress.javaee6.chapter06;
import javax.ejb.Remote;
import javax.ejb.Local;
import java.util.List;
/**
* @author Antonio Goncalves
* APress Book - Beginning Java EE 6 with...
package com.apress.javaee6.chapter06;
import static org.junit.Assert.assertNotNull;
import org.junit.Ignore;
import org.junit.Test;
import javax.ejb.embeddable.EJBContainer;
import...
package com.apress.javaee6.chapter06;
import javax.persistence.*;
@Entity
@NamedQuery(name = "findAllBooks", query = "SELECT b FROM Book b")
public class Book {
@Id
@GeneratedValue...
Type "mvn package" to create the jar.
C:\JavaEE6\Chapter06>mvn package
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO]...
Worked using glassfish v3 Promoted Build of 09/16/2009.
Created connection pool:
C:\glassfishv3\bin>asadmin create-jdbc-connection-pool...
I copied the original Chapter 6 into Chapter 6a, and removed the Main class from Chapter 6 and from the pom file so that I could deploy the EJB.
Chapter 6 code, with directory structure:
....
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence">
<persistence-unit name="chapter06PU"...
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"...
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence">
<persistence-unit name="chapter06PU"...
The updated source code of 7/25/09 works but produces some warnings. Do "mvn compile" from the C:\Javaee6\Chapter02 folder.
If there are too many "Not a v4.0.0 POM" errors, blow away the repository...
From C:\JavaEE6\Chapter02 I ran
mvn exec:java -Dexec.mainClass="com.apress.javaee6.chapter02.Main"
It made a new derby database for me:
C:\JavaEE6\Chapter02>mvn exec:java...
package com.apress.javaee6.chapter06a;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import...
package com.apress.javaee6.chapter06a;
import javax.ejb.Local;
import java.util.List;
/**
* @author Antonio Goncalves
* APress Book - Beginning Java EE 6 with Glassfish
*...
package com.apress.javaee6.chapter06a;
import javax.persistence.*;
/**
* @author Antonio Goncalves
* APress Book - Beginning Java EE 6 with Glassfish
*...
package com.apress.javaee6.chapter06a;
import static org.junit.Assert.assertNotNull;
import org.junit.Ignore;
import org.junit.Test;
import javax.ejb.embeddable.EJBContainer;
import...
C:\JavaEE6\Chapter06a>mvn compile
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building Chapter 06a - EJB
[INFO]...
package com.apress.javaee6.chapter06a;
import javax.ejb.embeddable.EJBContainer;
import javax.naming.Context;
import javax.naming.NamingException;
/**
* @author Antonio Goncalves
*...
C:\JavaEE6\Chapter06a>mvn package
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building Chapter 06a - EJB
[INFO]...
C:\JavaEE6\Chapter06a>mvn package
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building Chapter 06a - EJB
[INFO]...
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence">
<persistence-unit name="chapter06PU"...
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"...
Things were going so well….
C:\JavaEE6\Chapter06a>java -jar target\chapter06a-1.0.jar
Exception in thread "main" java.lang.NoClassDefFoundError: javax/ejb/embeddable/
EJBContainer
at...
C:\JavaEE6\Chapter06>mvn test
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building Chapter 06 - EJB
[INFO]...
package com.apress.javaee6.chapter06;
import javax.ejb.embeddable.EJBContainer;
import javax.naming.Context;
import javax.naming.NamingException;
/**
* @author Antonio Goncalves
*...
Lots of download stuff, then:
C:\JavaEE6\Chapter06>mvn compile
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building...
The example is described at http://wiki.liftweb.net/index.php/Hello_Darwin
If you are allowed to edit pages in this Site, simply click on edit button at the bottom of the page. This will open an editor.
To create a link to a new page, use syntax: [[[new page name]]] or...
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0...
From the book:
"The application client container (ACC) includes a set of Java classes, libraries, and other
files required to bring injection, security management, and naming service to Java SE...
If you would like to add something to this site, please see below to join and add pages.
Who can join?
Anyone interested in Wicket, JSF 2.0 and /or Java EE 6.
Join!
So you want to become a member...
Book will be available 1/6/2010
What should I do to create my first database / program?
- Sun Microsystems has a little database engine called Derby which is good for learning SQL. Java EE 6 has Object Relational Mapping which...
1. What should I do to create my first database / program?
- Sun Microsystems has a little database engine called Derby which is good for learning SQL. Java EE 6 has Object Relational Mapping which...
All examples are deployed in GlassFish 3 on Ubuntu 9.0.4 Linux using a slice from http://www.linode.com.
Max
Got the book from http://press.adam-bien.com/
The author answers questions at http://kenai.com/projects/javaee-patterns/ and blogs at http://www.adam-bien.com/roller/
Resume
moc.oohay|redoc_pw#moc.oohay|redoc_pw
Welcome page
What is a Wiki Site?
How to edit pages?
How to join this site?
Site members
Recent changes
List all pages
Page Tags
Site Manager
Page tags
Add a new page
edit this panel
Members:
Moderators
Admins
http://docs.sun.com/app/docs/doc/820-7627/gexaf?a=view
The examples start in Chapter 3, which begins with this warning:
I will wait until this tutorial is up to date
The book is at http://www.apress.com/book/view/1430224215#
The book is also free at http://groups.google.com/group/the-lift-book
The Lift home page is at http://liftweb.net/
The first example in...
Home
Resume and Contact Info
Examples from Books
Wicket In Action
Java Server Faces 2.0
The Definitive Guide to Lift
Other Examples
Lift: Hello Darwin
Contact
Resume and Contact Info
According to Wikipedia, the world largest wiki site:
A Wiki ([ˈwiː.kiː] <wee-kee> or [ˈwɪ.kiː] <wick-ey>) is a type of website that allows users to add, remove, or otherwise edit...
Wicket In Action
… … … … … . . chapter10
… … … … … … . . ajax
… … … … … … … . dojo
… … … … … … … … dojo.js
… … … … … … … …...
Wicket In Action
<wicket:panel>
<li wicket:id="discounts">
<strong><span wicket:id="cheese.name">name</span></strong>,
<span...
package wicket.in.action.chapter10.ajaxdiscounts;
import java.util.Iterator;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.panel.FeedbackPanel;
import...
<wicket:panel>
<wicket:enclosure><span wicket:id="label">[[label]]</span>%</wicket:enclosure>
<wicket:enclosure><input type="text" size="5"...
package wicket.in.action.chapter10.ajaxdiscounts;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.markup.html.panel.FeedbackPanel;
import...
<html>
<head>
<link rel="stylesheet" type="text/css" href="style/style.css"/>
</head>
<body>
<wicket:extend>
<span wicket:id="discounts">[Discounts...
package wicket.in.action.chapter10.ajaxdiscounts;
import wicket.in.action.AbstractBasePage;
public class Index extends AbstractBasePage {
public Index() {
add(new...
package wicket.in.action.chapter10.ajax.etc;
import java.text.DateFormat;
import java.util.Date;
import java.util.TimeZone;
import org.apache.wicket.MarkupContainer;
import...
package wicket.in.action.chapter10.ajax.etc;
import java.util.TimeZone;
import org.apache.wicket.ajax.AjaxSelfUpdatingTimerBehavior;
import org.apache.wicket.markup.html.WebPage;
import...
<html>
<head>
<link rel="stylesheet" type="text/css" href="style/style.css"/>
</head>
<body>
<h3>Dojo Rich Text Editor</h3>
<form...
package wicket.in.action.chapter10.ajax.dojo;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.form.Button;
import...
This file is 250k.
See http://dojotoolkit.org
package wicket.in.action.chapter10.ajax.scriptaculous;
import org.apache.wicket.RequestCycle;
import org.apache.wicket.ResourceReference;
import...
/*
Behaviour v1.1 by Ben Nolan, June 2005. Based largely on the work
of Simon Willison (see comments by Simon below).
Description:
Uses css selectors to apply javascript...
// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
//
// See scriptaculous.js for full license.
var Builder = {
NODEMAP: {
AREA: 'map',
CAPTION: 'table',...
// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
// (c) 2005 Ivan Krstic (http://blogs.law.harvard.edu/ivan)
// (c) 2005 Jon Tirsen...
// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
//
// See scriptaculous.js for full...
// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
// Contributors:
// Justin Palmer (http://encytemedia.com/)
// Mark Pilgrim (http://diveintomark.org/)
//...
/* Prototype JavaScript framework, version 1.4.0
* (c) 2005 Sam Stephenson <sam@conio.net>
*
* THIS FILE IS AUTOMATICALLY GENERATED. When sending patches, please diff
* against the...
// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and...
// Copyright (c) 2005 Marty Haught, Thomas Fuchs
//
// See http://script.aculo.us for more info
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this...
// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
//
// See scriptaculous.js for full license.
Object.inspect = function(obj) {
var info = [];
if(typeof obj...
package wicket.in.action.chapter10.ajax.etc;
import java.text.DateFormat;
import java.util.Date;
import java.util.TimeZone;
import org.apache.wicket.MarkupContainer;
import...
package wicket.in.action.chapter10.ajax.etc;
import org.apache.wicket.behavior.AbstractBehavior;
import org.apache.wicket.markup.html.IHeaderContributor;
import...
Wicket In Action
… … … … … . . chapter11
… … … … … … . . authdiscounts
… … … … … … … … DiscountsEditList.html
… … … … … … … …...
<wicket:panel>
<table>
<thead>
<tr>
<th>name</th>
<th>discount</th>
<th>description</th>...
package wicket.in.action.chapter11.authdiscounts;
import java.util.Iterator;
import java.util.List;
import org.apache.wicket.behavior.SimpleAttributeModifier;
import...
<wicket:panel>
<li wicket:id="discounts">
<strong><span wicket:id="cheese.name">name</span></strong>,
<span...
package wicket.in.action.chapter11.authdiscounts;
import java.util.Iterator;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.panel.Panel;
import...
<html>
<head>
<link rel="stylesheet" type="text/css" href="style/style.css"/>
</head>
<body>
<span wicket:id="userPanel" style="float: right;">
[user...
package wicket.in.action.chapter11.authdiscounts;
import wicket.in.action.common.ProtectedPage;
public class DiscountsPage extends ProtectedPage {
public DiscountsPage() {
add(new...
<wicket:panel>
<div>
<div>
Special discounts
<a href="#" wicket:id="modeLink">
<span wicket:id="linkLabel">[label]</span>...
package wicket.in.action.chapter11.authdiscounts;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.link.Link;
import...
<wicket:panel>
<table>
<form wicket:id="form">
<tbody>
<tr>
<td>name</td>
<td><select...
package wicket.in.action.chapter11.authdiscounts;
import org.apache.wicket.markup.html.form.Button;
import org.apache.wicket.markup.html.form.DropDownChoice;
import...
<wicket:panel>
<wicket:enclosure child="signout">
Signed in as <i><span wicket:id="fullname">[name]</span></i>
<a...
package wicket.in.action.chapter11.authdiscounts;
import org.apache.wicket.Page;
import org.apache.wicket.PageParameters;
import org.apache.wicket.RestartResponseAtInterceptPageException;
import...
Wicket In Action
… … … … … . . chapter12
… … … … … … . customresourcelocator
… … … … … … … … Home.html
… … … … … … … … Home.java
… … …...
Wicket In Action
<html>
</html>
package wicket.in.action.chapter12.customresourcelocator;
import java.net.MalformedURLException;
import java.net.URL;
import java.text.NumberFormat;
import java.util.Locale;
import...
package wicket.in.action.chapter12.customresourcelocator;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Locale;
import...
package wicket.in.action.chapter12.customresourcelocator;
import org.apache.wicket.protocol.http.WebApplication;
import org.apache.wicket.util.file.Folder;
import...
package wicket.in.action.chapter12.customresourcelocator;
import java.io.File;
import org.apache.wicket.util.resource.FileResourceStream;
import...
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding...
<wicket:panel>
<table>
<thead>
<tr>
<th><wicket:message key="name">name</wicket:message></th>...
package wicket.in.action.chapter12.locdiscounts2;
import java.io.IOException;
import java.util.List;
import org.apache.wicket.ResourceReference;
import...
<wicket:panel>
<table>
<thead>
<tr>
<th><wicket:message key="name">name</wicket:message></th>...
package wicket.in.action.chapter12.locdiscounts2;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.list.ListItem;
import...
<html>
<head>
<link rel="stylesheet" type="text/css" href="style/style.css"/>
</head>
<body>
<wicket:extend>
<span wicket:id="userPanel" style="float:...
package wicket.in.action.chapter12.locdiscounts2;
import wicket.in.action.AbstractBasePage;
public class DiscountsPage extends AbstractBasePage {
public DiscountsPage() {
add(new...
<wicket:panel>
<div>
<div>
<wicket:message key="discounts.title">[discounts]</wicket:message>
<a href="#"...
package wicket.in.action.chapter12.locdiscounts2;
import org.apache.wicket.markup.html.WebResource;
import org.apache.wicket.markup.html.basic.Label;
import...
name=naam
age=leeftijd
discount=korting
description=omschrijving
remove=verwijderen
display=tonen
edit=bewerken
new=nieuw
save=opslaan
discounts.title=Speciale aanbiedingen
export.csv=naar csv...
name=name
age=age
discount=discount
description=description
remove=remove
display=display
edit=edit
new=new
save=save
discounts.title=Special discounts
export.csv=export to csv
import=import
The editor could not read this file…
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<entry...
<wicket:panel>
<table>
<form wicket:id="form">
<tbody>
<tr>
<td>name</td>
<td><select...
package wicket.in.action.chapter12.locdiscounts2;
import org.apache.wicket.markup.html.form.Button;
import org.apache.wicket.markup.html.form.DropDownChoice;
import...
<wicket:panel>
Signed in as
<i><span wicket:id="fullname">[name]</span></i>
<select wicket:id="localeSelect" />...
package wicket.in.action.chapter12.locdiscounts2;
import java.util.Arrays;
import java.util.Locale;
import org.apache.wicket.Page;
import org.apache.wicket.PageParameters;
import...
<wicket:panel>
Aangemeld als
<i><span wicket:id="fullname">[name]</span></i>
<select wicket:id="localeSelect" />...
The editor would not read this file….
<?xml version="1.0" encoding="UTF-8"?>
<wicket:panel>
???????????
<i><span...
<wicket:panel>
<table>
<thead>
<tr>
<th><wicket:message key="name">name</wicket:message></th>...
package wicket.in.action.chapter12.locdiscounts;
import java.io.IOException;
import java.util.List;
import org.apache.wicket.ResourceReference;
import...
<wicket:panel>
<table>
<thead>
<tr>
<th><wicket:message key="name">name</wicket:message></th>...
package wicket.in.action.chapter12.locdiscounts;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.list.ListItem;
import...
<html>
<head>
<link rel="stylesheet" type="text/css" href="style/tyle.css"/>
</head>
<body>
<wicket:extend>
<span wicket:id="userPanel" style="float:...
package wicket.in.action.chapter12.locdiscounts;
import wicket.in.action.AbstractBasePage;
public class DiscountsPage extends AbstractBasePage {
public DiscountsPage() {
add(new...
#signed_in_as=This will be picked up, but...
userPanel.signed_in_as=Why doesn't this get picked up?
<wicket:panel>
<div>
<div>
<wicket:message key="discounts.title">[discounts]</wicket:message>
<a href="#"...
package wicket.in.action.chapter12.locdiscounts;
import org.apache.wicket.markup.html.WebResource;
import org.apache.wicket.markup.html.basic.Label;
import...
name=naam
age=leeftijd
discount=korting
description=omschrijving
remove=verwijderen
display=tonen
edit=bewerken
new=nieuw
save=opslaan
discounts.title=Speciale aanbiedingen
export.csv=naar csv...
name=name
age=age
discount=discount
description=description
remove=remove
display=display
edit=edit
new=new
save=save
discounts.title=Special discounts
export.csv=export to csv
import=import
the editor could not read this file…
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<entry...
<wicket:panel>
<table>
<form wicket:id="form">
<tbody>
<tr>
<td>name</td>
<td><select...
package wicket.in.action.chapter12.locdiscounts;
import org.apache.wicket.markup.html.form.Button;
import org.apache.wicket.markup.html.form.DropDownChoice;
import...
<wicket:panel>
<wicket:enclosure child="signout">
<wicket:message key="signed_in_as">Signed in as</wicket:message>
<i><span...
package wicket.in.action.chapter12.locdiscounts;
import java.util.Arrays;
import java.util.Locale;
import org.apache.wicket.Page;
import org.apache.wicket.PageParameters;
import...
signed_in_as=Aangemeld als
signout=afmelden
signed_in_as=Signed in as
signout=signout
The editor won't read this file…
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<entry...
Wicket In Action
The imports show the components that will be added as behaviors to the Index.java in this section:
import org.apache.wicket.markup.html.basic.Label;
import...
Wicket In Action
… … … … … . . chapter13
… … … … … … . TestDataInitializer.java
… … … … … … . dbdiscounts
… … … … … … … dao
… … … … … …...
package wicket.in.action.chapter13.dbdiscounts.dao.hibernate;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import...
package wicket.in.action.chapter13.dbdiscounts.dao.hibernate;
import wicket.in.action.chapter13.dbdiscounts.dao.CheeseDao;
import wicket.in.action.chapter13.dbdiscounts.domain.Cheese;
public...
package wicket.in.action.chapter13.dbdiscounts.dao;
import wicket.in.action.chapter13.dbdiscounts.domain.Cheese;
public interface CheeseDao extends Dao<Cheese> {
}
package wicket.in.action.chapter13.dbdiscounts.domain;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import...
package wicket.in.action.chapter13.dbdiscounts.dao;
import java.util.List;
import org.springframework.transaction.annotation.Transactional;
import...
package wicket.in.action.chapter13.dbdiscounts.dao.hibernate;
import wicket.in.action.chapter13.dbdiscounts.dao.DiscountDao;
import...
package wicket.in.action.chapter13.dbdiscounts.dao;
import wicket.in.action.chapter13.dbdiscounts.domain.Discount;
public interface DiscountDao extends Dao<Discount> {
}
package wicket.in.action.chapter13.dbdiscounts.domain;
import java.util.Calendar;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import...
<wicket:panel>
<table>
<thead>
<tr>
<th>name</th>
<th>%</th>
<th>description</th>...
package wicket.in.action.chapter13.dbdiscounts.web;
import java.util.Iterator;
import java.util.List;
import org.apache.wicket.behavior.SimpleAttributeModifier;
import...
package wicket.in.action.chapter13.dbdiscounts.services;
import java.util.List;
import wicket.in.action.chapter13.dbdiscounts.dao.CheeseDao;
import...
package wicket.in.action.chapter13.dbdiscounts.services;
import java.util.List;
import org.springframework.transaction.annotation.Transactional;
import...
<wicket:panel>
<li wicket:id="discounts">
<strong><span wicket:id="cheese.name">name</span></strong>,
<span...
package wicket.in.action.chapter13.dbdiscounts.web;
import java.util.Iterator;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.panel.Panel;
import...
<wicket:panel>
<div>
<div>
<h3>Special offers</h3>
<a href="#" wicket:id="modeLink">
<span...
package wicket.in.action.chapter13.dbdiscounts.web;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.link.Link;
import...
package wicket.in.action.chapter13.dbdiscounts.web.model;
import java.util.Iterator;
import org.apache.wicket.markup.repeater.util.ModelIteratorAdapter;
import...
package wicket.in.action.chapter13.dbdiscounts.domain;
import java.io.Serializable;
public interface DomainObject extends Serializable {
Long getId();
}
package wicket.in.action.chapter13.dbdiscounts.web.model;
import org.apache.wicket.injection.web.InjectorHolder;
import org.apache.wicket.model.LoadableDetachableModel;
import...
package wicket.in.action.chapter13.dbdiscounts.web.model;
import java.io.ObjectStreamException;
import java.io.Serializable;
import java.lang.reflect.InvocationHandler;
import...
package wicket.in.action.chapter13.dbdiscounts.dao.hibernate;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import...
package wicket.in.action.chapter13.dbdiscounts.dao;
public interface GenericDao {
<T> T load(Class<T> type, long id);
}
package wicket.in.action.chapter13.dbdiscounts.web.model;
import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.model.IModel;
import...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html...
<html>
<head>
<link rel="stylesheet" type="text/css" href="style/style.css"/>
</head>
<body>
<span wicket:id="discounts">[Discounts list...
package wicket.in.action.chapter01.section_1_3;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.AjaxFallbackLink;
import...
package wicket.in.action.chapter13.dbdiscounts.web;
import org.apache.wicket.markup.html.WebPage;
public class Index extends WebPage {
public Index() {
add(new...
<wicket:panel>
<table>
<form wicket:id="form">
<tbody>
<tr>
<td>name</td>
<td><select...
package wicket.in.action.chapter13.dbdiscounts.web;
import org.apache.wicket.markup.html.form.Button;
import org.apache.wicket.markup.html.form.ChoiceRenderer;
import...
/*
* Copyright Teachscape
*/
package wicket.in.action.chapter13.dbdiscounts.web.model;
import java.io.Serializable;
import java.util.Iterator;
import...
package wicket.in.action.chapter13.dbdiscounts;
import java.util.Map;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import...
package wicket.in.action.chapter13.dbdiscounts.dao.hibernate;
import wicket.in.action.chapter13.dbdiscounts.dao.UserDao;
import wicket.in.action.chapter13.dbdiscounts.domain.User;
public class...
package wicket.in.action.chapter13.dbdiscounts.dao;
import wicket.in.action.chapter13.dbdiscounts.domain.User;
public interface UserDao extends Dao<User> {
}
package wicket.in.action.chapter13.dbdiscounts.domain;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import...
Wicket In Action
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html...
package wicket.in.action.chapter14.section_14_1;
import wicket.in.action.AbstractBasePage;
/**
* @author dashorst
*/
public class Index extends AbstractBasePage {
public Index() {
//...
Wicket In Action
… … … … … … . section_14_2
… … … … … … … . Index.html
… … … … … … … . Index.java
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html...
package wicket.in.action.chapter14.section_14_2;
import org.apache.wicket.PageParameters;
import org.apache.wicket.markup.html.basic.Label;
import...
Wicket In Action
… … … … … … . section_14_3
… … … … … … … . CheesrErrorPage.html
… … … … … … … . CheesrErrorPage.java
… … … … … … … ....
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html...
package wicket.in.action.chapter14.section_14_3;
import javax.servlet.http.HttpServletResponse;
import org.apache.wicket.markup.html.WebPage;
import...
package wicket.in.action.chapter14.section_14_3;
import java.lang.reflect.InvocationTargetException;
import org.apache.wicket.Page;
import org.apache.wicket.Response;
import...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html...
package wicket.in.action.chapter14.section_14_3;
import java.util.Arrays;
import org.apache.wicket.ajax.AjaxRequestTarget;
import...
package wicket.in.action.chapter14.section_14_3;
public class OutOfCheeseException extends RuntimeException {
}
body {
margin: 0;
padding: 0;
font-family: georgia, times, serif;
font-size: 15px;
}
div {
margin: 0;
padding: 0;
}
#container {
margin-left: auto;
margin-right:...
Wicket In Action
… … … … … … . section_14_4
… … … … … … … . Index.html
… … … … … … … . Index.java
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html...
package wicket.in.action.chapter14.section_14_4;
import java.util.Arrays;
import java.util.Collections;
import org.apache.wicket.Application;
import...
package wicket.in.action.chapter02.section_2_1_2.listing01;
import java.io.Serializable;
public class BasketItem implements Serializable {
private final Cheese cheese;
private final int...
package wicket.in.action.chapter02.section_2_1_2.listing01;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
public class Basket implements Serializable {...
package wicket.in.action.chapter02.section_2_1_2.listing01;
import java.io.Serializable;
public class Cheese implements Serializable {
private final String name;
private final double...
package wicket.in.action.chapter02.section_2_1_2.listing01;
import org.apache.wicket.Request;
import org.apache.wicket.protocol.http.WebApplication;
import...
package wicket.in.action.chapter02.section_2_1_3.listing01;
import org.apache.wicket.Request;
import org.apache.wicket.RequestCycle;
import org.apache.wicket.Response;
import...
package wicket.in.action.chapter02.section_2_1_3.listing01;
import org.apache.wicket.Response;
import org.apache.wicket.protocol.http.WebApplication;
import...
package wicket.in.action.chapter02.section_2_1_3.listing01;
import org.apache.wicket.Request;
import org.apache.wicket.protocol.http.WebApplication;
import...
<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>
Some example page
</title>...
package wicket.in.action.chapter02.section_2_1_4.listing01;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;
public class Hello extends WebPage...
<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>
Another example page
</title>...
package wicket.in.action.chapter02.section_2_1_4.listing01;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;
import...
Wicket In Action
Section 3.1 builds the foundation for the cheese store application:
… … … … … . . chapter03
… … … … … … . . section_3_1
… … … … … … … ....
package wicket.in.action.chapter03.section_3_1;
import java.io.Serializable;
public class Address implements Serializable {
private String name;
private String street;
private String...
package wicket.in.action.chapter03.section_3_1;
import java.util.ArrayList;
import java.util.List;
public class Cart implements java.io.Serializable {
private List<Cheese> cheeses = new...
package wicket.in.action.chapter03.section_3_1;
import java.io.Serializable;
public class Cheese implements Serializable {
private String name;
private String description;
private double...
gouda.name=Gouda
gouda.description=Gouda is a traditional, creamery, hard cheese. It is round with very smooth, yellow, waxed rind. The flavor is sweet and fruity. As time passes, the taste...
package wicket.in.action.chapter03.section_3_1;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Properties;
import...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html...
package wicket.in.action.chapter03.section_3_1;
import java.util.List;
import org.apache.wicket.markup.html.WebPage;
public abstract class CheesrPage extends WebPage {
public CheesrSession...
package wicket.in.action.chapter03.section_3_1;
import org.apache.wicket.Request;
import wicket.in.action.common.WiaSession;
/*
* Extends WiaSession instead of WebSession to make the
*...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html...
package wicket.in.action.chapter03.section_3_1;
import wicket.in.action.AbstractBasePage;
public class Index extends AbstractBasePage {
public Index() {
}
}
body {
margin: 0;
padding: 0;
font-family: georgia, times, serif;
font-size: 15px;
}
div {
margin: 0;
padding: 0;
}
#container {
margin-left: auto;
margin-right:...
Wicket In Action
Now a list of cheeses and a shopping cart is put into Index.html.
… … … … … … . section_3_2
… … … … … … … Checkout.html
… … … … … … …...
<html>
<head>
<title>Cheesr - checkout</title>
<wicket:link>
<link href="style.css" rel="stylesheet" />...
package wicket.in.action.chapter03.section_3_2;
import wicket.in.action.chapter03.section_3_1.CheesrPage;
public class Checkout extends CheesrPage {
public Checkout() {
}
}
<html>
<head>
<title>Cheesr - Making cheese taste beta</title>
<wicket:link>
<link href="style.css" rel="stylesheet"...
package wicket.in.action.chapter03.section_3_2;
import java.text.NumberFormat;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.link.Link;
import...
body {
margin: 0;
padding: 0;
font-family: georgia, times, serif;
font-size: 15px;
}
div {
margin: 0;
padding: 0;
}
#container {
margin-left: auto;
margin-right:...
Wicket In Action
… … … … … … . section_3_3
… … … … … … … Checkout.html
… … … … … … … Checkout.java
… … … … … … … Index.html
… … … … …...
<html>
<head>
<title>Cheesr - checkout</title>
<wicket:link>
<link href="style.css" rel="stylesheet"...
package wicket.in.action.chapter03.section_3_3;
import org.apache.wicket.markup.html.form.Button;
import org.apache.wicket.markup.html.form.Form;
import...
<html>
<head>
<title>Cheesr - Making cheese taste beta</title>
<wicket:link>
<link href="style.css" rel="stylesheet"...
package wicket.in.action.chapter03.section_3_3;
import java.text.NumberFormat;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.link.Link;
import...
<html xmlns:wicket>
<wicket:panel>
<h3>Your selection</h3>
<table>
<tbody>
<tr wicket:id="cart">
<td...
package wicket.in.action.chapter03.section_3_3;
import java.text.NumberFormat;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.list.ListItem;
import...
body {
margin: 0;
padding: 0;
font-family: georgia, times, serif;
font-size: 15px;
}
div {
margin: 0;
padding: 0;
}
#container {
margin-left: auto;
margin-right:...
Wicket In Action
… … … … … . . chapter04
… … … … … … . . section_4_2
… … … … … … … . Index.html
… … … … … … … . Index.java
This had to be...
<html>
<body>
<wicket:extend>
<h2>4.2 A taste of the standard models</h2>
<p>These examples show how Wicket's standard models work.</p>...
package wicket.in.action.chapter04.section_4_2;
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;
import...
package wicket.in.action.chapter04.section_4_3;
import java.util.HashMap;
import java.util.Map;
import wicket.in.action.chapter05.section_5_3.Cheese;
/**
*/
public class CheeseDao {...
<html>
<body>
<wicket:extend>
<h2>4.3 Keeping things small and fresh: detachable models</h2>
<p>These examples show how Wicket's detachable models...
package wicket.in.action.chapter04.section_4_3;
import org.apache.wicket.model.LoadableDetachableModel;
import org.apache.wicket.model.Model;
import wicket.in.action.AbstractBasePage;
import...
<html>
<body>
<wicket:extend>
<h2>4.4 Nesting models for fun and profit</h2>
<p>These examples show how to nest Wicket's models to create reusable...
package wicket.in.action.chapter04.section_4_4;
import org.apache.wicket.model.LoadableDetachableModel;
import org.apache.wicket.model.PropertyModel;
import...
Wicket In Action
… … … … … . . chapter05
… … … … … … . . section_5_2
… … … … … … … . Index.html
… … … … … … … . Index.java
This section shows...
<html>
<head>
<title>Labels page</title>
</head>
<body>
<wicket:extend>
<h2>5.2 Displaying text with label components</h2>...
package wicket.in.action.chapter05.section_5_2;
import java.io.Serializable;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.basic.MultiLineLabel;
import...
Wicket In Action
… … … … … … . . section_5_3
… … … … … … … . Cheese.java
… … … … … … … . CheeseDetailsPage.html
… … … … … … … ....
<html>
<head><title>Cheese details</title></head>
<body>
<wicket:extend>
<h2 wicket:id="name">[name]</h2>
<p...
package wicket.in.action.chapter05.section_5_3;
import org.apache.wicket.PageParameters;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;
import...
package wicket.in.action.chapter05.section_5_3;
import java.io.Serializable;
/**
* Created by IntelliJ IDEA.
* User: dashorst
* Date: Sep 16, 2007
* Time: 10:51:55 PM
* To change this...
<html>
<head>
<title>5.3 Navigating using links</title>
</head>
<body>
<wicket:extend>
<h2>5.3 Navigating using links</h2>...
package wicket.in.action.chapter05.section_5_3;
import java.io.Serializable;
import org.apache.wicket.PageParameters;
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
import...
<html>
<head><title>Autolinked page</title></head>
<body>
<wicket:extend>
<h2>Page 1</h2>
<p>You arrived here by clicking on the page1...
package wicket.in.action.chapter05.section_5_3;
import org.apache.wicket.PageParameters;
import wicket.in.action.AbstractBasePage;
/**
*/
public class Page1 extends AbstractBasePage {
/**...
<html>
<head><title>Autolinked page</title></head>
<body>
<wicket:extend>
<h2>Page 2</h2>
<p>You arrived here by clicking on the page2...
package wicket.in.action.chapter05.section_5_3;
import org.apache.wicket.PageParameters;
import wicket.in.action.AbstractBasePage;
/**
*/
public class Page2 extends AbstractBasePage {
/**...
Wicket In Action
… … … … … … . . section_5_4
… … … … … … … . Index.html
… … … … … … … . Index.java
… … … … … … … . Page1.html
… … … …...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html...
package wicket.in.action.chapter05.section_5_4;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.apache.wicket.Page;
import...
<html>
<head>
<title>Autolinked page</title>
</head>
<body>
<wicket:extend>
<h2>Page 1</h2>
<p>This page was brought to you by...
package wicket.in.action.chapter05.section_5_4;
import org.apache.wicket.PageParameters;
import wicket.in.action.AbstractBasePage;
/**
*/
public class Page1 extends AbstractBasePage {
/**...
Wicket In Action
… … … … … … . . section_5_5
… … … … … … … . Index.html
… … … … … … … . Index.java
… … … … … … … . Page1.html
… … … …...
<html>
<head>
<title>5.5 Using Repeaters to repeat markup and components</title>
<wicket:head>
<style type="text/css">
ul.rvmenu {...
package wicket.in.action.chapter05.section_5_5;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import...
<html>
<head><title>Wicket in Action - Chaper 6 - Repeaters</title></head>
<body>
<wicket:extend>
<h1>Page from...
package wicket.in.action.chapter05.section_5_5;
import wicket.in.action.AbstractBasePage;
public class Page1 extends AbstractBasePage {
public Page1() {
}
}
Wicket In Action
… … … … … … . . section_5_6
… … … … … … … . Index.html
… … … … … … … . Index.java
This had to be rendered in Firefox. IE broke - see below.
Broken IE rendering.
<html xmlns:wicket="">
<body>
<wicket:extend>
<h2>5.6 Basic operations on components</h2>
<div class="section">
<h3>5.6.1 Changing the...
package wicket.in.action.chapter05.section_5_6;
import java.util.Calendar;
import org.apache.wicket.behavior.SimpleAttributeModifier;
import org.apache.wicket.markup.ComponentTag;
import...
Wicket In Action
… … … … … . . chapter06
… … … … … … . . section_6_1
… … … … … … … . FormsPage.html
… … … … … … … . FormsPage.java
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html...
package wicket.in.action.chapter06.section_6_1;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.model.Model;
import...
Wicket In Action
… … … … … … . . section_6_2
… … … … … … … . FormProcessingPage.html
… … … … … … … . FormProcessingPage.java
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html...
package wicket.in.action.chapter06.section_6_2;
import org.apache.wicket.feedback.ContainerFeedbackMessageFilter;
import org.apache.wicket.markup.html.basic.Label;
import...
Wicket In Action
… … … … … … . . section_6_3
… … … … … … … . TextComponentsPage.html
… … … … … … … . TextComponentsPage.java
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html...
package wicket.in.action.chapter06.section_6_3;
import org.apache.wicket.behavior.SimpleAttributeModifier;
import org.apache.wicket.markup.html.form.PasswordTextField;
import...
Wicket In Action
… … … … … … . . section_6_4
… … … … … … … . SelectionComponentsPage.html
… … … … … … … . SelectionComponentsPage.java
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html...
package wicket.in.action.chapter06.section_6_4;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import...
Wicket In Action
… … … … … … . . section_6_5
… … … … … … … . Page2.html
… … … … … … … . Page2.java
… … … … … … … . SubmitComponentsPage.html
… … … … … … … . SubmitComponentsPage.java
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html...
package wicket.in.action.chapter06.section_6_5;
import org.apache.wicket.Page;
import org.apache.wicket.markup.html.link.Link;
import wicket.in.action.AbstractBasePage;
/**
* @author...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html...
package wicket.in.action.chapter06.section_6_5;
import java.util.ArrayList;
import java.util.List;
import org.apache.wicket.ajax.AjaxRequestTarget;
import...
Wicket In Action
… … … … … … . . section_6_6
… … … … … … … . ValidationsPage.html
… … … … … … … . ValidationsPage.java
… … … … … … … . ValidationsPage.properties
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html...
package wicket.in.action.chapter06.section_6_6;
import java.util.Map;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.PasswordTextField;
import...
DivisibleValidator=Field '${label}' is not divisible by ${divisor}
Wicket In Action
… … … … … … . . section_6_7
… … … … … … … . FeedbackPage.html
… … … … … … … . FeedbackPage.java
… … … … … … … ....
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html...
package wicket.in.action.chapter06.section_6_7;
import java.io.Serializable;
import org.apache.wicket.feedback.ComponentFeedbackMessageFilter;
import...
Required=Provide a ${label} or else...
form.name.Required=You have to provide a name.
password.Required=You have to provide a password.
phonenumber.Required=A telephone number is obligatory.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html...
package wicket.in.action.chapter06.section_6_7;
import org.apache.wicket.Page;
import org.apache.wicket.markup.html.link.Link;
import org.apache.wicket.markup.html.panel.FeedbackPanel;
import...
Wicket In Action
… … … … … . . chapter07
… … … … … … . . section_7_1
… … … … … … … . ExamplePanel.css
… … … … … … … . ExamplePanel.html
… … …...
<html xmlns:wicket>
<head>
<wicket:head>
<wicket:link>
<link href="LabelsGroup.css" rel="stylesheet">...
package wicket.in.action.chapter07.section_7_1;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.panel.Panel;
/**
* @author dashorst
*/
public class...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html...
package wicket.in.action.chapter07.section_7_1;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
import...
blockquote.panel {
color : blue;
font-style : italic;
}
<html xmlns:wicket>
<body>
<wicket:panel>
<blockquote wicket:id="dexter">Omelette du fromage</blockquote>
<blockquote wicket:id="deedee">That's all you...
package wicket.in.action.chapter07.section_7_1;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.panel.Panel;
/**
* @author dashorst
*/
public class...
Wicket In Action
… … … … … … . . section_7_2
… … … … … … … . BasePage.html
… … … … … … … . BasePage.java
… … … … … … … . Cheese.java
… …...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<div...
package wicket.in.action.chapter07.section_7_2;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.AjaxFallbackLink;
import...
package wicket.in.action.chapter07.section_7_2;
import java.io.Serializable;
public class Cheese implements Serializable {
private String name;
private String description;
public String...
<html xmlns:wicket>
<wicket:panel>
<div class="cheese">
<h3>Parmesan</h3>
<p>Parmesan cheese is made from raw cow's milk. Uses of the...
package wicket.in.action.chapter07.section_7_2;
import org.apache.wicket.markup.html.panel.Panel;
/**
* @author dashorst
*/
public class CheesesPanel extends Panel {
public...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><link...
package wicket.in.action.chapter07.section_7_2;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.AjaxLink;
import...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<body>...
package wicket.in.action.chapter07.section_7_2;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.model.PropertyModel;
/**
* @author dashorst
*/
public class...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html...
package wicket.in.action.chapter07.section_7_2;
import wicket.in.action.AbstractBasePage;
/**
* @author dashorst
*/
public class Index extends AbstractBasePage {
public Index() {
/*...
package wicket.in.action.chapter07.section_7_2;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
public class Recipe implements Serializable {
private String...
<html xmlns:wicket>
<wicket:panel>
<h3>Lasagna Bolognese</h3>
<p><i>(6-8 persons)</i></p>
<p>1/4 cup extra-virgin olive oil, 2 medium...
package wicket.in.action.chapter07.section_7_2;
import org.apache.wicket.markup.html.panel.Panel;
/**
* @author dashorst
*/
public class RecipesPanel extends Panel {
public...
<html xmlns:wicket>
<wicket:panel>
<div>
<h3>Your Selection</h3>
<table>
<tbody>
<tr >...
package wicket.in.action.chapter07.section_7_2;
import org.apache.wicket.markup.html.panel.Panel;
/**
* @author dashorst
*/
public class ShoppingCart extends Panel {
public...
Wicket In Action
… … … … … . . chapter08
… … … … … … . . locales
… … … … … … … . CurrentLocaleLabel1.java
… … … … … … … ....
Wicket In Action
… … … … … … . . locales
… … … … … … … . CurrentLocaleLabel1.java
… … … … … … … . CurrentLocaleLabel.java
… … … … … … … ....
Wicket In Action
Wicket In Action
Wicket In Action
package wicket.in.action.chapter08.locales;
import java.util.Locale;
import org.apache.wicket.Component;
import org.apache.wicket.Session;
import org.apache.wicket.behavior.IBehavior;
import...
package wicket.in.action.chapter08.locales;
import java.util.Locale;
import org.apache.wicket.Session;
import org.apache.wicket.markup.ComponentTag;
import...
<html>
<head>
<link rel="stylesheet" type="text/css" href="style/style.css"/>
</head>
<body>
<wicket:extend>
<h3>Locale label</h3>...
package wicket.in.action.chapter08.locales;
import wicket.in.action.AbstractBasePage;
public class CurrentLocaleLabelPage extends AbstractBasePage {
public CurrentLocaleLabelPage() {...
<html>
<head>
<link rel="stylesheet" type="text/css" href="style/style.css"/>
<style type="text/css">
th {
color: grey;
}...
package wicket.in.action.chapter08.locales;
import java.util.Date;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.panel.FeedbackPanel;
import...
<wicket:panel>
<table>
<thead>
<tr>
<th>name</th>
<th>%</th>
<th>description</th>...
package wicket.in.action.chapter08.discounts;
import java.util.Iterator;
import java.util.List;
import org.apache.wicket.behavior.SimpleAttributeModifier;
import...
<html>
<head>
<link rel="stylesheet" type="text/css" href="style/style.css"/>
</head>
<body>
<wicket:extend>
<span...
package wicket.in.action.chapter08.discounts;
import wicket.in.action.AbstractBasePage;
public class Index extends AbstractBasePage {
public Index() {
add(new...
<wicket:panel>
<li wicket:id="discounts">
<strong><span wicket:id="cheese.name">name</span></strong>,
<span...
package wicket.in.action.chapter08.discounts;
import java.util.Iterator;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.panel.Panel;
import...
<wicket:panel>
<div>
<div>
<h3>Special offers</h3>
<a href="#" wicket:id="modeLink">
<span...
package wicket.in.action.chapter08.discounts;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.link.Link;
import...
package wicket.in.action.chapter08.locales;
import java.util.List;
import java.util.Locale;
import org.apache.wicket.markup.html.form.ChoiceRenderer;
import...
<html>
<head>
<title>Preview</title>
</head>
<body>
<h3>
The locale drop down component.
</h3>
<wicket:panel>...
package wicket.in.action.chapter08.locales;
import java.util.List;
import java.util.Locale;
import org.apache.wicket.markup.html.form.ChoiceRenderer;
import...
<wicket:panel>
<select wicket:id="localeSelect" />
<a href="#" wicket:id="reset">[reset]</a>
</wicket:panel>
package wicket.in.action.chapter08.locales;
import java.util.List;
import java.util.Locale;
import org.apache.wicket.MetaDataKey;
import org.apache.wicket.Session;
import...
<html>
<head>
<link rel="stylesheet" type="text/css" href="style/style.css"/>
</head>
<body>
<wicket:extend>
<div class="section">
<h3>8...
package wicket.in.action.chapter08.locales;
import wicket.in.action.AbstractBasePage;
public class Index extends AbstractBasePage {
public Index() {
}
}
<wicket:panel>
<table>
<form wicket:id="form">
<tbody>
<tr>
<td>name</td>
<td><select...
package wicket.in.action.chapter08.discounts;
import org.apache.wicket.markup.html.form.Button;
import org.apache.wicket.markup.html.form.DropDownChoice;
import...
<html>
<head>
<link rel="stylesheet" type="text/css" href="style/style.css"/>
</head>
<body>
<wicket:extend>
<h3>Select Locale</h3>...
package wicket.in.action.chapter08.locales;
import java.util.Arrays;
import java.util.Locale;
import wicket.in.action.AbstractBasePage;
public class SelectLocalePage extends AbstractBasePage...
<html>
<head>
<link rel="stylesheet" type="text/css" href="style/style.css"/>
</head>
<body>
<wicket:extend>
<h3>Select Locale</h3>...
package wicket.in.action.chapter08.locales;
import java.util.Arrays;
import java.util.Locale;
import wicket.in.action.AbstractBasePage;
public class SelectLocaleWithResetPage extends...
Wicket In Action
… … … … … . . chapter09
… … … … … … . . jcaptcha
… … … … … … … . ImageCaptchaServlet.java
… … … … … … … . JCaptcha.html
… …...
Wicket In Action
<html>
<head>
<link rel="stylesheet" type="text/css" href="style/style.css"/>
</head>
<body>
<wicket:extend>
<h2>9.2 Building export functionality...
package wicket.in.action.chapter09.resdiscounts2;
import wicket.in.action.AbstractBasePage;
public class DiscountsPage extends AbstractBasePage {
public DiscountsPage() {
add(new...
<wicket:panel>
<div>
<div>
Special discounts
<a href="#" wicket:id="modeLink">
<span wicket:id="linkLabel">[label]</span>...
package wicket.in.action.chapter09.resdiscounts2;
import org.apache.wicket.RequestCycle;
import org.apache.wicket.markup.html.WebResource;
import...
Wicket In Action
package wicket.in.action.chapter09.resdiscounts3;
import org.apache.wicket.Application;
import org.apache.wicket.IInitializer;
import org.apache.wicket.SharedResources;
import...
<html>
<head>
<link rel="stylesheet" type="text/css" href="style/style.css"/>
</head>
<body>
<wicket:extend>
<span wicket:id="discounts">[discounts...
package wicket.in.action.chapter09.resdiscounts3;
import wicket.in.action.AbstractBasePage;
public class DiscountsPage extends AbstractBasePage {
public DiscountsPage() {
add(new...
<wicket:panel>
<div>
<div>
Special discounts
<a href="#" wicket:id="modeLink">
<span wicket:id="linkLabel">[label]</span>...
package wicket.in.action.chapter09.resdiscounts3;
import org.apache.wicket.ResourceReference;
import org.apache.wicket.markup.html.basic.Label;
import...
<wicket:panel>
<table>
<thead>
<tr>
<th>name</th>
<th>%</th>
<th>description</th>...
package wicket.in.action.chapter09.resdiscounts;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import org.apache.wicket.ResourceReference;
import...
<wicket:panel>
<li wicket:id="discounts">
<strong><span wicket:id="cheese.name">name</span></strong>,
<span...
package wicket.in.action.chapter09.resdiscounts;
import java.util.Iterator;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.panel.Panel;
import...
<html>
<head>
<link rel="stylesheet" type="text/css" href="style/style.css"/>
</head>
<body>
<wicket:extend>
<h2>9.1 Using packaged...
package wicket.in.action.chapter09.resdiscounts;
import java.util.Iterator;
import java.util.List;
import org.apache.wicket.ResourceReference;
import...
<wicket:panel>
<div>
<div>
Special discounts
<a href="#" wicket:id="modeLink">
<span wicket:id="linkLabel">[label]</span>...
package wicket.in.action.chapter09.resdiscounts;
import org.apache.wicket.markup.html.WebResource;
import org.apache.wicket.markup.html.basic.Label;
import...
package wicket.in.action.chapter09.jcaptcha;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import javax.servlet.ServletException;
import...
<wicket:panel>
<form wicket:id="form">
<p><img wicket:id="captchaImage" /></p>
<p><wicket:message key="captcha.provide.input" /> <br />...
/*
* $Id: HelloWorld.java 5394 2006-04-16 13:36:52 +0000 (Sun, 16 Apr 2006)
* jdonnerstag $ $Revision: 1.1 $ $Date: 2006-04-16 13:36:52 +0000 (Sun, 16 Apr
* 2006) $
*
*...
captcha.provide.input=Please replicate the text you see above
package wicket.in.action.chapter09.jcaptchacomp;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import org.apache.wicket.Session;
import...
package wicket.in.action.chapter09.jcaptchacomp;
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.model.IModel;
import...
captcha.validation.failed=Validation failed!
<html>
<head>
<link rel="stylesheet" type="text/css" href="style/style.css" />
</head>
<body>
<wicket:extend>
<span wicket:id="captchaForm">[captcha form...
/*
* $Id: HelloWorld.java 5394 2006-04-16 13:36:52 +0000 (Sun, 16 Apr 2006)
* jdonnerstag $ $Revision: 1.1 $ $Date: 2006-04-16 13:36:52 +0000 (Sun, 16 Apr
* 2006) $
*
*...
captcha.validation.succeeded=Congrats, you're in
<html>
<head>
<link rel="stylesheet" type="text/css" href="style/style.css" />
</head>
<body>
<wicket:extend>
<form wicket:id="form">
<img...
/*
* $Id: HelloWorld.java 5394 2006-04-16 13:36:52 +0000 (Sun, 16 Apr 2006)
* jdonnerstag $ $Revision: 1.3 $ $Date: 2006-04-16 13:36:52 +0000 (Sun, 16 Apr
* 2006) $
*
*...
captcha.validation.failed=Validation failed!
captcha.validation.succeeded=Congrats, you're in
<html>
<head>
<meta name="author" content="Eelco Hillenius" />
<meta name="author" content="Martijn Dashorst" />
<meta name="copyright" content="copyright...
package wicket.in.action;
import org.apache.wicket.Component;
import org.apache.wicket.PageParameters;
import org.apache.wicket.behavior.AbstractBehavior;
import...
<?xml version="1.0" encoding="UTF-8"?>
<project default="war" name="Wicket in Action Examples" basedir=".">
<property name="final.name" value="wicket-in-action"/>...
<?xml version="1.0"?>
<assembly>
<id>binary</id>
<formats>
<format>zip</format>
</formats>
<fileSets>...
<html>
<head>
</head>
<body>
<wicket:extend>
<a name="description"></a>
<h2>About Wicket in Action</h2>
<p>
There...
package wicket.in.action;
public class Book extends AbstractBasePage {
public Book() {
}
}
Wicket In Action
<?xml version="1.0" encoding="UTF-8"?>
<project default="war" name="Wicket in Action Examples" basedir=".">
<property name="final.name"...
package wicket.in.action.common;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import...
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding...
package wicket.in.action.common;
import java.io.Serializable;
public final class Cheese implements Serializable {
private String description;
private String name;
private double...
package wicket.in.action.common;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.text.ParseException;
import...
/**
*
*/
package wicket.in.action.common;
import org.apache.wicket.datetime.StyleDateConverter;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.model.IModel;
import...
<wicket:panel>
<span style="white-space: nowrap;">
<input type="text" wicket:id="date" size="8" />
<input type="text" wicket:id="hours" size="2" /> :...
package wicket.in.action.common;
import java.util.Calendar;
import java.util.Date;
import org.apache.wicket.datetime.markup.html.form.DateTextField;
import...
package wicket.in.action.common;
import java.util.Calendar;
import java.util.Date;
public class Discount extends Entity {
private Cheese cheese;
private String description;
private...
package wicket.in.action.common;
import java.io.Serializable;
class Entity implements Serializable {
int id;
@Override
public boolean equals(Object obj) {
if (obj == null) {...
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding...
<wicket:border>
<div style="width:100%; border: thin solid black;"><wicket:body />
</div>
</wicket:border>
/*
* $Id: BoxBorder.java 5883 2006-05-26 10:12:48Z joco01 $ $Revision: 5883 $
* $Date: 2006-05-26 03:12:48 -0700 (Fri, 26 May 2006) $
*
*...
package wicket.in.action.common;
import java.text.NumberFormat;
import java.text.ParseException;
import org.apache.wicket.Session;
import org.apache.wicket.model.IModel;
public class...
package wicket.in.action.common;
/**
* Utility class for equals and hashcode functions.
*/
public final class Objects {
/**
* compares two object by using lhs.equals(rhs). safe to use...
/**
*
*/
package wicket.in.action.common;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.text.ParseException;
import java.util.Locale;
import...
package wicket.in.action.common;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.model.IModel;
import org.apache.wicket.util.convert.IConverter;
public class...
/**
*
*/
package wicket.in.action.common;
import java.text.NumberFormat;
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.markup.MarkupStream;
import...
package wicket.in.action.common;
import org.apache.wicket.IPageMap;
import org.apache.wicket.PageParameters;
import org.apache.wicket.markup.html.WebPage;
import...
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding...
package wicket.in.action.common;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.model.IModel;
public class RequiredTextField extends TextField {
public...
<html>
<head>
<link rel="stylesheet" type="text/css" href="style/style.css"/>
</head>
<body>
<wicket:extend>
The requested page is only available for...
package wicket.in.action.common;
import org.apache.wicket.markup.html.form.PasswordTextField;
import org.apache.wicket.markup.html.form.StatelessForm;
import...
<html>
</html>
/*
* $Id: SignOut.java 5394 2006-04-16 13:36:52 +0000 (Sun, 16 Apr 2006)
* jdonnerstag $ $Revision: 5877 $ $Date: 2006-04-16 13:36:52 +0000 (Sun, 16 Apr
* 2006) $
*
*...
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding...
#org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger
[[code]]
package wicket.in.action.common;
import java.lang.ref.WeakReference;
import org.apache.wicket.proxy.IProxyTargetLocator;
import org.apache.wicket.spring.ISpringContextLocator;
import...
package wicket.in.action.common;
import java.util.ArrayList;
import java.util.List;
import org.apache.wicket.extensions.markup.html.tabs.AbstractTab;
import...
package wicket.in.action.common;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Locale;
import org.apache.wicket.markup.html.form.TextField;
import...
package wicket.in.action.common;
import java.io.Serializable;
public class User implements Serializable {
private boolean admin = false;
private String fullname;
private String...
package wicket.in.action.common;
import org.apache.wicket.Component;
import org.apache.wicket.RestartResponseAtInterceptPageException;
import org.apache.wicket.authorization.Action;
import...
package wicket.in.action.common;
import java.util.Locale;
import org.apache.wicket.Request;
import org.apache.wicket.Session;
import org.apache.wicket.protocol.http.WebSession;
public class...
package wicket.in.action.chapter10.ajax.dojo;
import org.apache.wicket.ResourceReference;
import org.apache.wicket.behavior.HeaderContributor;
import...
Wicket In Action
To understand how the home page is configured and launched, you have to read section 15.3 of Chapter 15, Creating the Application Infrastructure.
Each Wicket application contains...
<html>
<head>
</head>
<body>
<wicket:extend>
<wicket:link>
<h3>1 Introducing Wicket</h3>
<table>
<tr>...
package wicket.in.action;
public class Examples extends AbstractBasePage {
public Examples() {
}
}
Wicket In Action
Notice the <wicket:link> tag that surrounds all the links. Most of the chapter sections have an Index.html which is qualified by the path name. The <wicket:extend> is...
Wicket automatically manages state at the component level, which means no more awkward HTTPSession objects. You don’t have to think about the fact that behind the scenes, state between requests...
package wicket.in.action;
import org.apache.wicket.Application;
import org.apache.wicket.Component;
import org.apache.wicket.Page;
import org.apache.wicket.Request;
import...
Wicket In Action
Click the links to see the source files:
. C:\wicket-in-action-0.9
… README.txt
… build.xml
… pom.xml
… lib
… src
… . . main
… … . assembly
… … …...
<html>
<head>
<meta name="author" content="Eelco Hillenius" />
<meta name="author" content="Martijn Dashorst" />
<meta name="copyright" content="copyright...
package wicket.in.action;
import org.apache.wicket.markup.html.WebPage;
/**
* @author dashorst
*/
public class Index extends WebPage {
public Index() {
}
}
Wicket In Action
Wicket In Action
<?xml version="1.0"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"...
initializer=wicket.in.action.chapter09.resdiscounts3.DiscountsExport$Initializer
Wicket In Action
Wicket in Action
================
This project is the companion examples project to the Wicket in Action
book. The code is licensed under the Apache Software License 2.0...
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:aop="http://www.springframework.org/schema/aop"...
# connection pool config (c3p0 ComboPooledDataSource)
# all time values are in...
<html>
<head>
</head>
<body>
<wicket:extend>
</wicket:extend>
</body>
</html>
package wicket.in.action;
public class Shop extends AbstractBasePage {
public Shop() {
}
}
… … … … … . . chapter10
… … … … … … . . ajax
… … … … … … … . dojo
… … … … … … … … dojo.js
… … … … … … … … DojoTextEditor.java
…...
<?xml version="1.0"?>
<assembly>
<id>source</id>
<formats>
<format>zip</format>
</formats>
<dependencySets>...
/*
* $Id: Start.java,v 1.3 2006/06/12 04:53:34 hillenius Exp $
* $Revision: 1.3 $
* $Date: 2006/06/12 04:53:34 $
*
*...
/*
Copyright (c) 2007, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version:...
<html>
<head>
</head>
<body>
<wicket:extend>
<h2>Purchasing the book</h2>
<p>If you have problems or questions regarding your purchase of...
package wicket.in.action;
public class Support extends AbstractBasePage {
public Support() {
}
}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<div...
package wicket.in.action.chapter14.section_14_1;
import org.apache.wicket.markup.html.WebPage;
/**
* @author dashorst
*/
public class AutoLinksPage extends WebPage {
public AutoLinksPage()...
greeting=Hello, World!
greeting=Bonjour tout le monde!
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1...
package wicket.in.action.chapter14.section_14_1;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;
import...
greeting=Hallo, wereld!
<html xmlns:wicket>
<wicket:panel>
<h1 wicket:id="message"></h1>
</wicket:panel>
</html>
package wicket.in.action.chapter14.section_14_1;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.panel.Panel;
/**
* @author dashorst
*/
public class...
package wicket.in.action.chapter14.section_14_1;
import static org.junit.Assert.assertEquals;
import java.text.NumberFormat;
import java.util.Arrays;
import java.util.Collections;
import...
package wicket.in.action.chapter14.section_14_1;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.Arrays;
import org.apache.wicket.markup.html.list.ListView;
import...
<html xmlns:wicket="http://wicket.apache.org/">
<head>
<meta http-equiv="Refresh" content="0;URL=app">
</head>
</html>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"...





