GWT活动和编辑框架

时间:2011-04-15 08:24:50

标签: gwt mvp gwt-mvp

我一直在使用GWT MVP框架+ GWT开展一些小项目 编辑框架。我有视图接口与声明如下的字段:

 @Path("field")
 IsEditor<ValueBoxEditor<Long>> getField();

视图实现如下所示:

@UiField
   IsEditor<ValueBoxEditor<Long>> field;
public IsEditor<ValueBoxEditor<Long>> getField(){
   return field;
}

在我的活动中,我有足够的信息来对应视图和我的活动 做(在活动中)这样的事情:

view.getField.setEnable(true);

我必须做演员

((ValueBoxBase<Long>)view.getField()).setEnable(true);

之后我无法测试这个单元,因为在我的测试中我定义了View的行为,以便在(IsEditor<ValueBoxEditor<Long>>)上返回Mock view.getFiled(),结果我得到了:

java.lang.ClassCastException: com.google.gwt.editor.client.IsEditor$
$EnhancerByMockitoWithCGLIB$$e8c00c36 cannot be cast to
com.google.gwt.user.client.ui.ValueBoxBase

从Activity调用Views组件方法的最佳实践是什么 不做铸造?

2 个答案:

答案 0 :(得分:0)

转换为HasEnabled而不是ValueBoxBase。

答案 1 :(得分:0)

您需要使用ValueBoxEditor适配器方法“of”:

@UiField ValueBoxBase<Long> field;

public ValueBoxEditor<Long> getField(){
   return ValueBoxEditor.of(field);
}