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]

Reply via email to