Crear nuevo componente a partir de existentes en ZK

La variedad de componentes que tiene el framework ZK es basta, aún así se pueden personalizar o crear nuevos componentes a partir de los existentes. En este caso vamos a crear “nuevos botones”, que simplemente a los botones existentes le agregaremos etiquetas por defecto y también iconos.

En un archivo zul escribiremos las definiciones, por ejemplo en el contenido del archivo nuevos_botones.zul tendremos:

<zk>
<?component name="botonagregar" extends="button" label="Agregar" image="/img/add.png" autodisable="self" ?>
<?component name="botongrabar" macroURI="/definicion_boton_grabar.zul" ?>
</zk>

Se añade la instrucción <?component , y como se puede ver, hay dos lineas, dos formas de añadir componentes, la primera se añade directamente todo el codigo en esta página, el otro botón hace referencia a otra página zul donde puede estar mas detallado en caso que el “nuevo componente” tenga varias lineas o mas componentes.

Dentro del otro archivo zul, definicion_boton_grabar.zul

<zk>
<button label="Grabar" image="/img/16x16/disk.png" autodisable="self"/>
</zk>

Luego en la página zul donde queremos usar estos componentes creados, se tiene que importar la página donde definimos inicialmente los componentes nuevos_botones.zul

<?import src="/nuevos_botones.zul" ?>

Esta instrucción va al inicio de la página. Para usar los componentes creados, solo se escriben encerrados entre <>

<botongrabar />
<botonagregar />

Dichos componentes son botones con etiqueta e imagen, se le pueden agregar atributos propios de button ya que extienden de estos, y si se quiere utilizar del lado de java, se tienen que definir como objetos Button.