HTML and CSS Reference
In-Depth Information
3.1 Der Browser im Browser
Mit dem Browser-Widget lassen sich beliebige, HTML-basierte Inhalte in die eigene RWT-Weban-
wendung einbetten. Das Widget kann auch JavaScript ausführen, richtig interessant wird es jedoch
durch die seit RAP 1.4 vorhandene Möglichkeit, zwischen Java und JavaScript zu kommunizie-
ren. Diese Fähigkeit macht es zu einer geeigneten Grundlage für Custom Widgets. Ermöglicht wird
diese Kommunikation durch die Methode evaluate sowie die Klasse BrowserFunction . Da es sich
beim Browser-Widget in RAP technisch gesehen um ein iframe -HTML-Element handelt, sind alle
JavaScript-Aufrufe darin von der restlichen RAP-Applikation weitgehend abgekapselt (Abb. 3.1).
Somit stellen sie kein unmittelbares Risiko für die Stabilität der Anwendung dar.
Abbildung 3.1: Funktionsweise des Browser-Widgets
Die Methode evaluate führt einen gegebenen String unmittelbar innerhalb des Browser-Widgets
als JavaScript-Code aus. Sie gibt ein Java-Objekt zurück, das einen JavaScript-Wert repräsentiert,
beispielsweise als String , Double oder Boolean. Wird im JavaScript-Code kein return -Statement
verwendet, ist das Ergebnis null . Sollte beim Ausführen ein Fehler auftreten, wirft evaluate eine
SWTException . Leider gibt die Exception keine Auskunft über den Fehler selbst, womit die gele-
gentliche Fehlersuche nicht unbedingt erleichtert wird. Es gibt eine weitere, sehr ähnliche Methode
namens execute (seit RAP 1.1), sie bietet jedoch keinen Rückgabewert, wirft im Fehlerfall keine Ex-
ception und ist daher nicht zu empfehlen.
Die Klasse BrowserFunction bietet die Möglichkeit, Java-Code aus JavaScript heraus aufzurufen.
Dazu erzeugt man eine neue Instanz von BrowserFunction und überschreibt dabei die Methode func-
tion . Der Konstruktor erhält als erstes Argument das Browser-Widget und als zweites den Namen,
über den die Funktion in JavaScript aufgerufen werden kann. Es ist möglich, einer Browserfunkti-
Search WWH ::




Custom Search