Apache Pivot es un proyecto que hace poco fue promovido a top level en la organización apache.
Apache Pivot es un framework de presentación para hacer RIAS a simple vista, me hizo acordar a bindows (otro framework de presenteción) . La idea es generar un xml (WTKX) que contenga los componentes y el layout de tu RIA y vos programas en java, pare sido a la filosofía Flex o Silverligh.
Apache Pivot se ejecuta como un applet embebido y esta basado en Java2D y además implementa el patrón MVC. Obviamente esta bajo licencia apache.
Veamos un ejemplo:
public class HelloJava implements Application {
private Window window = null;
@Override
public void startup(Display display, Map properties) {
Label label = new Label();
label.setText("Hello World!");
label.getStyles().put("font", new Font("Arial", Font.BOLD, 24));
label.getStyles().put("color", Color.RED);
label.getStyles().put("horizontalAlignment",
HorizontalAlignment.CENTER);
label.getStyles().put("verticalAlignment",
VerticalAlignment.CENTER);
window = new Window();
window.setContent(label);
window.setTitle("Hello World!");
window.setMaximized(true);
window.open(display);
}
@Override
public boolean shutdown(boolean optional) {
if (window != null) {
window.close();
}
return false;
}
@Override
public void suspend() {
}
@Override
public void resume() {
}
public static void main(String[] args) {
DesktopApplicationContext.main(HelloJava.class, args);
}
}
Luego de hacer esta clase podemos configurar el applet:
<applet code="org.apache.pivot.wtk.BrowserApplicationContext$HostApplet"
archive="lib/pivot-core-[version].jar,lib/pivot-wtk-[version].jar,lib/pivot-wtk-terra-[version].jar,lib/pivot-tutorials-[version].jar"
width="160" height="80">
<param name="applicationClassName" value="org.apache.pivot.tutorials.HelloJava">
</applet>
En este caso no necesitamos definir el xml que contiene la estructura.
Veamos un ejemplo con este xml armado:
public class HelloWTKX implements Application {
private Window window = null;
@Override
public void startup(Display display, Mapproperties) throws Exception {
WTKXSerializer wtkxSerializer = new WTKXSerializer();
window = (Window)wtkxSerializer.readObject(this, "hello.wtkx");
window.open(display);
}
@Override
public boolean shutdown(boolean optional) {
if (window != null) {
window.close();
}
return false;
}
@Override
public void suspend() {
}
@Override
public void resume() {
}
public static void main(String[] args) {
DesktopApplicationContext.main(HelloWTKX.class, args);
}
}
Definimos el xml que tiene la estructura:
<Window title="Hello WTKX!" maximized="true" xmlns:wtkx="http://pivot.apache.org/wtkx" xmlns="org.apache.pivot.wtk">
<content>
<Label text="Hello WTKX!"
styles="{font:'Arial bold 24', color:'#ff0000', horizontalAlignment:'center', verticalAlignment:'center'}"/>
</content>
</Window>
Ahora ya tenemos un pantallaso de un ejemplo de Pivot.