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);
                                        }
                                });


Reply via email to