
package org.akrogen.tkui.samples.calc;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import javax.swing.JFrame;
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.swing.SwingGuiBuilderImpl;
public class SwingXULCalc {
public static void main(String[] args) {
try {
// 1. Get Tkui Builder
TkuiConfigurationFactory factory = TkuiConfigurationFactory
.newInstance();
ITkuiConfiguration configuration = factory.getConfiguration();
// 2. Register Swing Builder into TK-UI configuration
IGuiBuilder swingGuiBuilder = new SwingGuiBuilderImpl();
configuration.registerGuiBuilder(swingGuiBuilder);
String guiId = swingGuiBuilder.getId();
// 3. Register Tk-UI XUL Loader
ITkuiLoader xulLoader = XulLoader.getInstance();
configuration.registerTkuiLoader(xulLoader);
// 4. Instanciate Swing JFrame
JFrame frame = new JFrame("");
// 5. Get Instance of XULDocumentImpl
// guiId =swtGui
ITkuiDocument xulDocument = xulLoader.newDocument(guiId, frame);
// 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 Swing JFrame
frame.pack();
frame.setVisible(true);
} 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.