Events 使用UIBinder布局在GWT面板之间交谈
这里是GWT的新成员 我正在使用UIBinder方法来布局一个应用程序,有点像GWT邮件示例的风格。应用程序以添加到onModuleLoad()方法内的RootLayoutPanel的DockLayoutPanel开始。DockLayoutPanel有一个静态的北和一个静态的南,使用一个自定义的中心小部件,定义如下:Events 使用UIBinder布局在GWT面板之间交谈,events,gwt,uibinder,Events,Gwt,Uibinder,这里是GWT的新成员 我正在使用UIBinder方法来布局一个应用程序,有点像GWT邮件示例的风格。应用程序以添加到onModuleLoad()方法内的RootLayoutPanel的DockLayoutPanel开始。DockLayoutPanel有一个静态的北和一个静态的南,使用一个自定义的中心小部件,定义如下: public class BigLayoutWidget extends ResizeComposite { ... } 此自定义小部件使用BigLayoutWidget.ui.
public class BigLayoutWidget extends ResizeComposite {
...
}
此自定义小部件使用BigLayoutWidget.ui.xml进行布局,BigLayoutWidget.ui.xml又由一个TabLayoutPanel(3个选项卡)组成,第一个选项卡包含一个拆分布局面板,分为WEST(Shortcuts.ui.xml)和CENTER(Workpanel.ui.xml)。快捷方式又由一个StackLayoutPanel组成,其中有3个堆栈,每个堆栈在其自己的ui.xml文件中定义
我希望在快捷方式的单个堆栈中单击事件来更改Workpanel的内容,但到目前为止,我只能在同一个类中操作小部件。在最简单的情况下,我无法通过在快捷方式中单击按钮来清除工作面板的内容或使工作面板不可见
有几个问题。。。
Composite
id
(对于小部件,我使用someWidget.getElement().setId(id)
,通常与组合使用),您可以通过以下方式获得它。然后你会得到一个RootPanel
,你必须将它转换到正确的Widget类中——正如你所看到的,它可能会变得有点“hackish”(如果你用这个id改变Widget的类型会怎么样?异常,或者更糟),所以我建议坚持使用MVP(见第一点)并通过消息总线进行通信。但是,请记住,有时聚合也很好——并非所有的事情都必须通过消息总线来处理:)Composite
id
(对于小部件,我使用someWidget.getElement().setId(id)
,通常与组合使用),您可以通过以下方式获得它。然后你会得到一个RootPanel
,你必须将它转换到正确的Widget类中——正如你所看到的,它可能会变得有点“hackish”(如果你用这个id改变Widget的类型会怎么样?异常,或者更糟),所以我建议坚持使用MVP(见第一点)并通过消息总线进行通信。但是,请记住,有时聚合也很好——并非所有的事情都必须通过消息总线来处理:)