ZK Developer's Guide - Schumacher Hans-Jurgen - E-Book

ZK Developer's Guide E-Book

Schumacher Hans-Jurgen

0,0
20,53 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.

Mehr erfahren.
Beschreibung

In Detail


ZK is an open-source web development framework that enables web applications to have the rich user experiences and low development costs that desktop applications have had for years. ZK includes an Ajax-based event-driven engine, rich sets of XML User Interface Language (XUL) and XHTML components, and a markup language.

The ZK rich client framework takes the so-called server-centric approach: the content synchronization of components and the event pipelining between clients and servers are automatically done by the engine and Ajax plumbing codes are completely transparent to web application developers. Therefore, the end users get rich user interfaces with similar engaged interactivity and responsiveness to that of desktop applications, while for programmers, development remains similar in simplicity to that of desktop applications.

This book is a Developer's Guide that steps you through the ZK framework with examples. It starts with installing and configuring ZK and takes you on to integrate it with other frameworks. By the time you are through the book you will be able to build an application on your own.

Sie lesen das E-Book in den Legimi-Apps auf:

Android
iOS
von Legimi
zertifizierten E-Readern

Seitenzahl: 119

Veröffentlichungsjahr: 2008

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Table of Contents

ZK Developer's Guide
Credits
About the Authors
About the Reviewers
Preface
What This Book Covers
What You Need for This Book
Who is This Book For?
Conventions
Reader Feedback
Customer Support
Downloading the Example Code for the Book
Errata
Questions
1. Getting Started with ZK
What is ZK?
XHTML
XUL
ZUML
First Step: Say Hello to ZK
Inside ZK—How ZK Works
The Three Relatives—Desktop, Page, and Component
Identification in ZK
Loading and Updating a ZK Page
Phase: Page Initial
Phase: Component Creation
Phase: Event Processing
Phase: Rendering
Phase: Request Processing
Phase: Event Processing
Phase: Rendering
Events in ZK—Listening and Processing
What is the Priority?—The Order of Event Processing
How Can We Parallelize Event Listeners?
Event Processing Thread—Initialize and Cleanup
Event Types
ZUML - ZK User Interface Markup Language
Molds
ZK Attributes
ZK Elements
Layout Techniques
Separation of Concerns
Configuration and Deployment
Configuration of web.xml
Configuration of zk.xml
Deployment
Deployment of ZK Applications with Maven
Summary
2. Online Media Library
An Online Media Library
Setting up Eclipse to Develop with ZK
Setting up a New Project
Creating the Pages
Summary
3. Extending the Online Media Library
AJAX—Live Data
Updating at the Right Place
Optimize the Result Presentation
Improve Navigation Inside the Data
Some Candies for the User
Summary
4. Is it on the Desktop or on the Web?
Adding Drag-and-Drop
Adding a Login Page
Extending Add and Update
Internationalization with the ZK Framework
Summary
5. Integration with Other Frameworks
Integration with the Spring Framework
Hibernate
JasperReport
ZK Mobile
ZK JSP Tags Library
ZK JSF Components
Binding to a Backing Bean
ValueBinding of a component
Summary
6. Creating Custom Components
Cascading Style Sheets (CSS)
Macro Components
Creating Our Own Component
Summary
7. Development Tools for the ZK Framework
ZK-Bench
Dynamic Preview of Pages
The Palette
Databinding
Deployment
Snippets
Project Explorer
Snapshot Gallery
Summary
A. Configuration Files in ZK
WEB.XML
zk.xml
Configuration of ZK.XML
<richlet> Tag
<listener> Tag
<log> Tag
<desktop-config> Tag
<el-config> Tag
<language-config> Tag
<session-config> Tag
<system-config> Tag
<zscript-config> Tag
<error-page> Tag
<preference> Tag
Index

ZK Developer's Guide

Markus Stäuble

Jurgen Schumacher

ZK Developer's Guide

Copyright © 2008 Packt Publishing

All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.

Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the authors, Packt Publishing, nor its dealers or distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.

Packt Publishing has endeavored to provide trademark information about all the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.

First published: March 2008

Production Reference:1170308

Published by Packt Publishing Ltd.

32 Lincoln Road

Olton

Birmingham, B27 6PA, UK.

ISBN 978-1-847192-00-4

www.packtpub.com

Cover Image by Vinayak Chittar (<[email protected]>)

Credits

Authors

Markus Stäuble

Hans-Jürgen Schumacher

Reviewers

Razvan Remus Popovici

Christianto Sahat Kurniawan Hutasoit

Development Editor

Rashmi Phadnis

Technical Editors

Bhupali Khule

Shailendra Shetye

Editorial Team Leader

Mithil Kulkarni

Project Manager

Abhijeet Deobhakta

Indexer

Monica Ajmera

Proofreader

Chris Smith

Production Coordinator

Aparna Bhagat

Cover Designer

Aparna Bhagat

About the Authors

Markus Stäuble is currently working as Senior Software Engineer. He has a Master's degree in Computer Science. He started with Java in the year 1999, since when he has gained much experience in building enterprise Java systems, especially web applications. He has a deep knowledge of the Java platform and the tools and frameworks around Java.

There are several people who have supported the writing of my first book. But there is especially one person to whom I want to say thank you, my wife Maria Elena. She supported the writing very much and gave me the power and energy to finish that work.

Hans-Jürgen Schumacher studied mathematics at the University of Karlsruhe, Germany. For 17 years he has been working as a Software Developer and Architect. Right now he has the position of a Senior Architect for J2EE. One of his special fields are GUIs for web applications as well as Improvements in the Software Build process.

I would like to thank my son Samuel, who was just born at the right time and gave me the power to finish this book.

About the Reviewers

Razvan Remus Popovici owns a BS degree in Computer Science from "Transylvania" University of Brasov, Romania in 1999. His software development experience consists of more than 10 years in application and database design, client-server or multi-tier application development in various domains such as networking, communications, accounting, statistics, management, or bioinformatics. His entrepreneurial background consists in a start-up with an accounting software company in Romania in 1996 (which is still selling!) and experience as an independent contractor in Germany.

Currently employed full time at Wayne State University in Detroit, Razvan is involved in architecture, design, and development of OntoTools, a software application for statistics analysis of microarray experiments used by genetics researchers.

Razvan owns Software Ingenieurbuero Popovici in Germany; the company is a sub-contractor for development of a product that enables enterprises to implement ITIL (Information Technology Infrastructure Library) concepts.

Previously, Razvan worked for many companies, such as Siemens, Nokia Siemens Netwoks, matrix42 AG, HLP, Exody GmbH, ROUTE66 BV, and RCS SA.

I would like to thank my wife Mihaela for her support while reviewing this book, and my parents.

Christianto Sahat Kurniawan Hutasoit is an independent Java developer. He has been playing with Java and JEE since 2001, and is already working for different Java projects in Indonesia, Germany, and Singapore. He can be reached at <[email protected]>.

For my mum, S. Resmiana Limbong. Thanks for your struggle.

Preface

ZK is an open-source web development framework that enables web applications to have the rich user experiences and low development costs that desktop applications have had for years. ZK includes an AJAX-based event-driven engine, rich sets of XML User Interface Language (XUL), and XHTML components, and a markup language (ZUML).The ZK rich client framework takes the so-called server-centric approach: the content synchronization of components and the event pipelining between clients and servers are automatically done by the engine and AJAX plumbing codes are completely transparent to web application developers. Therefore, the end users get rich user interfaces with similar engaged interactivity and responsiveness to that of desktop applications, while for programmers, development remains similar in simplicity to that of desktop applications

What This Book Covers

In Chapter 1 we give an introduction to, and take a look behind the ZK framework. In the last section of this chapter, we show some important issues from the ZK User Interface Language (ZUML).

In Chapter 2 we will implement a CRUD (Create—Read—Update—Delete) application. We will also design and implement the pages with the ZK framework.

At the beginning of Chapter 3, we start with a simple CRUD application. The first thing we do here is to add some AJAX features to the application (live data). Here, we will learn many cornerstones provided by the ZK framework, and that we only have to implement some interfaces to use these features. We will move the application from a mixed code approach to a Model-View-Controller Architecture.

Chapter 4 deals with the end of the third phase in the development of a CRUD application with the AJAX ZK framework. We start with a simple application, and extend it step by step. The application now has many features that you will need in other applications as well.

Chapter 5 introduces the advantages and disadvantages of ZK. Then we will see how to integrate ZK with the Spring Framework and also why it is useful to do so. We will then move on to Hibernate and JasperReport.

In Chapter 6 we will learn how to customize existing components. We have the ability to use styles that we know from HTML to change the layout of the components. Additionally we will see that it is possibile to build new components (macro components) on the basis of existing components. And, last but not least, in the last section of this chapter we will learn how to create a complete custom component that is based on a .dsp file.

Chapter 7 introduces zk-bench. Zk-bench is a very useful tool and it supports much more than just designing ZUL pages. It simplifies the development of web applications a lot and it's build around the ZK framework.

The Appendix A contains information about the configuration files, which are important in the context of a ZK application. You should use this appendix in conjunction with Chapter 1 to get a better understanding of how to configure your ZK application.

What You Need for This Book

The following is the list of software that you need to install and configure in order to start working with ZK:

ZK 2.3.0Tomcat version 5.5.x (apache.tomcat.org)The demo application from ZK 2.3.0 is a simple WAR file. Just copy the WAR file into the webapps directory of the tomcat installation.Eclipse version 3.3

Who is This Book For?

This book is a Developer's Guide that steps you through the ZK framework with examples. It starts with installing and configuring ZK and takes you on to integrate it with other frameworks. By the time you are through the book you will be able to build an application on your own.

Conventions

In this book, you will find a number of styles of text that distinguish between different kinds of information. Here are some examples of these styles, and an explanation of their meaning.

There are three styles for code. Code words in text are shown as follows: "In the sample there is a class InitSample in a package sample used."

A block of code will be set as follows:

<zscript><! [CDATA[ import sample.InitSample; ]]> </zscript>

When we wish to draw your attention to a particular part of a code block, the relevant lines or items will be made bold:

if (event.getValue().length() > 0 && event.getValue().trim() .length() > 0) { buttonToSayHello.setVisible(true); } else { buttonToSayHello.setVisible(false); }

New terms and important words are introduced in a bold-type font. Words that you see on the screen, in menus or dialog boxes for example, appear in our text like this: "When the user clicks on the button Start the thread, the thread starts doing the work asynchronously".

Note

Important notes appear in a box like this.

Note

Tips and tricks appear like this.

Reader Feedback

Feedback from our readers is always welcome. Let us know what you think about this book, what you liked or may have disliked. Reader feedback is important for us to develop titles that you really get the most out of.

To send us general feedback, simply drop an email to <[email protected]>, making sure to mention the book title in the subject of your message.

If there is a book that you need and would like to see us publish, please send us a note in the SUGGEST A TITLE form on www.packtpub.com or email <[email protected]>.

If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, see our author guide on www.packtpub.com/authors.

Customer Support

Now that you are the proud owner of a Packt book, we have a number of things to help you to get the most from your purchase.

Downloading the Example Code for the Book

Visit http://www.packtpub.com/files/code/2004_Code.zip to directly downlad the example code.

The downloadable files contain instructions on how to use them.

Errata

Although we have taken every care to ensure the accuracy of our contents, mistakes do happen. If you find a mistake in one of our books—maybe a mistake in text or code—we would be grateful if you would report this to us. By doing this you can save other readers from frustration, and help to improve subsequent versions of this book. If you find any errata, report them by visiting http://www.packtpub.com/support, selecting your book, clicking on the let us know link, and entering the details of your errata. Once your errata are verified, your submission will be accepted and the errata added to the list of existing errata. The existing errata can be viewed by selecting your title from http://www.packtpub.com/support.

Questions

You can contact us at <[email protected]>if you are having a problem with some aspect of the book, and we will do our best to address it.

Chapter 1. Getting Started with ZK

The world of web application development grows and grows. We can read many articles and books that explain how to develop a web application. Nearly every week a new framework emerges in the sphere of development. However, each new technology and framework means that we have to learn it. Without learning, it's not possible to leverage the complete power of the chosen technique. There are some reasons for the emergence of such a wide range of possibilities for developing a web application. The evolution of technology is one reason, and another is the demand for a faster and more efficient way to develop a web application. Each developer has his or her own preference for the way of development. However, not only issues in development demand new ways of building a web application. The big picture is about Web 2.0 and the underlying techniques AJAX (Asynchronous JavaScript and XML) also need new ways.

With ZK the developer gets a new alternative for solving the daily problems that occur in web projects and for building Web 2.0 applications. Through the chapters of this book, we show how to develop applications with ZK. After reading it and trying the framework there should be no need for more convincing.

Before we dive into the ZK framework it's important to clarify that this introductory chapter is not a replacement for the developers' guide from ZK (see http://www.zkoss.org/doc/ZK-devguide.pdf). The aim of this chapter is to give you an understanding of the basics and some important aspects of ZK, which are essential for daily development with the framework.