Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Vaadin Combobox не устанавливает текущую запись / 15 сообщений из 15, страница 1 из 1
14.05.2013, 18:39:40
    #38257205
зубок александр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Vaadin Combobox не устанавливает текущую запись
Кто нибудь подскажет что не так делаю.
Пытался и в явном виде ComboBox.setvalue(Обект1) и через контейнер вязал - но через контейнер еще хуже
У меня 2 сущности причем вторая относится к первой как много к 1 (юзаю Hibernate 4 и Vaadin JPAContaner) - тогда вообще если ставлю в контейнер Persistense1.getpersistense2() и потом контейнер цепляю к комбобоксу как
ComboBox1.SetDataContainer(JPAContainer1) то влезает ошибка кастинга.

В обоих случай ставлю конечто же и Combobox1.SetImmediate(true) и SetItemCaption("нужное поле").

Интсрументарий - Vaadin 6, eclipse indigo, tomcat 5.5, mysql 5.1, win xp


Проблема именно в том что combobox не показывает текущее значение.
Добавлял тупо через Combobox1.additem(Persistence1.getpersistence2()) в цикле и на нужном setvalue

Без всяких контейнеров. Та же история - добавляет все значения но выбранным никакое не делает.

На ваадиновском форуме прямого ответа нет
И также вопрос знатокам данного фреймворка - насколько JPA Container облегчает жизнь и вообще его осмысленность?
...
Рейтинг: 0 / 0
14.05.2013, 19:16:37
    #38257245
Vaadin Combobox не устанавливает текущую запись
зубок александр,

Вот рабочий код из моего проекта.

Код: java
1.
2.
3.
4.
5.
6.
            entityField.setContainerDataSource( JPAContainerFactory.make( type, em ) );
            entityField.setItemCaptionPropertyId( "name" );
            entityField.setFilteringMode( FilteringMode.CONTAINS );
            entityField.setItemCaptionMode( AbstractSelect.ItemCaptionMode.PROPERTY );
            entityField.setConverter( new SingleSelectConverter( entityField ) );
            entityField.setImmediate( true );
...
Рейтинг: 0 / 0
14.05.2013, 20:52:57
    #38257315
Nixic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Vaadin Combobox не устанавливает текущую запись
Странно, у меня все работает. Контейнеры для комбобоксов не использую, даю ему просто массив объектов сущностей.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
   private void setPayerCB() {
        String nullitem = "Все клиенты";
        payerCb.removeAllItems();
        payerCb.addItem(nullitem);
        payerCb.setNullSelectionItemId(nullitem);
        payerCb.setImmediate(true);
        payerCb.setWidth("300px");
        payerCb.setInvalidAllowed(false);
        payerCb.setNullSelectionAllowed(true);
        payerCb.setNewItemsAllowed(false);
        c = cp.getUsersContactorsForCombo(u, false);
        for (int i = 0; i < c.length; i++) {
            Contractors c1 = c[i];
            payerCb.addItem(c1);
        }
        if (contractorFromSession != null) {
            payerCb.setValue(contractorFromSession);
            payer = contractorFromSession;
        }
        payerCb.addListener(new ValueChangeListener() {
            @Override
            public void valueChange(ValueChangeEvent event) {
                if (event.getProperty().getValue() != null) {
                    payer = (Contractors) event.getProperty().getValue();
                }
            }
        });
    }
...
Рейтинг: 0 / 0
14.05.2013, 20:54:54
    #38257317
Nixic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Vaadin Combobox не устанавливает текущую запись
Может у вас setImmediate нет или вы дисейблите комбобокс до установки значения или еще что-то...
...
Рейтинг: 0 / 0
15.05.2013, 00:49:35
    #38257477
зубок александр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Vaadin Combobox не устанавливает текущую запись
Nixic,

спасибо огромное! Гляну на расхождения мой код с Вашим как с больничного вылезу. Дома у меня его нет. А с работы по русски не удобно писать по орг причинам.

Изначально я нечто подобное делал именно без контейнера. По сути мне и без него не плохо но руководство очень уж за него уцепилось.

И такой вопрос правда по хибернейту а не по ваадин - насколько энтитименеджер функциональнее сессии - у меня с сессией изначально лучше получалось в этом проекте дружить но сессию не пришпилить к ваадиновскому контейнеру.
...
Рейтинг: 0 / 0
15.05.2013, 11:19:58
    #38257802
Nixic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Vaadin Combobox не устанавливает текущую запись
зубок александр,

я наверное не понял про какую сессию вы пишите (почти два месяца не программил толком :) ).
ЕнтитиМенеджер используется по сути для работы с БД, а сессия в моем понимании это объект сеанса связи с параметрами которые можно получить или записать в него...
Или вы про сравнение ЕнтитиМенеджера и работу через JDBC и Connection и разные драйвера БД?
...
Рейтинг: 0 / 0
15.05.2013, 11:36:58
    #38257852
Vaadin Combobox не устанавливает текущую запись
зубок александр,

Без контейнера хорошо живется пока все в проекта маленькое и пользователи совершенно не прихотливые.
Первое, у вас записей в списке несколько тысяч и продолжает увеличиваться...
Как вы будете это решать? Все руками? Бить на куски, ленивая подгрузка и все такое...
Это конкретный гемор.
Второе, вам надо изменить одну запись в таблице. Вы как привыкли, лезете за хибернейтовской сессией, получаете обновленный список.. все ручками и ручками...
Все по дедовски.

С контейнером вообще все красиво. И ленивая загрузка и изменение записей без обновления всей таблицы и т.д. Понимание всех нюансов приходит со временем и ростом проекта.
В какой-то момент "щелкает" и ты понимаешь как оно все фунциклирует и понимаешь, что писать ручками кучу кода, вместо пары строчек с контейнером, это профанция.

Контейнеры то не просто так изобретают разные.
...
Рейтинг: 0 / 0
16.05.2013, 13:20:30
    #38260154
зубок александр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Vaadin Combobox не устанавливает текущую запись
Nixic,

Нет я именно про объект Session который имеется в наличии у хибернейт.

И именно через него и работаю. Никаких прямых запросов через odbc. Хотя кое где использую объект SQLQuery но он тоже хибернейтовский. Иногда просто прямыми запросами как то сподручнее - м б с непривычки.
...
Рейтинг: 0 / 0
16.05.2013, 13:40:16
    #38260200
зубок александр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Vaadin Combobox не устанавливает текущую запись
Ищущий Знания,

тогда пара вопросов 1 я уже задавал в неявном виде - дочернюю сужность можно в контейнер подбросить и потом пришпилить к нему комбобокс или не взлетит?

авторPersistense1.getpersistense2() и потом контейнер цепляю к комбобоксу как
ComboBox1.SetDataContainer(JPAContainer1) то влезает ошибка кастинга.

собственно вот о чем вопрос. Как сие правильно сделать.
И второй более глобальный вопрос
У меня в программе главный формуляр такая огромная таблица типо экселевской (предок проги и есть большая экселевская таблица с кучей макросов) причем ячейки в ней ваадинские компоненты (tetxtfield и в меньшей степени checkbox) с лиснерами. В лиснерах и меняются значения. Мало того если при открытии данного формуляра каких либо значений нет - не сформированы сами записи в БД то будут выдаваться компоненты с нулями. И по нажатию кнопки сохранить если данные поля до того обработаны не были - т е листнер не вступал в игру то и записи не будут сформированы.
В итоге должны схораняться либо добавляться только поля обработанные в листенрах - т е те кторые пользователь поменял.

Сейчас у меня сии операции без контейнера прекрасно отрабоатывают через хибернейт - для таких целей он годится идеально.

Контейнер позволит решить такую проблему? И такой момент - данный формуляр несколько юзеров будут обрабатывать одновременно - ну к примеру кто то строки 1-100 кто то 200-10000 и так далее. ПРичем формально каждый пользователь может поправить любое поле - разделений нет. ПРи ручной обработке такое конечно прекрасно реализуется. Ну если какой либо пользователь поправил только что сохраненное другим юзером поле- ну будет фидно последнее значение - не страшно. Не будет ли контейнер после сохранения тупо переписывать по новой весь формуляр?
...
Рейтинг: 0 / 0
18.05.2013, 00:54:05
    #38262948
зубок александр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Vaadin Combobox не устанавливает текущую запись
Nixic,

Спасибо, взлетело. Вероятно что то недовыставил где-то в настройках комбобокса. Стащил с Вашего примера почти не переписывая - катит
...
Рейтинг: 0 / 0
25.05.2013, 15:20:08
    #38273151
зубок александр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Vaadin Combobox не устанавливает текущую запись
Nixic,

И еще вопрос - как комбобок сделать прозрачным - я вчера попробовал поиграться с его css - не выходит каменный цветок -выставлял backgroun-color : transparent - на синем поле все равно белый - и поле и кнопка - в курсе что комбобокс там составной и у кнопки и поля свои стили
...
Рейтинг: 0 / 0
25.05.2013, 16:16:02
    #38273182
Nixic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Vaadin Combobox не устанавливает текущую запись
зубок александр,

ну через java точно никак, к примеру таблицы я раскрашивал через css, добавляя свои классы в style.css у темы. Как конкретно у комбобокса что-то поменять фз, надо смотреть через страницу с компонентом.
...
Рейтинг: 0 / 0
26.05.2013, 16:59:52
    #38273752
зубок александр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Vaadin Combobox не устанавливает текущую запись
Nixic,

Да полосатость таблицы у меня как раз получается а вот комбобокс в ней что то не раскрашивается - естессно все через CSS.


Ну хорошо хоть правильно выбрал путь - исследовать css и рисовать свои стили с такми же названиями поверх.


А такой вопрос - setstylename насколько эффективен для компонент ваадин? А то я что пробовал - как то эффекта не приносит - не то что перекрыть стили тупо через .имя стиля в подгруженном поверх css.

Там речь шта о размере шрифта у textfield
...
Рейтинг: 0 / 0
26.05.2013, 19:37:13
    #38273875
Nixic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Vaadin Combobox не устанавливает текущую запись
зубок александр,

ну вот допустим главный лайаут у меня в проекте работает - mainVL.setStyleName("lightblue");
а вот таблицы через - table.addStyleName("colored-table");
...
Рейтинг: 0 / 0
26.05.2013, 22:52:19
    #38274034
зубок александр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Vaadin Combobox не устанавливает текущую запись
Nixic,

ну так что то у меня тоже работает но когда идет перехлест с кучей стандартных ваадиноских css - те же шрифты компонент как то не отрабатывают. Например если текстовое поле лежит на вертикальном слое то отрабатывает а вот уже на слое который в табличке или внутри нескольких слоев как то не очень
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Vaadin Combobox не устанавливает текущую запись / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]