eva/3 Application BuilderEntwicklung eigener eva/3 KomponentenEigene BefehleBeispiele für Aufgaben eines Befehls 

ObjectLoader

Die Klasse ObjectLoader besitzt zumeist statische Methoden die den Zugriff auf eva/3 Application Builder Projekt-Elemente erlauben. So kann vom Formular bis hin zum Macro eine entsprechende Instanz geholt, oder falls noch nicht instanziiert, erzeugt werden. Alle Projekt-Elemente werden vom ObjectLoader verwaltet und gecached. Die mehrfachinstanziierung eines Projekt-Elementes findet auch dann nicht statt, wenn die entsprechende Klassenmethode des ObjectLoaders mehrfach aufgerufen wird.

Benannte Farbe als java.awt.Color Objekt laden

Die Methode Color getColor(String colorName) gibt eine benannte Farbe als java.awt.Color Objekt zurück, wobei das Argument "colorName" den Farbnamen definiert.

Beispiel:

try{    
    // Liest die Farbe Hintergrund aus und liefert java.awt.Color zurück.
    Color color = ObjectLoader.getColor("Hintergrund"); 
} catch (InvocationTargetException e) {
    e.printStackTrace();
}

Formular als SFrame laden und Zugriff auf dessen Komponenten

Die Methode SFrame getSFrame(String name) gibt das im Argument "name" benannte Formular als SFrame zurück. Es spielt hierbei keine Rolle ob das Formular geöffnet ist. Aus dem SFrame ist der Zugriff auf dessen Komponenten möglich. Das Beispiel lädt eine Schaltfläche und die eva/3 Application Builder Panels MainPanel, ToolbarPanel, MiddlePanel und SidePanel aus dem SFrame.

Beispiel:

        try{
            // ObjectLoader holt das Formular Auswahl und gibt es als SFrame zurück
            SFrame sFrame = (SFrame) ObjectLoader.getSFrame("forms/test1.form");
            // Das SFrame wird geladen
            sFrame.afterLoading();
            // Holt die Schaltfläche mit dem Namen "SButton" aus dem SFrame
            SButton button = (SButton) sFrame.getObject("SButton");
            // Holt das Panel, das das Toolbar- und das Mainpanel enthält
            SPane sPane = sFrame.getSPane();
            // Das ToolbarPanel holen
            ToolBarPanel toolbarPanel = sPane.getToolBarPanel();
            // Das MainPanel holen
            MainPanel mainPanel = sPane.getMainPanel();
            // Das MiddlePanel holen
            MiddlePanel middlePanel = mainPanel.getMiddlePanel();
            // Das SidePanel holen
            SidePanel sidePanel = mainPanel.getSidePanel();
        } catch (Exception e) {
            e.printStackTrace();
        }

Ausführen von Macros

Um Macros auszuführen, muss das Macro über die statische Klassenmethode getMacro (String name) der Klasse ObjectLoader geladen werden. Dar Parameter "objectName" enthält den relativen Projektpfad des Formulars. Die Methode liefert ein Macro zurück. Das Macro wird ausgeführt, indem die Methode execute(String[] s) aufgerufen wird. Der String-array s enthält die Argumente für das Macro.

Beispiel:

String objectName = "macro/PrintParams.macro";
Macro macro = null;
try {
    macro = ObjectLoader.getMacro(objectName);
} catch (IOException e) {
    e.printStackTrace();
} catch (InvocationTargetException e) {
    e.printStackTrace();
}
String macroParams[] = { "par1", "par2" };
macro.execute(macroParams);