13 января 2010 г.

SmartGwt. Первые проблемы (ListGrid)

Неприятно, когда в самом начале работы с фреймворком начинаются небольшие косяки. Сразу появляется желание перейти на что-либо еще. А проблема вот в чем:
Есть код:
  1. ListGrid catsGrid = new ListGrid();  
  2. catsGrid.setEmptyMessage("Load...");  
  3. catsGrid.setWidth("30%");  
  4.   
  5. ListGridField nameField = new ListGridField("name""Category");  
  6. catsGrid.setFields(new ListGridField[] {nameField});  
  7.   
  8. String result="{\"error\": null, \"id\": 1, \"result\": [{\"name\": \"\u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e\u0442\"}, {\"name\": \"\u0418\u0441\u0442\u043e\u0440\u0438\u044f \u043e\u0446\u0435\u043d\u043e\u043a\"}]}";  
  9. JSONValue value = JSONParser.parse(result).isObject().get("result");  
  10. JSONArray catsAry = value.isArray();  
  11. JavaScriptObject jsObj = catsAry.getJavaScriptObject();  
  12. Record[] recs = Record.convertToRecordArray(jsObj);  
  13.   
  14. catsGrid.setData(recs);  
  15. catsGrid.draw();  

и набор:
Eclipse + GWT Plugin, Smart GWT 2.0, Google Chrome 4.0.288.1 dev (and previous).

В debug режиме он отрабатывает нормально, но после компиляции ListGrid не отображает строки в Хроме (отображает только одну пустую строку), в остальных браузерах нормально (IE 7, Last Firefox, Opera 10), но так как я пользуюсь хромом - сразу наткнулся на данный баг.
Тему на форуме поддержки создал, посмотрим, что подскажут разработчики.

Update. Ничего не подсказали, но я нашел проблему. Она в функции convertToRecordArray.
Точнее в условии "if (JSOHelper.isArray(nativeArray))".

public static native boolean isArray(JavaScriptObject jsObj)/*-{
return $wnd.isA.Array(jsObj);
}-*/;

В hosted mode функция возвращает true, а после компиляции в браузерах с webkit возвращает false в моем случае.

Даже не знаю почему это происходит, не хочу лезть в дебри, это занимает много времени, может напишут разработчики.

Update2. Посоветовали писать тесты. Ну хоть на этом спасибо :)

2 комментария:

  1. я с этим смартгвт напарился! не отвечают на форуме, уйма незадокументированных особенностей. Сам буду всё на чистом гвт писать

    ОтветитьУдалить
  2. Согласен, документация хромает, showcase красив, но слишком узок в примерах.

    ОтветитьУдалить