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-