<page>
<vbox xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" >
<hbox>
<textbox id="expression" flex="1" />
</hbox>
</vbox>
</page>
sera interprété en SWT pour donner la fenétre suivante :

<page>
<vbox xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" >
<hbox>
<textbox id="expression" flex="1" />
</hbox>
</vbox>
</page>
package org.akrogen.tkui.samples.calc;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import org.akrogen.tkui.core.ITkuiConfiguration;
import org.akrogen.tkui.core.TkuiConfigurationFactory;
import org.akrogen.tkui.core.dom.ITkuiDocument;
import org.akrogen.tkui.core.gui.IGuiBuilder;
import org.akrogen.tkui.core.loader.ITkuiLoader;
import org.akrogen.tkui.grammars.xul.loader.XulLoader;
import org.akrogen.tkui.gui.swt.SwtGuiBuilderImpl;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
public class SwtXULCalc {
public static void main(String[] args) {
try {
// 1. Get Tkui Builder
TkuiConfigurationFactory factory = TkuiConfigurationFactory
.newInstance();
ITkuiConfiguration configuration = factory.getConfiguration();
// 2. Register SWT Builder into TK-UI configuration
IGuiBuilder swtGuiBuilder = new SwtGuiBuilderImpl();
configuration.registerGuiBuilder(swtGuiBuilder);
String guiId = swtGuiBuilder.getId();
// 3. Register Tk-UI XUL Loader
ITkuiLoader xulLoader = XulLoader.getInstance();
configuration.registerTkuiLoader(xulLoader);
// 4. Instanciate SWT Shell
Display display = new Display();
Shell shell = new Shell(display, SWT.SHELL_TRIM);
FillLayout layout = new FillLayout();
shell.setLayout(layout);
// 5. Get Instance of XULDocumentImpl
// guiId =swtGui
ITkuiDocument xulDocument = xulLoader.newDocument(guiId, shell);
// 6. Load XUL source stream into XUL DOM Document
File f = new File("xul/calc.xul");
InputStream sourceStream = new FileInputStream(f);
xulLoader.load(sourceStream, xulDocument);
// 7. Display SWT Shell
shell.pack();
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
Remarque : les étapes 1, 2 et 3 qui consistent à initialiser la configuration Tk-Ui peuvent étre effectuées qu'une seule fois. Une fois la configuration initalisée, il est possible de la stocker dans un singleton et l'utiliser dans votre application.