5.8. JCoMod Wrapper example for CIB dialog browser: Job for displaying an HTML document via CIB dialog and usage of the callback mechanisms of dialog shown with the example OnTextboxPopupCallback/OnTextboxEntryCallback
import com.cib.comod.jobs.*;
import com.cib.comod.jobs.event.*;
public class TextboxCBSample
{
static ICibDialogCallbackListener m_CallbackAdapter;
public TextboxCBSample()
{
m_CallbackAdapter = null;
}
public static void main(String [] args)
{
// erzeuge einen JCibDialog-Job
JCibDialogJob t_Job = new JCibDialogJob();
// Der Job muß initialisiert werden
if (!t_Job.initialize())
{
System.out.println("Fehler beim Initialisieren des Dialog-Job");
return;
}
//hier richtige Dateinamen einfügen
t_Job.setProperty(ICibDialogJob.PROPERTY_INPUTFILE, "D:\\XYZ.HTM");
t_Job.setProperty(ICibDialogJob.PROPERTY_RULFILE, "D:\\XYZ.RUL");
// füge dem Job einen Callbacklistener hinzu.
//
// Der JCibDialogCallbackAdapter implementiert alle Callbackmethoden des
// ICibDialogCallbackListener-Interfaces. Callback-Events werden nur
// erzeugt, wenn die entsprechenden Callbacks auch per setProperty
// gesetzt werden.
//
// Hier wird gleich eine on-the-fly-Klasse von JcibDialogCallbackListener
// abgeleitet und die Callbackmethoden überladen.
//
// Der CallbackAdapter empfiehlt sich vor allem dann
// wenn nicht alle Callbacks gebraucht werden. Außerdem wird der
// JcibDialogCallbackAdapter auch neue Callbacks implementieren,
// wenn noch weitere hinzukommen.
t_Job.addCibDialogCallbackListener
(m_CallbackAdapter = new JCibDialogCallbackAdapter()
{
public void callbackDialogOnTextboxPopup(DialogOnTextboxPopupCallbackEvent e) {callbackOnTextboxPopup(e);}
public void callbackDialogOnTextboxEntry(DialogOnTextboxEntryCallbackEvent e) {callbackOnTextboxEntry(e);}
}
);
// aktiviere die nötigen Callbacks
t_Job.executeFunction(ICibDialogJob.FUNCTION_ACTIVATECALLBACK, "TextboxPopupCallback");
t_Job.executeFunction(ICibDialogJob.FUNCTION_ACTIVATECALLBACK, "TextboxEntryCallback");
t_Job.setProperty(ICibDialogJob.PROPERTY_CALLBACKUSERDATA, new Integer(777));
//Dialog anzeigen
t_Job.execute();
}
public static void callbackOnTextboxPopup(DialogOnTextboxPopupCallbackEvent e)
{
//zwei Test-Einträge zur Verfügung stellen
e.PopupEntries = "Test1a|Test2b";
}
public static void callbackOnTextboxEntry(DialogOnTextboxEntryCallbackEvent e)
{
//Abhängig von der Auswahl einen Textbaustein in den Dialog einfügen
//(nur MLE Editfelder)
if (e.SelectedPopupEntry.compareTo("Test1a") == 0)
{
e.SelectedText = "Textbaustein1";
}
else if(e.SelectedPopupEntry.compareTo("Test2b") == 0)
{
e.SelectedText = "Textbaustein2";
}
}
}