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));
}