Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Arquitectura de ZK.
Cdigo Fuente.
Todos los cdigos fuente utilizado en este libro estn disponibles en github. A
medida que nuestra aplicacin de ejemplo tiene 3 configuraciones diferentes,
nuestro cdigo fuente se divide en 3 ramas: zk8, zk8 - spring, y zk8 - APP.
https://github.com/zkoss/zkessentials
La rama zk8 contiene ejemplos del captulo 1 al captulo 7. La rama zk8 resorte tiene ejemplos integrados con Spring y la rama zk8 - APP contiene
ejemplos que se integran Spring y la persistencia de datos dentro de una base
de datos con JPA.
Puede hacer clic en el icono " ZIP" para descargar la rama seleccionada actual
como un archivo zip.
Diseo de maquetacin.
Al principio, construimos la interfaz de usuario que generalmente se inicia
desde el diseo de la maquetacin. ZK proporciona varios componentes de
diseo para los requisitos de maquetado diferentes, y puede incluso configurar
atributos de un componente para ajustar detalles la maquetacin.
Requerimientos de maquetado.
Construir la vista
Construir la vista en ZK es bsicamente crear componentes, y hay dos maneras
de hacerlo: por medio de Java (programacin) y enfoque (declarativa) basado
en XML. Incluso puede mezclar estos dos enfoques.
ZK te permite componer una interfaz de usuario en Java mediante
programacin que es una caracterstica llamada richlet, pero no utiliza este
enfoque en este libro.
ZK tambin proporciona un lenguaje de formato XML llamado ZK User Interface
Markup Language (ZUML). Cada elemento XML manda Loader ZK para crear un
componente. Cada atributo XML describe qu valor a asignar al componente
creado. Utilizamos este enfoque principalmente en nuestro ejemplo.
Escribiendo un ZUL
Para crear un componente en ZK, debemos utilizar un lenguaje basado en XML
llamado ZUL, y todos los archivos escritos en ZUL deben tener la extensin de
archivo ".zul". En archivos de tipo .zul, un componente puede ser representado
como un elemento XML (etiqueta), y se puede configurar el estilo de cada
componente, comportamiento, funcin estableciendo atributos a cada etiqueta.
chapter1/banner.zul
<div hflex="1" vflex="1" sclass="banner">
<hbox hflex="1" vflex="1" align="center">
<a href="http://www.zkoss.org/">
<image src="/imgs/zklogo.png" width="90px" />
</a>
<div width="400px">
<label value="Application Name" sclass="banner-head" />
</div>
<hbox hflex="1" vflex="1" pack="end" align="end">
Anonymous
</hbox>
</hbox>
</div>
<image src="/imgs/demo.png"/>
<a href="http://www.zkoss.org/zkdemo">ZK Demo</a>
</row>
<row>
<image src="/imgs/doc.png"/>
<a href="http://books.zkoss.org/wiki/ZK_Developer's_Reference">
ZK Developer Reference
</a>
</row>
</rows>
</grid>
chapter1/footer.zul
<div hflex="1" vflex="1" sclass="footer">
<vbox hflex="1" vflex="1" align="center">
ZK Essentials, you are using ZK ${desktop.webApp.version}
<a href="http://www.zkoss.org">http://www.zkoss.org</a>
</vbox>
</div>
Lnea
2:
Vbox,
como
Hbox,
organiza
los
componentes
hijo
chapter1/index.zul
<?link rel="stylesheet" type="text/css" href="/style.css"?>
<zk>
<borderlayout hflex="1" vflex="1">
<north height="100px" border="none" >
<include src="/chapter1/banner.zul"/>
</north>
<west width="260px" border="none" collapsible="true"
splittable="true" minsize="300">
<include src="/chapter1/sidebar.zul"/>
</west>
<center id="mainContent" autoscroll="true">
<include src="/chapter1/main.zul"/>
</center>
<south height="50px" border="none">
<include src="/chapter1/footer.zul"/>
</south>
</borderlayout>
</zk>
Aplicando CSS
Adems de establecer el atributo de un componente, tambin podemos
cambiar el estilo de un componente por CSS (hoja de estilo en cascada). Hay
dos atributos para aplicar CSS:
<div sclass="banner">
Control de componentes
Podemos construir la interfaz de usuario con componentes de ZK, pero tambin
controlarlos. En este captulo, continuamos utilizando el ejemplo del captulo
anterior, pero quitar los 3 elementos con hipervnculos en la barra lateral y
sustituirlas por una accin redirigiendo. Para lograrlo, vamos a escribir cdigo
en Java para cada artculo para responder a un usuario hacer clic en y redirigir
al usuario a un sitio externo.
Zscript
forma ms sencilla de responder a clic de un usuario es escribir un mtodo
detector de eventos e invocarlo en el atributo onClick. Podemos definir un
detector de eventos en Java dentro de un elemento <zscript> y esos cdigos
se interpretarn cuando se visita el ZUL. Este elemento tambin permite que
otros lenguajes de script como JavaScript, Ruby, o Groove. < Zscript > es muy
adecuado para el prototipado rpido y se interpreta cuando se evala una
pgina zul. Puede ver el cambio sin necesidad de volver a la implementacin.
Pero tiene problemas en el rendimiento y entorno de clster, no recomendamos
usarlo en entornos de produccin.
Event listener redirect()
<grid hflex="1" vflex="1" sclass="sidebar">
<zscript><![CDATA[
//zscript code, it runs on server site, use it for fast prototyping
java.util.Map sites = new java.util.HashMap();
sites.put("zk","http://www.zkoss.org/");
sites.put("demo","http://www.zkoss.org/zkdemo");
sites.put("devref","http://books.zkoss.org/wiki/ZK_Developer's_Reference");
...
<grid>
...
<rows>
<row sclass="sidebar-fn" onClick='redirect("zk")'>
<image src="/imgs/site.png"/> ZK
</row>
<row sclass="sidebar-fn" onClick='redirect("demo")'>
<image src="/imgs/demo.png"/> ZK Demo
</row>
<row sclass="sidebar-fn" onClick='redirect("devref")'>
<image src="/imgs/doc.png"/> ZK Developer Reference
</row>
</rows>
</grid>