Quantcast
Channel: SmartClient Forums
Viewing all articles
Browse latest Browse all 4756

Nested forms not updating

$
0
0
SmartGWT 4.1
SmartClient Version: v9.1p_2014-11-09/PowerEdition Deployment (built 2014-11-09)

I have created a very simple form that makes use of nested fields. When I programattically call setValues for fields that are nested they update in the UI as expected, however for fields that contain nested values they do not. I am curious what the proper methodology is, and if I am truly expected to tell these form items to redraw?

nested object ds
Code:

<DataSource beanClassName="simpleNestedObject"
ID="SimpleNestedObject">
<fields>
<field name="a" type="float"/>
<field name="b" type="float"/>
<field name="c" type="text"/>
</fields>
</DataSource>

SimpleForm.java -- Nested object fields do not update without redrawing FormItems
Code:

public class SimpleForm extends VLayout {
 private final DynamicForm form;

 public SimpleForm() {
  form = new DynamicForm();
  form.setDataSource(new DataSource() {
  public DataSource init() {
    DataSourceField nested = new DataSourceField();
    nested.setName("nested");
    nested.setTypeAsDataSource(DataSource.get("SimpleNestedObject"));
    DataSourceField outerA = new DataSourceField("outerA", FieldType.Float);
    DataSourceField outerB = new DataSourceField("outerB", FieldType.Float);
    setFields(nested, outerA, outerB);
    return this;
  }
  }.init());
  FormItem innerA = new FormItem("a");
  innerA.setDataPath("nested/a");
  FormItem innerB = new FormItem("b");
  innerB.setDataPath("nested/b");
  FormItem c = new FormItem("c");
  c.setDataPath("nested/c");
  FormItem outerA = new FormItem("outerA");
  FormItem outerB = new FormItem("outerB");
  form.setFields(innerA, innerB, c, outerA, outerB);
 }

 public void setNested(Record nested) {
  form.setValue("nested", nested);
  //to get nested values to update
  for(FormItem field : form.getFields()) {
  field.redraw();
  }
 }

 public void setOuter(double a, double b) {
  form.setValue("outerA", a);
  form.setValue("outerB", b);
 }
}


Viewing all articles
Browse latest Browse all 4756

Trending Articles