Use ListWidget
malpi Jan 20, 2014 6:26 AMHi there,
i have problems by using the ListWidget...
I have created a Widget, to map the entity, and refeer to it in the ListWidget. As soon as I add the first Element, the application only shows a blank page.
Probably I am doing something wrong...
ClassListWidget.java
package de.coderebell.tts.client.local.widget; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import javax.annotation.PostConstruct; import javax.inject.Inject; import org.jboss.errai.ui.client.widget.ListWidget; import org.jboss.errai.ui.shared.api.annotations.DataField; import org.jboss.errai.ui.shared.api.annotations.Templated; import com.google.gwt.user.client.ui.Composite; import de.coderebell.tts.client.domain.SchoolClass; @Templated(value = "ClassListWidget.html#body") public class ClassListWidget extends Composite { @Inject @DataField private ListWidget<SchoolClass, ClassWidget> classSelect; @PostConstruct public void init() { // Somehow defunct List<SchoolClass> result = new ArrayList(); SchoolClass klasse = new SchoolClass(); klasse.setClassName("Testklasse"); klasse.setJahrgang(1987); klasse.setKlassenId(1); result.add(klasse); classSelect.setItems(result); } }
ClassListWidget.html
<div id="wrap" data-field="body"> <select data-field="classSelect"/> </div>
ClassWidget.html
<div id="wrap" data-field="body"> <input data-field="klassenId" type="text"/> <input data-field="className" type="text"/> <input data-field="jahrgang" type="text"/> </div>
ClassWidget.java
package de.coderebell.tts.client.local.widget; import javax.inject.Inject; import org.jboss.errai.databinding.client.api.DataBinder; import org.jboss.errai.ui.client.widget.HasModel; import org.jboss.errai.ui.shared.api.annotations.AutoBound; import org.jboss.errai.ui.shared.api.annotations.Bound; import org.jboss.errai.ui.shared.api.annotations.DataField; import org.jboss.errai.ui.shared.api.annotations.Templated; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.TextBox; import de.coderebell.tts.client.domain.SchoolClass; @Templated(value = "ClassWidget.html#body") public class ClassWidget extends Composite implements HasModel<SchoolClass> { @Inject @AutoBound private DataBinder<SchoolClass> classBinder; @Inject @Bound @DataField private TextBox klassenId; @Inject @Bound @DataField private TextBox className; @Inject @Bound @DataField private TextBox jahrgang; @Override public SchoolClass getModel() { return classBinder.getModel(); } @Override public void setModel(SchoolClass model) { classBinder.setModel(model); } }
Thanks in advance,
Malte