GWT: Wie bekomme ich eine Referenz auf eine Schaltfläche aus dem RootPanel?

Ich bin mit GWT 2.4. In meinem onModuleLoad-Methode, da eine string-id, wie bekomme ich eine Referenz zu einer vorhandenen Schaltfläche auf der Seite von dem RootPanel Objekt? Ich versuche diese

public void onModuleLoad() {
    ...
    final Button submitButton = (Button) RootPanel.get("submit");

aber immer den Kompilierungsfehler "Cannot cast von RootPanel auf die Taste".

Edit:

Dachte ich mit einem iterator würde den Schmerz heilen, aber keine Würfel. Hier ist die Standard-HTML geladen (Hinweis der button mit id="submit") ...

<div>

    <form name="f">

        File name: <input type="text" size="25" id="filename" name="filename"

            value="" /> <input type="button" id="submit" name="submit"

            value="Submit" /> <input type="hidden" name="curId" id="curId"

            value="" />

    </form>

</div>

<div id="content"></div>

aber dieser code in onModuleLoad wird eine NullPointerException (weil der submitButton festgelegt id nicht gefunden werden kann) ...

public void onModuleLoad() {

    final Button submitButton = (Button) getWidgetById("submit");
    submitButton.addStyleName("submitButton");
    ...

private Widget getWidgetById(final String id) {
    Widget eltToFind = null;
    final Iterator<Widget> iter = RootPanel.get().iterator();
    while (iter.hasNext()) {
        final Widget widget = iter.next();
        final Element elt = widget.getElement();
        if (elt.getId() != null && elt.getId().equals(id)) {
            eltToFind = widget;
            break;
        } //if
    } //while
    return eltToFind;
}

Dank, - Dave

InformationsquelleAutor Dave | 2011-10-26
Schreibe einen Kommentar