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

Reply via email to