Modified: 
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/PrivateMessageFolderDao.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/PrivateMessageFolderDao.java?rev=1717669&r1=1717668&r2=1717669&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/PrivateMessageFolderDao.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/PrivateMessageFolderDao.java
 Wed Dec  2 18:52:32 2015
@@ -66,7 +66,8 @@ public class PrivateMessageFolderDao imp
                return privateMessageFolderId;  
        }
        
-       public PrivateMessageFolder get(long id) {
+       @Override
+       public PrivateMessageFolder get(Long id) {
                String hql = "select c from PrivateMessageFolder c where c.id = 
:id ";
 
                TypedQuery<PrivateMessageFolder> query = em.createQuery(hql, 
PrivateMessageFolder.class); 
@@ -81,12 +82,14 @@ public class PrivateMessageFolderDao imp
                return folder;
        }
 
+       @Override
        public List<PrivateMessageFolder> get(int start, int count) {
                return em.createQuery("SELECT c FROM PrivateMessageFolder c 
ORDER BY c.id", PrivateMessageFolder.class)
                                .setFirstResult(start).setMaxResults(count)
                                .getResultList();
        }
 
+       @Override
        public PrivateMessageFolder update(PrivateMessageFolder folder, Long 
userId) {
                if (folder.getId() == 0) {
                        em.persist(folder);
@@ -112,21 +115,25 @@ public class PrivateMessageFolderDao imp
                return null;
        }
 
+       @Override
        public void delete(PrivateMessageFolder folder, Long userId) {
                folder = em.find(PrivateMessageFolder.class, folder.getId());
                em.remove(folder);
        }
 
+       @Override
        public List<PrivateMessageFolder> get(String search, int start, int 
count, String order) {
                // TODO Auto-generated method stub
                return null;
        }
 
+       @Override
        public long count() {
                // TODO Auto-generated method stub
                return 0;
        }
 
+       @Override
        public long count(String search) {
                // TODO Auto-generated method stub
                return 0;

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java?rev=1717669&r1=1717668&r2=1717669&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java
 Wed Dec  2 18:52:32 2015
@@ -116,6 +116,7 @@ public class UserDao implements IDataPro
                return user;
        }
 
+       @Override
        public List<User> get(int first, int count) {
                TypedQuery<User> q = em.createNamedQuery("getNondeletedUsers", 
User.class);
                q.setFirstResult(first);
@@ -161,12 +162,14 @@ public class UserDao implements IDataPro
                return q.getResultList();
        }
        
+       @Override
        public long count() {
                // get all users
                TypedQuery<Long> q = 
em.createNamedQuery("countNondeletedUsers", Long.class);
                return q.getSingleResult();
        }
 
+       @Override
        public long count(String search) {
                return count(search, false, -1);
        }
@@ -202,6 +205,7 @@ public class UserDao implements IDataPro
                return q.getResultList();
        }
 
+       @Override
        public User update(User u, Long userId) {
                if (u.getGroupUsers() != null) {
                        for (GroupUser ou : u.getGroupUsers()) {
@@ -240,7 +244,8 @@ public class UserDao implements IDataPro
                return u;
        }
        
-       public User get(long id) {
+       @Override
+       public User get(Long id) {
                return get(id, false);
        }
        
@@ -269,6 +274,7 @@ public class UserDao implements IDataPro
                return u;
        }
 
+       @Override
        public void delete(User u, Long userId) {
                if (u != null && u.getId() != null) {
                        for (GroupUser ou : u.getGroupUsers()){

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/BasePanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/BasePanel.java?rev=1717669&r1=1717668&r2=1717669&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/BasePanel.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/BasePanel.java
 Wed Dec  2 18:52:32 2015
@@ -61,8 +61,16 @@ public abstract class BasePanel extends
        /**
         * This method should be overridden to perform necessary cleanup: 
remove timers etc.
         * 
-        * @param target
+        * @param handler
         */
        public void cleanup(IPartialPageRequestHandler handler) {
        }
+       
+       /**
+        * This method should be overridden to perform after "new message" 
dialog was closed.
+        * 
+        * @param handler
+        */
+       public void onNewMessageClose(IPartialPageRequestHandler handler) {
+       }
 }

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.html
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.html?rev=1717669&r1=1717668&r2=1717669&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.html
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.html
 Wed Dec  2 18:52:32 2015
@@ -55,5 +55,7 @@
        <div wicket:id="contents"><div wicket:id="child"></div></div>
        <div wicket:id="chatPanel"></div>
        <div wicket:id="aboutDialog"></div>
+       <div wicket:id="userInfoDialog"></div>
+       <div wicket:id="newMessageDialog"></div>
 </wicket:extend>
-</html>
\ No newline at end of file
+</html>

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java?rev=1717669&r1=1717668&r2=1717669&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
 Wed Dec  2 18:52:32 2015
@@ -23,10 +23,13 @@ import static org.apache.openmeetings.we
 import static org.apache.openmeetings.web.app.Application.getBean;
 import static org.apache.openmeetings.web.app.Application.removeOnlineUser;
 import static org.apache.openmeetings.web.app.WebSession.getUserId;
+import static 
org.apache.openmeetings.web.util.CallbackFunctionHelper.getNamedFunction;
+import static org.apache.openmeetings.web.util.CallbackFunctionHelper.getParam;
 import static org.apache.openmeetings.web.util.OmUrlFragment.CHILD_ID;
 import static org.apache.openmeetings.web.util.OmUrlFragment.PROFILE_EDIT;
 import static org.apache.openmeetings.web.util.OmUrlFragment.PROFILE_MESSAGES;
 import static org.apache.openmeetings.web.util.OmUrlFragment.getPanel;
+import static org.apache.wicket.ajax.attributes.CallbackParameter.explicit;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -34,6 +37,7 @@ import java.util.List;
 import org.apache.openmeetings.db.dao.basic.NavigationDao;
 import org.apache.openmeetings.db.entity.basic.Naviglobal;
 import org.apache.openmeetings.db.entity.basic.Navimain;
+import org.apache.openmeetings.db.entity.user.PrivateMessage;
 import org.apache.openmeetings.db.util.AuthLevelUtil;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.app.Client;
@@ -47,19 +51,27 @@ import org.apache.openmeetings.web.room.
 import org.apache.openmeetings.web.room.message.RoomMessage;
 import org.apache.openmeetings.web.user.AboutDialog;
 import org.apache.openmeetings.web.user.ChatPanel;
+import org.apache.openmeetings.web.user.profile.MessageDialog;
+import org.apache.openmeetings.web.user.profile.UserInfoDialog;
+import org.apache.openmeetings.web.util.ContactsHelper;
 import org.apache.openmeetings.web.util.OmUrlFragment;
 import org.apache.wicket.Component;
 import org.apache.wicket.MarkupContainer;
 import org.apache.wicket.ajax.AbstractAjaxTimerBehavior;
+import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.markup.html.AjaxLink;
 import 
org.apache.wicket.authroles.authorization.strategies.role.annotations.AuthorizeInstantiation;
 import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
 import org.apache.wicket.devutils.debugbar.DebugBar;
+import org.apache.wicket.markup.head.IHeaderResponse;
+import org.apache.wicket.markup.head.JavaScriptHeaderItem;
+import org.apache.wicket.markup.head.PriorityHeaderItem;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.markup.html.link.ExternalLink;
 import org.apache.wicket.markup.html.panel.EmptyPanel;
+import org.apache.wicket.model.CompoundPropertyModel;
 import org.apache.wicket.protocol.ws.api.WebSocketBehavior;
 import org.apache.wicket.protocol.ws.api.message.ClosedMessage;
 import org.apache.wicket.protocol.ws.api.message.ConnectedMessage;
@@ -70,16 +82,21 @@ import org.red5.logging.Red5LoggerFactor
 import org.slf4j.Logger;
 import org.wicketstuff.urlfragment.UrlFragment;
 
+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
+
 @AuthorizeInstantiation({"Admin", "Dashboard", "Room"})
 public class MainPage extends BaseInitedPage {
        private static final long serialVersionUID = 1L;
        private static final Logger log = 
Red5LoggerFactory.getLogger(MainPage.class, webAppRootKey);
+       private final static String PARAM_USER_ID = "userId";
        private final MenuPanel menu;
        private final WebMarkupContainer topLinks = new 
WebMarkupContainer("topLinks");
        private final MarkupContainer contents;
        private final AbstractAjaxTimerBehavior areaBehavior;
        private final Component dev;
        private final ChatPanel chat;
+       private final MessageDialog newMessage;
+       private final UserInfoDialog userInfo;
        
        public MainPage(PageParameters pp) {
                super();
@@ -133,6 +150,66 @@ public class MainPage extends BaseInited
                topLinks.add(new ExternalLink("bug", 
"https://issues.apache.org/jira/browse/OPENMEETINGS";));//FIXME hardcoded
                
                add(chat = new ChatPanel("chatPanel"));
+               add(newMessage = new MessageDialog("newMessageDialog", new 
CompoundPropertyModel<PrivateMessage>(new PrivateMessage())) {
+                       private static final long serialVersionUID = 1L;
+
+                       @Override
+                       protected void onOpen(IPartialPageRequestHandler 
handler) {
+                               super.onOpen(handler);
+                               setDefaultModelObject(new 
CompoundPropertyModel<PrivateMessage>(new PrivateMessage()));
+                       }
+                       
+                       @Override
+                       public void onClose(IPartialPageRequestHandler handler, 
DialogButton button) {
+                               BasePanel bp = getCurrentPanel();
+                               if (send.equals(button) && bp != null) {
+                                       bp.onNewMessageClose(handler);
+                               }
+                       }
+               });
+               add(userInfo = new UserInfoDialog("userInfoDialog", 
newMessage));
+               add(new AbstractDefaultAjaxBehavior() {
+                       private static final long serialVersionUID = 1L;
+
+                       @Override
+                       protected void respond(AjaxRequestTarget target) {
+                               userInfo.open(target, getParam(getComponent(), 
PARAM_USER_ID).toLong());
+                       }
+                       
+                       @Override
+                       public void renderHead(Component component, 
IHeaderResponse response) {
+                               super.renderHead(component, response);
+                               response.render(new 
PriorityHeaderItem(JavaScriptHeaderItem.forScript(getNamedFunction("showUserInfo",
 this, explicit(PARAM_USER_ID)), "showUserInfo")));
+                       }
+               });
+               add(new AbstractDefaultAjaxBehavior() {
+                       private static final long serialVersionUID = 1L;
+
+                       @Override
+                       protected void respond(AjaxRequestTarget target) {
+                               
ContactsHelper.addUserToContactList(getParam(getComponent(), 
PARAM_USER_ID).toLong());
+                       }
+                       
+                       @Override
+                       public void renderHead(Component component, 
IHeaderResponse response) {
+                               super.renderHead(component, response);
+                               response.render(new 
PriorityHeaderItem(JavaScriptHeaderItem.forScript(getNamedFunction("addContact",
 this, explicit(PARAM_USER_ID)), "addContact")));
+                       }
+               });
+               add(new AbstractDefaultAjaxBehavior() {
+                       private static final long serialVersionUID = 1L;
+
+                       @Override
+                       protected void respond(AjaxRequestTarget target) {
+                               newMessage.reset(true).open(target, 
getParam(getComponent(), PARAM_USER_ID).toOptionalLong());
+                       }
+                       
+                       @Override
+                       public void renderHead(Component component, 
IHeaderResponse response) {
+                               super.renderHead(component, response);
+                               response.render(new 
PriorityHeaderItem(JavaScriptHeaderItem.forScript(getNamedFunction("privateMessage",
 this, explicit(PARAM_USER_ID)), "privateMessage")));
+                       }
+               });
                add(new WebSocketBehavior() {
                        private static final long serialVersionUID = 1L;
 
@@ -195,12 +272,20 @@ public class MainPage extends BaseInited
                updateContents(f, handler, true);
        }
        
+       private BasePanel getCurrentPanel() {
+               Component prev = contents.get(CHILD_ID);
+               if (prev != null && prev instanceof BasePanel) {
+                       return (BasePanel)prev;
+               }
+               return null;
+       }
+       
        public void updateContents(OmUrlFragment f, IPartialPageRequestHandler 
handler, boolean updateFragment) {
                BasePanel panel = getPanel(f.getArea(), f.getType());
                if (panel != null) {
-                       Component prev = contents.get(CHILD_ID);
-                       if (prev != null && prev instanceof BasePanel) {
-                               ((BasePanel)prev).cleanup(handler);
+                       BasePanel prev = getCurrentPanel();
+                       if (prev != null) {
+                               prev.cleanup(handler);
                        }
                        handler.add(contents.replace(panel));
                        if (updateFragment) {

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/StartSharingEventBehavior.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/StartSharingEventBehavior.java?rev=1717669&r1=1717668&r2=1717669&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/StartSharingEventBehavior.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/StartSharingEventBehavior.java
 Wed Dec  2 18:52:32 2015
@@ -29,6 +29,7 @@ import static org.apache.openmeetings.we
 import static org.apache.openmeetings.web.app.WebSession.getLanguage;
 import static org.apache.openmeetings.web.app.WebSession.getSid;
 import static org.apache.openmeetings.web.app.WebSession.getUserId;
+import static org.apache.openmeetings.web.util.CallbackFunctionHelper.getParam;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -86,10 +87,6 @@ public class StartSharingEventBehavior e
                getComponent().add(download);
        }
        
-       private String getParam(String name) {
-               return 
getComponent().getRequest().getRequestParameters().getParameterValue(name).toString();
-       }
-       
        @Override
        protected void respond(AjaxRequestTarget target) {
                //TODO deny download in case other screen sharing is in progress
@@ -101,14 +98,14 @@ public class StartSharingEventBehavior e
                        URL url = new URL(baseUrl);
                        Room room = getBean(RoomDao.class).get(roomId);
                        SessionManager sessionManager = 
getBean(SessionManager.class);
-                       Client rc = 
sessionManager.getClientByPublicSID(getParam(PARAM_PUBLIC_SID), null);//TODO 
not necessary
+                       Client rc = 
sessionManager.getClientByPublicSID(getParam(getComponent(), 
PARAM_PUBLIC_SID).toString(), null);//TODO not necessary
                        String path = url.getPath();
                        path = path.substring(1, path.indexOf('/', 2) + 1);
-                       String port = getParam(PARAM_PORT);
+                       String port = getParam(getComponent(), 
PARAM_PORT).toString();
                        if (Strings.isEmpty(port)) {
                                cfgDao.getConfValue(CONFIG_FLASH_PORT, 
String.class, "");
                        }
-                       String _protocol = getParam(PARAM_PROTOCOL);
+                       String _protocol = getParam(getComponent(), 
PARAM_PROTOCOL).toString();
                        if (Strings.isEmpty(_protocol)) {
                                _protocol = 
cfgDao.getConfValue(CONFIG_FLASH_PROTOCOL, String.class, "");
                        }

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessageDialog.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessageDialog.java?rev=1717669&r1=1717668&r2=1717669&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessageDialog.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessageDialog.java
 Wed Dec  2 18:52:32 2015
@@ -80,7 +80,7 @@ public class MessageDialog extends Abstr
        private static final long serialVersionUID = 1L;
        private final Form<PrivateMessage> form;
        private final KendoFeedbackPanel feedback = new 
KendoFeedbackPanel("feedback", new Options("button", true));
-       DialogButton send = new DialogButton("send", 
Application.getString(218));
+       protected DialogButton send = new DialogButton("send", 
Application.getString(218));
        private DialogButton cancel = new DialogButton("cancel", 
Application.getString(219));
        private final WebMarkupContainer roomParamsBlock = new 
WebMarkupContainer("roomParamsBlock");
        private final WebMarkupContainer roomParams = new 
WebMarkupContainer("roomParams");
@@ -94,7 +94,7 @@ public class MessageDialog extends Abstr
                return 650;
        }
        
-       public void open(IPartialPageRequestHandler handler, long userId) {
+       public void open(IPartialPageRequestHandler handler, Long userId) {
                getModelObject().setTo(getBean(UserDao.class).get(userId));
                open(handler);
        }

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.html
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.html?rev=1717669&r1=1717668&r2=1717669&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.html
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.html
 Wed Dec  2 18:52:32 2015
@@ -24,7 +24,7 @@
        <table class="messages">
                <tr>
                        <td class="side left">
-                               <div class="email new clickable" 
wicket:id="new" wicket:message="title:1208"><wicket:message key="1207"/></div>
+                               <div class="email new clickable" 
onclick="privateMessage();" wicket:message="title:1208"><wicket:message 
key="1207"/></div>
                                <div wicket:id="folders">
                                        <div wicket:id="inbox"><wicket:message 
key="1222"/></div>
                                        <div wicket:id="sent"><wicket:message 
key="1223"/></div>
@@ -120,7 +120,5 @@
                </tr>
        </table>
        <div wicket:id="addFolder"></div>
-       <div wicket:id="newMessage"></div>
-       <div wicket:id="infoDialog"></div>
 </wicket:panel>
 </html>

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java?rev=1717669&r1=1717668&r2=1717669&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java
 Wed Dec  2 18:52:32 2015
@@ -73,7 +73,6 @@ import org.apache.wicket.markup.html.lis
 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;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.model.util.ListModel;
@@ -81,7 +80,6 @@ import org.apache.wicket.model.util.List
 import com.googlecode.wicket.jquery.core.JQueryBehavior;
 import com.googlecode.wicket.jquery.core.Options;
 import 
com.googlecode.wicket.jquery.ui.plugins.fixedheadertable.FixedHeaderTableBehavior;
-import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
 
 import ro.fortsoft.wicket.dashboard.web.util.ConfirmAjaxCallListener;
 
@@ -107,7 +105,6 @@ public class MessagesContactsPanel exten
        private final WebMarkupContainer roomContainer = new 
WebMarkupContainer("roomContainer");
        private final WebMarkupContainer buttons = new 
WebMarkupContainer("buttons");
        private final WebMarkupContainer contacts = new 
WebMarkupContainer("contacts");
-       private final MessageDialog newMessage;
        private final DataViewContainer<PrivateMessage> dataContainer;
        private final Set<Long> selectedMessages = new HashSet<Long>();
        private final Set<Long> allMessages = new HashSet<Long>();
@@ -263,16 +260,6 @@ public class MessagesContactsPanel exten
                NOT_MOVE_FOLDER.setFolderName(Application.getString(1243));
                
foldersModel.setObject(getBean(PrivateMessageFolderDao.class).get(0, 
Integer.MAX_VALUE));
                updateMoveModel();
-               add(newMessage = new MessageDialog("newMessage", new 
CompoundPropertyModel<PrivateMessage>(new PrivateMessage())) {
-                       private static final long serialVersionUID = 1L;
-
-                       @Override
-                       public void onClose(IPartialPageRequestHandler handler, 
DialogButton button) {
-                               if (send.equals(button)) {
-                                       handler.add(container);
-                               }
-                       }
-               });
                
                final AddFolderDialog addFolder = new 
AddFolderDialog("addFolder") {
                        private static final long serialVersionUID = 1L;
@@ -288,14 +275,7 @@ public class MessagesContactsPanel exten
                        }
                };
                add(addFolder);
-               add(new WebMarkupContainer("new").add(new 
AjaxEventBehavior("click") {
-                       private static final long serialVersionUID = 1L;
-
-                       @Override
-                       protected void onEvent(AjaxRequestTarget target) {
-                               newMessage.reset(true).open(target);
-                       }
-               }).add(new JQueryBehavior(".email.new", "button")));
+               add(new JQueryBehavior(".email.new", "button"));
                folders.add(inbox.add(new AjaxEventBehavior("click") {
                        private static final long serialVersionUID = 1L;
 
@@ -556,7 +536,6 @@ public class MessagesContactsPanel exten
                                return Model.of(object);
                        }
                };
-               final UserInfoDialog d = new UserInfoDialog("infoDialog", 
newMessage);
                final DataView<UserContact> dw = new 
DataView<UserContact>("users", dp) {
                        private static final long serialVersionUID = 1L;
 
@@ -591,22 +570,8 @@ public class MessagesContactsPanel exten
                                                updateContacts(target);
                                        }
                                }).setVisible(uc.isPending()));
-                               item.add(new WebMarkupContainer("view").add(new 
AjaxEventBehavior("click") {
-                                       private static final long 
serialVersionUID = 1L;
-
-                                       @Override
-                                       protected void 
onEvent(AjaxRequestTarget target) {
-                                               d.open(target, userId);
-                                       }
-                               }));
-                               item.add(new 
WebMarkupContainer("message").add(new AjaxEventBehavior("click") {
-                                       private static final long 
serialVersionUID = 1L;
-
-                                       @Override
-                                       protected void 
onEvent(AjaxRequestTarget target) {
-                                               
newMessage.reset(true).open(target, userId);
-                                       }
-                               }).setVisible(!uc.isPending()));
+                               item.add(new 
WebMarkupContainer("view").add(AttributeAppender.append("onclick", 
String.format("showUserInfo(%s);", userId))));
+                               item.add(new 
WebMarkupContainer("message").add(AttributeAppender.append("onclick", 
String.format("privateMessage(%s);", userId))).setVisible(!uc.isPending()));
                                item.add(new 
WebMarkupContainer("delete").add(new AjaxEventBehavior("click") {
                                        private static final long 
serialVersionUID = 1L;
 
@@ -619,7 +584,7 @@ public class MessagesContactsPanel exten
                        }
                };
                updateContacts(null);
-               add(d, contacts.add(dw, pendingContacts, 
allContacts).setOutputMarkupId(true));//TODO update
+               add(contacts.add(dw, pendingContacts, 
allContacts).setOutputMarkupId(true));//TODO update
                
                //hack to add FixedHeaderTable after Tabs.
                add(new AbstractDefaultAjaxBehavior() {
@@ -640,6 +605,11 @@ public class MessagesContactsPanel exten
        }
 
        @Override
+       public void onNewMessageClose(IPartialPageRequestHandler handler) {
+               handler.add(container);
+       }
+       
+       @Override
        protected void onDetach() {
                foldersModel.detach();
                selectedFolderModel.detach();

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.html
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.html?rev=1717669&r1=1717668&r2=1717669&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.html
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.html
 Wed Dec  2 18:52:32 2015
@@ -32,7 +32,7 @@
                                        <div><wicket:message key="1178"/></div>
                                        <input type="text" 
wicket:id="search"/><br/>
                                        <br/>
-                                       <input type="submit" 
wicket:message="value:1176"/>
+                                       <button wicket:id="submit" 
type="button"><wicket:message key="1176"/></button>
                                </form>
                        </td>
                        <td valign="top">
@@ -64,7 +64,5 @@
                        </td>
                </tr>
        </table>
-       <div wicket:id="infoDialog"></div>
-       <div wicket:id="newMessage"></div>
 </wicket:panel>
 </html>
\ No newline at end of file

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.java?rev=1717669&r1=1717668&r2=1717669&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.java
 Wed Dec  2 18:52:32 2015
@@ -29,16 +29,13 @@ import java.util.List;
 
 import org.apache.openmeetings.db.dao.user.UserContactDao;
 import org.apache.openmeetings.db.dao.user.UserDao;
-import org.apache.openmeetings.db.entity.user.PrivateMessage;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.util.TimezoneUtil;
 import org.apache.openmeetings.web.common.PagingNavigatorPanel;
 import org.apache.openmeetings.web.common.UserPanel;
-import org.apache.openmeetings.web.util.ContactsHelper;
 import org.apache.wicket.AttributeModifier;
-import org.apache.wicket.ajax.AjaxEventBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.form.AjaxFormSubmitBehavior;
+import org.apache.wicket.behavior.AttributeAppender;
 import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.basic.Label;
@@ -52,8 +49,8 @@ import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.PropertyModel;
 
 import com.googlecode.wicket.jquery.core.Options;
+import com.googlecode.wicket.jquery.ui.form.button.AjaxButton;
 import 
com.googlecode.wicket.jquery.ui.plugins.fixedheadertable.FixedHeaderTableBehavior;
-import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
 
 public class UserSearchPanel extends UserPanel {
        private static final long serialVersionUID = 1L;
@@ -64,7 +61,6 @@ public class UserSearchPanel extends Use
        private String orderBy = "u.firstname";
        private boolean asc = true;
        private boolean searched = false;
-       private final MessageDialog newMessage;
        private final WebMarkupContainer container = new 
WebMarkupContainer("container");
        private final FixedHeaderTableBehavior fixedHeader = new 
FixedHeaderTableBehavior("#searchUsersTable", new Options("height", 400));
 
@@ -81,27 +77,17 @@ public class UserSearchPanel extends Use
                                add(new TextField<String>("text", new 
PropertyModel<String>(UserSearchPanel.this, "text")));
                                add(new TextField<String>("offer", new 
PropertyModel<String>(UserSearchPanel.this, "offer")));
                                add(new TextField<String>("search", new 
PropertyModel<String>(UserSearchPanel.this, "search")));
-                               add(new AjaxFormSubmitBehavior(this, "submit") {
+                               add(new AjaxButton("submit") {
                                        private static final long 
serialVersionUID = 1L;
 
                                        @Override
-                                       protected void 
onSubmit(AjaxRequestTarget target) {
+                                       protected void 
onSubmit(AjaxRequestTarget target, Form<?> form) {
                                                searched = true;
                                                refresh(target);
                                        }
                                });
                        }
                });
-               add(newMessage = new MessageDialog("newMessage", new 
CompoundPropertyModel<PrivateMessage>(new PrivateMessage())) {
-                       private static final long serialVersionUID = 1L;
-
-                       @Override
-                       public void onClose(IPartialPageRequestHandler handler, 
DialogButton button) {
-                               if (send.equals(button)) {
-                                       refresh(handler);
-                               }
-                       }
-               });
                IDataProvider<User> dp = new IDataProvider<User>() {
                        private static final long serialVersionUID = 1L;
 
@@ -122,8 +108,7 @@ public class UserSearchPanel extends Use
                        }
                        
                };
-               final UserInfoDialog d = new UserInfoDialog("infoDialog", 
newMessage);
-               final DataView<User> dv = new DataView<User>("users", dp) {
+               final DataView<User> dw = new DataView<User>("users", dp) {
                        private static final long serialVersionUID = 1L;
 
                        @Override
@@ -136,36 +121,15 @@ public class UserSearchPanel extends Use
                                item.add(new Label("tz", 
getBean(TimezoneUtil.class).getTimeZone(u).getID()));
                                item.add(new Label("offer", u.getUserOffers()));
                                item.add(new Label("search", 
u.getUserSearchs()));
-                               item.add(new WebMarkupContainer("view").add(new 
AjaxEventBehavior("click") {
-                                       private static final long 
serialVersionUID = 1L;
-
-                                       @Override
-                                       protected void 
onEvent(AjaxRequestTarget target) {
-                                               d.open(target, userId);
-                                       }
-                               }));
-                               item.add(new WebMarkupContainer("add").add(new 
AjaxEventBehavior("click") {
-                                       private static final long 
serialVersionUID = 1L;
-
-                                       @Override
-                                       protected void 
onEvent(AjaxRequestTarget target) {
-                                               
ContactsHelper.addUserToContactList(userId);
-                                               refresh(target);
-                                       }
-                               }).setVisible(userId != getUserId() && 
!contactsDao.isContact(userId, getUserId())));
-                               item.add(new 
WebMarkupContainer("message").add(new AjaxEventBehavior("click") {
-                                       private static final long 
serialVersionUID = 1L;
-
-                                       @Override
-                                       protected void 
onEvent(AjaxRequestTarget target) {
-                                               
newMessage.reset(true).open(target, userId);
-                                       }
-                               })).setVisible(userId != getUserId());
+                               item.add(new 
WebMarkupContainer("view").add(AttributeAppender.append("onclick", 
String.format("showUserInfo(%s);", userId))));
+                               item.add(new 
WebMarkupContainer("add").setVisible(userId != getUserId() && 
!contactsDao.isContact(userId, getUserId()))
+                                               
.add(AttributeAppender.append("onclick", String.format("addContact(%s);", 
userId))));
+                               item.add(new 
WebMarkupContainer("message").setVisible(userId != 
getUserId()).add(AttributeAppender.append("onclick", 
String.format("privateMessage(%s);", userId))));
                                //item.add(new TooltipBehavior(new 
Options("content", "TODO:: Picture will be displayed"))); //FIXME 
                        }
                };
 
-               add(d, container.add(dv, new PagingNavigatorPanel("navigator", 
dv, itemsPerPage, 100) {
+               add(container.add(dw, new PagingNavigatorPanel("navigator", dw, 
itemsPerPage, 100) {
                        private static final long serialVersionUID = 1L;
 
                        @Override
@@ -178,5 +142,9 @@ public class UserSearchPanel extends Use
        private String getName(User u) {
                return "" + u.getFirstname() + " " + u.getLastname() + " [" + 
u.getLogin() + "]"; //FIXME salutation
        }
-
+       
+       @Override
+       public void onNewMessageClose(IPartialPageRequestHandler handler) {
+               refresh(handler);
+       }
 }

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/CallbackFunctionHelper.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/CallbackFunctionHelper.java?rev=1717669&r1=1717668&r2=1717669&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/CallbackFunctionHelper.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/CallbackFunctionHelper.java
 Wed Dec  2 18:52:32 2015
@@ -16,11 +16,12 @@
  */
 package org.apache.openmeetings.web.util;
 
+import org.apache.wicket.Component;
 import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
 import org.apache.wicket.ajax.attributes.CallbackParameter;
+import org.apache.wicket.util.string.StringValue;
 
 public class CallbackFunctionHelper {
-       
        public static StringBuilder getNamedFunction(String name, 
AbstractDefaultAjaxBehavior b, CallbackParameter... extraParameters) {
                StringBuilder sb = new StringBuilder();
                sb.append("function ").append(name).append("(");
@@ -41,4 +42,8 @@ public class CallbackFunctionHelper {
                sb.append("}\n");
                return sb;
        }
+
+       public static StringValue getParam(Component cmp, String name) {
+               return 
cmp.getRequest().getRequestParameters().getParameterValue(name);
+       }
 }


Reply via email to