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]

Reply via email to