2014-02-13 2 views
0

Я пытаюсь использовать SpinnerItem как тип редактора для ListGridFieldIllegalArgumentException при использовании SpinnerItem в SmartGWT

final ListGridField quantityGridField = new ListGridField("quantity", "Cantidad"); 
quantityGridField.setEditorType(SpinnerItem.class); 
quantityGridField.setCanEdit(true); 

Но после того, как я скомпилировать проект и развернуть его эта ошибка возникает.

java.lang.IllegalArgumentException: No BeanFactory has been registered for: com.smartgwt.client.widgets.form.fields.SpinnerItem 

Это первый раз, когда я получаю эту ошибку, и я не нашел здесь никакого родственного вопроса.

ответ

0

Как описано в javadoc для метода, который вы используете (setEditorType (класс)), вы используете механизм Reflection для smartgwt. Вы можете прочитать об этом здесь: http://www.smartclient.com/smartgwt/javadoc/com/smartgwt/client/docs/Reflection.html. Согласно этой документации, вы должны зарегистрировать SpinnerItem (который является подклассом FormItem) до начала его использования:

Аналогично, чтобы зарегистрировать FormItem и все его подклассы, найденные в классам (в том числе пользовательских подклассов), вы может использовать BeanFactory.FormItemMetaFactory.

GWT.create (BeanFactory.FormItemMetaFactory.class);

Так что просто попробуйте вставить эту строку GWT.create где-то в вашем коде перед ее использованием, поэтому компилятор gwt сможет найти ваш редактор.

Смежные вопросы