为多个按钮实现ClickHandlers的最佳实践

时间:2013-04-12 11:48:24

标签: java gwt handler rpc

我目前正在为使用GWT的NAO机器人设计一个遥控器,我正在寻找通过RPC执行所谓的按钮方法的最佳实践。目前我正在使用event.getSource()的标题检查按钮名称。但这导致了大量的if else语句。我怎么能做得好又整洁? ;)

2 个答案:

答案 0 :(得分:1)

您可以使用命名良好的方法和一些方法反射。

假设您有按钮命名: 措施1 动作2 ACTION3

如果这是本地的,你可以为每个人添加一个不同的监听器。因为它的遥远,我明白你只能得到这个名字。

在远程impl类中有一个名为:

的方法

doAction1 doAction2 doAction3

在你获得远程调用的地方查看名称,使init字母大写,添加do然后获取方法。您甚至可以按名称

在Map中缓存方法

地图

获得方法后,在一个实例工作者上调用它

答案 1 :(得分:1)

您可以使用枚举或整数作为使用Button构造函数设置的标识符。然后在服务器端,您可以使用switch case语句保存一些代码行。

  public enum MyButtons {
  WALK,
  SIT,
   ...
   }
[...]
 //ON CLIENT
 Button whatever = new Button(MyButtons.WALK);

 //ON SERVER
 MyButtons action = whatever.getType(); 
// getType() should provide the value from the constructor


 switch(action)
   {
    case WALK : doStuff();
    case SIT : doStuff();
     ...
   }