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