Author: sebawagner
Date: Sun Sep 30 07:52:45 2012
New Revision: 1391961
URL: http://svn.apache.org/viewvc?rev=1391961&view=rev
Log:
OPENMEETINGS-434 complete Server/serverDaoImpl CRUD via Wicket, add
"comments,inserted,insertedby,updated,updatedby" fields in Server entity
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/axis/services/ServerWebService.java
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/dao/ServerDaoImpl.java
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/basic/Server.java
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/ConferenceService.java
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/UserService.java
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/servers/ServerForm.java
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/servers/ServersPanel.html
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/servers/ServersPanel.java
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/axis/services/ServerWebService.java
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/axis/services/ServerWebService.java?rev=1391961&r1=1391960&r2=1391961&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/axis/services/ServerWebService.java
(original)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/axis/services/ServerWebService.java
Sun Sep 30 07:52:45 2012
@@ -62,7 +62,7 @@ public class ServerWebService {
Long user_level = userManagement.getUserLevelByID(users_id);
if (authLevelManagement.checkWebServiceLevel(user_level)) {
- return serversDao.getServerList(start, max).toArray(new
Server[0]);
+ return serversDao.get(start, max).toArray(new
Server[0]);
} else {
log.warn("Insuffisient permissions");
return null;
@@ -81,7 +81,7 @@ public class ServerWebService {
Long user_level = userManagement.getUserLevelByID(users_id);
if (authLevelManagement.checkWebServiceLevel(user_level)) {
- return (int)serversDao.getServerCount();
+ return (int)serversDao.count();
} else {
log.warn("Insuffisient permissions");
return -1;
@@ -123,7 +123,7 @@ public class ServerWebService {
Long user_level = userManagement.getUserLevelByID(users_id);
if (authLevelManagement.checkWebServiceLevel(user_level)) {
- return serversDao.deleteServer(id);
+ return serversDao.delete(id);
} else {
log.warn("Insuffisient permissions");
return false;
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/dao/ServerDaoImpl.java
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/dao/ServerDaoImpl.java?rev=1391961&r1=1391960&r2=1391961&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/dao/ServerDaoImpl.java
(original)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/dao/ServerDaoImpl.java
Sun Sep 30 07:52:45 2012
@@ -18,27 +18,47 @@
*/
package org.apache.openmeetings.data.basic.dao;
+import java.util.Date;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.PersistenceContext;
+import javax.persistence.PersistenceException;
import javax.persistence.TypedQuery;
import org.apache.openmeetings.OpenmeetingsVariables;
+import org.apache.openmeetings.data.OmDAO;
+import org.apache.openmeetings.data.user.dao.UsersDaoImpl;
import org.apache.openmeetings.persistence.beans.basic.Server;
import org.red5.logging.Red5LoggerFactory;
import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
+/**
+ *
+ * CRUD for {@link Server}
+ *
+ * @author solomax, swagner
+ *
+ */
@Transactional
-public class ServerDaoImpl {
+public class ServerDaoImpl implements OmDAO<Server> {
private static final Logger log = Red5LoggerFactory.getLogger(
ServerDaoImpl.class,
OpenmeetingsVariables.webAppRootKey);
@PersistenceContext
private EntityManager em;
+ @Autowired
+ private UsersDaoImpl usersDao;
+
+ /**
+ * Get a list of all available servers
+ *
+ * @return
+ */
public List<Server> getServerList() {
log.debug("getServerList enter");
TypedQuery<Server> q = em.createNamedQuery("getAllServers",
@@ -46,8 +66,12 @@ public class ServerDaoImpl {
return q.getResultList();
}
-
- public List<Server> getServerList(int start, int max) {
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.openmeetings.data.OmDAO#get(int, int)
+ */
+ public List<Server> get(int start, int max) {
log.debug("getServerList enter");
TypedQuery<Server> q = em.createNamedQuery("getAllServers",
Server.class);
@@ -57,14 +81,24 @@ public class ServerDaoImpl {
return q.getResultList();
}
- public long getServerCount() {
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.openmeetings.data.OmDAO#count()
+ */
+ public long count() {
log.debug("getServerCount enter");
TypedQuery<Long> q = em.createNamedQuery("getServerCount",
Long.class);
return q.getSingleResult();
}
- public Server getServer(long id) {
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.openmeetings.data.OmDAO#get(long)
+ */
+ public Server get(long id) {
Server result = null;
log.debug("getServer enter, id = " + id);
TypedQuery<Server> q = em.createNamedQuery("getServerById",
Server.class);
@@ -77,6 +111,12 @@ public class ServerDaoImpl {
return result;
}
+ /**
+ * Get server by its address
+ *
+ * @param address
+ * @return
+ */
public Server getServerByAddress(String address) {
log.debug("getServer enter, address = " + address);
TypedQuery<Server> q =
em.createNamedQuery("getServerByAddress", Server.class);
@@ -85,6 +125,11 @@ public class ServerDaoImpl {
return list.size() > 0 ? list.get(0) : null;
}
+ /**
+ * Get the number of minimum users for a server(?)
+ *
+ * @return
+ */
public Server getServerWithMinimumUsers() {
Server result = null;
log.debug("getServerWithMinimumUsers enter");
@@ -95,7 +140,7 @@ public class ServerDaoImpl {
List<Object> r = q1.getResultList();
if (!r.isEmpty()) {
// get server id from first line
- result =
getServer((Long)((Object[])r.get(0))[0]);
+ result = get((Long)((Object[])r.get(0))[0]);
}
} else {
result = l.get(0);
@@ -103,8 +148,17 @@ public class ServerDaoImpl {
return result;
}
+ /**
+ * @deprecated user standard mechanism of
+ * {@link
OmDAO#update(org.apache.openmeetings.persistence.beans.OmEntity, long)}
+ * @param id
+ * @param name
+ * @param address
+ * @return
+ */
+ @Deprecated
public Server saveServer(long id, String name, String address) {
- Server s = getServer(id);
+ Server s = get(id);
if (s == null) {
s = new Server();
}
@@ -114,8 +168,15 @@ public class ServerDaoImpl {
return em.merge(s);
}
- public boolean deleteServer(long id) {
- Server s = getServer(id);
+ /**
+ * @deprecated use standard mechanism of
+ * {@link
OmDAO#delete(org.apache.openmeetings.persistence.beans.OmEntity, long)}
+ * @param id
+ * @return
+ */
+ @Deprecated
+ public boolean delete(long id) {
+ Server s = get(id);
if (s == null) {
return false;
}
@@ -124,4 +185,45 @@ public class ServerDaoImpl {
return true;
}
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ *
org.apache.openmeetings.data.OmDAO#update(org.apache.openmeetings.persistence
+ * .beans.OmEntity, long)
+ */
+ public void update(Server entity, long userId) {
+ try {
+ if (entity.getId() <= 0) {
+ entity.setInserted(new Date());
+ entity.setInsertedby(usersDao.get(userId));
+ entity.setDeleted(false);
+ em.persist(entity);
+ } else {
+ entity.setUpdated(new Date());
+ entity.setUpdatedby(usersDao.get(userId));
+ entity.setDeleted(false);
+ em.merge(entity);
+ }
+ } catch (PersistenceException ex) {
+ log.error("[update LdapConfig]", ex);
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ *
org.apache.openmeetings.data.OmDAO#delete(org.apache.openmeetings.persistence
+ * .beans.OmEntity, long)
+ */
+ public void delete(Server entity, long userId) {
+ if (entity.getId() >= 0) {
+ entity.setUpdated(new Date());
+ entity.setUpdatedby(usersDao.get(userId));
+ entity.setDeleted(true);
+ em.merge(entity);
+ }
+ }
}
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/basic/Server.java
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/basic/Server.java?rev=1391961&r1=1391960&r2=1391961&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/basic/Server.java
(original)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/basic/Server.java
Sun Sep 30 07:52:45 2012
@@ -19,73 +19,97 @@
package org.apache.openmeetings.persistence.beans.basic;
import java.io.Serializable;
+import java.util.Date;
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.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import org.apache.openmeetings.persistence.beans.OmEntity;
+import org.apache.openmeetings.persistence.beans.user.Users;
import org.simpleframework.xml.Element;
import org.simpleframework.xml.Root;
@Entity
@NamedQueries({
- @NamedQuery(name="getAllServers", query="SELECT s FROM Server s WHERE
s.deleted = false")
- , @NamedQuery(name="getServerCount", query="SELECT COUNT(s) FROM Server
s WHERE s.deleted = false")
- , @NamedQuery(name="getServerById", query="SELECT s FROM Server s WHERE
s.deleted = false AND s.id = :id")
- , @NamedQuery(name="getServerByAddress", query="SELECT s FROM Server s
WHERE s.deleted = false AND s.address = :address")
- , @NamedQuery(name="getServersWithNoUsers"
- , query="SELECT s FROM Server s WHERE s.deleted = false AND
s.id NOT IN (SELECT u.server.id FROM Users u where u.server.id IS NOT NULL)")
- , @NamedQuery(name="getServerWithMinimumUsers"
- , query="SELECT s.id, COUNT(u) AS cnt FROM Users u JOIN
u.server s WHERE s.deleted = false GROUP BY s.id ORDER BY cnt")
-})
+ @NamedQuery(name = "getAllServers", query = "SELECT s FROM
Server s WHERE s.deleted = false"),
+ @NamedQuery(name = "getServerCount", query = "SELECT COUNT(s)
FROM Server s WHERE s.deleted = false"),
+ @NamedQuery(name = "getServerById", query = "SELECT s FROM
Server s WHERE s.deleted = false AND s.id = :id"),
+ @NamedQuery(name = "getServerByAddress", query = "SELECT s FROM
Server s WHERE s.deleted = false AND s.address = :address"),
+ @NamedQuery(name = "getServersWithNoUsers", query = "SELECT s
FROM Server s WHERE s.deleted = false AND s.id NOT IN (SELECT u.server.id FROM
Users u where u.server.id IS NOT NULL)"),
+ @NamedQuery(name = "getServerWithMinimumUsers", query = "SELECT
s.id, COUNT(u) AS cnt FROM Users u JOIN u.server s WHERE s.deleted = false
GROUP BY s.id ORDER BY cnt") })
@Table(name = "server")
@Root
public class Server implements Serializable, OmEntity {
+
private static final long serialVersionUID = -6822732074549167727L;
+
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
- @Column(name="id")
- @Element(data=true)
- private Long id;
-
- @Column(name="name")
- @Element(data=true)
+ @Column(name = "id")
+ @Element(data = true)
+ private long id = 0;
+
+ @Column(name = "name")
+ @Element(data = true)
private String name;
-
- @Column(name="address")
- @Element(data=true)
+
+ @Column(name = "address")
+ @Element(data = true)
private String address;
-
- @Column(name="deleted", nullable=false)
- @Element(data=true)
+
+ @Column(name = "inserted")
+ public Date inserted;
+
+ @Column(name = "updated")
+ public Date updated;
+
+ @ManyToOne(fetch = FetchType.EAGER)
+ @JoinColumn(name = "insertedby_id", updatable = true, insertable = true)
+ public Users insertedby;
+
+ @ManyToOne(fetch = FetchType.EAGER)
+ @JoinColumn(name = "updatedby_id", updatable = true, insertable = true)
+ public Users updatedby;
+
+ @Lob
+ @Column(name = "comment_field", length = 2048)
+ @Element(data = true, required = false)
+ private String comment;
+
+ @Column(name = "deleted", nullable = false)
+ @Element(data = true)
private boolean deleted = false;
-
+
public Long getId() {
return id;
}
-
+
public void setId(Long id) {
this.id = id;
}
-
+
public String getName() {
return name;
}
-
+
public void setName(String name) {
this.name = name;
}
-
+
public String getAddress() {
return address;
}
-
+
public void setAddress(String address) {
this.address = address;
}
@@ -98,6 +122,46 @@ public class Server implements Serializa
this.deleted = deleted;
}
+ public Date getInserted() {
+ return inserted;
+ }
+
+ public void setInserted(Date inserted) {
+ this.inserted = inserted;
+ }
+
+ public Date getUpdated() {
+ return updated;
+ }
+
+ public void setUpdated(Date updated) {
+ this.updated = updated;
+ }
+
+ public Users getInsertedby() {
+ return insertedby;
+ }
+
+ public void setInsertedby(Users insertedby) {
+ this.insertedby = insertedby;
+ }
+
+ public Users getUpdatedby() {
+ return updatedby;
+ }
+
+ public void setUpdatedby(Users updatedby) {
+ this.updatedby = updatedby;
+ }
+
+ public String getComment() {
+ return comment;
+ }
+
+ public void setComment(String comment) {
+ this.comment = comment;
+ }
+
@Override
public String toString() {
return "Server [id=" + id + ", name=" + name + ", address=" +
address
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/ConferenceService.java
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/ConferenceService.java?rev=1391961&r1=1391960&r2=1391961&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/ConferenceService.java
(original)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/ConferenceService.java
Sun Sep 30 07:52:45 2012
@@ -699,7 +699,7 @@ public class ConferenceService {
if (roomId > -1 && serverId > -1) {
try {
Rooms room =
roommanagement.getRoomById(roomId);
-
room.setServer(serverDao.getServer(serverId));
+ room.setServer(serverDao.get(serverId));
roommanagement.updateRoomObject(room);
} catch (Exception e) {
log.error("Error while setting
server.");
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/UserService.java
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/UserService.java?rev=1391961&r1=1391960&r2=1391961&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/UserService.java
(original)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/UserService.java
Sun Sep 30 07:52:45 2012
@@ -495,7 +495,7 @@ public class UserService {
if (userId > -1 && serverId > -1) {
try {
Users user =
userManagement.getUserById(userId);
-
user.setServer(serverDao.getServer(serverId));
+ user.setServer(serverDao.get(serverId));
userManagement.updateUser(user);
} catch (Exception e) {
log.error("Error while setting
server.");
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/servers/ServerForm.java
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/servers/ServerForm.java?rev=1391961&r1=1391960&r2=1391961&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/servers/ServerForm.java
(original)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/servers/ServerForm.java
Sun Sep 30 07:52:45 2012
@@ -18,24 +18,90 @@
*/
package org.apache.openmeetings.web.components.admin.servers;
+import org.apache.openmeetings.data.basic.dao.ServerDaoImpl;
import org.apache.openmeetings.persistence.beans.basic.Server;
+import org.apache.openmeetings.web.app.Application;
+import org.apache.openmeetings.web.app.WebSession;
import org.apache.openmeetings.web.components.admin.AdminBaseForm;
+import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.form.AjaxFormValidatingBehavior;
+import org.apache.wicket.datetime.markup.html.basic.DateLabel;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.form.RequiredTextField;
+import org.apache.wicket.markup.html.form.TextArea;
import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.util.time.Duration;
+/**
+ * Form component to insert/update/delete {@link Server}
+ *
+ * @author swagner
+ *
+ */
public class ServerForm extends AdminBaseForm<Server> {
+ private final WebMarkupContainer listContainer;
private static final long serialVersionUID = 1L;
- public ServerForm(String id, final Server server) {
+ public ServerForm(String id, WebMarkupContainer listContainer,
+ final Server server) {
super(id, new CompoundPropertyModel<Server>(server));
setOutputMarkupId(true);
+ this.listContainer = listContainer;
+
+ add(new RequiredTextField<String>("name"));
+ add(new RequiredTextField<String>("address"));
+ add(DateLabel.forDatePattern("inserted", "dd.MM.yyyy
HH:mm:ss"));
+ add(new Label("insertedby.login"));
+ add(DateLabel.forDatePattern("updated", "dd.MM.yyyy HH:mm:ss"));
+ add(new Label("updatedby.login"));
+ add(new TextArea<String>("comment"));
-
// 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);
}
+
+ @Override
+ protected void onSaveSubmit(AjaxRequestTarget target, Form<?> form) {
+
Application.getBean(ServerDaoImpl.class).update(getModelObject(),
+ WebSession.getUserId());
+ Server server = Application.getBean(ServerDaoImpl.class).get(
+ getModelObject().getId());
+ this.setModelObject(server);
+ target.add(this);
+ target.add(listContainer);
+ }
+
+ @Override
+ protected void onNewSubmit(AjaxRequestTarget target, Form<?> form) {
+ this.setModelObject(new Server());
+ target.add(this);
+ }
+
+ @Override
+ protected void onRefreshSubmit(AjaxRequestTarget target, Form<?> form) {
+ Server server = this.getModelObject();
+ if (server.getId() <= 0) {
+ server = Application.getBean(ServerDaoImpl.class).get(
+ server.getId());
+ } else {
+ server = new Server();
+ }
+ this.setModelObject(server);
+ target.add(this);
+ }
+
+ @Override
+ protected void onDeleteSubmit(AjaxRequestTarget target, Form<?> form) {
+
Application.getBean(ServerDaoImpl.class).delete(this.getModelObject(),
+ WebSession.getUserId());
+ this.setModelObject(new Server());
+ target.add(listContainer);
+ target.add(this);
+ }
+
}
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/servers/ServersPanel.html
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/servers/ServersPanel.html?rev=1391961&r1=1391960&r2=1391961&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/servers/ServersPanel.html
(original)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/servers/ServersPanel.html
Sun Sep 30 07:52:45 2012
@@ -49,6 +49,20 @@
<td class="adminPanelColumnForm">
<form wicket:id="form"
class="adminForm">
<div wicket:id="buttons"></div>
+ <wicket:ommessage key="1500"
/>: <input type="text" wicket:id="name"/>
+ <br/>
+ <wicket:ommessage key="1501" />: <input
type="text" wicket:id="address"/>
+ <br/>
+ <wicket:ommessage key="1110"
/>: <span wicket:id="inserted"/>
+ <br/>
+ <wicket:ommessage key="1111" />: <span
wicket:id="insertedby.login"/>
+ <br/>
+ <wicket:ommessage key="1112" />: <span
wicket:id="updated"/>
+ <br/>
+ <wicket:ommessage key="1113" />: <span
wicket:id="updatedby.login"/>
+ <br/>
+ <wicket:ommessage key="270" />: <textarea
wicket:id="comment"/>
+ <br/>
</form>
</td>
</tr>
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/servers/ServersPanel.java
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/servers/ServersPanel.java?rev=1391961&r1=1391960&r2=1391961&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/servers/ServersPanel.java
(original)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/servers/ServersPanel.java
Sun Sep 30 07:52:45 2012
@@ -18,13 +18,11 @@
*/
package org.apache.openmeetings.web.components.admin.servers;
-import java.util.Iterator;
-
import org.apache.openmeetings.data.basic.dao.ServerDaoImpl;
import org.apache.openmeetings.persistence.beans.basic.Server;
-import org.apache.openmeetings.web.app.Application;
import org.apache.openmeetings.web.components.admin.AdminPanel;
import org.apache.openmeetings.web.components.admin.PagedEntityListPanel;
+import org.apache.openmeetings.web.data.OmDataProvider;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.ajax.AjaxEventBehavior;
import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -32,10 +30,13 @@ import org.apache.wicket.markup.html.Web
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;
+/**
+ * Form component with list and form to manipulate {@link Server}
+ *
+ * @author swagner
+ *
+ */
public class ServersPanel extends AdminPanel {
private static final long serialVersionUID = -1L;
@@ -43,26 +44,8 @@ public class ServersPanel extends AdminP
public ServersPanel(String id) {
super(id);
- DataView<Server> dataView = new DataView<Server>("serverList",
new IDataProvider<Server>(){
- private static final long serialVersionUID = -1L;
-
- public void detach() {
- //empty
- }
-
- public Iterator<? extends Server> iterator(long first,
long count) {
- return
Application.getBean(ServerDaoImpl.class).getServerList((int)first,
(int)count).iterator();
- }
-
- public long size() {
- return
Application.getBean(ServerDaoImpl.class).getServerCount();
- }
-
- public IModel<Server> model(Server object) {
- return new
CompoundPropertyModel<Server>(object);
- }
-
- }) {
+ DataView<Server> dataView = new DataView<Server>("serverList",
+ new
OmDataProvider<Server>(ServerDaoImpl.class)) {
private static final long serialVersionUID =
8715559628755439596L;
@Override
@@ -95,7 +78,7 @@ public class ServersPanel extends AdminP
});
Server Server = new Server();
- form = new ServerForm("form", Server);
+ form = new ServerForm("form", listContainer, Server);
add(form);
}