2010-11-15 87 views
5

是否有像StackPanel或DecoratedStackPanel这样的组件能够一次在堆栈中显示多个面板?我喜欢可以扩展全部或折叠我想要的任意数量的面板。GWT StackPanel限制?

回答

3

好的,因为我没有答案,这是我的工作。谷歌并不容易扩展现有的面板来添加或修改功能,所以我做的是我下载了源代码,将StackPanel.java,DecoratorPanel.javaDecoratedStackPanel.java复制到我的gwt项目的包中。

主要的变化我真的需要做的是从

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

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

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

StackPanel.java类改变showStack(int index)的行为是这样的:

public void showStack(int index) { 

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

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


    } 

我敢肯定,这是可能的把它清理一下,但是这个伎俩。 其他类需要复制到同一个包的原因是因为StackPanel.java引用了一些只有包可见性的方法。

+1

在GWT 2.5中,不再需要复制其他类。 – 2013-02-03 12:36:03