I agree :)) couple of things
I would recommend to: Fieldlanguagesvalues => FieldLanguageValue Or maybe even better: Fieldlanguage => Language Fieldvalues => Label FieldLanguageValue => LabelValue I would change table name from users to user since it is common practice (like mysql.user _not_ mysql.users) i also don't really like FileExplorerItem => File (or FileItem) and FlvRecording => Recording (FlvRecordingLog, FlvRecordingMetaData, FlvRecordingMetaDelta) also I'm not sure why do we need OpenXGReturnObject, never use it :( Additionally I feel SOAPLogin and Invitations are similar objects, do we really need both? On Sun, Sep 30, 2012 at 10:04 PM, [email protected] < [email protected]> wrote: > 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] > -- WBR Maxim aka solomax
