HTML are mapped by name. It can easily be separated and placed into WEB-INF/classes unpacked
I'm very comfortable with anonymous classes so I guess I will write them, but will try to avoid using it too much :) On Mon, Sep 24, 2012 at 2:40 PM, [email protected] < [email protected]> wrote: > Yes, > > anonymous classes are evil :) I think usage of anonymous classes > should be restricted to swing style issues like: > > addMouseListener(new Listener() { > @Override > public void onClick(ActionAWT evt){ > callWhatEverFunction(); > } > } > > Inner classes make it hard to understood and maintain as it is not > clear which parameters belong to which class as you can always do > tricks with declaring fields "final". And it is difficult to read > Exceptions with the ClassXYZ$2,3,4 indicator. > > I did not completely understand yet how Wicket maps Java to HTML files. > But I would like to have the HTML files separated from the Java > Classes, same as the CSS files. > Users will need to restart the application, but this is still quite > comfortable compared to recompiling a JAR file when you want to modify > the layout or style. > > Sebastian > > 2012/9/23 Maxim Solodovnik <[email protected]>: > > It seems like you don't really like inner and anonymous classes :)) > > > > I do create such classes if I need some functionality which is: > > 1) not extendable (the class written is not extended by some other class) > > 2) the class has no markup file. (markups for the inner class can be > added > > something like OuterClass$InnerClass.html, but it looks ugly) > > > > > > > > > > On Sat, Sep 22, 2012 at 8:28 PM, <[email protected]> wrote: > >> > >> Author: sebawagner > >> Date: Sat Sep 22 13:28:23 2012 > >> New Revision: 1388808 > >> > >> URL: http://svn.apache.org/viewvc?rev=1388808&view=rev > >> Log: > >> OPENMEETINGS-429 refactor and split up language editing in several > >> classes, adding new languages will currently not work, needs more > >> refactoring > >> > >> Added: > >> > >> > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/LabelsForm.java > >> > >> > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/LangForm.java > >> Modified: > >> > >> > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/FieldLanguageDaoImpl.java > >> > >> > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/lang/FieldLanguage.java > >> > >> > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/configurations/ConfigForm.java > >> > >> > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/configurations/ConfigsPanel.java > >> > >> > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/LangPanel.html > >> > >> > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/LangPanel.java > >> > >> > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/users/UserForm.java > >> > >> Modified: > >> > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/FieldLanguageDaoImpl.java > >> URL: > >> > http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/FieldLanguageDaoImpl.java?rev=1388808&r1=1388807&r2=1388808&view=diff > >> > >> > ============================================================================== > >> --- > >> > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/FieldLanguageDaoImpl.java > >> (original) > >> +++ > >> > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/FieldLanguageDaoImpl.java > >> Sat Sep 22 13:28:23 2012 > >> @@ -18,6 +18,7 @@ > >> */ > >> package org.apache.openmeetings.data.basic; > >> > >> +import java.io.Serializable; > >> import java.util.Date; > >> import java.util.List; > >> > >> @@ -38,7 +39,9 @@ import org.springframework.transaction.a > >> * > >> */ > >> @Transactional > >> -public class FieldLanguageDaoImpl { > >> +public class FieldLanguageDaoImpl implements Serializable { > >> + > >> + private static final long serialVersionUID = > >> -2714490167956230305L; > >> > >> private static final Logger log = Red5LoggerFactory.getLogger( > >> FieldLanguageDaoImpl.class, > >> OpenmeetingsVariables.webAppRootKey); > >> @@ -102,7 +105,13 @@ public class FieldLanguageDaoImpl { > >> return new Long(-1); > >> } > >> > >> - public void updateLanguage(FieldLanguage fl) throws Exception { > >> + public void delete(FieldLanguage fl) { > >> + fl.setUpdatetime(new Date()); > >> + fl.setDeleted(true); > >> + em.merge(fl); > >> + } > >> + > >> + public void updateLanguage(FieldLanguage fl) { > >> if (fl.getLanguage_id() == null) { > >> em.persist(fl); > >> } else { > >> > >> Modified: > >> > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/lang/FieldLanguage.java > >> URL: > >> > http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/lang/FieldLanguage.java?rev=1388808&r1=1388807&r2=1388808&view=diff > >> > >> > ============================================================================== > >> --- > >> > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/lang/FieldLanguage.java > >> (original) > >> +++ > >> > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/lang/FieldLanguage.java > >> Sat Sep 22 13:28:23 2012 > >> @@ -33,9 +33,11 @@ import javax.persistence.Id; > >> import javax.persistence.JoinColumn; > >> import javax.persistence.OneToMany; > >> import javax.persistence.Table; > >> + > >> +import org.apache.openmeetings.persistence.beans.OmEntity; > >> @Entity > >> @Table(name = "fieldlanguage") > >> -public class FieldLanguage implements Serializable { > >> +public class FieldLanguage implements Serializable, OmEntity { > >> private static final long serialVersionUID = > 3501643212388395425L; > >> @Id > >> @Column(name="id") > >> > >> Modified: > >> > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/configurations/ConfigForm.java > >> URL: > >> > http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/configurations/ConfigForm.java?rev=1388808&r1=1388807&r2=1388808&view=diff > >> > >> > ============================================================================== > >> --- > >> > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/configurations/ConfigForm.java > >> (original) > >> +++ > >> > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/configurations/ConfigForm.java > >> Sat Sep 22 13:28:23 2012 > >> @@ -32,6 +32,12 @@ import org.apache.wicket.markup.html.for > >> import org.apache.wicket.markup.html.form.TextField; > >> import org.apache.wicket.model.CompoundPropertyModel; > >> > >> +/** > >> + * Handle {@link Configuration} items as list and form > >> + * > >> + * @author swagner > >> + * > >> + */ > >> public class ConfigForm extends AdminBaseForm<Configuration> { > >> > >> private static final long serialVersionUID = 1L; > >> > >> Modified: > >> > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/configurations/ConfigsPanel.java > >> URL: > >> > http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/configurations/ConfigsPanel.java?rev=1388808&r1=1388807&r2=1388808&view=diff > >> > >> > ============================================================================== > >> --- > >> > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/configurations/ConfigsPanel.java > >> (original) > >> +++ > >> > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/configurations/ConfigsPanel.java > >> Sat Sep 22 13:28:23 2012 > >> @@ -31,6 +31,12 @@ import org.apache.wicket.markup.html.bas > >> import org.apache.wicket.markup.repeater.Item; > >> import org.apache.wicket.markup.repeater.data.DataView; > >> > >> +/** > >> + * add/update/delete {@link Configuration} > >> + * > >> + * @author swagner > >> + * > >> + */ > >> public class ConfigsPanel extends AdminPanel { > >> > >> private static final long serialVersionUID = -1L; > >> @@ -71,8 +77,7 @@ public class ConfigsPanel extends AdminP > >> } > >> }); > >> > >> - Configuration configuration = new Configuration(); > >> - form = new ConfigForm("form", listContainer, > >> configuration); > >> + form = new ConfigForm("form", listContainer, new > >> Configuration()); > >> add(form); > >> > >> } > >> > >> Added: > >> > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/LabelsForm.java > >> URL: > >> > http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/LabelsForm.java?rev=1388808&view=auto > >> > >> > ============================================================================== > >> --- > >> > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/LabelsForm.java > >> (added) > >> +++ > >> > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/LabelsForm.java > >> Sat Sep 22 13:28:23 2012 > >> @@ -0,0 +1,88 @@ > >> +/* > >> + * Licensed to the Apache Software Foundation (ASF) under one > >> + * or more contributor license agreements. See the NOTICE file > >> + * distributed with this work for additional information > >> + * regarding copyright ownership. The ASF licenses this file > >> + * to you under the Apache License, Version 2.0 (the > >> + * "License") + you may not use this file except in compliance > >> + * with the License. You may obtain a copy of the License at > >> + * > >> + * http://www.apache.org/licenses/LICENSE-2.0 > >> + * > >> + * Unless required by applicable law or agreed to in writing, > >> + * software distributed under the License is distributed on an > >> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY > >> + * KIND, either express or implied. See the License for the > >> + * specific language governing permissions and limitations > >> + * under the License. > >> + */ > >> +package org.apache.openmeetings.web.components.admin.labels; > >> + > >> +import org.apache.openmeetings.data.basic.FieldLanguagesValuesDAO; > >> +import > >> org.apache.openmeetings.persistence.beans.lang.Fieldlanguagesvalues; > >> +import org.apache.openmeetings.web.app.Application; > >> +import org.apache.openmeetings.web.app.WebSession; > >> +import org.apache.openmeetings.web.components.admin.AdminBaseForm; > >> +import org.apache.wicket.ajax.AjaxRequestTarget; > >> +import org.apache.wicket.markup.html.basic.Label; > >> +import org.apache.wicket.markup.html.form.Form; > >> +import org.apache.wicket.markup.html.form.TextArea; > >> +import org.apache.wicket.markup.html.form.TextField; > >> +import org.apache.wicket.model.CompoundPropertyModel; > >> + > >> +/** > >> + * Add/edit/delete {@link Fieldlanguagesvalues} > >> + * > >> + * @author swagner > >> + * > >> + */ > >> +public class LabelsForm extends AdminBaseForm<Fieldlanguagesvalues> { > >> + > >> + public LabelsForm(String id, Fieldlanguagesvalues > >> fieldlanguagesvalues) { > >> + super(id, new > CompoundPropertyModel<Fieldlanguagesvalues>( > >> + fieldlanguagesvalues)); > >> + setOutputMarkupId(true); > >> + > >> + add(new Label("fieldvalues.fieldvalues_id")); > >> + add(new TextField<String>("fieldvalues.name")); > >> + add(new TextArea<String>("value")); > >> + > >> + } > >> + > >> + private static final long serialVersionUID = > >> -1309878909524329047L; > >> + > >> + @Override > >> + protected void onNewSubmit(AjaxRequestTarget target, Form<?> f) > { > >> + this.setModelObject(new Fieldlanguagesvalues()); > >> + target.add(this); > >> + } > >> + > >> + @Override > >> + protected void onRefreshSubmit(AjaxRequestTarget target, Form<?> > >> form) { > >> + Fieldlanguagesvalues flv = getModelObject(); > >> + if (flv.getFieldlanguagesvalues_id() != null) { > >> + flv = > >> Application.getBean(FieldLanguagesValuesDAO.class).get( > >> + > >> getModelObject().getFieldlanguagesvalues_id()); > >> + } else { > >> + flv = new Fieldlanguagesvalues(); > >> + } > >> + this.setModelObject(flv); > >> + target.add(this); > >> + } > >> + > >> + @Override > >> + protected void onSaveSubmit(AjaxRequestTarget target, Form<?> > >> form) { > >> + > Application.getBean(FieldLanguagesValuesDAO.class).update( > >> + getModelObject(), > WebSession.getUserId()); > >> + // FIXME reload > >> + } > >> + > >> + // FIXME confirmation > >> + @Override > >> + protected void onDeleteSubmit(AjaxRequestTarget target, Form<?> > >> form) { > >> + > Application.getBean(FieldLanguagesValuesDAO.class).delete( > >> + getModelObject(), > WebSession.getUserId()); > >> + // FIXME reload > >> + } > >> + > >> +} > >> > >> Added: > >> > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/LangForm.java > >> URL: > >> > http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/LangForm.java?rev=1388808&view=auto > >> > >> > ============================================================================== > >> --- > >> > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/LangForm.java > >> (added) > >> +++ > >> > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/LangForm.java > >> Sat Sep 22 13:28:23 2012 > >> @@ -0,0 +1,197 @@ > >> +/* > >> + * Licensed to the Apache Software Foundation (ASF) under one > >> + * or more contributor license agreements. See the NOTICE file > >> + * distributed with this work for additional information > >> + * regarding copyright ownership. The ASF licenses this file > >> + * to you under the Apache License, Version 2.0 (the > >> + * "License") + you may not use this file except in compliance > >> + * with the License. You may obtain a copy of the License at > >> + * > >> + * http://www.apache.org/licenses/LICENSE-2.0 > >> + * > >> + * Unless required by applicable law or agreed to in writing, > >> + * software distributed under the License is distributed on an > >> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY > >> + * KIND, either express or implied. See the License for the > >> + * specific language governing permissions and limitations > >> + * under the License. > >> + */ > >> +package org.apache.openmeetings.web.components.admin.labels; > >> + > >> +import java.util.ArrayList; > >> +import java.util.List; > >> + > >> +import org.apache.openmeetings.data.basic.FieldLanguageDaoImpl; > >> +import org.apache.openmeetings.persistence.beans.lang.FieldLanguage; > >> +import org.apache.openmeetings.web.app.Application; > >> +import org.apache.openmeetings.web.components.ConfirmCallListener; > >> +import org.apache.openmeetings.web.components.admin.AdminBaseForm; > >> +import org.apache.wicket.ajax.AjaxRequestTarget; > >> +import org.apache.wicket.ajax.attributes.AjaxRequestAttributes; > >> +import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior; > >> +import org.apache.wicket.ajax.markup.html.form.AjaxButton; > >> +import org.apache.wicket.markup.html.WebMarkupContainer; > >> +import org.apache.wicket.markup.html.form.DropDownChoice; > >> +import org.apache.wicket.markup.html.form.Form; > >> +import org.apache.wicket.markup.html.form.IChoiceRenderer; > >> +import org.apache.wicket.model.CompoundPropertyModel; > >> + > >> +/** > >> + * Modify the language selection, add/delete {@link FieldLanguage} > >> + * > >> + * @author swagner > >> + * > >> + */ > >> +public class LangForm extends AdminBaseForm<FieldLanguage> { > >> + > >> + private static final long serialVersionUID = > 2837702941211636609L; > >> + private final WebMarkupContainer listContainer; > >> + private final LangPanel langPanel; > >> + private DropDownChoice<Long> languages; > >> + > >> + private List<FieldLanguage> fieldLanguages; > >> + > >> + private List<Long> getFieldLanguageIds() { > >> + List<Long> idsList = new ArrayList<Long>(); > >> + for (FieldLanguage fieldLanguage : fieldLanguages) { > >> + idsList.add(fieldLanguage.getLanguage_id()); > >> + } > >> + return idsList; > >> + } > >> + > >> + private String getFieldLanguageLabelById(Long id) { > >> + for (FieldLanguage language : fieldLanguages) { > >> + if (id.equals(language.getLanguage_id())) { > >> + return language.getName(); > >> + } > >> + } > >> + throw new RuntimeException("Could not find FieldLanguage > >> for id " + id); > >> + } > >> + > >> + public LangForm(String id, final WebMarkupContainer > listContainer, > >> + FieldLanguage language, LangPanel langPanel) { > >> + > >> + super(id, new > >> CompoundPropertyModel<FieldLanguage>(language)); > >> + this.listContainer = listContainer; > >> + this.langPanel = langPanel; > >> + setOutputMarkupId(true); > >> + > >> + addLanguageDropDown(); > >> + > >> + addSaveAndDeleteButtons(); > >> + > >> + // addNewLanguagePopUp(langPanel); > >> + } > >> + > >> + /** > >> + * Adds the drop down menu to choose more languages > >> + */ > >> + private void addLanguageDropDown() { > >> + > >> + // prepare the list of languages > >> + FieldLanguageDaoImpl langDao = Application > >> + .getBean(FieldLanguageDaoImpl.class); > >> + fieldLanguages = langDao.getLanguages(); > >> + > >> + languages = new DropDownChoice<Long>("language_id", > >> + getFieldLanguageIds(), new > >> IChoiceRenderer<Long>() { > >> + private static final long > >> serialVersionUID = 1L; > >> + > >> + public Object > getDisplayValue(Long > >> id) { > >> + return > >> getFieldLanguageLabelById(id); > >> + } > >> + > >> + public String getIdValue(Long > id, > >> int index) { > >> + return "" + id; > >> + } > >> + > >> + }); > >> + > >> + languages.add(new > >> AjaxFormComponentUpdatingBehavior("onchange") { > >> + private static final long serialVersionUID = > >> -2055912815073387536L; > >> + > >> + @Override > >> + protected void onUpdate(AjaxRequestTarget > target) > >> { > >> + target.add(listContainer); > >> + } > >> + }); > >> + > >> + add(languages); > >> + } > >> + > >> + /** > >> + * adds the pop up to enter a new language > >> + * > >> + * @param langPanel > >> + */ > >> + // private void addNewLanguagePopUp(LangPanel langPanel) { > >> + // langPanel.add(addLangForm.add( > >> + // new RequiredTextField<String>("name", > >> + // new PropertyModel<String>(this, "newLanguageName"))) > >> + // .add(new RequiredTextField<String>("iso", > >> + // new PropertyModel<String>(this, "newLanguageISO")))); > >> + // } > >> + > >> + /** > >> + * Add save and remove buttons and trigger add/delete in DAO > >> + */ > >> + private void addSaveAndDeleteButtons() { > >> + > >> + add(new AjaxButton("newLangBtn") { > >> + private static final long serialVersionUID = > >> 5570057276994987132L; > >> + }); > >> + > >> + add(new AjaxButton("deleteLangBtn") { > >> + private static final long serialVersionUID = > >> -1650946343073068686L; > >> + > >> + @Override > >> + protected void > >> updateAjaxAttributes(AjaxRequestAttributes attributes) { > >> + super.updateAjaxAttributes(attributes); > >> + attributes.getAjaxCallListeners().add( > >> + new > >> ConfirmCallListener(833L)); > >> + } > >> + > >> + @Override > >> + protected void onSubmit(AjaxRequestTarget > target, > >> Form<?> form) { > >> + FieldLanguageDaoImpl langDao = > Application > >> + > >> .getBean(FieldLanguageDaoImpl.class); > >> + langDao.delete(langPanel.getLanguage()); > >> + fieldLanguages = langDao.getLanguages(); > >> + > >> languages.setChoices(getFieldLanguageIds()); > >> + target.add(languages); > >> + // FIXME need to force update list > >> container > >> + target.add(listContainer); > >> + } > >> + }); > >> + > >> + // add(new AjaxButton("add", this) { > >> + // private static final long serialVersionUID = > >> -552597041751688740L; > >> + // > >> + // @Override > >> + // public void onSubmit(AjaxRequestTarget target, > Form<?> > >> form) { > >> + // FieldLanguageDaoImpl langDao = Application > >> + // .getBean(FieldLanguageDaoImpl.class); > >> + // > >> + // FieldLanguage fl = new FieldLanguage(); > >> + // fl.setLanguage_id(langDao.getNextAvailableId()); > >> + // fl.setStarttime(new Date()); > >> + // fl.setDeleted(false); > >> + // fl.setName(langPanel.getNewLanguageName()); > >> + // fl.setRtl(false); // FIXME > >> + // fl.setCode(langPanel.getNewLanguageISO()); > >> + // > >> + // try { > >> + // langDao.updateLanguage(fl); > >> + // } catch (Exception e) { > >> + // // TODO add feedback message > >> + // e.printStackTrace(); > >> + // } > >> + // fieldLanguages = langDao.getLanguages(); > >> + // languages.setChoices(getFieldLanguageIds()); > >> + // target.add(languages); > >> + // > >> target.appendJavaScript("$('#addLanguage').dialog('close');"); > >> + // } > >> + // }); > >> + } > >> + > >> +} > >> > >> Modified: > >> > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/LangPanel.html > >> URL: > >> > http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/LangPanel.html?rev=1388808&r1=1388807&r2=1388808&view=diff > >> > >> > ============================================================================== > >> --- > >> > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/LangPanel.html > >> (original) > >> +++ > >> > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/LangPanel.html > >> Sat Sep 22 13:28:23 2012 > >> @@ -33,9 +33,16 @@ > >> <table class="adminPanel"> > >> <tr> > >> <td valign="top" > >> class="adminPanelColumnTable"> > >> - <div class="formNewButton" > >> onclick="$('#addLanguage :text').val(''); > >> $('#addLanguage').dialog('open');"><input/></div> > >> - <div class="formCancelButton" > >> wicket:id="deleteLngBtn"><input/></div> > >> - <form wicket:id="langForm" > >> style="display: inline-block;"><select > wicket:id="language"></select></form> > >> + <form wicket:id="langForm" > >> style="display: inline;"> > >> + <div > class="formNewButton" > >> + > >> onclick="$('#addLanguage :text').val(''); > >> $('#addLanguage').dialog('open');"> > >> + <input > >> type="submit" value="" wicket:id="newLangBtn" /> > >> + </div> > >> + <div > >> class="formCancelButton"> > >> + <input > >> type="submit" value="" wicket:id="deleteLangBtn" /> > >> + </div> > >> + <select > >> wicket:id="language_id"></select> > >> + </form> > >> <span > >> wicket:id="navigator">[dataview navigator]</span> > >> <table class="adminListTable"> > >> <thead> > >> @@ -83,18 +90,18 @@ > >> </tr> > >> </table> > >> <div id="addLanguage" wicket:ommessage="title:364" > >> style="display: none;"> > >> - <form wicket:id="addLangForm"> > >> + <form > <!-- wicket:id="addLangForm" --> > >> <table> > >> <tr> > >> <td><wicket:ommessage > >> key="365" /></td> > >> - <td><input type="text" > >> wicket:id="name" /></td> > >> + <td><input type="text" > >> /></td><!-- wicket:id="name" --> > >> </tr> > >> <tr> > >> <td><wicket:ommessage > >> key="1422" /></td> > >> - <td><input type="text" > >> wicket:id="iso"/></td> > >> + <td><input type="text" > >> /></td><!-- wicket:id="iso" --> > >> </tr> > >> <tr> > >> - <td align="right" > >> colspan="2"><input wicket:id="add" type="submit" /></td> > >> + <td align="right" > >> colspan="2"><input type="submit" /></td><!-- wicket:id="add" --> > >> </tr> > >> </table> > >> </form> > >> > >> Modified: > >> > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/LangPanel.java > >> URL: > >> > http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/LangPanel.java?rev=1388808&r1=1388807&r2=1388808&view=diff > >> > >> > ============================================================================== > >> --- > >> > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/LangPanel.java > >> (original) > >> +++ > >> > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/LangPanel.java > >> Sat Sep 22 13:28:23 2012 > >> @@ -18,7 +18,6 @@ > >> */ > >> package org.apache.openmeetings.web.components.admin.labels; > >> > >> -import java.util.Date; > >> import java.util.Iterator; > >> > >> import org.apache.openmeetings.data.basic.FieldLanguageDaoImpl; > >> @@ -26,90 +25,78 @@ import org.apache.openmeetings.data.basi > >> import org.apache.openmeetings.persistence.beans.lang.FieldLanguage; > >> import > >> org.apache.openmeetings.persistence.beans.lang.Fieldlanguagesvalues; > >> import org.apache.openmeetings.web.app.Application; > >> -import org.apache.openmeetings.web.app.WebSession; > >> -import org.apache.openmeetings.web.components.ConfirmCallListener; > >> -import org.apache.openmeetings.web.components.admin.AdminBaseForm; > >> import org.apache.openmeetings.web.components.admin.AdminPanel; > >> import > org.apache.openmeetings.web.components.admin.PagedEntityListPanel; > >> import org.apache.openmeetings.web.data.OmDataProvider; > >> import org.apache.wicket.AttributeModifier; > >> import org.apache.wicket.ajax.AjaxEventBehavior; > >> import org.apache.wicket.ajax.AjaxRequestTarget; > >> -import org.apache.wicket.ajax.attributes.AjaxRequestAttributes; > >> -import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior; > >> -import org.apache.wicket.ajax.markup.html.form.AjaxButton; > >> import org.apache.wicket.markup.html.WebMarkupContainer; > >> import org.apache.wicket.markup.html.basic.Label; > >> -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.RequiredTextField; > >> -import org.apache.wicket.markup.html.form.TextArea; > >> -import org.apache.wicket.markup.html.form.TextField; > >> import org.apache.wicket.markup.repeater.Item; > >> import org.apache.wicket.markup.repeater.data.DataView; > >> -import org.apache.wicket.model.CompoundPropertyModel; > >> -import org.apache.wicket.model.Model; > >> -import org.apache.wicket.model.PropertyModel; > >> > >> +/** > >> + * Language Editor, add/insert/update {@link Fieldlanguagesvalues} and > >> + * add/delete {@link FieldLanguage} contains several Forms and one list > >> + * > >> + * @author solomax, swagner > >> + * > >> + */ > >> public class LangPanel extends AdminPanel { > >> private static final long serialVersionUID = > 5904180813198016592L; > >> + > >> private FieldLanguage language; > >> private String newLanguageName; > >> private String newLanguageISO; > >> - > >> + > >> + public FieldLanguage getLanguage() { > >> + return language; > >> + } > >> + > >> + public void setLanguage(FieldLanguage language) { > >> + this.language = language; > >> + } > >> + > >> + public String getNewLanguageName() { > >> + return newLanguageName; > >> + } > >> + > >> + public void setNewLanguageName(String newLanguageName) { > >> + this.newLanguageName = newLanguageName; > >> + } > >> + > >> + public String getNewLanguageISO() { > >> + return newLanguageISO; > >> + } > >> + > >> + public void setNewLanguageISO(String newLanguageISO) { > >> + this.newLanguageISO = newLanguageISO; > >> + } > >> + > >> public LangPanel(String id) { > >> super(id); > >> - FieldLanguageDaoImpl langDao = > >> Application.getBean(FieldLanguageDaoImpl.class); > >> + FieldLanguageDaoImpl langDao = Application > >> + .getBean(FieldLanguageDaoImpl.class); > >> language = langDao.getFieldLanguageById(1L); > >> - > >> - final AdminBaseForm<Fieldlanguagesvalues> form = new > >> AdminBaseForm<Fieldlanguagesvalues>("form", new > >> CompoundPropertyModel<Fieldlanguagesvalues>(new > Fieldlanguagesvalues())) { > >> - private static final long serialVersionUID = > >> -1309878909524329047L; > >> - > >> - @Override > >> - protected void onNewSubmit(AjaxRequestTarget > >> target, Form<?> f) { > >> - this.setModelObject(new > >> Fieldlanguagesvalues()); > >> - target.add(this); > >> - } > >> - > >> - @Override > >> - protected void onRefreshSubmit(AjaxRequestTarget > >> target, Form<?> form) { > >> - Fieldlanguagesvalues flv = > >> getModelObject(); > >> - if (flv.getFieldlanguagesvalues_id() != > >> null) { > >> - flv = > >> > Application.getBean(FieldLanguagesValuesDAO.class).get(getModelObject().getFieldlanguagesvalues_id()); > >> - } else { > >> - flv = new > Fieldlanguagesvalues(); > >> - } > >> - this.setModelObject(flv); > >> - target.add(this); > >> - } > >> - > >> - @Override > >> - protected void onSaveSubmit(AjaxRequestTarget > >> target, Form<?> form) { > >> - > >> > Application.getBean(FieldLanguagesValuesDAO.class).update(getModelObject(), > >> WebSession.getUserId()); > >> - //FIXME reload > >> - } > >> - > >> - //FIXME confirmation > >> - @Override > >> - protected void onDeleteSubmit(AjaxRequestTarget > >> target, Form<?> form) { > >> - > >> > Application.getBean(FieldLanguagesValuesDAO.class).delete(getModelObject(), > >> WebSession.getUserId()); > >> - //FIXME reload > >> - } > >> - }; > >> - form.add(new Label("fieldvalues.fieldvalues_id")); > >> - form.add(new TextField<String>("fieldvalues.name")); > >> - form.add(new TextArea<String>("value")); > >> - add(form); > >> - > >> - final DataView<Fieldlanguagesvalues> dataView = new > >> DataView<Fieldlanguagesvalues>("langList" > >> - , new > >> OmDataProvider<Fieldlanguagesvalues>(FieldLanguagesValuesDAO.class){ > >> - private static final long serialVersionUID = > >> -6822789354860988626L; > >> > >> - public Iterator<? extends Fieldlanguagesvalues> > >> iterator(long first, long count) { > >> - return > >> > Application.getBean(FieldLanguagesValuesDAO.class).get(language.getLanguage_id(), > >> (int)first, (int)count).iterator(); > >> - } > >> - }) { > >> + final LabelsForm form = new LabelsForm("form", > >> + new Fieldlanguagesvalues()); > >> + add(form); > >> + > >> + final DataView<Fieldlanguagesvalues> dataView = new > >> DataView<Fieldlanguagesvalues>( > >> + "langList", new > >> OmDataProvider<Fieldlanguagesvalues>( > >> + > >> FieldLanguagesValuesDAO.class) { > >> + private static final long > >> serialVersionUID = -6822789354860988626L; > >> + > >> + public Iterator<? extends > >> Fieldlanguagesvalues> iterator( > >> + long first, long > >> count) { > >> + return Application > >> + > >> .getBean(FieldLanguagesValuesDAO.class) > >> + > >> .get(language.getLanguage_id(), (int) first, > >> + > >> (int) count).iterator(); > >> + } > >> + }) { > >> private static final long serialVersionUID = > >> 8715559628755439596L; > >> > >> @Override > >> @@ -127,11 +114,13 @@ public class LangPanel extends AdminPane > >> target.add(form); > >> } > >> }); > >> - > item.add(AttributeModifier.append("class", > >> "clickable " + ((item.getIndex() % 2 == 1) ? "even" : "odd"))); > >> + > item.add(AttributeModifier.append("class", > >> "clickable " > >> + + ((item.getIndex() % 2 > == > >> 1) ? "even" : "odd"))); > >> } > >> }; > >> - > >> - final WebMarkupContainer listContainer = new > >> WebMarkupContainer("listContainer"); > >> + > >> + final WebMarkupContainer listContainer = new > >> WebMarkupContainer( > >> + "listContainer"); > >> > add(listContainer.add(dataView).setOutputMarkupId(true)); > >> add(new PagedEntityListPanel("navigator", dataView) { > >> private static final long serialVersionUID = > >> 5097048616003411362L; > >> @@ -142,79 +131,8 @@ public class LangPanel extends AdminPane > >> target.add(listContainer); > >> } > >> }); > >> - > >> - final Form<Void> f = new Form<Void>("langForm"); > >> - final DropDownChoice<FieldLanguage> languages = new > >> DropDownChoice<FieldLanguage>("language" > >> - , new PropertyModel<FieldLanguage>(this, > >> "language") > >> - , langDao.getLanguages() > >> - , new ChoiceRenderer<FieldLanguage>("name", > >> "language_id")); > >> - > >> - languages.add(new > >> AjaxFormComponentUpdatingBehavior("onchange") { > >> - private static final long serialVersionUID = > >> -2055912815073387536L; > >> - > >> - @Override > >> - protected void > onUpdate(AjaxRequestTarget > >> target) { > >> - target.add(listContainer); > >> - } > >> - }); > >> - f.add(languages.setOutputMarkupId(true)); > >> - add(f.setOutputMarkupId(true)); > >> - > >> - add(new WebMarkupContainer("deleteLngBtn").add(new > >> AjaxEventBehavior("onclick"){ > >> - private static final long serialVersionUID = > >> -1650946343073068686L; > >> - > >> - @Override > >> - protected void > >> updateAjaxAttributes(AjaxRequestAttributes attributes) { > >> - super.updateAjaxAttributes(attributes); > >> - > attributes.getAjaxCallListeners().add(new > >> ConfirmCallListener(833L)); > >> - } > >> - > >> - @Override > >> - protected void onEvent(AjaxRequestTarget > target) { > >> - language.setDeleted(true); > >> - FieldLanguageDaoImpl langDao = > >> Application.getBean(FieldLanguageDaoImpl.class); > >> - try { > >> - > langDao.updateLanguage(language); > >> - } catch (Exception e) { > >> - // TODO add feedback message > >> - e.printStackTrace(); > >> - } > >> - > >> languages.setChoices(langDao.getLanguages()); > >> - target.add(languages); > >> - //FIXME need to forse update list > >> container > >> - target.add(listContainer); > >> - } > >> - })); > >> - Form<Void> addLangForm = new Form<Void>("addLangForm"); > >> - addLangForm.add(new AjaxButton("add", > >> Model.of(WebSession.getString(366L)), addLangForm) { > >> - private static final long serialVersionUID = > >> -552597041751688740L; > >> + add(new LangForm("langForm", listContainer, language, > >> this)); > >> > >> - @Override > >> - public void onSubmit(AjaxRequestTarget target, > >> Form<?> form) { > >> - FieldLanguageDaoImpl langDao = > >> Application.getBean(FieldLanguageDaoImpl.class); > >> - > >> - FieldLanguage fl = new FieldLanguage(); > >> - > >> fl.setLanguage_id(langDao.getNextAvailableId()); > >> - fl.setStarttime(new Date()); > >> - fl.setDeleted(false); > >> - fl.setName(newLanguageName); > >> - fl.setRtl(false); //FIXME > >> - fl.setCode(newLanguageISO); > >> - > >> - try { > >> - langDao.updateLanguage(fl); > >> - } catch (Exception e) { > >> - // TODO add feedback message > >> - e.printStackTrace(); > >> - } > >> - > >> languages.setChoices(langDao.getLanguages()); > >> - target.add(languages); > >> - > >> target.appendJavaScript("$('#addLanguage').dialog('close');"); > >> - } > >> - }); > >> - add(addLangForm > >> - .add(new RequiredTextField<String>("name", new > >> PropertyModel<String>(this, "newLanguageName"))) > >> - .add(new RequiredTextField<String>("iso", new > >> PropertyModel<String>(this, "newLanguageISO"))) > >> - ); > >> } > >> + > >> } > >> > >> Modified: > >> > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/users/UserForm.java > >> URL: > >> > http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/users/UserForm.java?rev=1388808&r1=1388807&r2=1388808&view=diff > >> > >> > ============================================================================== > >> --- > >> > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/users/UserForm.java > >> (original) > >> +++ > >> > incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/users/UserForm.java > >> Sat Sep 22 13:28:23 2012 > >> @@ -81,7 +81,7 @@ public class UserForm extends AdminBaseF > >> return saluation.getLabel().getValue(); > >> } > >> } > >> - throw new RuntimeException("Could not find saluation for > >> id " + id); > >> + throw new RuntimeException("Could not find Salutations > for > >> id " + id); > >> } > >> > >> private List<Long> getFieldLanguageIds() { > >> @@ -99,7 +99,7 @@ public class UserForm extends AdminBaseF > >> return language.getName(); > >> } > >> } > >> - throw new RuntimeException("Could not find saluation for > >> id " + id); > >> + throw new RuntimeException("Could not find FieldLanguage > >> for id " + id); > >> } > >> > >> public UserForm(String id, final Users user) { > >> > >> > > > > > > > > -- > > WBR > > Maxim aka solomax > > > > -- > Sebastian Wagner > https://twitter.com/#!/dead_lock > http://www.webbase-design.de > http://www.wagner-sebastian.com > [email protected] > -- WBR Maxim aka solomax
