{"id":319,"date":"2009-05-19T11:34:00","date_gmt":"2009-05-19T11:34:00","guid":{"rendered":"http:\/\/www.tutego.de\/blog\/javainsel\/?p=319"},"modified":"2009-05-19T11:34:00","modified_gmt":"2009-05-19T11:34:00","slug":"ext-gwt-beanbinding-beispiel","status":"publish","type":"post","link":"https:\/\/www.tutego.de\/blog\/javainsel\/2009\/05\/ext-gwt-beanbinding-beispiel\/","title":{"rendered":"Ext GWT BeanBinding Beispiel"},"content":{"rendered":"<p>Ext GWT bietet eine einfache M\u00f6glichkeit, JavaBeans an Formulare zu binden. Im ersten Schritt muss die Bean dazu vorbereitet werden.<\/p>\n<ol>\n<li>Die JavaBean implementiert das Marker-Interface com.extjs.gxt.ui.client.data.BeanModelTag.<\/li>\n<li>Will man\u2019s nicht-invasiv, so deklariert man ein Zusatz-Interface, was BeanModelMarker erweitert und h\u00e4ngt dort eine spezielle Zusatz-Annotation an, mit dem Verweise auf die JavaBean.<\/li>\n<\/ol>\n<p>Gebunden werden soll der Titel eines Seminars an das Textfeld titleTextField auf dem FormPanel:<\/p>\n<p>FormPanel courseDescriptionPanel = new FormPanel(); <\/p>\n<p>TextField&lt;String&gt; titleTextField = new TextField&lt;String&gt;();<br \/>titleTextField.setFieldLabel( &#8222;Kurstitel&#8220; );<br \/>titleTextField.setName( &#8222;title&#8220; );<br \/>titleTextField.setAllowBlank( false );&nbsp; <br \/>courseDescriptionPanel.add( titleTextField );<\/p>\n<p>Im n\u00e4chsten Schritt kann man die Bean aufbauen und etwa mit Werten aus einem Service f\u00fcllen:<\/p>\n<p>Course c = new Course();<br \/>c.setTitle( &#8222;ejb super kurs&#8220; ); <\/p>\n<p>Dann wird um diese Standard-JavaBean eine Ext GWT-Klasse gelegt, quasi ein Wrapper: <\/p>\n<p>BeanModel userModel = BeanModelLookup.get().getFactory(Course.class).createModel( c );<\/p>\n<p>Dieses BeanModel wird als n\u00e4chstes mit dem FormPanel verbunden, auf dem das Texteingabefeld liegt.<\/p>\n<p>FormBinding formBindingCourse = new FormBinding( courseDescriptionPanel );<\/p>\n<p>Und das muss mit dem BeanModel (dem Wrapper um das Exemplar unserer JavaBean) verbunden werden:<\/p>\n<p>formBindingCourse.bind( userModel );<\/p>\n<p>Nun kennt der formBindingCourse die Bean, aber noch nicht, welches Gui-Element eigentlich mit welcher Property verbunden ist. Das kann man mit autoBind() automatisieren, oder aber mit addFieldBinding() manuell f\u00fcr jedes Element setzen. Bei unserem Textfeld hei\u00dft das:<\/p>\n<p>formBindingCourse.addFieldBinding( new FieldBinding( titleTextField, &#8222;title&#8220; ) );<\/p>\n<p>Jede \u00c4nderung an der Gui wird nun an die Bean weitergeben.<\/p>\n<p>Weiteres Infos unter <a title=\"http:\/\/extjs.com\/blog\/2008\/07\/14\/preview-java-bean-support-with-ext-gwt\/\" href=\"http:\/\/extjs.com\/blog\/2008\/07\/14\/preview-java-bean-support-with-ext-gwt\/\">http:\/\/extjs.com\/blog\/2008\/07\/14\/preview-java-bean-support-with-ext-gwt\/<\/a> oder in Foren-Beispielen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ext GWT bietet eine einfache M\u00f6glichkeit, JavaBeans an Formulare zu binden. Im ersten Schritt muss die Bean dazu vorbereitet werden. Die JavaBean implementiert das Marker-Interface com.extjs.gxt.ui.client.data.BeanModelTag. Will man\u2019s nicht-invasiv, so deklariert man ein Zusatz-Interface, was BeanModelMarker erweitert und h\u00e4ngt dort eine spezielle Zusatz-Annotation an, mit dem Verweise auf die JavaBean. Gebunden werden soll der Titel [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[16,15],"tags":[],"class_list":["post-319","post","type-post","status-publish","format-standard","hentry","category-gwt","category-web-frameworks"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/319","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/comments?post=319"}],"version-history":[{"count":0,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/319\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/media?parent=319"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/categories?post=319"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/tags?post=319"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}