You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2012/09/26 05:33:06 UTC

svn commit: r1390269 - in /incubator/openmeetings/trunk/singlewebapp: WebContent/openmeetings/css/ src/org/apache/openmeetings/web/components/admin/ src/org/apache/openmeetings/web/components/admin/labels/

Author: solomax
Date: Wed Sep 26 03:33:06 2012
New Revision: 1390269

URL: http://svn.apache.org/viewvc?rev=1390269&view=rev
Log:
Wicket:
	Lanbels admin page rendered as expected (was broken after refactoring), partially working
	code cleanup

Added:
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/AddLanguageForm.java
Modified:
    incubator/openmeetings/trunk/singlewebapp/WebContent/openmeetings/css/openmeetings-forms.css
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/AdminBaseFormPanel.java
    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
    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

Modified: incubator/openmeetings/trunk/singlewebapp/WebContent/openmeetings/css/openmeetings-forms.css
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/openmeetings/css/openmeetings-forms.css?rev=1390269&r1=1390268&r2=1390269&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/WebContent/openmeetings/css/openmeetings-forms.css (original)
+++ incubator/openmeetings/trunk/singlewebapp/WebContent/openmeetings/css/openmeetings-forms.css Wed Sep 26 03:33:06 2012
@@ -47,6 +47,7 @@ div.formNewButton input {
 div.formNewButton.disabled input {
 	background: url(images/forms/plus_icon_disabled.png) no-repeat;
 	float: left;
+	cursor: default;
 	width: 18px;
 	height: 18px;
 	border: none;

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/AdminBaseFormPanel.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/AdminBaseFormPanel.java?rev=1390269&r1=1390268&r2=1390269&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/AdminBaseFormPanel.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/AdminBaseFormPanel.java Wed Sep 26 03:33:06 2012
@@ -21,7 +21,6 @@ package org.apache.openmeetings.web.comp
 import org.apache.openmeetings.web.app.WebSession;
 import org.apache.openmeetings.web.components.ConfirmCallListener;
 import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.attributes.AjaxCallListener;
 import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
 import org.apache.wicket.ajax.markup.html.form.AjaxButton;
 import org.apache.wicket.markup.html.basic.Label;

Added: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/AddLanguageForm.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/AddLanguageForm.java?rev=1390269&view=auto
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/AddLanguageForm.java (added)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/AddLanguageForm.java Wed Sep 26 03:33:06 2012
@@ -0,0 +1,74 @@
+/*
+ * 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.Date;
+
+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.app.WebSession;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.markup.html.form.AjaxButton;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.form.RequiredTextField;
+import org.apache.wicket.model.Model;
+import org.apache.wicket.model.PropertyModel;
+
+public class AddLanguageForm extends Form<Void> {
+	private static final long serialVersionUID = 8743289610974962636L;
+	private String newLanguageName;
+	private String newLanguageISO;
+	
+	public AddLanguageForm(String id) {
+		super(id);
+		
+		add(new RequiredTextField<String>("name", new PropertyModel<String>(this, "newLanguageName")));
+		add(new RequiredTextField<String>("iso", new PropertyModel<String>(this, "newLanguageISO")));
+		
+		add(new AjaxButton("add", Model.of(WebSession.getString(366L)), 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(newLanguageName);
+				fl.setRtl(false); //FIXME
+				fl.setCode(newLanguageISO);
+				
+				try {
+					langDao.updateLanguage(fl);
+				} catch (Exception e) {
+					// TODO add feedback message
+					e.printStackTrace();
+				}
+				/* FIXME
+				languages.setChoices(langDao.getLanguages());
+				target.add(languages);
+				*/
+				target.appendJavaScript("$('#addLanguage').dialog('close');");
+			}
+		});
+	}
+}

Modified: 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=1390269&r1=1390268&r2=1390269&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/LabelsForm.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/LabelsForm.java Wed Sep 26 03:33:06 2012
@@ -37,20 +37,16 @@ import org.apache.wicket.model.CompoundP
  * 
  */
 public class LabelsForm extends AdminBaseForm<Fieldlanguagesvalues> {
+	private static final long serialVersionUID = -1309878909524329047L;
 
 	public LabelsForm(String id, Fieldlanguagesvalues fieldlanguagesvalues) {
-		super(id, new CompoundPropertyModel<Fieldlanguagesvalues>(
-				fieldlanguagesvalues));
-		setOutputMarkupId(true);
+		super(id, new CompoundPropertyModel<Fieldlanguagesvalues>(fieldlanguagesvalues));
 
 		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());

Modified: 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=1390269&r1=1390268&r2=1390269&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/LangForm.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/LangForm.java Wed Sep 26 03:33:06 2012
@@ -18,24 +18,20 @@
  */
 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.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.form.AjaxFormValidatingBehavior;
-import org.apache.wicket.ajax.markup.html.form.AjaxButton;
 import org.apache.wicket.markup.html.WebMarkupContainer;
+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.IChoiceRenderer;
-import org.apache.wicket.model.CompoundPropertyModel;
+import org.apache.wicket.model.PropertyModel;
 import org.apache.wicket.util.time.Duration;
 
 /**
@@ -44,42 +40,12 @@ import org.apache.wicket.util.time.Durat
  * @author swagner
  * 
  */
-public class LangForm extends AdminBaseForm<FieldLanguage> {
+public class LangForm extends Form<Void> {
 
 	private static final long serialVersionUID = 2837702941211636609L;
 	private final WebMarkupContainer listContainer;
 	private final LangPanel langPanel;
-	private DropDownChoice<Long> languages;
-
-	private List<FieldLanguage> fieldLanguages;
-
-	/**
-	 * Get list of language ids for drow down
-	 * 
-	 * @return
-	 */
-	private List<Long> getFieldLanguageIds() {
-		List<Long> idsList = new ArrayList<Long>();
-		for (FieldLanguage fieldLanguage : fieldLanguages) {
-			idsList.add(fieldLanguage.getLanguage_id());
-		}
-		return idsList;
-	}
-
-	/**
-	 * get name for id for dropdown renderer
-	 * 
-	 * @param id
-	 * @return
-	 */
-	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);
-	}
+	private DropDownChoice<FieldLanguage> languages;
 
 	/**
 	 * Render Main
@@ -89,50 +55,21 @@ public class LangForm extends AdminBaseF
 	 * @param language
 	 * @param langPanel
 	 */
-	public LangForm(String id, final WebMarkupContainer listContainer,
-			FieldLanguage language, LangPanel langPanel) {
+	public LangForm(String id, final WebMarkupContainer listContainer, final LangPanel langPanel) {
 
-		super(id, new CompoundPropertyModel<FieldLanguage>(language));
+		super(id);
 		this.listContainer = listContainer;
 		this.langPanel = langPanel;
 		setOutputMarkupId(true);
 
-		addLanguageDropDown();
-
-		addSaveAndDeleteButtons();
-
-		// addNewLanguagePopUp(langPanel);
-
-		// attach an ajax validation behavior to all form component's keydown
-		// event and throttle it down to once per second
-		AjaxFormValidatingBehavior.addToAllFormComponents(this, "keydown",
-				Duration.ONE_SECOND);
-	}
-
-	/**
-	 * 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 = new DropDownChoice<FieldLanguage>("language"
+				, new PropertyModel<FieldLanguage>(langPanel, "language")
+				, langDao.getLanguages()
+				, new ChoiceRenderer<FieldLanguage>("name", "language_id"));
+				
 		languages.add(new AjaxFormComponentUpdatingBehavior("onchange") {
 			private static final long serialVersionUID = -2055912815073387536L;
 
@@ -141,83 +78,37 @@ public class LangForm extends AdminBaseF
 				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") {
+		add(new WebMarkupContainer("deleteLangBtn").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));
+				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());
+			protected void onEvent(AjaxRequestTarget target) {
+				langPanel.language.setDeleted(true);
+				FieldLanguageDaoImpl langDao = Application.getBean(FieldLanguageDaoImpl.class);
+				try {
+					langDao.updateLanguage(langPanel.language);
+				} catch (Exception e) {
+					// TODO add feedback message
+					e.printStackTrace();
+				}
+				languages.setChoices(langDao.getLanguages());
 				target.add(languages);
-				// FIXME need to force update list container
+				//FIXME need to forse 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');");
-		// }
-		// });
+		// attach an ajax validation behavior to all form component's keydown
+		// event and throttle it down to once per second
+		AjaxFormValidatingBehavior.addToAllFormComponents(this, "keydown",
+				Duration.ONE_SECOND);
 	}
-
 }

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=1390269&r1=1390268&r2=1390269&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 Wed Sep 26 03:33:06 2012
@@ -35,13 +35,9 @@
 				<td valign="top" class="adminPanelColumnTable">
 					<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>
+							onclick="$('#addLanguage :text').val(''); $('#addLanguage').dialog('open');"><input/></div>
+						<div wicket:id="deleteLangBtn" class="formCancelButton"><input/></div>
+						<select wicket:id="language"></select>
 					</form>
 					<span wicket:id="navigator">[dataview navigator]</span>
 					<table class="adminListTable">
@@ -90,18 +86,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" /></td><!-- wicket:id="name"  -->
+						<td><input type="text" wicket:id="name"/></td>
 					</tr>
 					<tr>
 						<td><wicket:ommessage key="1422" /></td>
-						<td><input type="text" /></td><!-- wicket:id="iso" -->
+						<td><input type="text" wicket:id="iso"/></td>
 					</tr>
 					<tr>
-						<td align="right" colspan="2"><input type="submit" /></td><!--  wicket:id="add"  -->
+						<td align="right" colspan="2"><input type="submit" wicket:id="add"/></td>
 					</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=1390269&r1=1390268&r2=1390269&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 Wed Sep 26 03:33:06 2012
@@ -46,33 +46,7 @@ import org.apache.wicket.markup.repeater
 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;
-	}
+	FieldLanguage language;
 
 	public LangPanel(String id) {
 		super(id);
@@ -131,8 +105,8 @@ public class LangPanel extends AdminPane
 				target.add(listContainer);
 			}
 		});
-		add(new LangForm("langForm", listContainer, language, this));
-
+		add(new LangForm("langForm", listContainer, this));
+		add(new AddLanguageForm("addLangForm"));
 	}
 
 }