http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/comp-with-markup-german.png
----------------------------------------------------------------------
diff --git 
a/wicket-user-guide/src/main/asciidoc/img/comp-with-markup-german.png 
b/wicket-user-guide/src/main/asciidoc/img/comp-with-markup-german.png
new file mode 100644
index 0000000..39bd9ca
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/comp-with-markup-german.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/component-lifecycle.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/component-lifecycle.png 
b/wicket-user-guide/src/main/asciidoc/img/component-lifecycle.png
new file mode 100644
index 0000000..73703ca
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/component-lifecycle.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/comsysto-logo.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/comsysto-logo.png 
b/wicket-user-guide/src/main/asciidoc/img/comsysto-logo.png
new file mode 100644
index 0000000..f6b43e0
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/comsysto-logo.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/custom-ajax-call-listener.png
----------------------------------------------------------------------
diff --git 
a/wicket-user-guide/src/main/asciidoc/img/custom-ajax-call-listener.png 
b/wicket-user-guide/src/main/asciidoc/img/custom-ajax-call-listener.png
new file mode 100644
index 0000000..bbc6f65
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/custom-ajax-call-listener.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/custom-panel-bundle.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/custom-panel-bundle.png 
b/wicket-user-guide/src/main/asciidoc/img/custom-panel-bundle.png
new file mode 100644
index 0000000..6a82fbe
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/custom-panel-bundle.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/custom-panel-bundle2.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/custom-panel-bundle2.png 
b/wicket-user-guide/src/main/asciidoc/img/custom-panel-bundle2.png
new file mode 100644
index 0000000..af14b69
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/custom-panel-bundle2.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/custom-properties-file.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/custom-properties-file.png 
b/wicket-user-guide/src/main/asciidoc/img/custom-properties-file.png
new file mode 100644
index 0000000..3bfd9b1
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/custom-properties-file.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/datepicker-package-resources.png
----------------------------------------------------------------------
diff --git 
a/wicket-user-guide/src/main/asciidoc/img/datepicker-package-resources.png 
b/wicket-user-guide/src/main/asciidoc/img/datepicker-package-resources.png
new file mode 100644
index 0000000..5103655
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/datepicker-package-resources.png 
differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/datepicker-screenshot.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/datepicker-screenshot.png 
b/wicket-user-guide/src/main/asciidoc/img/datepicker-screenshot.png
new file mode 100644
index 0000000..48e46d2
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/datepicker-screenshot.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/description-of-illegalstate.jpg
----------------------------------------------------------------------
diff --git 
a/wicket-user-guide/src/main/asciidoc/img/description-of-illegalstate.jpg 
b/wicket-user-guide/src/main/asciidoc/img/description-of-illegalstate.jpg
new file mode 100644
index 0000000..443c7e7
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/description-of-illegalstate.jpg differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/detachable-models.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/detachable-models.png 
b/wicket-user-guide/src/main/asciidoc/img/detachable-models.png
new file mode 100644
index 0000000..1a0dfe7
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/detachable-models.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/dropdown-choice.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/dropdown-choice.png 
b/wicket-user-guide/src/main/asciidoc/img/dropdown-choice.png
new file mode 100644
index 0000000..7286c73
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/dropdown-choice.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/eclipse-classpath-variables.png
----------------------------------------------------------------------
diff --git 
a/wicket-user-guide/src/main/asciidoc/img/eclipse-classpath-variables.png 
b/wicket-user-guide/src/main/asciidoc/img/eclipse-classpath-variables.png
new file mode 100644
index 0000000..335fcc2
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/eclipse-classpath-variables.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/eclipse-maven-import.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/eclipse-maven-import.png 
b/wicket-user-guide/src/main/asciidoc/img/eclipse-maven-import.png
new file mode 100644
index 0000000..70587b5
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/eclipse-maven-import.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/edit-label-example-screenshot.png
----------------------------------------------------------------------
diff --git 
a/wicket-user-guide/src/main/asciidoc/img/edit-label-example-screenshot.png 
b/wicket-user-guide/src/main/asciidoc/img/edit-label-example-screenshot.png
new file mode 100644
index 0000000..7dcae63
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/edit-label-example-screenshot.png 
differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/favicon.ico
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/favicon.ico 
b/wicket-user-guide/src/main/asciidoc/img/favicon.ico
new file mode 100644
index 0000000..3dfcb92
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/favicon.ico differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/feedback-panel-style.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/feedback-panel-style.png 
b/wicket-user-guide/src/main/asciidoc/img/feedback-panel-style.png
new file mode 100644
index 0000000..602a541
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/feedback-panel-style.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/file-system-trees.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/file-system-trees.png 
b/wicket-user-guide/src/main/asciidoc/img/file-system-trees.png
new file mode 100644
index 0000000..f30f4b3
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/file-system-trees.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/final-login-page.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/final-login-page.png 
b/wicket-user-guide/src/main/asciidoc/img/final-login-page.png
new file mode 100644
index 0000000..087b396
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/final-login-page.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/gitMavenPrj.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/gitMavenPrj.png 
b/wicket-user-guide/src/main/asciidoc/img/gitMavenPrj.png
new file mode 100644
index 0000000..d0d1d76
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/gitMavenPrj.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/gitRepo.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/gitRepo.png 
b/wicket-user-guide/src/main/asciidoc/img/gitRepo.png
new file mode 100644
index 0000000..1f4062c
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/gitRepo.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/googlechart.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/googlechart.png 
b/wicket-user-guide/src/main/asciidoc/img/googlechart.png
new file mode 100644
index 0000000..e597946
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/googlechart.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/grails-icon.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/grails-icon.png 
b/wicket-user-guide/src/main/asciidoc/img/grails-icon.png
new file mode 100644
index 0000000..68e3678
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/grails-icon.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/grails.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/grails.png 
b/wicket-user-guide/src/main/asciidoc/img/grails.png
new file mode 100644
index 0000000..9cb734d
Binary files /dev/null and b/wicket-user-guide/src/main/asciidoc/img/grails.png 
differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/groovy.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/groovy.png 
b/wicket-user-guide/src/main/asciidoc/img/groovy.png
new file mode 100644
index 0000000..2b81b49
Binary files /dev/null and b/wicket-user-guide/src/main/asciidoc/img/groovy.png 
differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/grouped-checkbox.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/grouped-checkbox.png 
b/wicket-user-guide/src/main/asciidoc/img/grouped-checkbox.png
new file mode 100644
index 0000000..b01a5ae
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/grouped-checkbox.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/grouped-checkbox2.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/grouped-checkbox2.png 
b/wicket-user-guide/src/main/asciidoc/img/grouped-checkbox2.png
new file mode 100644
index 0000000..2a5622e
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/grouped-checkbox2.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/grouped-radiobutton.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/grouped-radiobutton.png 
b/wicket-user-guide/src/main/asciidoc/img/grouped-radiobutton.png
new file mode 100644
index 0000000..648f21e
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/grouped-radiobutton.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/header-area.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/header-area.png 
b/wicket-user-guide/src/main/asciidoc/img/header-area.png
new file mode 100644
index 0000000..60e255e
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/header-area.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/inmethod-grid1.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/inmethod-grid1.png 
b/wicket-user-guide/src/main/asciidoc/img/inmethod-grid1.png
new file mode 100644
index 0000000..9c189df
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/inmethod-grid1.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/inmethod-grid2.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/inmethod-grid2.png 
b/wicket-user-guide/src/main/asciidoc/img/inmethod-grid2.png
new file mode 100644
index 0000000..c705b49
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/inmethod-grid2.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/intellj-maven-import.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/intellj-maven-import.png 
b/wicket-user-guide/src/main/asciidoc/img/intellj-maven-import.png
new file mode 100644
index 0000000..971d702
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/intellj-maven-import.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/jsr303-form-validation.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/jsr303-form-validation.png 
b/wicket-user-guide/src/main/asciidoc/img/jsr303-form-validation.png
new file mode 100644
index 0000000..706f80b
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/jsr303-form-validation.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/layout-include.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/layout-include.png 
b/wicket-user-guide/src/main/asciidoc/img/layout-include.png
new file mode 100644
index 0000000..a3b1de9
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/layout-include.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/layout-mock.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/layout-mock.png 
b/wicket-user-guide/src/main/asciidoc/img/layout-mock.png
new file mode 100644
index 0000000..018627c
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/layout-mock.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/layout.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/layout.png 
b/wicket-user-guide/src/main/asciidoc/img/layout.png
new file mode 100644
index 0000000..30b81ec
Binary files /dev/null and b/wicket-user-guide/src/main/asciidoc/img/layout.png 
differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/list-multiple-choices.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/list-multiple-choices.png 
b/wicket-user-guide/src/main/asciidoc/img/list-multiple-choices.png
new file mode 100644
index 0000000..cbc055c
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/list-multiple-choices.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/list-multiple-choices2.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/list-multiple-choices2.png 
b/wicket-user-guide/src/main/asciidoc/img/list-multiple-choices2.png
new file mode 100644
index 0000000..9ba29b3
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/list-multiple-choices2.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/loadable-detachable-model.png
----------------------------------------------------------------------
diff --git 
a/wicket-user-guide/src/main/asciidoc/img/loadable-detachable-model.png 
b/wicket-user-guide/src/main/asciidoc/img/loadable-detachable-model.png
new file mode 100644
index 0000000..b5955ab
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/loadable-detachable-model.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/locale-german.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/locale-german.png 
b/wicket-user-guide/src/main/asciidoc/img/locale-german.png
new file mode 100644
index 0000000..9643908
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/locale-german.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/login_calls_hollywood.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/login_calls_hollywood.png 
b/wicket-user-guide/src/main/asciidoc/img/login_calls_hollywood.png
new file mode 100644
index 0000000..5933211
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/login_calls_hollywood.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/lost-in-redirection-mockup.png
----------------------------------------------------------------------
diff --git 
a/wicket-user-guide/src/main/asciidoc/img/lost-in-redirection-mockup.png 
b/wicket-user-guide/src/main/asciidoc/img/lost-in-redirection-mockup.png
new file mode 100644
index 0000000..8f064b3
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/lost-in-redirection-mockup.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/lost-in-redirection-mockup2.png
----------------------------------------------------------------------
diff --git 
a/wicket-user-guide/src/main/asciidoc/img/lost-in-redirection-mockup2.png 
b/wicket-user-guide/src/main/asciidoc/img/lost-in-redirection-mockup2.png
new file mode 100644
index 0000000..732008e
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/lost-in-redirection-mockup2.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/lost-in-redirection-mockup3.png
----------------------------------------------------------------------
diff --git 
a/wicket-user-guide/src/main/asciidoc/img/lost-in-redirection-mockup3.png 
b/wicket-user-guide/src/main/asciidoc/img/lost-in-redirection-mockup3.png
new file mode 100644
index 0000000..b6811a9
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/lost-in-redirection-mockup3.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/lost-in-redirection-mockup4.png
----------------------------------------------------------------------
diff --git 
a/wicket-user-guide/src/main/asciidoc/img/lost-in-redirection-mockup4.png 
b/wicket-user-guide/src/main/asciidoc/img/lost-in-redirection-mockup4.png
new file mode 100644
index 0000000..784fc9a
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/lost-in-redirection-mockup4.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/markup-inheritance.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/markup-inheritance.png 
b/wicket-user-guide/src/main/asciidoc/img/markup-inheritance.png
new file mode 100644
index 0000000..f45414f
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/markup-inheritance.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/modal-window-example-screenshot.png
----------------------------------------------------------------------
diff --git 
a/wicket-user-guide/src/main/asciidoc/img/modal-window-example-screenshot.png 
b/wicket-user-guide/src/main/asciidoc/img/modal-window-example-screenshot.png
new file mode 100644
index 0000000..62921bc
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/modal-window-example-screenshot.png 
differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/model-chaining.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/model-chaining.png 
b/wicket-user-guide/src/main/asciidoc/img/model-chaining.png
new file mode 100644
index 0000000..c13a824
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/model-chaining.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/multi-select-transfer-component-wicket.png
----------------------------------------------------------------------
diff --git 
a/wicket-user-guide/src/main/asciidoc/img/multi-select-transfer-component-wicket.png
 
b/wicket-user-guide/src/main/asciidoc/img/multi-select-transfer-component-wicket.png
new file mode 100644
index 0000000..d46d89e
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/multi-select-transfer-component-wicket.png
 differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/multi-select-transfer-component.png
----------------------------------------------------------------------
diff --git 
a/wicket-user-guide/src/main/asciidoc/img/multi-select-transfer-component.png 
b/wicket-user-guide/src/main/asciidoc/img/multi-select-transfer-component.png
new file mode 100644
index 0000000..727b61d
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/multi-select-transfer-component.png 
differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/mvn-wicket-archetype.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/mvn-wicket-archetype.png 
b/wicket-user-guide/src/main/asciidoc/img/mvn-wicket-archetype.png
new file mode 100644
index 0000000..cf6b3e4
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/mvn-wicket-archetype.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/mywebapp-class-diagramm.jpg
----------------------------------------------------------------------
diff --git 
a/wicket-user-guide/src/main/asciidoc/img/mywebapp-class-diagramm.jpg 
b/wicket-user-guide/src/main/asciidoc/img/mywebapp-class-diagramm.jpg
new file mode 100644
index 0000000..e0663c2
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/mywebapp-class-diagramm.jpg differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/netbeans-maven-import.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/netbeans-maven-import.png 
b/wicket-user-guide/src/main/asciidoc/img/netbeans-maven-import.png
new file mode 100644
index 0000000..fae399d
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/netbeans-maven-import.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/note.gif
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/note.gif 
b/wicket-user-guide/src/main/asciidoc/img/note.gif
new file mode 100644
index 0000000..1c9883b
Binary files /dev/null and b/wicket-user-guide/src/main/asciidoc/img/note.gif 
differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/package-bundles.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/package-bundles.png 
b/wicket-user-guide/src/main/asciidoc/img/package-bundles.png
new file mode 100644
index 0000000..f820ece
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/package-bundles.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/package-resource-localization.png
----------------------------------------------------------------------
diff --git 
a/wicket-user-guide/src/main/asciidoc/img/package-resource-localization.png 
b/wicket-user-guide/src/main/asciidoc/img/package-resource-localization.png
new file mode 100644
index 0000000..07b58dd
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/package-resource-localization.png 
differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/package-resources.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/package-resources.png 
b/wicket-user-guide/src/main/asciidoc/img/package-resources.png
new file mode 100644
index 0000000..8fe2940
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/package-resources.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/package-structure-custom-folder.png
----------------------------------------------------------------------
diff --git 
a/wicket-user-guide/src/main/asciidoc/img/package-structure-custom-folder.png 
b/wicket-user-guide/src/main/asciidoc/img/package-structure-custom-folder.png
new file mode 100644
index 0000000..1437ffd
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/package-structure-custom-folder.png 
differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/package-structure-resource-folder.png
----------------------------------------------------------------------
diff --git 
a/wicket-user-guide/src/main/asciidoc/img/package-structure-resource-folder.png 
b/wicket-user-guide/src/main/asciidoc/img/package-structure-resource-folder.png
new file mode 100644
index 0000000..aa5d5ee
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/package-structure-resource-folder.png 
differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/page-and-panel-bundle.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/page-and-panel-bundle.png 
b/wicket-user-guide/src/main/asciidoc/img/page-and-panel-bundle.png
new file mode 100644
index 0000000..5c8e7c8
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/page-and-panel-bundle.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/page-expired.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/page-expired.png 
b/wicket-user-guide/src/main/asciidoc/img/page-expired.png
new file mode 100644
index 0000000..a537530
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/page-expired.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/page-id.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/page-id.png 
b/wicket-user-guide/src/main/asciidoc/img/page-id.png
new file mode 100644
index 0000000..8fdc283
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/page-id.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/page-panel-hierarchy.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/page-panel-hierarchy.png 
b/wicket-user-guide/src/main/asciidoc/img/page-panel-hierarchy.png
new file mode 100644
index 0000000..999000a
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/page-panel-hierarchy.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/page-storage.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/page-storage.png 
b/wicket-user-guide/src/main/asciidoc/img/page-storage.png
new file mode 100644
index 0000000..9c48d08
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/page-storage.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/paging-navigator.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/paging-navigator.png 
b/wicket-user-guide/src/main/asciidoc/img/paging-navigator.png
new file mode 100644
index 0000000..58e54b5
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/paging-navigator.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/quickstart-webpage.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/quickstart-webpage.png 
b/wicket-user-guide/src/main/asciidoc/img/quickstart-webpage.png
new file mode 100644
index 0000000..3b14920
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/quickstart-webpage.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/regex-form.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/regex-form.png 
b/wicket-user-guide/src/main/asciidoc/img/regex-form.png
new file mode 100644
index 0000000..2dd4da7
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/regex-form.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/reload-page.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/reload-page.png 
b/wicket-user-guide/src/main/asciidoc/img/reload-page.png
new file mode 100644
index 0000000..9ff23f0
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/reload-page.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/request-cycle-handler.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/request-cycle-handler.png 
b/wicket-user-guide/src/main/asciidoc/img/request-cycle-handler.png
new file mode 100644
index 0000000..d2e0f3f
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/request-cycle-handler.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/requesthandling-general.png
----------------------------------------------------------------------
diff --git 
a/wicket-user-guide/src/main/asciidoc/img/requesthandling-general.png 
b/wicket-user-guide/src/main/asciidoc/img/requesthandling-general.png
new file mode 100644
index 0000000..56d9379
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/requesthandling-general.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/samepackage.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/samepackage.png 
b/wicket-user-guide/src/main/asciidoc/img/samepackage.png
new file mode 100644
index 0000000..8505f18
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/samepackage.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/select-all-checkbox.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/select-all-checkbox.png 
b/wicket-user-guide/src/main/asciidoc/img/select-all-checkbox.png
new file mode 100644
index 0000000..c117d33
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/select-all-checkbox.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/simple-listview-screenshot.png
----------------------------------------------------------------------
diff --git 
a/wicket-user-guide/src/main/asciidoc/img/simple-listview-screenshot.png 
b/wicket-user-guide/src/main/asciidoc/img/simple-listview-screenshot.png
new file mode 100644
index 0000000..3754032
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/simple-listview-screenshot.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/springsource-logo.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/springsource-logo.png 
b/wicket-user-guide/src/main/asciidoc/img/springsource-logo.png
new file mode 100644
index 0000000..34e8d8e
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/springsource-logo.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/subscribe-checkbox-set.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/subscribe-checkbox-set.png 
b/wicket-user-guide/src/main/asciidoc/img/subscribe-checkbox-set.png
new file mode 100644
index 0000000..b29a868
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/subscribe-checkbox-set.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/tinymce.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/tinymce.png 
b/wicket-user-guide/src/main/asciidoc/img/tinymce.png
new file mode 100644
index 0000000..8f9eef1
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/tinymce.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/tinymce_basic.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/tinymce_basic.png 
b/wicket-user-guide/src/main/asciidoc/img/tinymce_basic.png
new file mode 100644
index 0000000..99ccaad
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/tinymce_basic.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/tomcat-admin-sessions.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/tomcat-admin-sessions.png 
b/wicket-user-guide/src/main/asciidoc/img/tomcat-admin-sessions.png
new file mode 100644
index 0000000..b9f6474
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/tomcat-admin-sessions.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/uml-component.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/uml-component.png 
b/wicket-user-guide/src/main/asciidoc/img/uml-component.png
new file mode 100644
index 0000000..61c3010
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/uml-component.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/uml-form-component.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/uml-form-component.png 
b/wicket-user-guide/src/main/asciidoc/img/uml-form-component.png
new file mode 100644
index 0000000..3577220
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/uml-form-component.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/uml-imodel.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/uml-imodel.png 
b/wicket-user-guide/src/main/asciidoc/img/uml-imodel.png
new file mode 100644
index 0000000..cd42287
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/uml-imodel.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/url-encrypted.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/url-encrypted.png 
b/wicket-user-guide/src/main/asciidoc/img/url-encrypted.png
new file mode 100644
index 0000000..ea4c4b6
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/url-encrypted.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/validation-error-message.png
----------------------------------------------------------------------
diff --git 
a/wicket-user-guide/src/main/asciidoc/img/validation-error-message.png 
b/wicket-user-guide/src/main/asciidoc/img/validation-error-message.png
new file mode 100644
index 0000000..eb7c878
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/validation-error-message.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/validator-type-hierachy.png
----------------------------------------------------------------------
diff --git 
a/wicket-user-guide/src/main/asciidoc/img/validator-type-hierachy.png 
b/wicket-user-guide/src/main/asciidoc/img/validator-type-hierachy.png
new file mode 100644
index 0000000..64c33f4
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/validator-type-hierachy.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/validator-with-bundle.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/validator-with-bundle.png 
b/wicket-user-guide/src/main/asciidoc/img/validator-with-bundle.png
new file mode 100644
index 0000000..012b5d5
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/validator-with-bundle.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/warning.gif
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/warning.gif 
b/wicket-user-guide/src/main/asciidoc/img/warning.gif
new file mode 100644
index 0000000..c6acdec
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/warning.gif differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/webinf.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/webinf.png 
b/wicket-user-guide/src/main/asciidoc/img/webinf.png
new file mode 100644
index 0000000..d1f9fa3
Binary files /dev/null and b/wicket-user-guide/src/main/asciidoc/img/webinf.png 
differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/wicket-cache.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/wicket-cache.png 
b/wicket-user-guide/src/main/asciidoc/img/wicket-cache.png
new file mode 100644
index 0000000..649335e
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/wicket-cache.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/wicket_metrics_graphite.png
----------------------------------------------------------------------
diff --git 
a/wicket-user-guide/src/main/asciidoc/img/wicket_metrics_graphite.png 
b/wicket-user-guide/src/main/asciidoc/img/wicket_metrics_graphite.png
new file mode 100644
index 0000000..c10ab42
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/wicket_metrics_graphite.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/img/wikipedia-login-form.png
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/img/wikipedia-login-form.png 
b/wicket-user-guide/src/main/asciidoc/img/wikipedia-login-form.png
new file mode 100644
index 0000000..8fee47d
Binary files /dev/null and 
b/wicket-user-guide/src/main/asciidoc/img/wikipedia-login-form.png differ

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/internals.adoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/internals.adoc 
b/wicket-user-guide/src/main/asciidoc/internals.adoc
new file mode 100644
index 0000000..139597f
--- /dev/null
+++ b/wicket-user-guide/src/main/asciidoc/internals.adoc
@@ -0,0 +1,2 @@
+
+

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/internals/autocomponents.adoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/internals/autocomponents.adoc 
b/wicket-user-guide/src/main/asciidoc/internals/autocomponents.adoc
new file mode 100644
index 0000000..12e9214
--- /dev/null
+++ b/wicket-user-guide/src/main/asciidoc/internals/autocomponents.adoc
@@ -0,0 +1,81 @@
+
+=== Markup loading and parsing
+
+Before rendering any component Wicket must retrieve its markup calling method 
_getMarkup()_ of class _org.apache.wicket.Component_. This markup is an 
instance of interface _org.apache.wicket.markup.IMarkupFragment_. Markup is 
lazy loaded the first time we render the relative component and is cached at 
application level. The internal class that actually loads the markup is 
_org.apache.wicket.markup.MarkupFactory_ and is part of application's markup 
settings:
+
+[source,java]
+----
+       //get current markup factory
+       Application.get().getMarkupSettings().getMarkupFactory()
+----
+ 
+After the markup has been loaded by _MarkupFactory_, it's parsed with class 
_org.apache.wicket.markup.MarkupParser_. _MarkupFactory_ creates a new 
_MarkupParser_ with method _newMarkupParser(MarkupResourceStream resource)_. 
The effective markup parsing is performed with a chain of entities implementing 
interface _org.apache.wicket.markup.parser.IMarkupFilter_. The default set of 
_IMarkupFilters_S used by _MarkupParser_ takes care of different tasks such as 
HTML validation, comments removing, Wicket tags handling, etc... 
+
+To customize the set of _IMarkupFilters_S used in our application we can 
create a subclass of _MarkupFactory_ overriding method 
_newMarkupParser(MarkupResourceStream resource)_:
+
+[source,java]
+----
+public MyMarkupFactory 
+{
+...
+  public MarkupParser newMarkupParser(final MarkupResourceStream resource) 
+  {
+       MarkupParser parser = super.newMarkupParser(resource);
+       parser.add(new MyFilter());
+       return parser;
+  }
+}
+----
+
+This custom class must be registered in the markup settings during 
application's initialization:
+
+[source,java]
+----
+@Override
+public void init()
+{
+       super.init();
+       getMarkupSettings().setMarkupFactory(myMarkupFactory)
+}
+----
+
+Usually we won't need to change the default configuration of 
_IMarkupFilters_S, but it's important to be aware of this internal mechanism 
before we talk about another advanced feature, which is building auto 
components resolvers.
+
+=== Auto components resolvers
+
+Even if Wicket encourages developers to use just standard HTML in their markup 
code, in this guide we have seen a number of  [special] tags (those starting 
with _wicket:_) that help us for specific tasks (e.g. _wicket:enclosure_ tag). 
Wicket handles most of these tags creating a corresponding special component 
called _auto_ component. This kind of components are resolved in two steps:
+
+1. first their tag is identified by a _IMarkupFilters_ which also takes care 
of assigning a unique tag id.
+2. then during rendering phase when an auto-component is found a new component 
is created for it using one of the registered 
_org.apache.wicket.markup.resolver.IComponentResolver_:
+
+[source,java]
+----
+public interface IComponentResolver extends IClusterable
+{
+       /**
+        * Try to resolve a component.
+        * 
+        * @param container
+        *            The container parsing its markup
+        * @param markupStream
+        *            The current markupStream
+        * @param tag
+        *            The current component tag while parsing the markup
+        * @return component or {@code null} if not found
+        */
+       public Component resolve(final MarkupContainer container, final 
MarkupStream markupStream,
+               final ComponentTag tag);
+}
+----
+
+Registered _IComponentResolver_s can be retrieved through Application's 
settings:
+
+[source,java]
+----
+Application.get()
+       .getPageSettings()
+       .getComponentResolvers()
+----
+
+NOTE: An internal utility class named 
_org.apache.wicket.markup.resolver.ComponentResolvers_ is also available to 
resolve autocomponents for the current markup tag.
+

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/internals/pagestoring.adoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/internals/pagestoring.adoc 
b/wicket-user-guide/src/main/asciidoc/internals/pagestoring.adoc
new file mode 100644
index 0000000..3a0c28e
--- /dev/null
+++ b/wicket-user-guide/src/main/asciidoc/internals/pagestoring.adoc
@@ -0,0 +1,98 @@
+
+During request handling, Wicket manages page instances through interface 
_org.apache.wicket.request.handler.IPageProvider_. This interface creates a new 
page instance or loads a previously serialized page instance if we provide the 
corrisponding page id. _IPageProvider_ delegates page creation and retrieval to 
interface _org.apache.wicket.request.mapper.IPageSource_.
+When page class is provided _IPageSource_ delegates page creation to interface 
_org.apache.wicket.IPageFactory_, while when page id is provided it uses 
interface _org.apache.wicket.page.IPageManager_ to load the previously 
serialized page.
+
+The following workflow diagram summarizes the mechanism seen so far:
+
+image::../img/page-storage.png[]
+
+=== IPageManager
+
+_org.apache.wicket.page.IPageManager_'s task is to manage which pages have 
been used in a request and store their last state in the backing stores, namely 
_IPageStore_.
+The default implementation _org.apache.wicket.page.PageStoreManager_ collects 
all stateful pages which have been used in the request cycle (more than one 
page can be used in a single request if for example _setResponsePage()_ or 
_RestartResponseException_ is used).
+At the end of the request all collected page instances are being stored in the 
first level cache - http session. They are stored in http session attribute 
named _ [wicket:persistentPageManagerData-APPLICATION_NAME] and passed to the 
underlying _IPageStore_.
+When the next http request comes _IPageProvider_ will ask for page with 
specific id and _PageStoreManager_ will look first in the http session and if 
no match is found then it will delegate to the IPageStore. At the end of the 
second request the http session based cache is being overwritten completely 
with the newly used page instances.
+
+To setup another _IPageManager_ implementation use 
_org.apache.wicket.Application.setPageManagerProvider(IPageManagerProvider)_.
+The custom _IPageManager_ implementation may or may not use 
_IPageStore/IDataStore_.
+
+=== IPageStore
+
+_org.apache.wicket.pageStore.IPageStore_'s role is to mediate the storing and 
loading of pages done by the underlying _IDataStore_. The default 
implementation _org.apache.wicket.pageStore.DefaultPageStore_ pre-processes the 
pages before passing them to _IDataStore1.storeData(String, int, byte <<_>>
+)_ and to post-processes them after _IDataStore1.getData(String, int)_. The 
processing consists of transforming the page instance to 
_org.apache.wicket.pageStore.DefaultPageStore.SerializedPage_. This is a struct 
of:
+
+[source,java]
+----
+{
+   sessionId: String,
+   pageId : int,
+   data : byte[]
+}
+----
+
+i.e. this is the serialized page instance (data) plus additional information 
needed to be able to easily find it later (sessionId, pageId).
+
+When a _SerializedPage_ has to be stored _DefaultPageStore_ stores it in a 
application scoped cache ({sessionId, pageId} -> SerializedPage) and 
additionally gives it to the underlying _IDataStore1.storeData(sessionId, 
pageId, data)_. The application scoped cache is used as second level cache. 
Getting a page from it is slower than the http session based cache in 
_PageStoreManager_ because the page has to be deserialized, but is faster than 
the underlying _IDataStore_ which stores the page bytes in some persistent 
store.
+
+The size of the application scoped cache is configurable via 
_org.apache.wicket.settings.StoreSettings.setInmemoryCacheSize(int)_.
+
+=== IDataStore
+
+_org.apache.wicket.pageStore.IDataStore_ is used to persist Wicket pages (as 
bytes) to a persistent store like e.g. files or databases. The default 
implementation is _org.apache.wicket.pageStore.DiskDataStore_ which as its name 
says stores the pages in files. The location of the folder where the files are 
stored is configurable via 
_org.apache.wicket.settings.StoreSettings.setFileStoreFolder(File)_, by default 
the web container's work folder is used (ServletContext attribute 
'javax.servlet.context.tempdir'). In this folder a sub-folder is created named 
_'applicationName-filestore'_. 
+This folder contains a sub-folder for each active http session. This session 
folder contains a single file named 'data' which contains the bytes for the 
pages. The size of this 'data' file is configurable via 
_org.apache.wicket.settings.StoreSettings.setMaxSizePerSession(Bytes)_. When 
this size is exceeded the newly stored files overwrite the oldest ones.
+
+=== AsynchronousDataStore
+
+By default Wicket wraps _DiskDataStore_ with 
_org.apache.wicket.pageStore.AsynchronousDataStore_. The role of 
_AsynchronousDataStore_ is to detach the http worker thread from waiting for 
the write of the page bytes to the disk.
+To disable it use: 
_org.apache.wicket.settings.StoreSettings.setAsynchronous(false)_. 
AsynchronousDataStore can delay the storage of pages' bytes for at most 
_org.apache.wicket.settings.StoreSettings.setAsynchronousQueueCapacity(int)_ 
pages. If this capacity is exceeded then the page's bytes are written 
synchronously to the backing _IDataStore_.
+
+=== DebugDiskDataStore
+
+Wicket provides an extension of _DiskDataStore_ that can be used to browse the 
content of the 'data' files created by _DiskDataStore_. This extension can be 
found in wicket-devutils.jar and needs to be enabled in the _init_-method of 
your application via 
+[source,java]
+----
+ DebugDiskDataStore.register(this);
+----
+The debug information can be seen at 
http://host:port/context/wicket/internal/debug/diskDataStore
+
+=== HttpSessionDataStore
+
+In some environments like Google AppEngine it is not allowed to write to the 
file system and thus _DiskDataStore_ cannot be used. In this case 
_org.apache.wicket.pageStore.memory.HttpSessionDataStore_ can be used as 
replacement. This implementation of _IDataStore_ is not persistent and puts all 
the data in the http session.
+Wicket comes with 2 default eviction strategies to keep the size of the http 
session reasonable:
+
+* *org.apache.wicket.pageStore.memory.PageNumberEvictionStrategy* - specifies 
how many pages can be hold
+* *org.apache.wicket.pageStore.memory.MemorySizeEvictionStrategy* - specifies 
the maximum amount of memory for pages per http session.
+
+To configure it:
+[source,java]
+----
+MyApp#init()
+{
+   super.init();
+ 
+   setPageManagerProvider(new DefaultPageManagerProvider(this)
+   {
+       protected IDataStore newDataStore()
+       {
+           return  new HttpSessionDataStore(getPageManagerContext(), new 
PageNumberEvictionStrategy(20));
+       }
+   }
+}
+----
+
+=== DebugBar
+
+Further insights which can be valueable during debugging can be retrieved 
using the _org.apache.wicket.devutils.debugbar.DebugBar_ from 
wicket-devutils.jar. It's a panel which you simply add:
+
+Java: 
+[source,java]
+----
+add(new DebugBar("debug"));
+----
+
+HTML:
+[source,java]
+----
+<span wicket:id="debug"/>
+----
+

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/introduction.adoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/introduction.adoc 
b/wicket-user-guide/src/main/asciidoc/introduction.adoc
new file mode 100644
index 0000000..8d54c60
--- /dev/null
+++ b/wicket-user-guide/src/main/asciidoc/introduction.adoc
@@ -0,0 +1,26 @@
+
+Wicket has been around since 2004 and it has been an Apache project since 
2007. During these years it has proved to be a solid and valuable solution for 
building enterprise web applications.
+
+Wicket core developers have done a wonderful job with this framework and they 
continue to improve it release after release.
+However Wicket never provided a freely available documentation and even if you 
can find on Internet many live examples and many technical articles on it (most 
of them at {externalink:wicket.examples.url}Wicket Examples Site{externalink} 
and at  http://wicketinaction.com[Wicket in Action] ), the lack of an organized 
and freely available documentation has always been a sore point for this 
framework.
+
+That's quite an issue because many other popular frameworks (like Spring, 
Hibernate or Struts) offer a vast and very good documentation which 
substantially contributed to their success.
+
+This document is not intended to be a complete reference for Wicket but it 
simply aims to be a straightforward introduction to the framework that should 
significantly reduce its learning curve. What you will find here reflects my 
experience with Wicket and it's strictly focused on the framework.
+The various Wicket-related topics are gradually introduced using pragmatic 
examples of code that you can find in  
https://github.com/bitstorm/Wicket-tutorial-examples[the according repository 
on Github.] 
+However remember that Wicket is a vast and powerful tool, so you should feel 
confident with the topics exposed in this document before starting to code your 
real applications!
+
+For those who need further documentation on Wicket, there are  
http://wicket.apache.org/learn/books/[many good books] available for this 
framework.
+
+Hope you'll find this guide helpful. Have fun with Wicket!
+
+*Andrea Del Bene, adelb...@apache.org*
+
+*PS*: this guide is based on Wicket 6. However if you are using an older 
version you should find this guide useful as well, but it's likely that the 
code and the snippets won't work with your version.
+
+*PPS*: although I've tried to do my best working on this tutorial, this 
document is a work in progress and may contain errors and/or omissions. That's 
why any feedback of any kind is REALLY appreciated!
+
+Project started by 
+
+image::../img/comsysto-logo.png[link="http://comsysto.com/";]
+

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/jee.adoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/jee.adoc 
b/wicket-user-guide/src/main/asciidoc/jee.adoc
new file mode 100644
index 0000000..0be3877
--- /dev/null
+++ b/wicket-user-guide/src/main/asciidoc/jee.adoc
@@ -0,0 +1,12 @@
+
+Writing a web application is not just about producing a good layout and a 
bunch of “cool” pages. We must also integrate our presentation code with 
enterprise resources like data sources, message queues, business objects, etc...
+
+The first decade of 2000s has seen the rising of new frameworks (like  
http://spring.io/[Spring] ) and new specifications (like  
http://en.wikipedia.org/wiki/Enterprise_JavaBeans[EJB 3.1] ) aimed to simplify 
the management of enterprise resources and (among other things) their 
integration with presentation code. 
+
+All these new technologies are based on the concepts of container and 
dependency injection. Container is the environment where our enterprise 
resources are created and configured while   
http://en.wikipedia.org/wiki/Dependency_Injection[dependency injection] is a 
pattern implemented by containers to inject into an object the resources it 
depends on.
+
+Wicket can be easily integrated with enterprise containers using component 
instantiation listeners. These entities are instances of interface 
_org.apache.wicket.application.IComponentInstantiationListener_ and can be 
registered during application's initialization.   
IComponentInstantiationListener defines callback method 
onInstantiation(Component component) which can be used to provide custom 
instantiation logic for Wicket components. 
+
+Wicket distribution and project  https://github.com/wicketstuff[WicketStuff] 
already provide a set of built-in listeners to integrate our applications with 
EJB 3.1 compliant containers (like JBoss Seam) or with some of the most popular 
enterprise frameworks like  http://code.google.com/p/google-guice/[Guice] or 
Spring.
+
+In this chapter we will see two basic examples of injecting a 
container-defined object into a page using first an implementation of the EJB 
3.1 specifications (project  http://openejb.apache.org/[OpenEJB] ) and then 
using Spring.

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/jee/jee_1.adoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/jee/jee_1.adoc 
b/wicket-user-guide/src/main/asciidoc/jee/jee_1.adoc
new file mode 100644
index 0000000..464d285
--- /dev/null
+++ b/wicket-user-guide/src/main/asciidoc/jee/jee_1.adoc
@@ -0,0 +1,56 @@
+
+
+
+WicketStuff provides a module called wicketstuff-javaee-inject that contains 
component instantiation listener _JavaEEComponentInjector_. If we register this 
listener in our application we can use standard EJB annotations to inject 
dependencies into our Wicket components.
+
+To register a component instantiation listener in Wicket we must use 
_Application_'s method _getComponentInstantiationListeners_ which returns a 
typed collection of _IComponentInstantiationListeners_. 
+
+The following initialization code is taken from project _EjbInjectionExample_: 
+
+[source,java]
+----
+public class WicketApplication extends WebApplication
+{      
+       //Constructor...
+
+       @Override
+       public void init()
+       {
+               super.init();
+               getComponentInstantiationListeners().add(new 
JavaEEComponentInjector(this));            
+       }       
+}
+----
+
+In this example the object that we want to inject is a simple class containing 
a greeting message:
+
+[source,java]
+----
+@ManagedBean
+public class EnterpriseMessage {
+       public String message = "Welcome to the EJB world!";
+}
+----
+
+Please note that we have used annotation ManagedBean to decorate our object. 
Now to inject it into the home page we must add a field of type 
EnterpriseMessage and annotate it with annotation _EJB:
+
+[source,java]
+----
+public class HomePage extends WebPage {
+       
+       @EJB
+       private EnterpriseMessage enterpriseMessage;
+       //getter and setter for enterpriseMessage...
+       
+       public HomePage(final PageParameters parameters) {
+               super(parameters);
+       
+               add(new Label("message", enterpriseMessage.message));
+       }
+}
+----
+
+That is all. We can point the browser to the home page of the project and see 
the greeting message injected into the page:
+
+image::../img/EjbInjectionExample.png[]
+

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/jee/jee_2.adoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/jee/jee_2.adoc 
b/wicket-user-guide/src/main/asciidoc/jee/jee_2.adoc
new file mode 100644
index 0000000..a3fc3f3
--- /dev/null
+++ b/wicket-user-guide/src/main/asciidoc/jee/jee_2.adoc
@@ -0,0 +1,66 @@
+
+
+
+If we need to inject dependencies with Spring we can use listener 
_org.apache.wicket.spring.injection.annot.SpringComponentInjector_ provided by 
module wicket-spring.
+
+For the sake of simplicity in the example project _SpringInjectionExample_ we 
have used Spring class _AnnotationConfigApplicationContext_ to avoid any XML 
file and create a Spring context directly from code:
+
+[source,java]
+----
+public class WicketApplication extends WebApplication
+{      
+  //Constructor...
+
+  @Override
+  public void init()
+  {
+    super.init();
+
+    AnnotationConfigApplicationContext ctx = new 
AnnotationConfigApplicationContext();
+    //Scan package for annotated beans
+    ctx.scan("org.wicketTutorial.ejbBean");
+    ctx.refresh();
+    
+    getComponentInstantiationListeners().add(new SpringComponentInjector(this, 
ctx));
+  }    
+}
+----
+
+As we can see in the code above, the constructor of _SpringComponentInjector_ 
takes in input also an instance of Spring context.
+
+The injected object is the same used in the previous project 
_EjbInjectionExample_, it differs only for the greeting message:
+
+[source,java]
+----
+@ManagedBean
+public class EnterpriseMessage {
+       public String message = "Welcome to the Spring world!";
+}
+----
+
+In the home page of the project the object is injected using Wicket annotation 
_SpringBean:
+
+[source,java]
+----
+public class HomePage extends WebPage {
+  @SpringBean
+  private EnterpriseMessage enterpriseMessage;
+  //getter and setter for enterpriseMessage...
+  
+  public HomePage(final PageParameters parameters) {
+       super(parameters);
+       
+       add(new Label("message", enterpriseMessage.message));
+  }
+}
+----
+
+By default _SpringBean_ searches into Spring context for a bean having the 
same type of the annotated field. If we want we can specify also the name of 
the bean to use as injected object and we can declare if the dependency is 
required or not. By default dependencies are required and if they can not be 
resolved to a compatible bean, Wicket will throw an _IllegalStateException_:
+
+[source,java]
+----
+  //set the dependency as not required, i.e the field can be left null
+  @SpringBean(name="anotherName", required=false)
+  private EnterpriseMessage enterpriseMessage;
+----
+

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/jee/jee_3.adoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/jee/jee_3.adoc 
b/wicket-user-guide/src/main/asciidoc/jee/jee_3.adoc
new file mode 100644
index 0000000..ea383b6
--- /dev/null
+++ b/wicket-user-guide/src/main/asciidoc/jee/jee_3.adoc
@@ -0,0 +1,13 @@
+
+
+
+Spring (and Guice) users can use standard  
http://jcp.org/en/jsr/detail?id=330[JSR-330] annotations to wire their 
dependencies. This will make their code more interoperable with other 
containers that support this standard:
+
+[source,java]
+----
+  //inject a bean specifying its name with JSR-330 annotations
+  @Inject 
+  @Named("anotherName")
+  private EnterpriseMessage enterpriseMessage;
+----
+

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/jee/jee_4.adoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/jee/jee_4.adoc 
b/wicket-user-guide/src/main/asciidoc/jee/jee_4.adoc
new file mode 100644
index 0000000..84656d7
--- /dev/null
+++ b/wicket-user-guide/src/main/asciidoc/jee/jee_4.adoc
@@ -0,0 +1,7 @@
+
+
+
+In this chapter we have seen how to integrate Wicket applications with Spring 
and with an EJB container. Module wicket-examples contains also an example of 
integration with Guice (see application class 
_org.apache.wicket.examples.guice.GuiceApplication_). 
+
+
+

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/jsintegration.adoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/jsintegration.adoc 
b/wicket-user-guide/src/main/asciidoc/jsintegration.adoc
new file mode 100644
index 0000000..12f128c
--- /dev/null
+++ b/wicket-user-guide/src/main/asciidoc/jsintegration.adoc
@@ -0,0 +1,2 @@
+
+It's time to put into practice what we have learnt so far in this guide. To do 
this we will build a custom date component consisting of a text field to edit a 
date value and a fancy calendar icon to open a JavaScript datepicker. This 
chapter will also illustrate an example of integration of Wicket with a 
JavaScript library like  http://jquery.com/[JQuery] and its child project  
http://jqueryui.com/[JQuery UI] .

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/jsintegration/jsintegration_1.adoc
----------------------------------------------------------------------
diff --git 
a/wicket-user-guide/src/main/asciidoc/jsintegration/jsintegration_1.adoc 
b/wicket-user-guide/src/main/asciidoc/jsintegration/jsintegration_1.adoc
new file mode 100644
index 0000000..cc92cc3
--- /dev/null
+++ b/wicket-user-guide/src/main/asciidoc/jsintegration/jsintegration_1.adoc
@@ -0,0 +1,22 @@
+
+
+
+For end-users a datepicker is one of the most appreciated widget. It allows to 
simply edit a date value with the help of a user-friendly pop-up calendar. 
That's why nearly all UI frameworks provide a version of this widget. 
+
+Popular JavaScript libraries like YUI and JQuery come with a ready-to-use 
datepicker to enrich the user experience of our web applications. Wicket 
already provides a component which integrates a text field with a calendar 
widget from YUI library, but there is no built-in component that uses a 
datepicker based on JQuery library. 
+
+As both JQuery and its child project JQueryUI have gained a huge popularity in 
the last years, it's quite interesting to see how to integrate them in Wicket 
building a custom component. In this chapter we will create a custom datepicker 
based on the corresponding widget from JQueryUI project:
+
+image::../img/datepicker-screenshot.png[]
+
+WARNING: On Internet you can find different libraries that already offer a 
strong integration between Wicket and JQuery. The goal of this chapter is to 
see how to integrate Wicket with a JavaScript framework building a simple 
homemade datepicker which is not intended to provide every feature of the 
original JavaScript widget.
+
+=== What features we want to implement
+
+Before starting to write code, we must clearly define what features we want to 
implement for our component. The new component should:
+
+* *Be self-contained*: we must be able to distribute it and use it in other 
projects without requiring any kind of additional configuration.
+* *Have a customizable date format*: developer must be able to decide the date 
format used to display date value and to parse user input. 
+* *Be localizable*: the pop-up calendar must be localizable in order to 
support different languages.
+
+That's what we'd like to have with our custom datepicker. In the rest of the 
chapter we will see how to implement the features listed above and which 
resources must be packaged with our component.

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/jsintegration/jsintegration_2.adoc
----------------------------------------------------------------------
diff --git 
a/wicket-user-guide/src/main/asciidoc/jsintegration/jsintegration_2.adoc 
b/wicket-user-guide/src/main/asciidoc/jsintegration/jsintegration_2.adoc
new file mode 100644
index 0000000..371eb9a
--- /dev/null
+++ b/wicket-user-guide/src/main/asciidoc/jsintegration/jsintegration_2.adoc
@@ -0,0 +1,139 @@
+
+
+
+Our new component will extend the a built-in text field 
_org.apache.wicket.extensions.markup.html.form.DateTextField_ which already 
uses a java.util.Date as model object and already performs conversion and 
validation for input values. Since the component must be self-contained, we 
must ensure that the JavaScript libraries it relies on (JQuery and JQuery UI) 
will be always available. 
+
+Starting from version 6.0 Wicket has adopted JQuery as backing JavaScript 
library so we can use the  version bundled with Wicket for our custom 
datepicker. 
+
+To make JQuery UI available we should instead go to its official site, 
download the required artifacts and use them as package resources of our 
component. 
+
+=== Component package resources
+
+JQuery UI needs the following static resources in order to work properly:
+
+* *jquery-ui.min.js*: the minified version of the library.
+* *jquery-ui.css*: the CSS containing the style used by JQuery UI widgets.
+* *jquery-ui-i18n.min.js*: the minified JavaScript containing the built-in 
support for localization.
+* *Folder 'images'*: the folder containing picture files used by JQuery UI 
widgets.
+
+In the following picture we can see these package resources with our component 
class (named JQueryDateField):
+
+image::../img/datepicker-package-resources.png[]
+
+Along with the four static resources listed above, we can find also file 
calendar.jpg, which is the calendar icon used to open the pop up calendar, and 
file JQDatePicker.js which contains the following custom JavaScript code that 
binds our component to a JQuery UI datepicker:
+
+[source,java]
+----
+function initJQDatepicker(inputId, countryIsoCode, dateFormat,  calendarIcon) {
+       var localizedArray = $.datepicker.regional[countryIsoCode];
+       localizedArray['buttonImage'] = calendarIcon;
+       localizedArray['dateFormat'] = dateFormat;
+       initCalendar(localizedArray);
+       $("#" + inputId).datepicker(localizedArray);    
+};
+
+function initCalendar(localizedArray){
+        localizedArray['changeMonth']= true;
+        localizedArray['changeYear']= true;
+        localizedArray['showOn'] = 'button';
+        localizedArray['buttonImageOnly'] = true;
+};
+----
+
+Function initJQDatepicker takes in input the following parameters:
+
+* *inputId*: the id of the HTML text field corresponding to our custom 
component instance.
+* *countryIsoCode*: a two-letter low-case ISO language code. It can contain 
also the two-letter upper-case ISO country code separated with a minus sign 
(for example en-GB)
+* *dateFormat*: the date format to use for parsing and displaying date values.
+* *calendarIcon*: the relative URL of the icon used as calendar icon.
+
+As we will see in the next paragraphs, its up to our component to generate 
this parameters and invoke the initJQDatepicker function.
+
+Function initCalendar is a simple utility function that sets the 
initialization array for datepicker widget. For more details on JQuery UI 
datepicker usage see the documentation at http://jqueryui.com/ datepicker.
+
+=== Initialization code
+
+The initialization code for our component is contained inside its method 
onInitialize and is the following:
+
+[source,java]
+----
+@Override
+protected void onInitialize() {
+       super.onInitialize();
+       setOutputMarkupId(true);
+
+       datePattern =  new ResourceModel("jqueryDateField.shortDatePattern", 
"mm/dd/yy")
+                                          .getObject();                
+       countryIsoCode = new ResourceModel("jqueryDateField.countryIsoCode", 
"en-GB")                                                             
+                                          .getObject();
+
+       PackageResourceReference resourceReference = 
+                            new PackageResourceReference(getClass(), 
"calendar.jpg");
+               
+       urlForIcon = urlFor(resourceReference, new PageParameters());
+       dateConverter = new PatternDateConverter(datePattern, false);   
+}      
+       
+@Override
+public <Date> IConverter<Date> getConverter(Class<Date> type) {
+       return (IConverter<Date>) dateConverter;
+}
+----
+
+The first thing to do inside onInitialize is to ensure that our component will 
have a markup id for its related text field. This is done invoking 
setOutputMarkupId(true). 
+
+Next, JQueryDateField tries to retrieve the date format and the ISO language 
code that must be used as initialization parameters. This is done using class 
_ResourceModel_ which searches for a given resource in the available bundles. 
If no value is found for date format or for ISO language code, default values 
will be used ('mm/dd/yy' and 'en-GB'). 
+
+To generate the relative URL for calendar icon, we load it as package resource 
reference and then we use _Component_'s method urlFor to get the URL value (we 
have seen this method in 
<<requestProcessing.adoc#_the_director_of_request_processing_requestcycle,paragraph
 9.3.2>>).
+
+The last configuration instruction executed inside onInitialize is the 
instantiation of the custom converter used by our component. This converter is 
an instance of the built-in class 
_org.apache.wicket.datetime.PatternDateConvert_ and must use the previously 
retrieved date format to perform conversion operations. Now to tell our 
component to use this converter we must return it overriding _FormComponent_'s 
method _getConverter_. 
+
+=== Header contributor code
+
+The rest of the code of our custom component is inside method _renderHeader_, 
which is responsible for adding to page header the bundled JQuery library, the 
three files from JQuery UI distribution, the custom file JQDatePicker.js and 
the invocation of function _initJQDatepicker_:
+
+[source,java]
+----
+@Override
+public void renderHead(IHeaderResponse response) {
+       super.renderHead(response);
+               
+       //if component is disabled we don't have to load the JQueryUI datepicker
+       if(!isEnabledInHierarchy())
+               return;
+       //add bundled JQuery
+       JavaScriptLibrarySettings javaScriptSettings =          
+                      getApplication().getJavaScriptLibrarySettings();
+       response.render(JavaScriptHeaderItem.
+                       forReference(javaScriptSettings.getJQueryReference()));
+       //add package resources
+       response.render(JavaScriptHeaderItem.
+             forReference(new PackageResourceReference(getClass(), 
"jquery-ui.min.js")));
+       response.render(JavaScriptHeaderItem.
+             forReference(new PackageResourceReference(getClass(), 
"jquery-ui-i18n.min.js")));
+       response.render(CssHeaderItem.
+             forReference(new PackageResourceReference(getClass(), 
"jquery-ui.css")));
+       //add custom file JQDatePicker.js. Reference JQDatePickerRef is a 
static field
+       response.render(JavaScriptHeaderItem.forReference(JQDatePickerRef));
+               
+       //add the init script for datepicker
+       String jqueryDateFormat = datePattern.replace("yyyy", 
"yy").toLowerCase();
+       String initScript = ";initJQDatepicker('" + getMarkupId() + "', '" + 
countryIsoCode +
+                            "', '" + jqueryDateFormat + "', " + "'" + 
urlForIcon +"');";
+       response.render(OnLoadHeaderItem.forScript(initScript));
+}
+----
+
+If component is disabled the calendar icon must be hidden and no datepicker 
must be displayed. That's why _renderHeader_ is skipped if component is not 
enabled.
+
+To get a reference to the bundled JQuery library we used the JavaScript 
setting class _JavaScriptLibrarySettings_ and its method _getJQueryReference_.
+
+In the last part of _renderHeader_ we build the string to invoke function 
_initJQDatepicker_ using the values obtained inside onInitialize. Unfortunately 
the date format used by JQuery UI is different from the one adopted in Java so 
we have to convert it before building the JavaScript code. This init script is 
rendered into header section using a _OnLoadHeaderItem_ to ensure that it will 
be executed after all the other scripts have been loaded.
+
+NOTE: If we add more than one instance of our custom component to a single 
page, static resources are rendered to the header section just once. Wicket 
automatically checks if a static resource is already referenced by a page and 
if so, it will not render it again.
+
+This does not apply to the init script which is dynamically generated and is 
rendered for every instance of the component.
+
+WARNING: Our datepicker is not ready yet to be used with AJAX. In 
+<<_working_with_ajax,chapter 19>> we will see how to modify it to make it 
AJAX-compatible.
+

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/jsintegration/jsintegration_3.adoc
----------------------------------------------------------------------
diff --git 
a/wicket-user-guide/src/main/asciidoc/jsintegration/jsintegration_3.adoc 
b/wicket-user-guide/src/main/asciidoc/jsintegration/jsintegration_3.adoc
new file mode 100644
index 0000000..833aae4
--- /dev/null
+++ b/wicket-user-guide/src/main/asciidoc/jsintegration/jsintegration_3.adoc
@@ -0,0 +1,8 @@
+
+
+
+In this brief chapter we have seen how custom components can be integrated 
with http://en.wikipedia.org/wiki/Dynamic_HTML[DHTML]
+
+
+
+

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/keepControl.adoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/keepControl.adoc 
b/wicket-user-guide/src/main/asciidoc/keepControl.adoc
new file mode 100644
index 0000000..70c4c37
--- /dev/null
+++ b/wicket-user-guide/src/main/asciidoc/keepControl.adoc
@@ -0,0 +1,4 @@
+
+Many Wicket newbies are initially scared by its approach to web development 
because they have the impression that the component-oriented nature of the 
framework prevents them from having direct control over the generated markup. 
This is due to the fact that many developers come from other server-side 
technologies like JSP where we physically implement the logic that controls how 
the final HTML is generated.
+
+This chapter will prevent you from having any initial misleading feeling about 
Wicket showing you how to control and manipulate the generated HTML with the 
built-in tools shipped with the framework.

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/keepControl/keepControl_1.adoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/keepControl/keepControl_1.adoc 
b/wicket-user-guide/src/main/asciidoc/keepControl/keepControl_1.adoc
new file mode 100644
index 0000000..39e2e48
--- /dev/null
+++ b/wicket-user-guide/src/main/asciidoc/keepControl/keepControl_1.adoc
@@ -0,0 +1,8 @@
+
+At the end of the previous chapter we have seen how to hide a component 
calling its method _setVisible_. In a similar fashion, we can also decide to 
disable a component using method _setEnabled_. When a component is disabled all 
the links inside it will be in turn disabled (they will be rendered as 
_<span>_) and it can not fire JavaScript events. 
+
+Class _Component_ provides two getter methods to determinate if a component is 
visible or enabled: _isVisible_ and _isEnabled_. 
+
+Even if nothing prevents us from overriding these two methods to implement a 
custom logic to determinate the state of a component, we should keep in mind 
that methods _isVisible_ and _isEnabled_ are called multiple times before a 
component is fully rendered. Hence, if we place non-trivial code inside these 
two methods, we can sensibly deteriorate the responsiveness of our pages.
+
+As we will see in the next chapter, class _Component_ provides method 
_onConfigure_ which is more suited to contain code that contributes to 
determinate component states because it is called just once during rendering 
phase.

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/keepControl/keepControl_10.adoc
----------------------------------------------------------------------
diff --git 
a/wicket-user-guide/src/main/asciidoc/keepControl/keepControl_10.adoc 
b/wicket-user-guide/src/main/asciidoc/keepControl/keepControl_10.adoc
new file mode 100644
index 0000000..4b73c7b
--- /dev/null
+++ b/wicket-user-guide/src/main/asciidoc/keepControl/keepControl_10.adoc
@@ -0,0 +1,101 @@
+
+Component _org.apache.wicket.markup.html.border.Border_ is a special purpose 
container created to enclose its tag body with its related markup. Just like 
panels and pages, borders also have their own markup file which is defined 
following the same rules seen for panels and pages. In this file 
_<wicket:border>_ tag is used to indicate which part of the content is to be 
considered as border markup:
+
+[source,html]
+----
+<?xml version="1.0" encoding="UTF-8"?>
+<html xmlns="http://www.w3.org/1999/xhtml"; 
xmlns:wicket="http://wicket.apache.org";>
+<head></head>
+<body>
+    <!--  everything above <wicket:border> tag will be discarded...-->
+    <wicket:border>
+        <div>
+           foo<br />
+    <wicket:body/><br />
+           buz <br />
+
+  </div>
+    </wicket:border>
+    <!--  everything below </wicket:border> tag will be discarded...-->
+</body>
+</html>
+----
+
+The _<wicket:body/>_ tag used in the example above is used to indicate where 
the body of the tag will be placed inside border markup. Now if we attached 
this border to the following tag
+
+[source,html]
+----
+<span wicket:id="myBorder">
+  bar
+</span>
+----
+
+we would obtain the following resulting HTML:
+
+[source,html]
+----
+<span wicket:id="myBorder">
+       <div>
+               foo<br />
+               bar<br />
+               buz <br />
+       </div>
+</span>
+----
+
+_Border_ can also contain children components which can be placed either 
inside its markup file or inside its corresponding HTML tag. In the first case 
children must be added to the border component with method 
_addToBorder(Component...)_, while in the second case we must use the 
_add(Component...)_ method.
+
+The following example illustrates both use cases:
+
+Border class:
+
+[source,java]
+----
+public class MyBorder extends Border {
+
+       public MyBorder(String id) {
+               super(id);              
+       }
+
+}
+----
+
+Border Markup:
+
+[source,html]
+----
+<?xml version="1.0" encoding="UTF-8"?>
+<html xmlns="http://www.w3.org/1999/xhtml"; 
xmlns:wicket="http://wicket.apache.org";>
+<head></head>
+<body>
+    <wicket:border>
+        <div>
+           <div wicket:id="childMarkup"></div>
+    <wicket:body/><br />
+         </div>
+    </wicket:border>
+</body>
+</html>
+----
+
+Border tag:
+
+[source,html]
+----
+<div wicket:id="myBorder">
+  <span wicket:id="childTag"></span>
+</div>
+----
+
+Initialization code for border:
+
+[source,java]
+----
+MyBorder myBorder = new MyBorder("myBorder");
+           
+myBorder.addToBorder(new Label("childMarkup", "Child inside markup."));
+myBorder.add(new Label("childTag", "Child inside tag."));
+           
+add(myBorder);
+----
+

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/keepControl/keepControl_11.adoc
----------------------------------------------------------------------
diff --git 
a/wicket-user-guide/src/main/asciidoc/keepControl/keepControl_11.adoc 
b/wicket-user-guide/src/main/asciidoc/keepControl/keepControl_11.adoc
new file mode 100644
index 0000000..af47963
--- /dev/null
+++ b/wicket-user-guide/src/main/asciidoc/keepControl/keepControl_11.adoc
@@ -0,0 +1,8 @@
+
+
+
+In this chapter we have seen the tools provided by Wicket to gain complete 
control over the generated HTML. However we didn't see yet how we can repeat a 
portion of HTML with Wicket. With classic server-side technologies like PHP or 
JSP we use loops (like _while_ or _for_) inside our pages to achieve this 
result. 
+To perform this task Wicket provides a special-purpose family of components 
called repeaters and designed to repeat their markup body to display a set of 
items. 
+
+But to fully understand how these components work, we must first learn more of 
Wicket's basics. That's why repeaters will be introduced later in 
+<<_displaying_multiple_items_with_repeaters,chapter 13>>.

http://git-wip-us.apache.org/repos/asf/wicket/blob/533c2d36/wicket-user-guide/src/main/asciidoc/keepControl/keepControl_2.adoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/main/asciidoc/keepControl/keepControl_2.adoc 
b/wicket-user-guide/src/main/asciidoc/keepControl/keepControl_2.adoc
new file mode 100644
index 0000000..975614d
--- /dev/null
+++ b/wicket-user-guide/src/main/asciidoc/keepControl/keepControl_2.adoc
@@ -0,0 +1,37 @@
+
+To modify tag attributes we can use class 
_org.apache.wicket.AttributeModifier_. This class extends 
_org.apache.wicket.behavior.Behavior_ and can be added to any component via the 
_Component_'s _add_ method. Class _Behavior_ is used to expand component 
functionalities and it can also modify component markup. We will see this class 
in detail later in <<advanced.adoc#_enriching_components_with_behaviors,chapter 
19.1>>.
+
+As first example of attribute manipulation let's consider a _Label_ component 
bound to the following markup:
+
+[source,html]
+----
+<span wicket:id="simpleLabel"></span>
+----
+
+Suppose we want to add some style to label content making it red and bolded. 
We can add to the label an _AttributeModifier_ which creates the tag attribute 
_style_ with value _ :[color:red;font-weight:bold] 
+[source,java]
+----
+label.add(new AttributeModifier("style", "color:red;font-weight:bold"));
+----
+
+If attribute _style_ already exists in the original markup, it will be 
replaced with the value specified by _AttributeModifier_. If we don't want to 
overwrite the existing value of an attribute we can use subclass 
_AttributeAppender_ which will append its value to the existing one:
+
+[source,java]
+----
+label.add(new AttributeAppender("style", "color:red;font-weight:bold"));
+----
+
+We can also create attribute modifiers using factory methods provided by class 
_AttributeModifier_ and it's also possible to prepend a given value to an 
existing attribute:
+
+[source,java]
+----
+//replaces existing value with the given one
+label.add(AttributeModifier.replace("style", "color:red;font-weight:bold"));
+
+//appends the given value to the existing one
+label.add(AttributeModifier.append("style", "color:red;font-weight:bold"));
+
+//prepends the given value to the existing one
+label.add(AttributeModifier.prepend("style", "color:red;font-weight:bold"));
+----
+

Reply via email to