Author: solomax
Date: Wed Jul 10 06:21:43 2013
New Revision: 1501655

URL: http://svn.apache.org/r1501655
Log:
[OPENMEETINGS-615] Messages are selectable and displayable

Modified:
    openmeetings/trunk/singlewebapp/WebContent/openmeetings/css/theme.css
    
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/WebContent/openmeetings/css/theme.css
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/WebContent/openmeetings/css/theme.css?rev=1501655&r1=1501654&r2=1501655&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/WebContent/openmeetings/css/theme.css 
(original)
+++ openmeetings/trunk/singlewebapp/WebContent/openmeetings/css/theme.css Wed 
Jul 10 06:21:43 2013
@@ -876,4 +876,7 @@ select.messages.selector {
        top: -9999px;
        width: 1px;
        height: 1px;
-}
\ No newline at end of file
+}
+#messagesTable tr.selected {
+       background-color: #d7ebf9;
+}

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=1501655&r1=1501654&r2=1501655&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
 Wed Jul 10 06:21:43 2013
@@ -37,16 +37,15 @@
                                </div>
                        </td>
                        <td class="main">
-                               <div>
                                <div><b><wicket:ommessage 
key="1206"/>&nbsp;(<span wicket:id="unread"></span>)</b></div>
                                <div wicket:id="navigator"></div>
                                <table id="messagesTable" style="width: 100%;">
                                        <thead>
                                        <tr>
-                                               <th><span 
wicket:id="orderById"></span><wicket:ommessage key="1205"/></th>
-                                               <th><span 
wicket:id="orderByFrom"></span><wicket:ommessage key="1202"/></th>
-                                               <th><span 
wicket:id="orderBySubject"></span><wicket:ommessage key="1203"/></th>
-                                               <th><span 
wicket:id="orderBySend"></span><wicket:ommessage key="1204"/></th>
+                                               <th align="left"><span 
wicket:id="orderById"></span><wicket:ommessage key="1205"/></th>
+                                               <th align="left"><span 
wicket:id="orderByFrom"></span><wicket:ommessage key="1202"/></th>
+                                               <th align="left"><span 
wicket:id="orderBySubject"></span><wicket:ommessage key="1203"/></th>
+                                               <th align="left"><span 
wicket:id="orderBySend"></span><wicket:ommessage key="1204"/></th>
                                        </tr>
                                        </thead>
                                        <tbody wicket:id="container" 
style="background-color: white;">
@@ -58,6 +57,29 @@
                                        </tr>
                                        </tbody>
                                </table>
+                               <div>
+                                       
<select><option>[stab]select</option></select>
+                                       <input type="button" 
wicket:ommessage="value:1245"/>
+                                       <input type="button" 
wicket:ommessage="value:1248"/>
+                                       <input type="button" 
wicket:ommessage="value:1247"/>
+                                       
<select><option>[stab]move</option></select>
+                               </div>
+                               <div wicket:id="selectedMessage">
+                                       <table style="width: 100%">
+                                               <tr>
+                                                       <td style="width: 10px; 
padding-right: 20px;"><wicket:ommessage key="1202"/></td>
+                                                       <td 
wicket:id="from"></td>
+                                               </tr>
+                                               <tr>
+                                                       <td style="width: 10px; 
padding-right: 20px;"><wicket:ommessage key="1210"/></td>
+                                                       <td wicket:id="to"></td>
+                                               </tr>
+                                               <tr>
+                                                       <td style="width: 10px; 
padding-right: 20px;"><wicket:ommessage key="1211"/></td>
+                                                       <td 
wicket:id="subj"></td>
+                                               </tr>
+                                       </table>
+                                       <div style="background-color: 
white;min-height: 300px;" wicket:id="body"></div>
                                </div>
                        </td>
                        <td class="side right">

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=1501655&r1=1501654&r2=1501655&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
 Wed Jul 10 06:21:43 2013
@@ -22,8 +22,10 @@ import static org.apache.openmeetings.we
 import static org.apache.openmeetings.web.app.WebSession.getDateFormat;
 import static org.apache.openmeetings.web.app.WebSession.getUserId;
 
+import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Set;
 
 import org.apache.openmeetings.data.user.dao.PrivateMessageFolderDao;
 import org.apache.openmeetings.data.user.dao.PrivateMessagesDao;
@@ -38,6 +40,7 @@ import org.apache.openmeetings.web.commo
 import org.apache.openmeetings.web.data.DataViewContainer;
 import org.apache.openmeetings.web.data.OmOrderByBorder;
 import org.apache.openmeetings.web.data.SearchableDataProvider;
+import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.ajax.AjaxEventBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
@@ -71,8 +74,10 @@ public class MessagesContactsPanel exten
        private final WebMarkupContainer inbox = new 
WebMarkupContainer("inbox");
        private final WebMarkupContainer sent = new WebMarkupContainer("sent");
        private final WebMarkupContainer trash = new 
WebMarkupContainer("trash");
+       private final WebMarkupContainer selectedMessage = new 
WebMarkupContainer("selectedMessage");
        private final MessageDialog newMessage;
        private final DataViewContainer<PrivateMessage> dataContainer;
+       private final Set<Long> selectedMessages = new HashSet<Long>();
        
        private void setDefaultFolderClass() {
                inbox.add(AttributeAppender.replace("class", "email inbox 
clickable"));
@@ -91,6 +96,17 @@ public class MessagesContactsPanel exten
                }
        }
        
+       private void selectMessage(long id, AjaxRequestTarget target) {
+               PrivateMessage msg = getBean(PrivateMessagesDao.class).get(id);
+               selectedMessage.addOrReplace(new Label("from", msg == null ? "" 
: msg.getFrom().getAdresses().getEmail()));
+               selectedMessage.addOrReplace(new Label("to", msg == null ? "" : 
msg.getTo().getAdresses().getEmail()));
+               selectedMessage.addOrReplace(new Label("subj", msg == null ? "" 
: msg.getSubject()));
+               selectedMessage.addOrReplace(new Label("body", msg == null ? "" 
: msg.getMessage()));
+               if (target != null) {
+                       target.add(selectedMessage);
+               }
+       }
+       
        private void selectFolder(WebMarkupContainer folder, long id, 
AjaxRequestTarget target) {
                selectedModel.setObject(id);
                setDefaultFolderClass();
@@ -261,10 +277,28 @@ public class MessagesContactsPanel exten
                        @Override
                        protected void populateItem(Item<PrivateMessage> item) {
                                PrivateMessage m = item.getModelObject();
+                               final long id = m.getPrivateMessageId();
                                item.add(new Label("id", 
m.getPrivateMessageId()));
                                item.add(new Label("from", 
getDisplayName(m.getFrom())));
                                item.add(new Label("subject", m.getSubject()));
                                item.add(new Label("send", 
getDateFormat().format(m.getInserted())));
+                               item.add(new AjaxEventBehavior("click") {
+                                       private static final long 
serialVersionUID = 1L;
+
+                                       @Override
+                                       protected void 
onEvent(AjaxRequestTarget target) {
+                                               long selected = id;
+                                               if 
(selectedMessages.contains(id)) {
+                                                       
selectedMessages.remove(id);
+                                                       selected = 
selectedMessages.isEmpty() ? -1 : selectedMessages.iterator().next();
+                                               } else {
+                                                       
selectedMessages.add(id);
+                                               }
+                                               selectMessage(selected, target);
+                                               target.add(container);
+                                       }
+                               });
+                               item.add(AttributeModifier.replace("class", 
selectedMessages.contains(id) ? "selected" : ""));
                        }
                };
                PagedEntityListPanel navigator = new 
PagedEntityListPanel("navigator", dv) {
@@ -272,6 +306,8 @@ public class MessagesContactsPanel exten
 
                        @Override
                        protected void onEvent(AjaxRequestTarget target) {
+                               selectedMessages.clear();
+                               selectMessage(-1, target);
                                target.add(container);
                        }
                };
@@ -291,5 +327,7 @@ public class MessagesContactsPanel exten
                add(container.add(dv).setOutputMarkupId(true));
                //TODO add valid autoupdate add(new 
AjaxSelfUpdatingTimerBehavior(seconds(15)));
                add(newMessage);
+               selectMessage(-1, null);
+               add(selectedMessage.setOutputMarkupId(true));
        }
 }


Reply via email to