2010-11-15 10 views
5

Gibt es eine Komponente wie das StackPanel oder DecoratedStackPanel, die mehr als ein Panel gleichzeitig im Stack anzeigen kann? Ich möchte die Option haben, eine beliebige Anzahl der gewünschten Panels zu erweitern oder zu reduzieren.GWT StackPanel Begrenzung?

Antwort

3

Ok, seit ich keine Antwort bekommen habe, hat das für mich funktioniert. Google macht es nicht einfach, bestehende Panels zu erweitern, um Funktionalität hinzuzufügen oder zu ändern. Also habe ich die Quelle heruntergeladen, StackPanel.java, und DecoratedStackPanel.java in ein Paket in meinem gwt-Projekt kopiert.

Die wichtigste Änderung ich wirklich brauchte, war zu tun, um das Verhalten des showStack(int index) in der StackPanel.java Klasse zu ändern von

public void showStack(int index) { 
    if ((index >= getWidgetCount()) || (index < 0) || (index == visibleStack)) { 
     return; 
    } 

    if (visibleStack >= 0) { 
     setStackVisible(visibleStack, false); 
    } 

    visibleStack = index; 
    setStackVisible(visibleStack, true); } 

etwas wie folgt aus:

public void showStack(int index) { 

    if ((index >= getWidgetCount()) || index < 0) { 
     return; 
    } 

    visibleStack = index; 
    setStackVisible(visibleStack, !getWidget(visibleStack).isVisible()); 


    } 

Ich bin sicher, es ist möglich, um das ein bisschen aufzuräumen, aber das hat den Trick gemacht. Der Grund, warum die anderen Klassen in dasselbe Paket kopiert werden müssen, liegt darin, dass StackPanel.java auf einige ihrer Methoden verweist, die nur die Paketsichtbarkeit haben.

+1

In GWT 2.5 mussten die anderen Klassen nicht mehr kopiert werden. –