I have removed the mappings for salutations and language completely again and use DropDownChoice<Long> for those comboboxes that have no one-to-many mapping. I think its better that way to have no duplicated attributes and to stick with what we have.
Thanks for reviewing! Sebastian 2012/9/9 Maxim Solodovnik <[email protected]>: > I'll remove @Element annotation from here > + @Element(data=true, required=false) > + private FieldLanguage language; > > to avoid export/import errors > > > On Sun, Sep 9, 2012 at 5:44 PM, <[email protected]> wrote: >> >> Author: sebawagner >> Date: Sun Sep 9 10:44:54 2012 >> New Revision: 1382444 >> >> URL: http://svn.apache.org/viewvc?rev=1382444&view=rev >> Log: >> OPENMEETINGS-428 Refactor User administration to Wicket - couple of >> fields, add wcket-detatime package for datepicker >> >> Modified: >> incubator/openmeetings/trunk/singlewebapp/ivy.xml >> >> incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/persistence/beans/user/Users.java >> >> incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/admin/user/UserForm.java >> >> incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/admin/user/UsersPanel.html >> >> Modified: incubator/openmeetings/trunk/singlewebapp/ivy.xml >> URL: >> http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/ivy.xml?rev=1382444&r1=1382443&r2=1382444&view=diff >> >> ============================================================================== >> --- incubator/openmeetings/trunk/singlewebapp/ivy.xml (original) >> +++ incubator/openmeetings/trunk/singlewebapp/ivy.xml Sun Sep 9 10:44:54 >> 2012 >> @@ -236,6 +236,9 @@ >> <dependency org="org.apache.wicket" >> name="wicket-extensions" rev="6.0.0-beta3" conf="openmeetings->*" >> transitive="false"> >> <include type="jar" /> >> </dependency> >> + <dependency org="org.apache.wicket" name="wicket-datetime" >> rev="6.0.0-beta3" conf="openmeetings->*" transitive="false"> >> + <include type="jar" /> >> + </dependency> >> >> <!-- iCal4j seems to need this JAR --> >> <dependency org="edu.emory.mathcs" >> name="backport-util-concurrent" rev="3.1" conf="openmeetings->*"/> >> >> Modified: >> incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/persistence/beans/user/Users.java >> URL: >> http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/persistence/beans/user/Users.java?rev=1382444&r1=1382443&r2=1382444&view=diff >> >> ============================================================================== >> --- >> incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/persistence/beans/user/Users.java >> (original) >> +++ >> incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/persistence/beans/user/Users.java >> Sun Sep 9 10:44:54 2012 >> @@ -45,6 +45,7 @@ import org.openmeetings.app.persistence. >> import org.openmeetings.app.persistence.beans.basic.Server; >> import org.openmeetings.app.persistence.beans.basic.Sessiondata; >> import org.openmeetings.app.persistence.beans.domain.Organisation_Users; >> +import org.openmeetings.app.persistence.beans.lang.FieldLanguage; >> import org.simpleframework.xml.Element; >> import org.simpleframework.xml.ElementList; >> import org.simpleframework.xml.Root; >> @@ -136,6 +137,10 @@ public class Users implements Serializab >> @Column(name = "language_id") >> @Element(data=true, required=false) >> private Long language_id; >> + @ManyToOne(fetch = FetchType.EAGER) >> + @JoinColumn(name = "language_id", insertable = false, updatable = >> false) >> + @Element(data=true, required=false) >> + private FieldLanguage language; >> >> @Column(name = "resethash") >> @Element(data=true, required=false) >> @@ -417,6 +422,16 @@ public class Users implements Serializab >> public void setLanguage_id(Long language_id) { >> this.language_id = language_id; >> } >> + >> + >> + >> + public FieldLanguage getLanguage() { >> + return language; >> + } >> + >> + public void setLanguage(FieldLanguage language) { >> + this.language = language; >> + } >> >> public List<Organisation_Users> getOrganisation_users() { >> return organisation_users; >> >> Modified: >> incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/admin/user/UserForm.java >> URL: >> http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/admin/user/UserForm.java?rev=1382444&r1=1382443&r2=1382444&view=diff >> >> ============================================================================== >> --- >> incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/admin/user/UserForm.java >> (original) >> +++ >> incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/admin/user/UserForm.java >> Sun Sep 9 10:44:54 2012 >> @@ -2,60 +2,82 @@ package org.openmeetings.web.components. >> >> import org.apache.wicket.ajax.AjaxRequestTarget; >> import org.apache.wicket.ajax.markup.html.form.AjaxButton; >> +import org.apache.wicket.extensions.markup.html.form.DateTextField; >> +import org.apache.wicket.extensions.yui.calendar.DatePicker; >> +import org.apache.wicket.markup.html.form.CheckBox; >> import org.apache.wicket.markup.html.form.ChoiceRenderer; >> import org.apache.wicket.markup.html.form.DropDownChoice; >> import org.apache.wicket.markup.html.form.Form; >> import org.apache.wicket.markup.html.form.TextField; >> import org.apache.wicket.model.CompoundPropertyModel; >> +import org.openmeetings.app.data.basic.FieldLanguageDaoImpl; >> import org.openmeetings.app.data.basic.dao.OmTimeZoneDaoImpl; >> import org.openmeetings.app.data.user.Salutationmanagement; >> import org.openmeetings.app.persistence.beans.basic.OmTimeZone; >> +import org.openmeetings.app.persistence.beans.lang.FieldLanguage; >> import org.openmeetings.app.persistence.beans.user.Salutations; >> import org.openmeetings.app.persistence.beans.user.Users; >> import org.openmeetings.web.app.Application; >> import org.openmeetings.web.app.WebSession; >> >> public class UserForm extends Form<Users> { >> - >> >> public UserForm(String id, Users user) { >> super(id, new CompoundPropertyModel<Users>(user)); >> setOutputMarkupId(true); >> - >> + >> add(new TextField<String>("login")); >> - >> - >> - add(new DropDownChoice<Salutations>("salutations", >> - >> Application.getBean(Salutationmanagement.class).getUserSalutations(WebSession.getLanguage()), >> - new ChoiceRenderer<Salutations>("label.value", >> "salutations_id"))); >> - >> + >> + add(new DropDownChoice<Salutations>("salutations", >> Application.getBean( >> + >> Salutationmanagement.class).getUserSalutations( >> + WebSession.getLanguage()), new >> ChoiceRenderer<Salutations>( >> + "label.value", "salutations_id"))); >> + >> add(new TextField<String>("firstname")); >> - >> - add(new DropDownChoice<OmTimeZone>("omTimeZone", >> - >> Application.getBean(OmTimeZoneDaoImpl.class).getOmTimeZones(), >> - new ChoiceRenderer<OmTimeZone>("frontEndLabel", >> "jname"))); >> - >> - >> - //add(new SimpleFormComponentLabel("login-label", fc)); >> - >> - // add a button that can be used to submit the form via ajax >> - add(new AjaxButton("ajax-button", this) { >> + add(new TextField<String>("lastname")); >> + >> + add(new DropDownChoice<OmTimeZone>("omTimeZone", >> Application.getBean( >> + OmTimeZoneDaoImpl.class).getOmTimeZones(), >> + new >> ChoiceRenderer<OmTimeZone>("frontEndLabel", "jname"))); >> + >> + add(new DropDownChoice<FieldLanguage>("language", >> Application.getBean( >> + >> FieldLanguageDaoImpl.class).getLanguages(), >> + new ChoiceRenderer<FieldLanguage>("name", >> "language_id"))); >> + >> + add(new CheckBox("forceTimeZoneCheck")); >> + add(new TextField<String>("adresses.email")); >> + add(new TextField<String>("adresses.phone")); >> + add(new CheckBox("sendSMS")); >> + DateTextField age = new DateTextField("age"); >> + DatePicker datePicker = new DatePicker() { >> + private static final long serialVersionUID = 1L; >> + >> + @Override >> + protected String getAdditionalJavaScript() { >> + return >> "${calendar}.cfg.setProperty(\"navigator\",true,false); >> ${calendar}.render();"; >> + } >> + }; >> + datePicker.setShowOnFieldClick(true); >> + datePicker.setAutoHide(true); >> + age.add(datePicker); >> + add(age); >> + >> + // add a button that can be used to submit the form via >> ajax >> + add(new AjaxButton("ajax-button", this) { >> private static final long serialVersionUID = >> 839803820502260006L; >> >> @Override >> - protected void onSubmit(AjaxRequestTarget target, Form<?> >> form) >> - { >> - // repaint the feedback panel so that it is hidden >> - // target.add(feedback); >> - } >> - >> - @Override >> - protected void onError(AjaxRequestTarget target, Form<?> >> form) >> - { >> - // repaint the feedback panel so errors are shown >> - // target.add(feedback); >> - } >> - }); >> + protected void onSubmit(AjaxRequestTarget target, >> Form<?> form) { >> + // repaint the feedback panel so that it >> is hidden >> + // target.add(feedback); >> + } >> + >> + @Override >> + protected void onError(AjaxRequestTarget target, >> Form<?> form) { >> + // repaint the feedback panel so errors >> are shown >> + // target.add(feedback); >> + } >> + }); >> } >> >> /** >> >> Modified: >> incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/admin/user/UsersPanel.html >> URL: >> http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/admin/user/UsersPanel.html?rev=1382444&r1=1382443&r2=1382444&view=diff >> >> ============================================================================== >> --- >> incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/admin/user/UsersPanel.html >> (original) >> +++ >> incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/admin/user/UsersPanel.html >> Sun Sep 9 10:44:54 2012 >> @@ -50,8 +50,25 @@ >> <br/> >> <wicket:ommessage key="135" />: >> <select wicket:id="salutations"/> <input type="text" wicket:id="firstname"/> >> <br/> >> + <wicket:ommessage key="136" />: <input >> type="text" wicket:id="lastname"/> >> + <br/> >> <wicket:ommessage key="1143" />: >> <select wicket:id="omTimeZone"/> >> <br/> >> + <wicket:ommessage key="111" />: >> <select wicket:id="language"/> >> + <br/> >> + <wicket:ommessage key="1149" /> >> + <br/> >> + <wicket:ommessage key="1148" />: >> <input type="checkbox" wicket:id="forceTimeZoneCheck" /> >> + <br/> >> + <wicket:ommessage key="137" />: <input >> type="text" wicket:id="adresses.email"/> >> + <br/> >> + <wicket:ommessage key="607" />: <input >> type="text" wicket:id="adresses.phone"/> >> + <br/> >> + <wicket:ommessage key="1503" />: >> <input type="checkbox" wicket:id="sendSMS"/> >> + <br/> >> + <wicket:ommessage key="138" />: <input >> type="text" wicket:id="age"/> >> + <br/> >> + <br/> >> <input type="submit" value="submit via >> ajax" wicket:id="ajax-button"/> >> </form> >> </td> >> >> > > > > -- > WBR > Maxim aka solomax -- Sebastian Wagner https://twitter.com/#!/dead_lock http://www.webbase-design.de http://www.wagner-sebastian.com [email protected]
