Структура активности и редактора GWT

Я работал над некоторыми небольшими проектами, используя фреймворк GWT MVP + фреймворк GWT Editors. У меня есть интерфейсы Views с полями, объявленными как:

 @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 для возврата Mock (IsEditor<ValueBoxEditor<Long>>) на view.getFiled(), в результате я получаю:

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

Как лучше всего вызывать методы компонентов Views из Activity без приведения?


person user709433    schedule 15.04.2011    source источник


Ответы (2)


Приведение к HasEnabled вместо ValueBoxBase.

person gkamal    schedule 15.04.2011
comment
asdjava.lang.ClassCastException: com.google.gwt.editor.client.IsEditor$$EnhancerByMockitoWithCGLIB$$ea68060b нельзя преобразовать в com.google.gwt.user.client.ui.HasEnabled - person user709433; 15.04.2011
comment
Это не поможет с моим тестом, у меня все еще есть java.lang.ClassCastException: com.google.gwt.editor.client.IsEditor$$EnhancerByMockitoWithCGLIB$$ea68060b нельзя преобразовать в com.google.gwt.user.client.ui .HasEnabled Я хочу найти способ получить виджет из объекта в IsEditor‹ValueBoxEditor‹Long›› в Activity без сильного приведения. - person user709433; 15.04.2011

Вам нужно использовать метод адаптера ValueBoxEditor "of":

@UiField ValueBoxBase<Long> field;

public ValueBoxEditor<Long> getField(){
   return ValueBoxEditor.of(field);
}
person logan    schedule 12.07.2011