Author: solomax
Date: Tue Sep  4 17:42:46 2012
New Revision: 1380752

URL: http://svn.apache.org/viewvc?rev=1380752&view=rev
Log:
Wicket application is refactored to be single page

Added:
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/BasePanel.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/admin/
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/admin/AdminPanel.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/admin/UsersPanel.html
      - copied, changed from r1380694, 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/admin/UsersPage.html
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/admin/UsersPanel.java
      - copied, changed from r1380694, 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/admin/UsersPage.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/MainPage.html
      - copied, changed from r1380694, 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/MenuPage.html
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/MainPage.java
      - copied, changed from r1380694, 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/MenuPage.java
Removed:
    incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/dto/
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/MenuPage.html
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/MenuPage.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/UserPage.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/admin/AdminPage.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/admin/UsersPage.html
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/admin/UsersPage.java
Modified:
    
incubator/openmeetings/trunk/singlewebapp/WebContent/openmeetings/css/theme.css
    incubator/openmeetings/trunk/singlewebapp/ivy.xml
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/basic/Navimanagement.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/app/Application.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/app/WebSession.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/BasePage.html

Modified: 
incubator/openmeetings/trunk/singlewebapp/WebContent/openmeetings/css/theme.css
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/openmeetings/css/theme.css?rev=1380752&r1=1380751&r2=1380752&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/WebContent/openmeetings/css/theme.css 
(original)
+++ 
incubator/openmeetings/trunk/singlewebapp/WebContent/openmeetings/css/theme.css 
Tue Sep  4 17:42:46 2012
@@ -26,3 +26,15 @@
        background-color: #322F32;
        margin-top: 10px;
 }
+
+#busy_indicator {
+  display: none;
+  float: right;
+  background: rgb(255,241,168);
+  margin-top: 5px;
+  z-index: 1000;
+  width: 200;
+  font-weight: bold;
+  text-align: center;
+  font-size: 1em;
+}

Modified: incubator/openmeetings/trunk/singlewebapp/ivy.xml
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/ivy.xml?rev=1380752&r1=1380751&r2=1380752&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/ivy.xml (original)
+++ incubator/openmeetings/trunk/singlewebapp/ivy.xml Tue Sep  4 17:42:46 2012
@@ -233,6 +233,9 @@
                <dependency org="org.apache.wicket" name="wicket-ioc" 
rev="6.0.0-beta3" conf="openmeetings->*" transitive="false">
                        <include type="jar" />
                </dependency>
+               <dependency org="org.apache.wicket" name="wicket-extensions" 
rev="6.0.0-beta3" conf="openmeetings->*" transitive="false">
+                       <include type="jar" />
+               </dependency>
                
                <!-- iCal4j seems to need this JAR -->
                <dependency org="edu.emory.mathcs" 
name="backport-util-concurrent" rev="3.1" conf="openmeetings->*"/>

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/basic/Navimanagement.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/basic/Navimanagement.java?rev=1380752&r1=1380751&r2=1380752&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/basic/Navimanagement.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/basic/Navimanagement.java
 Tue Sep  4 17:42:46 2012
@@ -27,8 +27,6 @@ import javax.persistence.PersistenceCont
 import javax.persistence.TypedQuery;
 
 import org.openmeetings.app.OpenmeetingsVariables;
-import org.openmeetings.app.dto.NaviDTO;
-import org.openmeetings.app.dto.NaviDTO.MenuActions;
 import org.openmeetings.app.persistence.beans.basic.Naviglobal;
 import org.openmeetings.app.persistence.beans.basic.Navimain;
 import org.red5.logging.Red5LoggerFactory;
@@ -77,29 +75,6 @@ public class Navimanagement {
                return ll;
        }
 
-       //FIXME need to be refactored
-       public List<NaviDTO> getMainMenuDTO(long user_level, long USER_ID, long 
language_id) {
-               ArrayList<NaviDTO> result = new ArrayList<NaviDTO>();
-               for (Naviglobal ng: getMainMenu(user_level, USER_ID, 
language_id)) {
-                       NaviDTO nd = new NaviDTO();
-                       //nd.setAction(MenuActions.valueOf(ng.getAction()));
-                       nd.setLabel(ng.getLabel().getValue());
-                       nd.setTooltip(ng.getTooltip().getValue());
-                       ArrayList<NaviDTO> items = new ArrayList<NaviDTO>();
-                       for (Navimain navim : ng.getMainnavi()) {
-                               NaviDTO mnd = new NaviDTO();
-                               
mnd.setAction(MenuActions.valueOf(navim.getAction()));
-                               mnd.setParam(navim.getParams());
-                               mnd.setLabel(navim.getLabel().getValue());
-                               mnd.setTooltip(navim.getTooltip().getValue());
-                               items.add(mnd);
-                       }
-                       nd.setItems(items);
-                       result.add(nd);
-               }
-               return result;
-       }
-       
        public List<Naviglobal> getMainMenu(long user_level, long USER_ID) {
                try {
                        TypedQuery<Naviglobal> query = 
em.createNamedQuery("getNavigation", Naviglobal.class);

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/app/Application.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/app/Application.java?rev=1380752&r1=1380751&r2=1380752&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/app/Application.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/app/Application.java
 Tue Sep  4 17:42:46 2012
@@ -27,7 +27,7 @@ import org.apache.wicket.markup.MarkupRe
 import org.apache.wicket.markup.html.WebPage;
 import org.apache.wicket.protocol.http.WebApplication;
 import org.apache.wicket.settings.IPageSettings;
-import org.openmeetings.web.pages.MenuPage;
+import org.openmeetings.web.pages.MainPage;
 import org.openmeetings.web.pages.auth.SignInPage;
 import org.springframework.context.ApplicationContext;
 import org.springframework.web.context.support.WebApplicationContextUtils;
@@ -52,7 +52,7 @@ public class Application extends Authent
        
        @Override
        public Class<? extends Page> getHomePage() {
-               return MenuPage.class;
+               return MainPage.class;
        }
 
        @Override

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/app/WebSession.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/app/WebSession.java?rev=1380752&r1=1380751&r2=1380752&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/app/WebSession.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/app/WebSession.java
 Tue Sep  4 17:42:46 2012
@@ -18,19 +18,15 @@
  */
 package org.openmeetings.web.app;
 
-import java.util.List;
-
 import 
org.apache.wicket.authroles.authentication.AbstractAuthenticatedWebSession;
 import org.apache.wicket.authroles.authorization.strategies.role.Roles;
 import org.apache.wicket.request.Request;
 import org.openmeetings.app.data.basic.AuthLevelmanagement;
 import org.openmeetings.app.data.basic.Configurationmanagement;
 import org.openmeetings.app.data.basic.Fieldmanagment;
-import org.openmeetings.app.data.basic.Navimanagement;
 import org.openmeetings.app.data.basic.Sessionmanagement;
 import org.openmeetings.app.data.user.Usermanagement;
 import org.openmeetings.app.data.user.dao.UsersDaoImpl;
-import org.openmeetings.app.dto.NaviDTO;
 import org.openmeetings.app.persistence.beans.basic.Sessiondata;
 import org.openmeetings.app.persistence.beans.user.Users;
 
@@ -39,7 +35,6 @@ public class WebSession extends Abstract
        private long userId = -1;
        private long userLevel = -1;
        private String SID = null;
-       private List<NaviDTO> menu = null;
        
        public WebSession(Request request) {
                super(request);
@@ -89,15 +84,6 @@ public class WebSession extends Abstract
                return fieldManagment.getString(id, getLanguage());
        }
        
-       public static List<NaviDTO> getNavMenu() {
-               WebSession session = get();
-               if (session.menu == null) {
-                       session.menu = Application.getBean(Navimanagement.class)
-                                       .getMainMenuDTO(session.userLevel, 
session.userId, getLanguage());
-               }
-               return session.menu;
-       }
-       
        public static long getLanguage() {
                WebSession session = get();
                if (session.isSignedIn()) {

Added: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/BasePanel.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/BasePanel.java?rev=1380752&view=auto
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/BasePanel.java
 (added)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/BasePanel.java
 Tue Sep  4 17:42:46 2012
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.openmeetings.web.components;
+
+import org.apache.wicket.markup.html.panel.Panel;
+
+public abstract class BasePanel extends Panel {
+       private static final long serialVersionUID = 8663740955529405678L;
+
+       public BasePanel(String id) {
+               super(id);
+               setOutputMarkupId(true);
+       }
+
+}

Added: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/admin/AdminPanel.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/admin/AdminPanel.java?rev=1380752&view=auto
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/admin/AdminPanel.java
 (added)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/admin/AdminPanel.java
 Tue Sep  4 17:42:46 2012
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.openmeetings.web.components.admin;
+
+import 
org.apache.wicket.authroles.authorization.strategies.role.annotations.AuthorizeInstantiation;
+import org.openmeetings.web.components.BasePanel;
+
+@AuthorizeInstantiation("ADMIN")
+public abstract class AdminPanel extends BasePanel {
+       private static final long serialVersionUID = 6811243474361803279L;
+
+       public AdminPanel(String id) {
+               super(id);
+       }
+}

Copied: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/admin/UsersPanel.html
 (from r1380694, 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/admin/UsersPage.html)
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/admin/UsersPanel.html?p2=incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/admin/UsersPanel.html&p1=incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/admin/UsersPage.html&r1=1380694&r2=1380752&rev=1380752&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/admin/UsersPage.html
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/admin/UsersPanel.html
 Tue Sep  4 17:42:46 2012
@@ -20,7 +20,7 @@
 -->
 <html xmlns="http://www.w3.org/1999/xhtml"; 
        
xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.5-strict.dtd"; 
lang="en">
-       <wicket:extend>
+       <wicket:panel>
                <table>
                        <tr>
                                <td>
@@ -45,5 +45,5 @@
                                </td>
                        </tr>
                </table>
-       </wicket:extend>
+       </wicket:panel>
 </html>

Copied: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/admin/UsersPanel.java
 (from r1380694, 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/admin/UsersPage.java)
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/admin/UsersPanel.java?p2=incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/admin/UsersPanel.java&p1=incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/admin/UsersPage.java&r1=1380694&r2=1380752&rev=1380752&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/admin/UsersPage.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/admin/UsersPanel.java
 Tue Sep  4 17:42:46 2012
@@ -16,14 +16,14 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.openmeetings.web.pages.admin;
+package org.openmeetings.web.components.admin;
 
 import java.util.Iterator;
 
 import org.apache.wicket.ajax.AjaxEventBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
+import 
org.apache.wicket.ajax.markup.html.navigation.paging.AjaxPagingNavigator;
 import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.markup.html.navigation.paging.PagingNavigator;
 import org.apache.wicket.markup.repeater.Item;
 import org.apache.wicket.markup.repeater.data.DataView;
 import org.apache.wicket.markup.repeater.data.IDataProvider;
@@ -34,13 +34,14 @@ import org.openmeetings.app.data.user.da
 import org.openmeetings.app.persistence.beans.user.Users;
 import org.openmeetings.web.app.Application;
 
-public class UsersPage extends AdminPage {
+public class UsersPanel extends AdminPanel {
        private static final long serialVersionUID = -4463107742579790120L;
        @SuppressWarnings("unused")
        private String selectedText = "Click on the table to change the user";
        private Label selected = null;
        
-       public UsersPage() {
+       public UsersPanel(String id) {
+               super(id);
                DataView<Users> dataView = new DataView<Users>("userList", new 
IDataProvider<Users>(){
                        private static final long serialVersionUID = 
-6822789354860988626L;
 
@@ -87,6 +88,6 @@ public class UsersPage extends AdminPage
                add(selected);
                dataView.setItemsPerPage(8); //FIXME need to be parametrized
                add(dataView);
-               add(new PagingNavigator("navigator", dataView));
+               add(new AjaxPagingNavigator("navigator", dataView));
        }
 }

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/BasePage.html
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/BasePage.html?rev=1380752&r1=1380751&r2=1380752&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/BasePage.html
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/BasePage.html
 Tue Sep  4 17:42:46 2012
@@ -21,7 +21,7 @@
 <html xmlns="http://www.w3.org/1999/xhtml"; 
        
xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.5-strict.dtd"; 
lang="en">
        <head>
-               <title><span wicket:id="pageTitle">[login]</span></title>
+               <title><span wicket:id="pageTitle">[title]</span></title>
        </head>
        <body>
                <div id="header">

Copied: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/MainPage.html
 (from r1380694, 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/MenuPage.html)
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/MainPage.html?p2=incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/MainPage.html&p1=incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/MenuPage.html&r1=1380694&r2=1380752&rev=1380752&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/MenuPage.html
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/MainPage.html
 Tue Sep  4 17:42:46 2012
@@ -29,28 +29,35 @@
                <script type="text/javascript" 
src="js/jMenu.jquery.min.js"></script>
                <link media="screen" type="text/css" rel="stylesheet" 
href="css/jquery-ui-1.8.23.custom.css"/>
                <script type="text/javascript">
-               $(function() {
-                       $("#jMenu").jMenu({
-                               openClick : false
-                               , ulWidth : 'auto'
-                               , effects : {
-                                       effectSpeedOpen : 300
-                                       , effectSpeedClose : 300
-                                       , effectTypeOpen : 'slide'
-                                       , effectTypeClose : 'slide'
-                                       , effectOpen : 'linear'
-                                       , effectClose : 'linear'
-                               }
-                               , TimeBeforeOpening : 100
-                               , TimeBeforeClosing : 400
-                               , animatedText : false
-                               , paddingLeft: 1
+                       $(function() {
+                               $("#jMenu").jMenu({
+                                       openClick : false
+                                       , ulWidth : 'auto'
+                                       , effects : {
+                                               effectSpeedOpen : 300
+                                               , effectSpeedClose : 300
+                                               , effectTypeOpen : 'slide'
+                                               , effectTypeClose : 'slide'
+                                               , effectOpen : 'linear'
+                                               , effectClose : 'linear'
+                                       }
+                                       , TimeBeforeOpening : 100
+                                       , TimeBeforeClosing : 400
+                                       , animatedText : false
+                                       , paddingLeft: 1
+                               });
+                               Wicket.Event.subscribe('/ajax/call/failure'
+                                       , function(jqEvent, attributes, jqXHR, 
errorThrown, textStatus) { $('#busy_indicator').hide();});
+                               Wicket.Event.subscribe('/ajax/call/before'
+                                               , function(jqEvent, attributes, 
jqXHR, errorThrown, textStatus) { $('#busy_indicator').show();});
+                               Wicket.Event.subscribe('/ajax/call/success'
+                                               , function(jqEvent, attributes, 
jqXHR, errorThrown, textStatus) { $('#busy_indicator').hide();});
                        });
-               });
                </script>
        </wicket:head>
        <wicket:extend>
                <div id="topLinks"><wicket:ommessage 
key="1188"/>|<wicket:ommessage key="5"/>|<wicket:ommessage 
key="310"/>|<wicket:ommessage key="284"/></div>
+               <div id="busy_indicator">Loading ...</div>
                <div id="menu">
                        <ul id="jMenu">
                                <li wicket:id="mainItem">
@@ -67,6 +74,6 @@
                                </li>
                        </ul>
                </div>
-               <wicket:child />
+               <div wicket:id="contents"><div wicket:id="child"></div></div>
        </wicket:extend>
 </html>
\ No newline at end of file

Copied: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/MainPage.java
 (from r1380694, 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/MenuPage.java)
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/MainPage.java?p2=incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/MainPage.java&p1=incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/MenuPage.java&r1=1380694&r2=1380752&rev=1380752&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/MenuPage.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/MainPage.java
 Tue Sep  4 17:42:46 2012
@@ -18,73 +18,113 @@
  */
 package org.openmeetings.web.pages;
 
+import org.apache.wicket.MarkupContainer;
+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.extensions.ajax.markup.html.IndicatingAjaxLink;
+import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.markup.html.link.BookmarkablePageLink;
-import org.apache.wicket.markup.html.link.Link;
 import org.apache.wicket.markup.html.list.ListItem;
 import org.apache.wicket.markup.html.list.ListView;
-import org.openmeetings.app.dto.NaviDTO;
+import org.openmeetings.app.data.basic.Navimanagement;
+import org.openmeetings.app.persistence.beans.basic.Naviglobal;
+import org.openmeetings.app.persistence.beans.basic.Navimain;
+import org.openmeetings.web.app.Application;
 import org.openmeetings.web.app.WebSession;
-import org.openmeetings.web.pages.admin.UsersPage;
+import org.openmeetings.web.components.admin.UsersPanel;
 
-public class MenuPage extends UserPage {
+@AuthorizeInstantiation("USER")
+public class MainPage extends BasePage {
        private static final long serialVersionUID = 6421960759218157999L;
+       public enum MenuActions {
+               dashboardModuleStartScreen
+               , dashboardModuleCalendar
+               , recordModule
+               , conferenceModuleRoomList
+               , eventModuleRoomList
+               , moderatorModuleUser
+               , moderatorModuleRoom
+               , adminModuleUser
+               , adminModuleConnections
+               , adminModuleOrg
+               , adminModuleRoom
+               , adminModuleConfiguration
+               , adminModuleLanguages
+               , adminModuleLDAP
+               , adminModuleBackup
+               , adminModuleServers
+       }
        
-       public MenuPage() {
-               add(new ListView<NaviDTO>("mainItem", WebSession.getNavMenu()) {
+       public MainPage() {
+               final MarkupContainer contents = new 
WebMarkupContainer("contents");
+               contents.add(new 
WebMarkupContainer("child")).setOutputMarkupId(true);
+               add(contents);
+               
+               final Navimanagement man = 
Application.getBean(Navimanagement.class);
+               add(new ListView<Naviglobal>("mainItem", 
man.getMainMenu(WebSession.getUserLevel(), WebSession.getUserId(), 
WebSession.getLanguage())) {
                        private static final long serialVersionUID = 
2173926553418745231L;
 
                        @Override
-                       protected void populateItem(ListItem<NaviDTO> item) {
-                               NaviDTO gl = item.getModelObject();
-                               item.add(new Label("label", 
gl.getLabel()).setRenderBodyOnly(true));
+                       protected void populateItem(ListItem<Naviglobal> item) {
+                               Naviglobal gl = item.getModelObject();
+                               item.add(new Label("label", 
gl.getLabel().getValue()).setRenderBodyOnly(true));
                                
-                               item.add(new ListView<NaviDTO>("childItem", 
gl.getItems()) {
+                               item.add(new ListView<Navimain>("childItem", 
gl.getMainnavi()) {
                                        private static final long 
serialVersionUID = 3609635268338379087L;
 
                                        @Override
-                                       protected void 
populateItem(ListItem<NaviDTO> item) {
-                                               NaviDTO m = 
item.getModelObject();
-                                               Link<Void> link = new 
BookmarkablePageLink<Void>("link", MenuPage.class);
-                                               switch(m.getAction()) {
-                                                       case 
dashboardModuleStartScreen:
-                                                               break;
-                                                       case 
dashboardModuleCalendar:
-                                                               break;
-                                                       case recordModule:
-                                                               break;
-                                                       case 
conferenceModuleRoomList:
-                                                               //requires 
params
-                                                               break;
-                                                       case 
eventModuleRoomList:
-                                                               break;
-                                                       case 
moderatorModuleUser:
-                                                               break;
-                                                       case 
moderatorModuleRoom:
-                                                               break;
-                                                       case adminModuleUser:
-                                                               link = new 
BookmarkablePageLink<Void>("link", UsersPage.class);
-                                                               break;
-                                                       case 
adminModuleConnections:
-                                                               break;
-                                                       case adminModuleOrg:
-                                                               break;
-                                                       case adminModuleRoom:
-                                                               break;
-                                                       case 
adminModuleConfiguration:
-                                                               break;
-                                                       case 
adminModuleLanguages:
-                                                               break;
-                                                       case adminModuleLDAP:
-                                                               break;
-                                                       case adminModuleBackup:
-                                                               break;
-                                                       case adminModuleServers:
-                                                               break;
-                                               }
-                                               item.add(link);
-                                               link.add(new Label("name", 
m.getLabel()).setRenderBodyOnly(true));
-                                               link.add(new 
Label("description", m.getTooltip()).setRenderBodyOnly(true));
+                                       protected void 
populateItem(ListItem<Navimain> item) {
+                                               Navimain m = 
item.getModelObject();
+                                               final String name = 
m.getLabel().getValue();
+                                               final String desc = 
m.getTooltip().getValue();
+                                               final MenuActions action = 
MenuActions.valueOf(m.getAction());
+                                               item.add(new 
AjaxLink<Void>("link") {
+                                                       private static final 
long serialVersionUID = 5632618935550133709L;
+                                                       {
+                                                               add(new 
Label("name", name).setRenderBodyOnly(true));
+                                                               add(new 
Label("description", desc).setRenderBodyOnly(true));
+                                                       }
+                                                       public void 
onClick(AjaxRequestTarget target) {
+                                                               switch(action) {
+                                                                       case 
dashboardModuleStartScreen:
+                                                                               
break;
+                                                                       case 
dashboardModuleCalendar:
+                                                                               
break;
+                                                                       case 
recordModule:
+                                                                               
break;
+                                                                       case 
conferenceModuleRoomList:
+                                                                               
//requires params
+                                                                               
break;
+                                                                       case 
eventModuleRoomList:
+                                                                               
break;
+                                                                       case 
moderatorModuleUser:
+                                                                               
break;
+                                                                       case 
moderatorModuleRoom:
+                                                                               
break;
+                                                                       case 
adminModuleUser:
+                                                                               
target.add(contents.replace(new UsersPanel("child")));
+                                                                               
//link = new BookmarkablePageLink<Void>("link", UsersPanel.class);
+                                                                               
break;
+                                                                       case 
adminModuleConnections:
+                                                                               
break;
+                                                                       case 
adminModuleOrg:
+                                                                               
break;
+                                                                       case 
adminModuleRoom:
+                                                                               
break;
+                                                                       case 
adminModuleConfiguration:
+                                                                               
break;
+                                                                       case 
adminModuleLanguages:
+                                                                               
break;
+                                                                       case 
adminModuleLDAP:
+                                                                               
break;
+                                                                       case 
adminModuleBackup:
+                                                                               
break;
+                                                                       case 
adminModuleServers:
+                                                                               
break;
+                                                               }
+                                                       };
+                                               });
                                        }
                                }.setReuseItems(true));
                        }


Reply via email to