lichnost
20 Jan 2009, 5:19 AM
When I call ComboBox.getValue() just after binding, it return null however ComboBox.value field not null. If I select then something selected value returns as well.
Here is the example
public void onModuleLoad() {
TestBean bean = new TestBean();
bean.setName("Main bean");
TestBean nestedBean = new TestBean();
nestedBean.setName("Nested bean");
bean.setNested(nestedBean);
FormPanel form = new FormPanel();
final TextField<String> nameField = new TextField<String>();
nameField.setFieldLabel("Name");
form.add(nameField);
final ComboBox<BeanModel> combo = new ComboBox<BeanModel>();
ListStore<BeanModel> store = new ListStore<BeanModel>();
TestBean comboBean = new TestBean();
comboBean.setName("Nested bean 2");
store.add(BeanModelLookup.get().getFactory(TestBean.class).createModel(comboBean));
comboBean = new TestBean();
comboBean.setName("Nested bean 3");
store.add(BeanModelLookup.get().getFactory(TestBean.class).createModel(comboBean));
combo.setStore(store);
combo.setFieldLabel("Nested");
combo.setDisplayField("name");
form.add(combo);
final Bindings bindings = new Bindings();
bindings.addFieldBinding(new FieldBinding(nameField,"name"));
bindings.addFieldBinding(new FieldBinding(combo,"nested"));
bindings.bind(BeanModelLookup.get().getFactory(TestBean.class).createModel(bean));
RootPanel.get().add(form);
Button initBtn = new Button("Init", new SelectionListener<ComponentEvent>(){
@Override
public void componentSelected(ComponentEvent ce) {
TestBean bean = new TestBean();
bean.setName("Main bean");
TestBean nestedBean = new TestBean();
nestedBean.setName("Nested bean");
bean.setNested(nestedBean);
bindings.bind(BeanModelLookup.get().getFactory(TestBean.class).createModel(bean));
}
});
RootPanel.get().add(initBtn);
Button changeBtn = new Button("Check combobox", new SelectionListener<ComponentEvent>(){
@Override
public void componentSelected(ComponentEvent ce) {
if(combo.getValue()==null)
combo.markInvalid(null);
else Info.display("Yeah!!", "All right");
if(nameField.getValue()==null)
nameField.markInvalid(null);
}
});
RootPanel.get().add(changeBtn);
}Any suggestions?
Here is the example
public void onModuleLoad() {
TestBean bean = new TestBean();
bean.setName("Main bean");
TestBean nestedBean = new TestBean();
nestedBean.setName("Nested bean");
bean.setNested(nestedBean);
FormPanel form = new FormPanel();
final TextField<String> nameField = new TextField<String>();
nameField.setFieldLabel("Name");
form.add(nameField);
final ComboBox<BeanModel> combo = new ComboBox<BeanModel>();
ListStore<BeanModel> store = new ListStore<BeanModel>();
TestBean comboBean = new TestBean();
comboBean.setName("Nested bean 2");
store.add(BeanModelLookup.get().getFactory(TestBean.class).createModel(comboBean));
comboBean = new TestBean();
comboBean.setName("Nested bean 3");
store.add(BeanModelLookup.get().getFactory(TestBean.class).createModel(comboBean));
combo.setStore(store);
combo.setFieldLabel("Nested");
combo.setDisplayField("name");
form.add(combo);
final Bindings bindings = new Bindings();
bindings.addFieldBinding(new FieldBinding(nameField,"name"));
bindings.addFieldBinding(new FieldBinding(combo,"nested"));
bindings.bind(BeanModelLookup.get().getFactory(TestBean.class).createModel(bean));
RootPanel.get().add(form);
Button initBtn = new Button("Init", new SelectionListener<ComponentEvent>(){
@Override
public void componentSelected(ComponentEvent ce) {
TestBean bean = new TestBean();
bean.setName("Main bean");
TestBean nestedBean = new TestBean();
nestedBean.setName("Nested bean");
bean.setNested(nestedBean);
bindings.bind(BeanModelLookup.get().getFactory(TestBean.class).createModel(bean));
}
});
RootPanel.get().add(initBtn);
Button changeBtn = new Button("Check combobox", new SelectionListener<ComponentEvent>(){
@Override
public void componentSelected(ComponentEvent ce) {
if(combo.getValue()==null)
combo.markInvalid(null);
else Info.display("Yeah!!", "All right");
if(nameField.getValue()==null)
nameField.markInvalid(null);
}
});
RootPanel.get().add(changeBtn);
}Any suggestions?