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) {


Reply via email to