2

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

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

基础结构包括

  • 围绕着一切
  • 图像(女巫)
  • 标题
  • 文本区域
  • 一个 PresenterWidget,它被添加到父级的 contentSlot(左侧菜单)

底部是视图特定组件,如按钮、文本或任何其他小部件。因此,逻辑视图的主要部分是重复。如果开关被“切换”,则视图被隐藏(文本区域和任何子项/视图特定组件),就像图片中的最低视图一样。此外,PresenterWidget left 改变了颜色。

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

提前致谢。

4

1 回答 1

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)中获取属性并将其添加到槽中(这很丑陋,因为视图已将保存的父对象硬编码为调用“addInSlot()”。开关的重复代码由KPI 通用视图。

于 2013-08-07T12:27:54.163 回答