Author: solomax
Date: Thu May 23 13:04:50 2013
New Revision: 1485684

URL: http://svn.apache.org/r1485684
Log:
[OPENMEETINGS-615] incomplete draft version

Modified:
    
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/PrivateMessageFolderDao.java
    
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/PrivateMessagesDao.java
    
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/user/PrivateMessage.java
    
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/user/PrivateMessageFolder.java
    
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/UserService.java
    
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/BackupExport.java
    
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/BackupImportController.java
    
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/dashboard/WelcomeWidgetView.java
    
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.html
    
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java

Modified: 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/PrivateMessageFolderDao.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/PrivateMessageFolderDao.java?rev=1485684&r1=1485683&r2=1485684&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/PrivateMessageFolderDao.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/PrivateMessageFolderDao.java
 Thu May 23 13:04:50 2013
@@ -18,6 +18,8 @@
  */
 package org.apache.openmeetings.data.user.dao;
 
+import static org.apache.openmeetings.OpenmeetingsVariables.webAppRootKey;
+
 import java.util.Date;
 import java.util.List;
 
@@ -26,16 +28,15 @@ import javax.persistence.NoResultExcepti
 import javax.persistence.PersistenceContext;
 import javax.persistence.TypedQuery;
 
-import org.apache.openmeetings.OpenmeetingsVariables;
+import org.apache.openmeetings.data.IDataProviderDao;
 import org.apache.openmeetings.persistence.beans.user.PrivateMessageFolder;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 import org.springframework.transaction.annotation.Transactional;
 
 @Transactional
-public class PrivateMessageFolderDao {
-       
-       private static final Logger log = 
Red5LoggerFactory.getLogger(PrivateMessageFolderDao.class, 
OpenmeetingsVariables.webAppRootKey);
+public class PrivateMessageFolderDao implements 
IDataProviderDao<PrivateMessageFolder> {
+       private static final Logger log = 
Red5LoggerFactory.getLogger(PrivateMessageFolderDao.class, webAppRootKey);
        @PersistenceContext
        private EntityManager em;
        
@@ -70,7 +71,7 @@ public class PrivateMessageFolderDao {
                return null;
        }
        
-       public PrivateMessageFolder getPrivateMessageFolderById(Long 
privateMessageFolderId) {
+       public PrivateMessageFolder get(long privateMessageFolderId) {
                try {
                        String hql = "select c from PrivateMessageFolder c " +
                                                "where c.privateMessageFolderId 
= :privateMessageFolderId ";
@@ -91,35 +92,22 @@ public class PrivateMessageFolderDao {
                return null;
        }
 
-       public List<PrivateMessageFolder> getPrivateMessageFolders() {
-               try {
-                       String hql = "select c from PrivateMessageFolder c ";
-
-                       TypedQuery<PrivateMessageFolder> query = 
em.createQuery(hql, PrivateMessageFolder.class); 
-                       
-                       List<PrivateMessageFolder> privateMessageFolders = 
query.getResultList();
-                       
-                       return privateMessageFolders;
-               } catch (Exception e) {
-                       log.error("[getPrivateMessageFolderById]",e);
-               }
-               return null;
+       public List<PrivateMessageFolder> get(int start, int count) {
+               String hql = "select c from PrivateMessageFolder c ";
+               return em.createQuery(hql, PrivateMessageFolder.class)
+                               .setFirstResult(start).setMaxResults(count)
+                               .getResultList();
        }
 
-       public void updatePrivateMessages(PrivateMessageFolder 
privateMessageFolder) {
-               try {
-                       
-                       if (privateMessageFolder.getPrivateMessageFolderId() == 
0) {
-                               em.persist(privateMessageFolder);
-                   } else {
-                       if (!em.contains(privateMessageFolder)) {
-                               em.merge(privateMessageFolder);
-                           }
-                       }
-                       
-               } catch (Exception e) {
-                       log.error("[updatePrivateMessages]",e);
+       public PrivateMessageFolder update(PrivateMessageFolder 
privateMessageFolder, Long userId) {
+               if (privateMessageFolder.getPrivateMessageFolderId() == 0) {
+                       em.persist(privateMessageFolder);
+           } else {
+               if (!em.contains(privateMessageFolder)) {
+                       privateMessageFolder = em.merge(privateMessageFolder);
+                   }
                }
+               return privateMessageFolder;
        }
        
        public List<PrivateMessageFolder> getPrivateMessageFolderByUserId(Long 
userId) {
@@ -139,15 +127,24 @@ public class PrivateMessageFolderDao {
                return null;
        }
 
-       public void deletePrivateMessages(PrivateMessageFolder 
privateMessageFolder) {
-               try {
-                       
-                       privateMessageFolder = 
em.find(PrivateMessageFolder.class, 
privateMessageFolder.getPrivateMessageFolderId());
-                       em.remove(privateMessageFolder);
-                       
-               } catch (Exception e) {
-                       log.error("[deletePrivateMessages]",e);
-               }
-       }       
-       
+       public void delete(PrivateMessageFolder privateMessageFolder, Long 
userId) {
+               privateMessageFolder = em.find(PrivateMessageFolder.class, 
privateMessageFolder.getPrivateMessageFolderId());
+               em.remove(privateMessageFolder);
+       }
+
+       public List<PrivateMessageFolder> get(String search, int start, int 
count, String order) {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       public long count() {
+               // TODO Auto-generated method stub
+               return 0;
+       }
+
+       public long count(String search) {
+               // TODO Auto-generated method stub
+               return 0;
+       }
+
 }

Modified: 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/PrivateMessagesDao.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/PrivateMessagesDao.java?rev=1485684&r1=1485683&r2=1485684&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/PrivateMessagesDao.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/PrivateMessagesDao.java
 Thu May 23 13:04:50 2013
@@ -18,6 +18,8 @@
  */
 package org.apache.openmeetings.data.user.dao;
 
+import static org.apache.openmeetings.OpenmeetingsVariables.webAppRootKey;
+
 import java.util.Date;
 import java.util.List;
 
@@ -28,7 +30,6 @@ import javax.persistence.Query;
 import javax.persistence.TypedQuery;
 
 import org.apache.commons.lang.StringUtils;
-import org.apache.openmeetings.OpenmeetingsVariables;
 import org.apache.openmeetings.persistence.beans.room.Room;
 import org.apache.openmeetings.persistence.beans.user.PrivateMessage;
 import org.apache.openmeetings.persistence.beans.user.User;
@@ -38,8 +39,7 @@ import org.springframework.transaction.a
 
 @Transactional
 public class PrivateMessagesDao {
-
-       private static final Logger log = 
Red5LoggerFactory.getLogger(PrivateMessagesDao.class, 
OpenmeetingsVariables.webAppRootKey);
+       private static final Logger log = 
Red5LoggerFactory.getLogger(PrivateMessagesDao.class, webAppRootKey);
        @PersistenceContext
        private EntityManager em;
        
@@ -87,46 +87,32 @@ public class PrivateMessagesDao {
                return null;
        }
        
-       public List<PrivateMessage> getPrivateMessages() {
-               try {
-                       TypedQuery<PrivateMessage> query = 
em.createNamedQuery("getPrivateMessages", PrivateMessage.class); 
-                       return query.getResultList();
-               } catch (Exception e) {
-                       log.error("[getPrivateMessages]",e);
-               }
-               return null;
-       }
-       
-       public PrivateMessage getPrivateMessagesById(Long privateMessageId) {
-               try {
-                       TypedQuery<PrivateMessage> query = 
em.createNamedQuery("getPrivateMessagesById", PrivateMessage.class); 
-                       query.setParameter("privateMessageId", 
privateMessageId);
-                       PrivateMessage privateMessage = null;
-                       try {
-                               privateMessage = query.getSingleResult();
-                   } catch (NoResultException ex) {
+       public List<PrivateMessage> get(int first, int count) {
+               return em.createNamedQuery("getPrivateMessages", 
PrivateMessage.class)
+                               .setFirstResult(first).setMaxResults(count)
+                               .getResultList();
+       }
+       
+       public PrivateMessage get(long privateMessageId) {
+               TypedQuery<PrivateMessage> query = 
em.createNamedQuery("getPrivateMessagesById", PrivateMessage.class); 
+               query.setParameter("privateMessageId", privateMessageId);
+               PrivateMessage privateMessage = null;
+               try {
+                       privateMessage = query.getSingleResult();
+           } catch (NoResultException ex) {
+           }
+               return privateMessage;
+       }
+       
+       public PrivateMessage update(PrivateMessage privateMessage, Long 
userId) {
+               if (privateMessage.getPrivateMessageFolderId() == null) {
+                       em.persist(privateMessage);
+           } else {
+               if (!em.contains(privateMessage)) {
+                       privateMessage = em.merge(privateMessage);
                    }
-                       return privateMessage;
-               } catch (Exception e) {
-                       log.error("[countPrivateMessagesByUser]",e);
-               }
-               return null;
-       }
-       
-       public void updatePrivateMessages(PrivateMessage privateMessage) {
-               try {
-                       
-                       if (privateMessage.getPrivateMessageFolderId() == null) 
{
-                               em.persist(privateMessage);
-                   } else {
-                       if (!em.contains(privateMessage)) {
-                               em.merge(privateMessage);
-                           }
-                       }
-                       
-               } catch (Exception e) {
-                       log.error("[updatePrivateMessages]",e);
                }
+               return privateMessage;
        }
        
        public Long countPrivateMessagesByUser(Long toUserId, String search, 
Long privateMessageFolderId) {
@@ -165,18 +151,13 @@ public class PrivateMessagesDao {
                return null;
        }
        
-       public Long getNumberMessages(Long toUserId, Long 
privateMessageFolderId, boolean isRead) {
-               try {
-                       TypedQuery<Long> query = 
em.createNamedQuery("getNumberMessages", Long.class); 
-                       query.setParameter("toUserId", toUserId);
-                       query.setParameter("isTrash", false);
-                       query.setParameter("isRead", false);
-                       query.setParameter("privateMessageFolderId", 
privateMessageFolderId);
-                       return query.getSingleResult();
-               } catch (Exception e) {
-                       log.error("[getNumberMessages]",e);
-               }
-               return null;
+       public long count(Long toUserId, Long folderId, Boolean isRead, boolean 
isTrash) {
+               TypedQuery<Long> query = 
em.createNamedQuery("getNumberMessages", Long.class); 
+               query.setParameter("toUserId", toUserId);
+               query.setParameter("isTrash", isTrash);
+               query.setParameter("isRead", isRead);
+               query.setParameter("folderId", folderId);
+               return query.getSingleResult();
        }
        
        public List<PrivateMessage> getPrivateMessagesByUser(Long toUserId, 
String search,
@@ -568,5 +549,4 @@ public class PrivateMessagesDao {
                }
                return null;
        }
-
 }

Modified: 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/user/PrivateMessage.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/user/PrivateMessage.java?rev=1485684&r1=1485683&r2=1485684&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/user/PrivateMessage.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/user/PrivateMessage.java
 Thu May 23 13:04:50 2013
@@ -35,6 +35,7 @@ import javax.persistence.NamedQuery;
 import javax.persistence.Table;
 
 import org.apache.openjpa.persistence.jdbc.ForeignKey;
+import org.apache.openmeetings.persistence.beans.IDataProviderEntity;
 import org.apache.openmeetings.persistence.beans.room.Room;
 import org.simpleframework.xml.Element;
 import org.simpleframework.xml.Root;
@@ -48,8 +49,8 @@ import org.simpleframework.xml.Root;
                        "where c.to.user_id = :toUserId " +
                        "AND c.isTrash = :isTrash " +
                        "AND c.owner.user_id = :toUserId " +
-                       "AND c.isRead = :isRead " +
-                       "AND c.privateMessageFolderId = :privateMessageFolderId 
"),
+                       "AND (:isRead IS NULL OR c.isRead = :isRead) " +
+                       "AND (:folderId IS NULL OR c.privateMessageFolderId = 
:folderId) "),
        @NamedQuery(name = "updatePrivateMessagesToTrash", query = "UPDATE 
PrivateMessage c " +
                        "SET c.isTrash = :isTrash,c.privateMessageFolderId = 
:privateMessageFolderId " +
                        "where c.privateMessageId IN (:privateMessageIds) "),
@@ -66,7 +67,7 @@ import org.simpleframework.xml.Root;
 })
 @Table(name = "private_message")
 @Root(name="privatemessage")
-public class PrivateMessage implements Serializable {
+public class PrivateMessage implements Serializable, IDataProviderEntity {
        private static final long serialVersionUID = 7541117437029707792L;
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
@@ -121,11 +122,11 @@ public class PrivateMessage implements S
        
        @Column(name="is_read")
        @Element(data=true)
-       private Boolean isRead;
+       private boolean isRead;
        
        @Column(name="is_trash")
        @Element(data=true)
-       private Boolean isTrash;
+       private boolean isTrash;
        
        @Column(name="parent_message_id")
        @Element(data=true)
@@ -137,7 +138,7 @@ public class PrivateMessage implements S
        
        @Column(name="is_contact_request")
        @Element(data=true)
-       private Boolean isContactRequest;
+       private boolean isContactRequest;
        
        @Column(name="user_contact_id")
        @Element(data=true)

Modified: 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/user/PrivateMessageFolder.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/user/PrivateMessageFolder.java?rev=1485684&r1=1485683&r2=1485684&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/user/PrivateMessageFolder.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/user/PrivateMessageFolder.java
 Thu May 23 13:04:50 2013
@@ -21,7 +21,6 @@ package org.apache.openmeetings.persiste
 import java.io.Serializable;
 import java.util.Date;
 
-
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.GeneratedValue;
@@ -29,13 +28,14 @@ import javax.persistence.GenerationType;
 import javax.persistence.Id;
 import javax.persistence.Table;
 
+import org.apache.openmeetings.persistence.beans.IDataProviderEntity;
 import org.simpleframework.xml.Element;
 import org.simpleframework.xml.Root;
 
 @Entity
 @Table(name = "private_messages_folder")
 @Root(name="privatemessagefolder")
-public class PrivateMessageFolder implements Serializable {
+public class PrivateMessageFolder implements Serializable, IDataProviderEntity 
{
        private static final long serialVersionUID = 3689814412815025816L;
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)

Modified: 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/UserService.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/UserService.java?rev=1485684&r1=1485683&r2=1485684&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/UserService.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/UserService.java
 Thu May 23 13:04:50 2013
@@ -1248,8 +1248,7 @@ public class UserService {
 
                                SearchResult<PrivateMessage> searchResult = new 
SearchResult<PrivateMessage>();
                                
searchResult.setObjectName(User.class.getName());
-                               return privateMessagesDao
-                                               .getNumberMessages(users_id, 
0L, false);
+                               return privateMessagesDao.count(users_id, null, 
false, false);
 
                        }
                } catch (Exception err) {
@@ -1462,8 +1461,7 @@ public class UserService {
                return -1;
        }
 
-       public Integer deletePrivateMessages(String SID,
-                       @SuppressWarnings("rawtypes") List 
privateMessageIntsIds) {
+       public Integer deletePrivateMessages(String SID, List<?> 
privateMessageIntsIds) {
                try {
                        Long users_id = sessiondataDao.checkSession(SID);
                        Long user_level = 
userManager.getUserLevelByID(users_id);
@@ -1473,12 +1471,10 @@ public class UserService {
                                List<Long> privateMessageIds = new 
LinkedList<Long>();
 
                                for (Object pMessageId : privateMessageIntsIds) 
{
-                                       
privateMessageIds.add(Long.valueOf(pMessageId.toString())
-                                                       .longValue());
+                                       
privateMessageIds.add(Long.valueOf(pMessageId.toString()));
                                }
 
-                               return privateMessagesDao
-                                               
.deletePrivateMessages(privateMessageIds);
+                               return 
privateMessagesDao.deletePrivateMessages(privateMessageIds);
 
                        }
                } catch (Exception err) {
@@ -1638,14 +1634,12 @@ public class UserService {
                        // users only
                        if (authLevelUtil.checkUserLevel(user_level)) {
 
-                               PrivateMessageFolder privateMessageFolder = 
privateMessageFolderDao
-                                               
.getPrivateMessageFolderById(privateMessageFolderId);
+                               PrivateMessageFolder privateMessageFolder = 
privateMessageFolderDao.get(privateMessageFolderId);
 
                                privateMessageFolder.setFolderName(folderName);
                                privateMessageFolder.setUpdated(new Date());
 
-                               privateMessageFolderDao
-                                               
.updatePrivateMessages(privateMessageFolder);
+                               
privateMessageFolderDao.update(privateMessageFolder, users_id);
 
                                return privateMessageFolderId;
 
@@ -1665,11 +1659,9 @@ public class UserService {
                        // users only
                        if (authLevelUtil.checkUserLevel(user_level)) {
 
-                               PrivateMessageFolder privateMessageFolder = 
privateMessageFolderDao
-                                               
.getPrivateMessageFolderById(privateMessageFolderId);
+                               PrivateMessageFolder privateMessageFolder = 
privateMessageFolderDao.get(privateMessageFolderId);
 
-                               privateMessageFolderDao
-                                               
.deletePrivateMessages(privateMessageFolder);
+                               
privateMessageFolderDao.delete(privateMessageFolder, users_id);
 
                        }
 

Modified: 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/BackupExport.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/BackupExport.java?rev=1485684&r1=1485683&r2=1485684&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/BackupExport.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/BackupExport.java
 Thu May 23 13:04:50 2013
@@ -235,7 +235,7 @@ public class BackupExport {
                 * ##################### Private Messages
                 */
                {
-                       List<PrivateMessage> list = 
privateMessagesDao.getPrivateMessages();
+                       List<PrivateMessage> list = privateMessagesDao.get(0, 
Integer.MAX_VALUE);
                        Registry registry = new Registry();
                        Strategy strategy = new RegistryStrategy(registry);
                        Serializer serializer = new Persister(strategy);
@@ -254,7 +254,7 @@ public class BackupExport {
                 * ##################### Private Message Folders
                 */
                writeList(simpleSerializer, backup_dir, 
"privateMessageFolder.xml",
-                               "privatemessagefolders", 
privateMessageFolderDao.getPrivateMessageFolders());
+                               "privatemessagefolders", 
privateMessageFolderDao.get(0, Integer.MAX_VALUE));
 
                /*
                 * ##################### User Contacts

Modified: 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/BackupImportController.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/BackupImportController.java?rev=1485684&r1=1485683&r2=1485684&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/BackupImportController.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/BackupImportController.java
 Thu May 23 13:04:50 2013
@@ -432,8 +432,7 @@ public class BackupImportController exte
                                , "privatemessagefolders", 
PrivateMessageFolder.class, true);
                        for (PrivateMessageFolder p : list) {
                                Long folderId = p.getPrivateMessageFolderId();
-                               PrivateMessageFolder storedFolder = 
privateMessageFolderDao
-                                               
.getPrivateMessageFolderById(folderId);
+                               PrivateMessageFolder storedFolder = 
privateMessageFolderDao.get(folderId);
                                if (storedFolder == null) {
                                        p.setPrivateMessageFolderId(0);
                                        Long newFolderId = 
privateMessageFolderDao

Modified: 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/dashboard/WelcomeWidgetView.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/dashboard/WelcomeWidgetView.java?rev=1485684&r1=1485683&r2=1485684&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/dashboard/WelcomeWidgetView.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/dashboard/WelcomeWidgetView.java
 Thu May 23 13:04:50 2013
@@ -58,8 +58,7 @@ public class WelcomeWidgetView extends W
                        public void onClick(AjaxRequestTarget target) {
                                
((MainPage)getPage()).updateContents(PROFILE_MESSAGES, target);
                        }
-               }.add(new Label("unread", Model.of("" + 
getBean(PrivateMessagesDao.class)
-                               .getNumberMessages(getUserId(), 0L, false)))));
+               }.add(new Label("unread", Model.of("" + 
getBean(PrivateMessagesDao.class).count(getUserId(), null, false, false)))));
                add(new AjaxLink<Void>("editProfile") {
                        private static final long serialVersionUID = 
-1847619557485964386L;
 

Modified: 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.html
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.html?rev=1485684&r1=1485683&r2=1485684&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.html
 (original)
+++ 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.html
 Thu May 23 13:04:50 2013
@@ -20,5 +20,44 @@
 -->
 <html xmlns:wicket="http://wicket.apache.org";>
 <wicket:panel>
+       <!-- TODO design should be changed in the future -->
+       <table style="width: 100%">
+               <tr>
+                       <td style="width: 150px; overflow-x: hidden">
+                               <div class="email new clickable" 
wicket:id="new" wicket:ommessage="title:1208"><wicket:ommessage 
key="1207"/></div>
+                               <div class="email inbox clickable" 
wicket:id="inbox"><wicket:ommessage key="1222"/></div>
+                               <div class="email sent clickable" 
wicket:id="sent"><wicket:ommessage key="1223"/></div>
+                               <div class="email trash clickable" 
wicket:id="trash"><wicket:ommessage key="1224"/></div>
+                               <div class="email newdir clickable" 
wicket:id="newdir" wicket:ommessage="title:1259"><wicket:ommessage 
key="1258"/></div>
+                               <div>
+                                       <div wicket:id="folder"><div 
wicket:id="name"></div><div wicket:id="delete"></div></div>
+                               </div>
+                       </td>
+                       <td>
+                               <div wicket:id="container">
+                                       <div><b><wicket:ommessage 
key="1206"/>&nbsp;(<span wicket:id="unread"></span>)</b></div>
+                                       <div wicket:id="navigator"></div>
+                                       <table>
+                                               <tr>
+                                                       <th><wicket:message 
key="1205"/></th>
+                                                       <th><wicket:message 
key="1202"/></th>
+                                                       <th><wicket:message 
key="1203"/></th>
+                                                       <th><wicket:message 
key="1204"/></th>
+                                               </tr>
+                                       </table>
+                               </div>
+                       </td>
+                       <td style="width: 150px; overflow-x: hidden">
+                               <div><b><wicket:ommessage 
key="1189"/>&nbsp;(<span wicket:id="pendingContacts"></span>)</b></div>
+                               <div><b><wicket:ommessage 
key="1188"/>&nbsp;(<span wicket:id="na1"></span>)</b></div>
+                               <table>
+                                       <tr>
+                                               <th><wicket:message 
key="1180"/></th>
+                                               <th><wicket:message 
key="1186"/></th>
+                                       </tr>
+                               </table>
+                       </td>
+               </tr>
+       </table>
 </wicket:panel>
 </html>

Modified: 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java?rev=1485684&r1=1485683&r2=1485684&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java
 Thu May 23 13:04:50 2013
@@ -18,12 +18,78 @@
  */
 package org.apache.openmeetings.web.user.profile;
 
+import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.app.WebSession.getUserId;
+
+import org.apache.openmeetings.data.user.dao.PrivateMessageFolderDao;
+import org.apache.openmeetings.data.user.dao.PrivateMessagesDao;
+import org.apache.openmeetings.persistence.beans.user.PrivateMessageFolder;
 import org.apache.openmeetings.web.common.UserPanel;
+import org.apache.wicket.ajax.AjaxEventBehavior;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.list.ListItem;
+import org.apache.wicket.markup.html.list.ListView;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.Model;
 
 public class MessagesContactsPanel extends UserPanel {
        private static final long serialVersionUID = 8098087441571734957L;
+       private final WebMarkupContainer container = new 
WebMarkupContainer("container");
+       private final IModel<Long> unreadModel = Model.of(0L);
 
        public MessagesContactsPanel(String id) {
                super(id);
+               
+               add(new WebMarkupContainer("new").add(new 
AjaxEventBehavior("click") {
+                       private static final long serialVersionUID = 1L;
+
+                       @Override
+                       protected void onEvent(AjaxRequestTarget target) {
+                       }
+               }));
+               add(new WebMarkupContainer("inbox").add(new 
AjaxEventBehavior("click") {
+                       private static final long serialVersionUID = 1L;
+
+                       @Override
+                       protected void onEvent(AjaxRequestTarget target) {
+                       }
+               }));
+               add(new WebMarkupContainer("sent").add(new 
AjaxEventBehavior("click") {
+                       private static final long serialVersionUID = 1L;
+
+                       @Override
+                       protected void onEvent(AjaxRequestTarget target) {
+                       }
+               }));
+               add(new WebMarkupContainer("trash").add(new 
AjaxEventBehavior("click") {
+                       private static final long serialVersionUID = 1L;
+
+                       @Override
+                       protected void onEvent(AjaxRequestTarget target) {
+                       }
+               }));
+               add(new WebMarkupContainer("newdir").add(new 
AjaxEventBehavior("click") {
+                       private static final long serialVersionUID = 1L;
+
+                       @Override
+                       protected void onEvent(AjaxRequestTarget target) {
+                       }
+               }));
+               add(new ListView<PrivateMessageFolder>("folder", 
getBean(PrivateMessageFolderDao.class).get(0, Integer.MAX_VALUE)) {
+                       private static final long serialVersionUID = 1L;
+
+                       @Override
+                       protected void 
populateItem(ListItem<PrivateMessageFolder> item) {
+                               item.add(new Label("name", 
item.getModelObject().getFolderName()));
+                               item.add(new WebMarkupContainer("delete"));
+                       }
+               });
+               
unreadModel.setObject(getBean(PrivateMessagesDao.class).count(getUserId(), 
null, false, false));
+               container.add(new Label("unread", unreadModel));
+               
+               add(container.setOutputMarkupId(true));
        }
+       
 }


Reply via email to