Author: solomax
Date: Fri Sep 14 08:41:52 2012
New Revision: 1384684
URL: http://svn.apache.org/viewvc?rev=1384684&view=rev
Log:
Wicket: save functionality is added to LangPanel (with minor issues)
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/FieldLanguagesValuesDAO.java
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/AdminBaseForm.java
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/AdminBaseFormPanel.html
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/LangPanel.java
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/FieldLanguagesValuesDAO.java
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/FieldLanguagesValuesDAO.java?rev=1384684&r1=1384683&r2=1384684&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/FieldLanguagesValuesDAO.java
(original)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/FieldLanguagesValuesDAO.java
Fri Sep 14 08:41:52 2012
@@ -68,12 +68,15 @@ public class FieldLanguagesValuesDAO imp
}
public void update(Fieldlanguagesvalues entity) {
- // TODO Auto-generated method stub
-
+ if (entity.getFieldlanguagesvalues_id() == null) {
+ em.persist(entity);
+ } else {
+ entity = em.merge(entity);
+ }
}
public void delete(Fieldlanguagesvalues entity) {
- // TODO Auto-generated method stub
-
+ entity.setDeleted(true);
+ entity = em.merge(entity);
}
}
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/AdminBaseForm.java
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/AdminBaseForm.java?rev=1384684&r1=1384683&r2=1384684&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/AdminBaseForm.java
(original)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/AdminBaseForm.java
Fri Sep 14 08:41:52 2012
@@ -18,6 +18,7 @@
*/
package org.apache.openmeetings.web.components.admin;
+import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.model.IModel;
@@ -30,12 +31,85 @@ import org.apache.wicket.model.IModel;
* @param <T>
*/
public class AdminBaseForm<T> extends Form<T> {
-
private static final long serialVersionUID = 1L;
+ private AdminBaseFormPanel<T> basePanel;
public AdminBaseForm(String id, IModel<T> object) {
super(id, object);
- add(new AdminBaseFormPanel<T>("buttons", this));
+ basePanel = new AdminBaseFormPanel<T>("buttons", this) {
+ private static final long serialVersionUID =
-5833647470067891270L;
+
+ @Override
+ protected void onSaveSubmit(AjaxRequestTarget target,
Form<?> form) {
+ AdminBaseForm.this.onSaveSubmit(target, form);
+ }
+
+ @Override
+ protected void onSaveError(AjaxRequestTarget target,
Form<?> form) {
+ AdminBaseForm.this.onSaveError(target, form);
+ }
+
+ @Override
+ protected void onNewSubmit(AjaxRequestTarget target,
Form<?> form) {
+ AdminBaseForm.this.onNewSubmit(target, form);
+ }
+
+ @Override
+ protected void onNewError(AjaxRequestTarget target,
Form<?> form) {
+ AdminBaseForm.this.onNewError(target, form);
+ }
+
+ @Override
+ protected void onRefreshSubmit(AjaxRequestTarget
target, Form<?> form) {
+ AdminBaseForm.this.onRefreshSubmit(target,
form);
+ }
+
+ @Override
+ protected void onRefreshError(AjaxRequestTarget target,
Form<?> form) {
+ AdminBaseForm.this.onRefreshError(target, form);
+ }
+
+ @Override
+ protected void onDeleteSubmit(AjaxRequestTarget target,
Form<?> form) {
+ AdminBaseForm.this.onDeleteSubmit(target, form);
+ }
+
+ @Override
+ protected void onDeleteError(AjaxRequestTarget target,
Form<?> form) {
+ AdminBaseForm.this.onDeleteError(target, form);
+ }
+
+ };
+ add(basePanel);
}
+ public void hideNewRecord() {
+ basePanel.hideNewRecord();
+ }
+
+ protected void onSaveSubmit(AjaxRequestTarget target, Form<?> form) {
+ }
+
+ protected void onSaveError(AjaxRequestTarget target, Form<?> form) {
+ }
+
+ protected void onNewSubmit(AjaxRequestTarget target, Form<?> form) {
+ }
+
+ protected void onNewError(AjaxRequestTarget target, Form<?> form) {
+ }
+
+ protected void onRefreshSubmit(AjaxRequestTarget target, Form<?> form) {
+ }
+
+ protected void onRefreshError(AjaxRequestTarget target, Form<?> form) {
+ }
+
+
+ protected void onDeleteSubmit(AjaxRequestTarget target, Form<?> form) {
+ }
+
+ protected void onDeleteError(AjaxRequestTarget target, Form<?> form) {
+ }
+
}
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/AdminBaseFormPanel.html
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/AdminBaseFormPanel.html?rev=1384684&r1=1384683&r2=1384684&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/AdminBaseFormPanel.html
(original)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/AdminBaseFormPanel.html
Fri Sep 14 08:41:52 2012
@@ -35,8 +35,8 @@
<div class="formCancelButton">
<input type="submit" value=""
wicket:id="ajax-cancel-button" />
</div>
+ <span wicket:id="newRecord"></span>
</div>
- <br />
<div wicket:id="feedback">[[ feedback ]]</div>
<wicket:child />
</wicket:panel>
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=1384684&r1=1384683&r2=1384684&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
Fri Sep 14 08:41:52 2012
@@ -18,14 +18,18 @@
*/
package org.apache.openmeetings.web.components.admin;
+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.basic.Label;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.panel.FeedbackPanel;
+import org.apache.wicket.model.Model;
-public class AdminBaseFormPanel<T> extends AdminPanel {
+public abstract class AdminBaseFormPanel<T> extends AdminPanel {
private static final long serialVersionUID = 8361623159373532543L;
-
+ private Label newRecord;
+
public AdminBaseFormPanel(String id, final AdminBaseForm<T> form) {
super(id);
@@ -34,6 +38,8 @@ public class AdminBaseFormPanel<T> exten
final FeedbackPanel feedback = new FeedbackPanel("feedback");
feedback.setOutputMarkupId(true);
add(feedback);
+ newRecord = new Label("newRecord",
Model.of(WebSession.getString(344L)));
+ add(newRecord.setVisible(false).setOutputMarkupId(true));
// add a button that can be used to submit the form via ajax
add(new AjaxButton("ajax-save-button", form) {
@@ -43,12 +49,14 @@ public class AdminBaseFormPanel<T> exten
protected void onSubmit(AjaxRequestTarget target,
Form<?> form) {
// repaint the feedback panel so that it is
hidden
target.add(feedback);
+ onSaveSubmit(target, form);
}
@Override
protected void onError(AjaxRequestTarget target,
Form<?> form) {
// repaint the feedback panel so errors are
shown
target.add(feedback);
+ onSaveError(target, form);
}
});
@@ -59,12 +67,16 @@ public class AdminBaseFormPanel<T> exten
protected void onSubmit(AjaxRequestTarget target,
Form<?> form) {
// repaint the feedback panel so that it is
hidden
target.add(feedback);
+ newRecord.setVisible(true);
+ target.add(newRecord);
+ onNewSubmit(target, form);
}
@Override
protected void onError(AjaxRequestTarget target,
Form<?> form) {
// repaint the feedback panel so errors are
shown
target.add(feedback);
+ onNewError(target, form);
}
});
@@ -75,12 +87,14 @@ public class AdminBaseFormPanel<T> exten
protected void onSubmit(AjaxRequestTarget target,
Form<?> form) {
// repaint the feedback panel so that it is
hidden
target.add(feedback);
+ onRefreshSubmit(target, form);
}
@Override
protected void onError(AjaxRequestTarget target,
Form<?> form) {
// repaint the feedback panel so errors are
shown
target.add(feedback);
+ onRefreshError(target, form);
}
});
@@ -91,13 +105,31 @@ public class AdminBaseFormPanel<T> exten
protected void onSubmit(AjaxRequestTarget target,
Form<?> form) {
// repaint the feedback panel so that it is
hidden
target.add(feedback);
+ onDeleteSubmit(target, form);
}
@Override
protected void onError(AjaxRequestTarget target,
Form<?> form) {
// repaint the feedback panel so errors are
shown
target.add(feedback);
+ onDeleteError(target, form);
}
});
}
+
+ public void hideNewRecord() {
+ newRecord.setVisible(false);
+ }
+
+ protected abstract void onSaveSubmit(AjaxRequestTarget target, Form<?>
form);
+ protected abstract void onSaveError(AjaxRequestTarget target, Form<?>
form);
+
+ protected abstract void onNewSubmit(AjaxRequestTarget target, Form<?>
form);
+ protected abstract void onNewError(AjaxRequestTarget target, Form<?>
form);
+
+ protected abstract void onRefreshSubmit(AjaxRequestTarget target,
Form<?> form);
+ protected abstract void onRefreshError(AjaxRequestTarget target,
Form<?> form);
+
+ protected abstract void onDeleteSubmit(AjaxRequestTarget target,
Form<?> form);
+ protected abstract void onDeleteError(AjaxRequestTarget target, Form<?>
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=1384684&r1=1384683&r2=1384684&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
Fri Sep 14 08:41:52 2012
@@ -60,7 +60,39 @@ public class LangPanel extends AdminPane
FieldLanguageDaoImpl langDao =
Application.getBean(FieldLanguageDaoImpl.class);
language = langDao.getFieldLanguageById(1L);
- final Form<Fieldlanguagesvalues> form = new
AdminBaseForm<Fieldlanguagesvalues>("form", new
CompoundPropertyModel<Fieldlanguagesvalues>(new Fieldlanguagesvalues()));
+ 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());
+ //FIXME reload
+ }
+
+ @Override
+ protected void onDeleteSubmit(AjaxRequestTarget target,
Form<?> form) {
+
Application.getBean(FieldLanguagesValuesDAO.class).delete(getModelObject());
+ //FIXME reload
+ }
+ };
form.add(new Label("fieldvalues.fieldvalues_id"));
form.add(new TextField<String>("fieldvalues.name"));
form.add(new TextArea<String>("value"));
@@ -87,6 +119,7 @@ public class LangPanel extends AdminPane
protected void
onEvent(AjaxRequestTarget target) {
form.setModelObject(flv);
+ form.hideNewRecord();
target.add(form);
}
});