Thanks Maxim! I think we might also discuss those issues:
I would like to rename some classes: OmDAO => OmDao Users => User Adresses => Address States => State ErrorValues => ErrorValue AppointmentReminderTyps => AppointmentReminderType Organisation_Users => OrganisationUser Invitations => Invitation Fieldlanguagesvalues => Fieldlanguagesvalue Fieldvalues => Fieldvalue RoomPollAnswers => RoomPollAnswer RoomModerators => RoomModerator Rooms_Organisation => RoomOrganisation Rooms => Room RoomTypes => RoomType PrivateMessages => PrivateMessage Salutations => Salutation UserContacts => UserContact The table name should stay the same, for example: Java Object: User => Table name: users >From my point of view a table is a List of users, so in that sense plural is ok. This refactoring will only affect the Java Object _names_ NO attribute name changes. Attribute names will stay the same (for now). You might claim that this is only 50% of the work, but it would otherwise need heavy refactoring all over the existing OpenLaszlo client. And we can't handle that as we would rely on search+find mechanism. So for now it will be that the "User"-Object has an attribute of Type "Address" but which attribute name is "adresses". Which is inconsistent but from my point of view a step in the right direction. As soon as we have a Wicket only interface, we can effectively refactor/rename attribute names and Eclipse will update most of the references. What do you think about it? How would this change affect the Backup Export/Import from your point of view? Would it work (theoretically) or is there already an issue with this change? Sebastian 2012/9/30 Maxim Solodovnik <[email protected]> > done. > > As you wish :) I'm not adding it myself since I believe it is always > possible to find via SVN history who was the author :) > > > On Sun, Sep 30, 2012 at 2:59 PM, [email protected] < > [email protected]> wrote: > >> ++ I hope you don't mind if I complete the header javaDoc of the classes >> with the author information including your name :) >> >> Sebastoan >> >> 2012/9/30 [email protected] <[email protected]> >> >> Hi Maxim, >>> >>> public Server getServerWithMinimumUsers() in the ServerDaoImpl: >>> I tried to understand it but I did not fully understood the operations >>> involved in that method. >>> >>> Could you please write a short sentence/notice in the javaDoc at this >>> method explaining it? >>> >>> Thanks! >>> Sebastian >>> >>> ---------- Forwarded message ---------- >>> From: <[email protected]> >>> Date: 2012/9/30 >>> Subject: svn commit: r1391961 - in >>> /incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings: >>> axis/services/ data/basic/dao/ persistence/beans/basic/ remote/ >>> web/components/admin/servers/ >>> To: [email protected] >>> >>> >>> 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); >>> >>> } >>> >>> >>> >>> >>> >>> -- >>> Sebastian Wagner >>> https://twitter.com/#!/dead_lock >>> http://www.webbase-design.de >>> http://www.wagner-sebastian.com >>> [email protected] >>> >> >> >> >> -- >> Sebastian Wagner >> https://twitter.com/#!/dead_lock >> http://www.webbase-design.de >> http://www.wagner-sebastian.com >> [email protected] >> > > > > -- > WBR > Maxim aka solomax > -- Sebastian Wagner https://twitter.com/#!/dead_lock http://www.webbase-design.de http://www.wagner-sebastian.com [email protected]
