Friday, April 21, 2017

Re: GWT Editor with Custom Composites



On Wednesday, April 19, 2017 at 8:19:52 PM UTC+2, harshyadav wrote:
Hi,

I am trying to use the GWT editor framework to support data binding in my application. While implementing it I ran into a few issues and have a couple of questions regarding the same:

1) Some of these components don't use 
com.google.gwt.user.*

  rather they use 
com.google.gwt.dom.client.*

 For e.g. InputElement as opposed to TextBox. Is it possible to use editor framework with dom elements?

Yes.
There are several ways.
Either your "composite editor" implements ValueAwareEditor; in setValue extracts values from object properties and put them into the elements, on flush() do the reverse.
@Override public void setValue(MyObj value) {
  this.value = value;
  myInputElement.setValue(value.getProp());
}
@Override public void flush() {
  this.value.setProp(myInputElement.getValue());
}
Or use "child" editors for each element, implement a LeafValueEditor that delegates to the element in setValue/getValue.
final LeafValueEditor<String> myInputElementEditor = new LeafValueEditor<String>() {
  @Override public String getValue() { return myInputElement.getValue(); }
  @Override public void setValue(String value) { myInputElement.setValue(value); }
};

2) Is it possible to bind POJO's with different field types (int, float, String, etc.) to a single Composite implementing IsEditor?
For e.g. if there is an Input composite (wrapping TextBox), is it possible to use the same composite for POJO fields of different types int, float, etc. ?

public class Test
 
implements Serializable {

 
private Integer id;

 
private String name;

 
private float area;
}


Here name and area are of different type. Is it possible to bind these to the same widget implementing Editor (without editor I would just parse the values to and from String to their respective types before saving the data)?

The editor would have to have a generic type parameter (class MyEditor<T> implements LeafValueEditor<T>) and a way to convert the value it receives to/from String (e.g. passing converters to the constructor?)
Have a look at how ValueBox works.

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To post to this group, send email to google-web-toolkit@googlegroups.com.
Visit this group at https://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment