Bevor im Befehlseditor weitere Einstellungen vorgenommen werden, sollte zunächst die Befehlsklasse angelegt werden. Hierfür ist eine neue Javaklasse anzulegen, die das Interface Command implementiert. Das Interface Command schreibt die Methode
public Object action(Object[] args, Macro macro)
vor. Die Methode stellt den Einstiegspunkt der Befehlsklasse dar. Das Argument arg0 enthält die im Befehlseditor eingerichteten Parameter als Object-Array, das die Parameterwerte als String enthält.
Die Methode
public Parameter[] getParameters()
gibt einen Parameter-Array zurück, das in die Parameterliste des Befehlseditors übernommen werden kann. Hierfür ist der Befehl mit der rechten Maustaste in der Navigator Sicht anzuklicken und der Menüpunkt auszuwählen.
Außerdem sollte die Methode
public String getComment()
implementiert werden, die einen String zur Beschreibung des
Befehls zurück gibt.
Beispiel:
package com.odc.eva3.wiz.utils; // Import Section ... public class OpenReportAndCloseCurrentWindow implements SystemCommand { // Gets the Comment String public String getComment() { return null; } // Gets the names for the Parameters public Parameter[] getParameters() { return new Parameter[] { new Parameter("Report frame", String.class, "Report frame to open"), new Parameter("show print menu", Boolean.TYPE, "show print menu")}; } // Executes the Command public Object action(Object[] args, Macro macro) { String reportFrame = (String) args[0]; boolean showPrintMenu = new Boolean((String) args[1]).booleanValue(); try { ReportManager.previewReport(reportFrame, showPrintMenu); EvaUtils.getActiveSWindow().dispose(); Frame frames = Frame.getFrames()[Frame.getFrames().length-1]; frames.toFront(); } catch (Exception ex) { ex.printStackTrace(); } return null; } }
Häufig gebrauchte Klassen und Methoden in Befehlen werden im Abschnitt Typische Aufgaben eines Befehls vorgestellt.
Hinweis: Die Java-Klassen der Befehle sollten in einem separaten Quellenordner mit dem Namen src abgelegt werden. Die .command Dateien sind außerhalb dieses Ordners anzulegen.
Hinweis: Die Command Klasse darf nicht im Default Package liegen. Sie muss in einem "benannten" Package liegen:
Beispiel:
package com.odc.eva3.customerservices.actions;