powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / GXT 3 from binding
5 сообщений из 5, страница 1 из 1
GXT 3 from binding
    #38497654
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день, возникла задача сбиндить поля формы на модедь

Как я понимаю делать это нужно через спец интерфейс Interface PropertyAccess<T> , но так как с GXT 3 не работал - чего не получается с лету в этом разобраться :

и так Есть форма с
Кучей полей :

в виде списка , как эти поля "завернуть" в модель , если модель имеет поля , которые в свою очередь имеют поля - которые простые типы

среди примеров нашел только биндинг персона - дети - но явно не то что мне нужно .

Нужна помощь!

Код: java
1.
2.
3.
4.
5.
REQUEST ID:
SENDER ID:

PHONE:
...



Есть модель - вида :

Код: 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.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
public class Request implements Serializable {
    
   private static final long serialVersionUID = 1L;
    
    protected RequestHeader header;
    protected Parameters parameters ;

//getter/setter
}


public class RequestHeader implements Serializable{

    private static final long serialVersionUID = 1L;
    
    protected String requestId;
    protected String senderId;

//getter/setter

}

public class Parameters implements Serializable {

    private static final long serialVersionUID = 1L;
    
    protected  List<Pair> pairs;

    protected OwnerPhone ownerPhone ;
    protected OwnerIdentification ownerIdentification;
    protected ShowcaseUser showcaseUser;

    protected String source;

//getter/setter

}

public class OwnerPhone implements Serializable{

    private static final long serialVersionUID = 1L;
    protected String mobilePhoneNumber;

//getter/setter
}



так

REQUEST ID:
SENDER ID:

должны попасть в - RequestHeader

а PHONE: - аж в класс OwnerPhone (Parameters - OwnerPhone - mobilePhoneNumber)


итд
...
Рейтинг: 0 / 0
GXT 3 from binding
    #38497998
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Первое и самое простое что пришло в голову - организовать интерфейс как набор виджетов - в точности повторяющий структуру модели.

RequestHeader - свой виджет из двух полей со своим бандингом итд.
...
Рейтинг: 0 / 0
GXT 3 from binding
    #38507638
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
помоги те кто перешел на GXT 3


Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
 
        FramedPanel form = new FramedPanel();
        form.setHeaderVisible(false);
        form.setWidth(-1);

        FieldSet fieldSet = new FieldSet();
        fieldSet.setCollapsible(true);
        form.add(fieldSet);

        VerticalLayoutContainer p = new VerticalLayoutContainer();
        fieldSet.add(p);

      // форма
        OrderedSet orderedSet = new OrderedSet ();
        
       
        p.add(orderedSet , new VerticalLayoutData(1, -1));



и так есть - форма - на ней есть SpinnerField<Integer>

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

При этом поля формы FormEditor должны создаваться со значениями по умолчанию - но выставление значений через методы игнорируется
Код: java
1.
2.
        .setValue(1, true, true); // таким образом можно установить начальное значение 
       .setOriginalValue(1);





Код: 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.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
public class OrderedSet implements IsWidget{

VerticalLayoutContainer p;
LinkedList<FormEditor> list = new LinkedList<FormEditor>(); - список динамических полей
    @Override
    public Widget asWidget() {
        if (p == null) {
            final VerticalLayoutContainer orderedPanel = new VerticalLayoutContainer();
            orderedPanel .setScrollMode(ScrollSupport.ScrollMode.AUTO);
            
            
          final SpinnerField<Integer> spinner = new SpinnerField<Integer>(new NumberPropertyEditor.IntegerPropertyEditor());
            spinner.setId("spinner");
            spinner.setName("spinner");
            spinner.setMinValue(1);
            spinner.setMaxValue(100);
            spinner.setValue(1, true, true); // таким образом можно установить начальное значение счетчика
            spinner.setOriginalValue(1);
            spinner.setAllowBlank(true);
            spinner.setEditable(false);
            spinner.addValueChangeHandler(new ValueChangeHandler<Integer>() {

                @Override
                public void onValueChange(ValueChangeEvent<Integer> event) {
                    Integer value =  event.getValue();
                    Info.display("ChangeHandler", "new Value: " + value);
                    while(list.size() < value) {
                        FormEditor form = new FormEditor();
                        list.add(form );
                        orderedBetsPanel.add(form , new VerticalLayoutData(1, -1, new Margins(5)));
                    } 
                    while(list.size() > value){
                          orderedBetsPanel.remove(list.removeLast());
                    }

                  // тут как то нужно обновить orderedBetsPanel  или он должен обновиться сам ???
                }
            });
                    
                    

            


          
            
             p.add(spinner, new VerticalLayoutData(1, -1,new Margins(5)));
             
             
             FormEditor from = new FormEditor();
             list.add(from );
             orderedBetsPanel.add(from , new VerticalLayoutData(1, -1 , new Margins(5)));

             p.add(orderedBetsPanel);

        }
        return p;
    }

    
}
...
Рейтинг: 0 / 0
GXT 3 from binding
    #38545473
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще один вопрос GXT 3 GWT , есть SpinnerField - как заставить его выставить значение по умолчанию???

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
           SpinnerField  multiplier = new SpinnerField<Integer>(new NumberPropertyEditor.IntegerPropertyEditor());
            multiplier.setId("multiplier");
            multiplier.setItemId("multiplier");
            multiplier.setName("multiplier");
            multiplier.setMinValue(1);
            multiplier.setMaxValue(100);
            multiplier.setValue(1, true, true);
            multiplier.setOriginalValue(1);
            
            
            FieldLabel multiplierLabel = new FieldLabel(multiplier, "Множитель");
            multiplierLabel.setLabelWidth(200);
            p.add(multiplierLabel, new VerticalLayoutData(1, -1));
...
Рейтинг: 0 / 0
GXT 3 from binding
    #38547002
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Странно нашел пример биндинга форм

все поля отрабатывают , кроме TextField - в нем приходит из модели null

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
public class FormEditor implements IsWidget, Editor<GModel> {

    interface FormEditorDriver extends SimpleBeanEditorDriver<GModel, FormEditor> {
    }
    
     private static int formId = 0;
    


    private GameFormDriver driver = GWT.create(FormEditorDriver .class);
    private GModel gModel = new GModel();
    
    VerticalLayoutContainer p;
    SimpleComboBox<String> gType;
    SpinnerField<Integer> multiplier;
    SpinnerField<Integer> dNumber;
    TextField bet;
    SimpleComboBox<SType> sType;
    TextField series;
    SimpleComboBox<String> iKind;



заполняю поля , в коде
public Widget asWidget() {

....
driver.initialize(this);
driver.edit(gModel);

}

значений по умолчанию нет нигде , но если их выставить самому в интерфейсе все ок!

При этом они попадают в модель , все кроме -значений из полей TextField .. там null /

как такое может быть ?
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / GXT 3 from binding
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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