所以我有一个超级类Block,它扩展了Composite并使用UIBinder进行布局

class Block extends Composite


我想为该子类创建两个子类,每个子类具有必须添加的不同图标集。例如,一个InactiveBlock和一个ActiveBlock。

我在这里的问题是,我希望两个块(图标以及一些按钮,标签)的布局也要通过UIBinder进行,然后再将UIBinder(及其事件)添加到主块中。

显然我做不到

class ActiveBlock extends Block, Composite
    add(initWidget(UIBinder.create(this)));


我该怎么做?

(请注意,如果我的问题不够清楚,请告诉我,以便我详细说明)

最佳答案

我将使用具有布尔值作为输入参数(活动/不活动)的构造方法将其制成单个类。

因此,您可以定义类中的所有通用字段和方法,例如事件处理程序,图像等。
然后使用构造方法将元素和处理程序添加到基本小部件中。某些东西会添加到所有实例中,具体取决于它是否处于活动状态。

在这种情况下,您将不会得到重复的代码,仍然可以使用uibinder受益,最终您的代码将足够简单以易于阅读。

关于java - 两次使用UIBinder,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13880210/

10-11 01:28