Author: sebawagner
Date: Tue Sep 11 18:21:50 2012
New Revision: 1383506

URL: http://svn.apache.org/viewvc?rev=1383506&view=rev
Log:
OPENMEETINGS-428, OPENMEETINGS-433 add some general Form component

Added:
    
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/AdminBaseForm.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/rooms/
    
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/rooms/RoomForm.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/rooms/RoomsPanel.html
    
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/rooms/RoomsPanel.java
Modified:
    
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/conference/Roommanagement.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/rooms/Rooms.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/MenuPanel.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/user/UserForm.java

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/conference/Roommanagement.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/conference/Roommanagement.java?rev=1383506&r1=1383505&r2=1383506&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/conference/Roommanagement.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/conference/Roommanagement.java
 Tue Sep 11 18:21:50 2012
@@ -311,6 +311,13 @@ public class Roommanagement {
                }
                return null;
        }
+       
+       public List<Rooms> getNondeletedRooms(int first, int count) {
+               TypedQuery<Rooms> q = em.createNamedQuery("getNondeletedRooms", 
Rooms.class);
+               q.setFirstResult(first);
+               q.setMaxResults(count);
+               return q.getResultList();
+       }
 
        public SearchResult<Rooms> getRoomsWithCurrentUsers(long user_level, 
int start,
                        int max, String orderby, boolean asc) {

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/rooms/Rooms.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/rooms/Rooms.java?rev=1383506&r1=1383505&r2=1383506&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/rooms/Rooms.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/rooms/Rooms.java
 Tue Sep 11 18:21:50 2012
@@ -18,31 +18,35 @@
  */
 package org.apache.openmeetings.persistence.beans.rooms;
 
-import org.apache.openmeetings.persistence.beans.basic.Server;
-import org.simpleframework.xml.Element;
-import org.simpleframework.xml.ElementList;
-import org.simpleframework.xml.Root;
-
 import java.io.Serializable;
 import java.util.Date;
 import java.util.List;
 
-
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.FetchType;
 import javax.persistence.GeneratedValue;
 import javax.persistence.GenerationType;
 import javax.persistence.Id;
+import javax.persistence.JoinColumn;
 import javax.persistence.Lob;
 import javax.persistence.ManyToOne;
-import javax.persistence.JoinColumn;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
 import javax.persistence.OneToMany;
 import javax.persistence.OneToOne;
 import javax.persistence.Table;
 import javax.persistence.Transient;
 
+import org.apache.openmeetings.persistence.beans.basic.Server;
+import org.simpleframework.xml.Element;
+import org.simpleframework.xml.ElementList;
+import org.simpleframework.xml.Root;
+
 @Entity
+@NamedQueries({
+       @NamedQuery(name="getNondeletedRooms", query="SELECT u FROM Rooms u 
WHERE u.deleted = false")
+})
 @Table(name = "rooms")
 @Root(name="room")
 public class Rooms implements Serializable {

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/MenuPanel.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/MenuPanel.java?rev=1383506&r1=1383505&r2=1383506&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/MenuPanel.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/MenuPanel.java
 Tue Sep 11 18:21:50 2012
@@ -23,6 +23,7 @@ import org.apache.openmeetings.persisten
 import org.apache.openmeetings.persistence.beans.basic.Navimain;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.app.WebSession;
+import org.apache.openmeetings.web.components.admin.rooms.RoomsPanel;
 import org.apache.openmeetings.web.components.admin.user.UsersPanel;
 import org.apache.wicket.MarkupContainer;
 import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -110,6 +111,8 @@ public class MenuPanel extends BasePanel
                                                                        case 
adminModuleOrg:
                                                                                
break;
                                                                        case 
adminModuleRoom:
+                                                                               
target.add(contents.replace(new RoomsPanel("child")));
+                                                                               
hash = "#admin/rooms";
                                                                                
break;
                                                                        case 
adminModuleConfiguration:
                                                                                
break;

Added: 
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=1383506&view=auto
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/AdminBaseForm.java
 (added)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/AdminBaseForm.java
 Tue Sep 11 18:21:50 2012
@@ -0,0 +1,95 @@
+package org.apache.openmeetings.web.components.admin;
+
+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.panel.FeedbackPanel;
+import org.apache.wicket.model.IModel;
+
+/**
+ * provides basic functionality to insert, update, remove, refresh record in
+ * admin section
+ * 
+ * @author swagner
+ * 
+ * @param <T>
+ */
+public class AdminBaseForm<T> extends Form<T> {
+
+       private static final long serialVersionUID = 1L;
+
+       public AdminBaseForm(String id, IModel<T> object) {
+               super(id, object);
+               setOutputMarkupId(true);
+
+               final FeedbackPanel feedback = new FeedbackPanel("feedback");
+               feedback.setOutputMarkupId(true);
+               add(feedback);
+
+               // add a button that can be used to submit the form via ajax
+               add(new AjaxButton("ajax-save-button", this) {
+                       private static final long serialVersionUID = 
839803820502260006L;
+
+                       @Override
+                       protected void onSubmit(AjaxRequestTarget target, 
Form<?> form) {
+                               // repaint the feedback panel so that it is 
hidden
+                               target.add(feedback);
+                       }
+
+                       @Override
+                       protected void onError(AjaxRequestTarget target, 
Form<?> form) {
+                               // repaint the feedback panel so errors are 
shown
+                               target.add(feedback);
+                       }
+               });
+
+               add(new AjaxButton("ajax-new-button", this) {
+                       private static final long serialVersionUID = 
839803820502260006L;
+
+                       @Override
+                       protected void onSubmit(AjaxRequestTarget target, 
Form<?> form) {
+                               // repaint the feedback panel so that it is 
hidden
+                               target.add(feedback);
+                       }
+
+                       @Override
+                       protected void onError(AjaxRequestTarget target, 
Form<?> form) {
+                               // repaint the feedback panel so errors are 
shown
+                               target.add(feedback);
+                       }
+               });
+
+               add(new AjaxButton("ajax-refresh-button", this) {
+                       private static final long serialVersionUID = 
839803820502260006L;
+
+                       @Override
+                       protected void onSubmit(AjaxRequestTarget target, 
Form<?> form) {
+                               // repaint the feedback panel so that it is 
hidden
+                               target.add(feedback);
+                       }
+
+                       @Override
+                       protected void onError(AjaxRequestTarget target, 
Form<?> form) {
+                               // repaint the feedback panel so errors are 
shown
+                               target.add(feedback);
+                       }
+               });
+
+               add(new AjaxButton("ajax-cancel-button", this) {
+                       private static final long serialVersionUID = 
839803820502260006L;
+
+                       @Override
+                       protected void onSubmit(AjaxRequestTarget target, 
Form<?> form) {
+                               // repaint the feedback panel so that it is 
hidden
+                               target.add(feedback);
+                       }
+
+                       @Override
+                       protected void onError(AjaxRequestTarget target, 
Form<?> form) {
+                               // repaint the feedback panel so errors are 
shown
+                               target.add(feedback);
+                       }
+               });
+       }
+
+}

Added: 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/rooms/RoomForm.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/rooms/RoomForm.java?rev=1383506&view=auto
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/rooms/RoomForm.java
 (added)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/rooms/RoomForm.java
 Tue Sep 11 18:21:50 2012
@@ -0,0 +1,16 @@
+package org.apache.openmeetings.web.components.admin.rooms;
+
+import org.apache.openmeetings.persistence.beans.rooms.Rooms;
+import org.apache.openmeetings.web.components.admin.AdminBaseForm;
+import org.apache.wicket.model.CompoundPropertyModel;
+
+public class RoomForm extends AdminBaseForm<Rooms> {
+
+       private static final long serialVersionUID = 1L;
+
+       public RoomForm(String id, final Rooms room) {
+               super(id, new CompoundPropertyModel<Rooms>(room));
+               setOutputMarkupId(true);
+               
+       }
+}

Added: 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/rooms/RoomsPanel.html
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/rooms/RoomsPanel.html?rev=1383506&view=auto
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/rooms/RoomsPanel.html
 (added)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/rooms/RoomsPanel.html
 Tue Sep 11 18:21:50 2012
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  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.
+  
+-->
+<html xmlns="http://www.w3.org/1999/xhtml"; 
+       
xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.5-strict.dtd"; 
lang="en">
+       <wicket:panel>
+               <table>
+                       <tr>
+                               <td>
+                                       <span wicket:id="navigator">[dataview 
navigator]</span>
+                                       <table>
+                                               <tr>
+                                                       <th><wicket:ommessage 
key="188" /></th>
+                                                       <th><wicket:ommessage 
key="189" /></th>
+                                                       <th><wicket:ommessage 
key="190" /></th>
+                                               </tr>                   
+                                       <tr wicket:id="roomList">
+                                                       <td><span 
wicket:id="rooms_id"></span></td>
+                                                       <td><span 
wicket:id="name"></span></td>
+                                                       <td><span 
wicket:id="ispublic"></span></td>
+                                               </tr>
+                                       </table>
+                               </td>
+                               <td>
+                                       <span wicket:id="selected"></span>
+                                       <br/>
+                                       <form wicket:id="form">
+                                               <div class="formSaveBar">
+                                           <div class="formSaveButton">
+                                               <input type="submit" value="" 
wicket:id="ajax-save-button"/>
+                                           </div>
+                                           <div class="formNewButton">
+                                               <input type="submit" value="" 
wicket:id="ajax-new-button"/>
+                                           </div>
+                                           <div class="formRefreshButton">
+                                               <input type="submit" value="" 
wicket:id="ajax-refresh-button"/>
+                                           </div>
+                                           <div class="formCancelButton">
+                                               <input type="submit" value="" 
wicket:id="ajax-cancel-button"/>
+                                           </div>
+                                   </div>
+                                   <br/>
+                                               <div wicket:id="feedback">[[ 
feedback ]]</div>
+                                       </form>
+                               </td>
+                       </tr>
+               </table>
+       </wicket:panel>
+</html>

Added: 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/rooms/RoomsPanel.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/rooms/RoomsPanel.java?rev=1383506&view=auto
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/rooms/RoomsPanel.java
 (added)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/rooms/RoomsPanel.java
 Tue Sep 11 18:21:50 2012
@@ -0,0 +1,80 @@
+package org.apache.openmeetings.web.components.admin.rooms;
+
+import java.util.Iterator;
+
+import org.apache.openmeetings.data.conference.Roommanagement;
+import org.apache.openmeetings.persistence.beans.rooms.Rooms;
+import org.apache.openmeetings.web.app.Application;
+import org.apache.openmeetings.web.components.admin.AdminPanel;
+import org.apache.wicket.ajax.AjaxEventBehavior;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import 
org.apache.wicket.ajax.markup.html.navigation.paging.AjaxPagingNavigator;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.repeater.Item;
+import org.apache.wicket.markup.repeater.data.DataView;
+import org.apache.wicket.markup.repeater.data.IDataProvider;
+import org.apache.wicket.model.CompoundPropertyModel;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.PropertyModel;
+
+public class RoomsPanel extends AdminPanel {
+
+       private static final long serialVersionUID = -1L;
+       @SuppressWarnings("unused")
+       private String selectedText = "Click on the table to change the room";
+       private Label selected = null;
+       private RoomForm form;
+       
+       public RoomsPanel(String id) {
+               super(id);
+               DataView<Rooms> dataView = new DataView<Rooms>("roomList", new 
IDataProvider<Rooms>(){
+                       private static final long serialVersionUID = -1L;
+
+                       public void detach() {
+                               //empty
+                       }
+
+                       public Iterator<? extends Rooms> iterator(long first, 
long count) {
+                               return 
Application.getBean(Roommanagement.class).getNondeletedRooms((int)first, 
(int)count).iterator();
+                       }
+
+                       public long size() {
+                               return 
Application.getBean(Roommanagement.class).selectMaxFromRooms("");
+                       }
+
+                       public IModel<Rooms> model(Rooms object) {
+                               return new CompoundPropertyModel<Rooms>(object);
+                       }
+                       
+               }) {
+                       private static final long serialVersionUID = 
8715559628755439596L;
+
+                       @Override
+                       protected void populateItem(Item<Rooms> item) {
+                               final Rooms room = item.getModelObject();
+                               item.add(new Label("rooms_id", "" + 
room.getRooms_id()));
+                               item.add(new Label("name", "" + 
room.getName()));
+                               item.add(new Label("ispublic", 
""+room.getIspublic()));
+                               item.add(new AjaxEventBehavior("onclick") {
+                                       private static final long 
serialVersionUID = -8069413566800571061L;
+
+                                       protected void 
onEvent(AjaxRequestTarget target) {
+                                               form.setModelObject(room);
+                                               target.add(form);
+                                       }
+                               });
+                       }
+               };
+               selected = new Label("selected", new 
PropertyModel<String>(this, "selectedText"));
+               selected.setOutputMarkupId(true);
+               add(selected);
+               dataView.setItemsPerPage(8); //FIXME need to be parametrized
+               add(dataView);
+               add(new AjaxPagingNavigator("navigator", dataView));
+               
+               Rooms room = new Rooms();
+               form = new RoomForm("form", room);
+        add(form);
+               
+       }
+}

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/user/UserForm.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/user/UserForm.java?rev=1383506&r1=1383505&r2=1383506&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/user/UserForm.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/user/UserForm.java
 Tue Sep 11 18:21:50 2012
@@ -20,22 +20,19 @@ import org.apache.openmeetings.persisten
 import org.apache.openmeetings.persistence.beans.user.Users;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.app.WebSession;
-import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.openmeetings.web.components.admin.AdminBaseForm;
 import org.apache.wicket.ajax.form.AjaxFormValidatingBehavior;
-import org.apache.wicket.ajax.markup.html.form.AjaxButton;
 import org.apache.wicket.extensions.markup.html.form.DateTextField;
 import org.apache.wicket.extensions.yui.calendar.DatePicker;
 import org.apache.wicket.markup.html.form.CheckBox;
 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.markup.html.form.ListMultipleChoice;
 import org.apache.wicket.markup.html.form.RadioChoice;
 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.html.panel.FeedbackPanel;
 import org.apache.wicket.model.CompoundPropertyModel;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
@@ -43,7 +40,7 @@ import org.apache.wicket.util.time.Durat
 import org.apache.wicket.validation.validator.EmailAddressValidator;
 import org.apache.wicket.validation.validator.StringValidator;
 
-public class UserForm extends Form<Users> {
+public class UserForm extends AdminBaseForm<Users> {
 
        private final List<Salutations> saluationList = Application.getBean(
                        Salutationmanagement.class).getUserSalutations(
@@ -91,10 +88,6 @@ public class UserForm extends Form<Users
                super(id, new CompoundPropertyModel<Users>(user));
                setOutputMarkupId(true);
                
-               final FeedbackPanel feedback = new FeedbackPanel("feedback");
-        feedback.setOutputMarkupId(true);
-        add(feedback);
-
                RequiredTextField<String> login = new 
RequiredTextField<String>("login");
                login.add(new StringValidator(4, null));
                login.setLabel(new Model<String>("testname"));
@@ -294,70 +287,6 @@ public class UserForm extends Form<Users
         // event and throttle it down to once per second
                AjaxFormValidatingBehavior.addToAllFormComponents(this, 
"keydown", Duration.ONE_SECOND);
 
-               // add a button that can be used to submit the form via ajax
-               add(new AjaxButton("ajax-save-button", this) {
-                       private static final long serialVersionUID = 
839803820502260006L;
-
-                       @Override
-                       protected void onSubmit(AjaxRequestTarget target, 
Form<?> form) {
-                               // repaint the feedback panel so that it is 
hidden
-                               target.add(feedback);
-                       }
-
-                       @Override
-                       protected void onError(AjaxRequestTarget target, 
Form<?> form) {
-                               // repaint the feedback panel so errors are 
shown
-                               target.add(feedback);
-                       }
-               });
-               
-               add(new AjaxButton("ajax-new-button", this) {
-                       private static final long serialVersionUID = 
839803820502260006L;
-
-                       @Override
-                       protected void onSubmit(AjaxRequestTarget target, 
Form<?> form) {
-                               // repaint the feedback panel so that it is 
hidden
-                               target.add(feedback);
-                       }
-
-                       @Override
-                       protected void onError(AjaxRequestTarget target, 
Form<?> form) {
-                               // repaint the feedback panel so errors are 
shown
-                               target.add(feedback);
-                       }
-               });
-               
-               add(new AjaxButton("ajax-refresh-button", this) {
-                       private static final long serialVersionUID = 
839803820502260006L;
-
-                       @Override
-                       protected void onSubmit(AjaxRequestTarget target, 
Form<?> form) {
-                               // repaint the feedback panel so that it is 
hidden
-                               target.add(feedback);
-                       }
-
-                       @Override
-                       protected void onError(AjaxRequestTarget target, 
Form<?> form) {
-                               // repaint the feedback panel so errors are 
shown
-                               target.add(feedback);
-                       }
-               });
-               
-               add(new AjaxButton("ajax-cancel-button", this) {
-                       private static final long serialVersionUID = 
839803820502260006L;
-
-                       @Override
-                       protected void onSubmit(AjaxRequestTarget target, 
Form<?> form) {
-                               // repaint the feedback panel so that it is 
hidden
-                               target.add(feedback);
-                       }
-
-                       @Override
-                       protected void onError(AjaxRequestTarget target, 
Form<?> form) {
-                               // repaint the feedback panel so errors are 
shown
-                               target.add(feedback);
-                       }
-               });
        }
 
        /**


Reply via email to