2009-05-31 77 views
5

我对自定义部件电流的过程是这样的:减少GWT自定义部件冗长

  1. 创建我的widget类 - 延长复合材料;
  2. 为这个小部件创建一个监听器接口;
  3. 创建一个监听器集合接口 - 私有内部类到widget;
  4. 在小部件上创建add/removeListener方法;
  5. 在小部件内部,触发监听器上的事件。

我的听众激发细微的事件,如onEntityDisplayRequested(Entity entity),所以我不能使用股票听众。

虽然这实现了对小部件的低耦合并允许重用,但它非常冗长。有没有更好的方式来处理自定义小部件的设计?

回答

3

对于每个新窗口小部件,您都不需要单独的侦听器接口。例如。 ClickListener被各种不同的窗口小部件类使用。显然,一些自定义小部件将需要新的侦听器类型,但不应该是自动的。

+0

感谢您的回答。我正在使用这些侦听器来触发自定义事件,例如onEntityDisplayRequested(实体e),所以我不能使用股票听众。 – 2009-05-31 12:13:14

2

我觉得Java在前一段时间面临同样的问题,一个解决方案是有PropertyChange事件。他们与 - PropertyEvent,包含来源,属性名称和旧的+新值 - PropertyChangeListener - 一个PropertyChangeSupport,您可以委派事件触发,以及注册和注销侦听器。

你松散了一些特殊性(事件与它们的名字匹配作为一个字符串),但是你仍然可以触发细粒度的事件并且有一些外部类的支持。

我还没有在GWT中广泛使用过,所以我无法评论效率方面。