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.