所以我有一个超级类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/