Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с ObjectListDataProvider, NetBeans 5.5 и Web Pack... 
:(
    Опции темы
Maverick
  Дата 6.4.2007, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1307
Регистрация: 22.9.2003
Где: Odessa, Ukraine

Репутация: 2
Всего: 10



Уважаемые, активно изучаю  Web Pack в NetBeans 5.5... Хорошая штука для рисования JSP страниц...

Вопрос адресован к людям, его использующим... 

Я использую компонент Table.... Данные в него закачиваю компонентом ObjectListDataProvider... После некоторого мучения отображать данные удается успешно... Как теперь в таблице менять данные и возвращать их в исходную коллекцию....

В моей таблице поля отображаются TextField... они доступны для ввода.... Я повесил на них событие valueChange и описал передачу данных в коллекцию таким образом 

Код

    public void codeCountryValueChange(ValueChangeEvent event) {
        // TODO: Replace with your code
       TextField textField = (TextField) event.getComponent();
        try {
            
            // вытаскиваю провайдер из сессионного бина      
            CountryObjectListDataProvider cdp = getSBListCountry().getCountryDataProvider();
            
             // создаю изменяемое поле (для удобства работы)
            FieldKey fieldKey = new FieldKey("codeCountry");
            // нахожу в провайдере искомую строку по старому значению поля
            RowKey rk = cdp.findFirst(fieldKey, event.getOldValue());
            // присваиваю полю новое значение 
            cdp.setValue(fieldKey, event.getNewValue());
             // подтвержаю изменения  
            cdp.commitChanges();
           
            
            String mess1 = "Данные "+textField.toString()+ " изменились."; 
            String mess2 = "Старое =" + event.getOldValue();
            String mess3 = "Новое =" + event.getNewValue(); 
            String mess4 = "RK = "+ rk.toString();
            String mess5 = "Value =" +cdp.getValue(fieldKey);
            alertMessage.setSummary(mess1 + " "+mess2 +" "+ mess3+" "+mess4+" "+mess5);
            
        } catch (TableCursorVetoException ex) {
            alertMessage.setSummary("TableCursorVetoException ex=" +ex.getMessage());
        } catch (DataProviderException ex) {
            alertMessage.setSummary("DataProviderException ex=" + ex.getMessage());
        //} catch (Throwable ex){
        //    alertMessage.setSummary("Throwable ex=" + ex.getMessage());        
        }  
       
    }


На операторе cdp.commitChanges() возникает ошибка о несоотвествии типов передаваемых значений , хотя везде там String... изменения в коллекцию не попадают...  

Есть подозрение, что я изобретаю велосипед... подскажите, плиз, как правильно организовать обмен информацией между Table - ObjectListDataProvider - исходная коллекция.... 

Заранее благодарен... 


--------------------
smile
PM ICQ GTalk   Вверх
SID_M
Дата 19.4.2007, 08:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 195
Регистрация: 11.2.2005
Где: Россия, г. Москва

Репутация: нет
Всего: нет



Ну, вообще говоря, если DataSource привязан к таблице, то данные, которые отображены в таблице эдентичны данным в DataSource.
Там просто в нужный момент нужно поставить commitChanges и усё.

Можешь почитать про это тут: http://wiki.netbeans.org/wiki/view/NetBean...-DatabaseAccess

--------------------
Если тебе не дано летать, то хотя бы ползай с гордо поднятой головой.
PM MAIL ICQ Skype GTalk   Вверх
Maverick
Дата 19.4.2007, 09:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1307
Регистрация: 22.9.2003
Где: Odessa, Ukraine

Репутация: 2
Всего: 10



Под DataSource понимается ObjectListDataProvider? 
Я вообще-то во многом разобрался... Однако... Почему Table не демонстрирует измененные данные до commitChanges? Нельзя ли как то настроить это? А то пришлось для кэша свой класс писать...


--------------------
smile
PM ICQ GTalk   Вверх
SID_M
Дата 19.4.2007, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 195
Регистрация: 11.2.2005
Где: Россия, г. Москва

Репутация: нет
Всего: нет



Цитата(Maverick @  19.4.2007,  09:12 Найти цитируемый пост)
Под DataSource понимается ObjectListDataProvider? 

Да...  smile 
Как это не демонстрирует? Ты, я так понимаю, в table новы денные и заносишь, так?

Добавлено через 1 минуту и 32 секунды
Кстати, раз уж ты во многом разобрался. Посмотри во это http://forum.vingrad.ru/topic-146915/kw-ne...ns-vwp-sql.html
Может ты знаешь решение?

Это сообщение отредактировал(а) SID_M - 19.4.2007, 09:40
--------------------
Если тебе не дано летать, то хотя бы ползай с гордо поднятой головой.
PM MAIL ICQ Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0823 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.