重用和扩展PresenterWidget GWTP?

时间:2013-08-05 13:45:28

标签: gwt-platform

我是GWT和GWTP的新手,这个问题听起来很愚蠢。我可以制作一个抽象的PresenterWidget或者类似的吗? 就像在普通的Java中扩展“类”并重用/扩展逻辑一样。但不仅是课堂,还有View和Presenter的全部内容。我试着解释我的初始情况,也许你有另一个想法。 example gui

图像希望有助于解释它。 “Main-Tab”和每个其他选项卡由一组视图组成,这些视图具有相同的基本结构和相同的逻辑。

基础结构由

组成
  • 围绕一切的边界
  • 图像(wwitch)
  • 标题
  • a textarea
  • 一个PresenterWidget,它被添加到父级的contentSlot(左侧菜单)

以及基础之下是视图特定组件,如按钮,文本或任何其他小部件。所以逻辑视图的主要部分是重复。如果切换“切换”,则隐藏视图(textarea和任何子视图/视图特定组件),如图片中的最低视图。此外,PresenterWidget左侧会改变颜色。

逻辑正在运行,但现在我正在寻找一种正确的方法来解决这个问题,而无需重复代码,并且可以通过切换开关来添加隐藏的子元素。我可以添加到PresenterWidget子窗口小部件并定义应添加的位置吗?喜欢:即使这是可能的,感觉有点不方便。

提前致谢。

1 个答案:

答案 0 :(得分:1)

我只想发布解决方案:

我现在有一个简单的复合(KPICommonView)用于开关,标题和描述。它在描述下方有另一个FlowPanel,稍后将添加特定组件。为此,Composite实现了“HasWidgets”并覆盖了“add(Widget w)” - 如果添加了Widget并且具有子元素,则由UiBinder调用的方法。

<own:KPICommonView title="First Header" description="I am a happy description :)" anchorToken="{nameAnchors.getFirst}">
   <g:Label>child component</g:Label>
</own:KPICommonView>

我不确定是否为每个段执行PresenterWidget,并且每个PresenterWidget都添加了一个KPICommonView,或者我是否添加了一个普通的Presenter,它添加了多个CommonView。 CommonView模块为侧面的菜单项创建PresenterWidget。它从构造函数(anchorToken,title)中获取属性并将其添加到插槽中(这很糟糕,因为View已经硬编码保存的父节点以调用“addInSlot()”。交换机的重复代码由KPICommonView。