You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2013/04/23 09:14:44 UTC

svn commit: r1470832 - in /openmeetings/trunk/singlewebapp: ./ WebContent/openmeetings/images/ src/org/apache/openmeetings/web/app/ src/org/apache/openmeetings/web/components/ src/org/apache/openmeetings/web/components/user/calendar/ src/org/apache/ope...

Author: solomax
Date: Tue Apr 23 07:14:43 2013
New Revision: 1470832

URL: http://svn.apache.org/r1470832
Log:
[OPENMEETINGS-612]: PrivateRooms widget is added

Added:
    openmeetings/trunk/singlewebapp/WebContent/openmeetings/images/
    openmeetings/trunk/singlewebapp/WebContent/openmeetings/images/delete.gif   (with props)
    openmeetings/trunk/singlewebapp/WebContent/openmeetings/images/down.png   (with props)
    openmeetings/trunk/singlewebapp/WebContent/openmeetings/images/edit.png   (with props)
    openmeetings/trunk/singlewebapp/WebContent/openmeetings/images/refresh.gif   (with props)
    openmeetings/trunk/singlewebapp/WebContent/openmeetings/images/up.png   (with props)
    openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/dashboard/
    openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/dashboard/OmDashboardPanel.html
    openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/dashboard/OmDashboardPanel.java
    openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/dashboard/PrivateRoomsWidget.java
    openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/dashboard/PrivateRoomsWidgetDescriptor.java
    openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/dashboard/PrivateRoomsWidgetView.html
    openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/dashboard/PrivateRoomsWidgetView.java
Modified:
    openmeetings/trunk/singlewebapp/ivy.xml
    openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/app/Application.java
    openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/MenuPanel.java
    openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/calendar/CalendarPanel.html
    openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/MainPage.java

Added: openmeetings/trunk/singlewebapp/WebContent/openmeetings/images/delete.gif
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/WebContent/openmeetings/images/delete.gif?rev=1470832&view=auto
==============================================================================
Binary file - no diff available.

Propchange: openmeetings/trunk/singlewebapp/WebContent/openmeetings/images/delete.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: openmeetings/trunk/singlewebapp/WebContent/openmeetings/images/down.png
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/WebContent/openmeetings/images/down.png?rev=1470832&view=auto
==============================================================================
Binary file - no diff available.

Propchange: openmeetings/trunk/singlewebapp/WebContent/openmeetings/images/down.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: openmeetings/trunk/singlewebapp/WebContent/openmeetings/images/edit.png
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/WebContent/openmeetings/images/edit.png?rev=1470832&view=auto
==============================================================================
Binary file - no diff available.

Propchange: openmeetings/trunk/singlewebapp/WebContent/openmeetings/images/edit.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: openmeetings/trunk/singlewebapp/WebContent/openmeetings/images/refresh.gif
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/WebContent/openmeetings/images/refresh.gif?rev=1470832&view=auto
==============================================================================
Binary file - no diff available.

Propchange: openmeetings/trunk/singlewebapp/WebContent/openmeetings/images/refresh.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: openmeetings/trunk/singlewebapp/WebContent/openmeetings/images/up.png
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/WebContent/openmeetings/images/up.png?rev=1470832&view=auto
==============================================================================
Binary file - no diff available.

Propchange: openmeetings/trunk/singlewebapp/WebContent/openmeetings/images/up.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Modified: openmeetings/trunk/singlewebapp/ivy.xml
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/ivy.xml?rev=1470832&r1=1470831&r2=1470832&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/ivy.xml (original)
+++ openmeetings/trunk/singlewebapp/ivy.xml Tue Apr 23 07:14:43 2013
@@ -259,6 +259,12 @@
 		<dependency org="com.googlecode.wicket-jquery-ui" name="jquery-ui-calendar" rev="6.2.2" conf="openmeetings->*" transitive="false">
 			<include type="jar" />
 		</dependency>
+		<dependency org="ro.fortsoft.wicket.dashboard" name="wicket-dashboard-core" rev="0.6" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="com.google.code.gson" name="gson" rev="2.2.3" 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: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/app/Application.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/app/Application.java?rev=1470832&r1=1470831&r2=1470832&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/app/Application.java (original)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/app/Application.java Tue Apr 23 07:14:43 2013
@@ -19,6 +19,7 @@
 package org.apache.openmeetings.web.app;
 
 import org.apache.openmeetings.remote.red5.ScopeApplicationAdapter;
+import org.apache.openmeetings.web.components.user.dashboard.PrivateRoomsWidgetDescriptor;
 import org.apache.openmeetings.web.pages.MainPage;
 import org.apache.openmeetings.web.pages.NotInitedPage;
 import org.apache.openmeetings.web.pages.auth.SignInPage;
@@ -40,7 +41,17 @@ import org.apache.wicket.settings.IPageS
 import org.springframework.context.ApplicationContext;
 import org.springframework.web.context.support.WebApplicationContextUtils;
 
+import ro.fortsoft.wicket.dashboard.Dashboard;
+import ro.fortsoft.wicket.dashboard.DefaultDashboard;
+import ro.fortsoft.wicket.dashboard.Widget;
+import ro.fortsoft.wicket.dashboard.WidgetFactory;
+import ro.fortsoft.wicket.dashboard.WidgetRegistry;
+import ro.fortsoft.wicket.dashboard.web.DashboardContext;
+import ro.fortsoft.wicket.dashboard.web.DashboardContextInjector;
+
 public class Application extends AuthenticatedWebApplication {
+	private DashboardContext dashboardContext;
+	private Dashboard dashboard;
 	
 	@Override
 	protected void init() {
@@ -63,6 +74,14 @@ public class Application extends Authent
 		
 		super.init();
 		
+		// register some widgets
+		dashboardContext = new DashboardContext();
+		WidgetRegistry widgetRegistry = dashboardContext.getWidgetRegistry();
+		widgetRegistry.registerWidget(new PrivateRoomsWidgetDescriptor());
+		// add dashboard context injector
+		DashboardContextInjector dashboardContextInjector = new DashboardContextInjector(dashboardContext);
+		getComponentInstantiationListeners().add(dashboardContextInjector);
+		
 		mountPage("signin", getSignInPageClass());
 		mountPage("notinited", NotInitedPage.class);
 
@@ -110,4 +129,25 @@ public class Application extends Authent
 			throw new RestartResponseException(NotInitedPage.class);
 		}
 	}
+	
+	public static Dashboard getDashboard() {
+		Dashboard d = get().dashboard;
+		if (d == null) {
+			get().initDashboard();
+			d = get().dashboard;
+		}
+		return d;
+	}
+	
+	private void initDashboard() {
+		//FIXME check title etc.
+		dashboard = dashboardContext.getDashboardPersiter().load();
+		if (dashboard == null) {
+			dashboard = new DefaultDashboard("default", "Default");
+		}
+		WidgetFactory widgetFactory = dashboardContext.getWidgetFactory();
+		Widget widget = widgetFactory.createWidget(new PrivateRoomsWidgetDescriptor());
+		dashboard.getWidgets().clear(); //FIXME hack somehow Dashboard loaded with 7! PrivateRoomsWidgets
+		dashboard.addWidget(widget);
+	}
 }

Modified: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/MenuPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/MenuPanel.java?rev=1470832&r1=1470831&r2=1470832&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/MenuPanel.java (original)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/MenuPanel.java Tue Apr 23 07:14:43 2013
@@ -32,6 +32,7 @@ import org.apache.openmeetings.web.compo
 import org.apache.openmeetings.web.components.admin.servers.ServersPanel;
 import org.apache.openmeetings.web.components.admin.users.UsersPanel;
 import org.apache.openmeetings.web.components.user.calendar.CalendarPanel;
+import org.apache.openmeetings.web.components.user.dashboard.OmDashboardPanel;
 import org.apache.openmeetings.web.components.user.rooms.RoomsSelectorPanel;
 import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.Component;
@@ -116,8 +117,6 @@ public class MenuPanel extends BasePanel
 								BasePanel basePanel = null;
 								
 								switch(action) {
-									case dashboardModuleStartScreen:
-										break;
 									case dashboardModuleCalendar:
 										basePanel = new CalendarPanel("child");
 										break;
@@ -158,6 +157,10 @@ public class MenuPanel extends BasePanel
 									case adminModuleServers:
 										basePanel = new ServersPanel("child");
 										break;
+									case dashboardModuleStartScreen:
+									default:
+										basePanel = new OmDashboardPanel("child");
+										break;
 								}
 								
 								if (basePanel != null) {

Modified: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/calendar/CalendarPanel.html
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/calendar/CalendarPanel.html?rev=1470832&r1=1470831&r2=1470832&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/calendar/CalendarPanel.html (original)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/calendar/CalendarPanel.html Tue Apr 23 07:14:43 2013
@@ -19,12 +19,6 @@
   
 -->
 <html xmlns:wicket="http://wicket.apache.org">
-	<wicket:head>
-		<script type="text/javascript">
-			function calendarInit() {
-			}
-		</script>
-	</wicket:head>
 	<wicket:panel>
 		<div id="wrapper-panel-frame" class="ui-corner-all">
 			<form wicket:id="form">

Added: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/dashboard/OmDashboardPanel.html
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/dashboard/OmDashboardPanel.html?rev=1470832&view=auto
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/dashboard/OmDashboardPanel.html (added)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/dashboard/OmDashboardPanel.html Tue Apr 23 07:14:43 2013
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  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.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+	<wicket:panel>
+		<div wicket:id="dashboard" class="dashboard"></div>
+	</wicket:panel>
+</html>

Added: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/dashboard/OmDashboardPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/dashboard/OmDashboardPanel.java?rev=1470832&view=auto
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/dashboard/OmDashboardPanel.java (added)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/dashboard/OmDashboardPanel.java Tue Apr 23 07:14:43 2013
@@ -0,0 +1,36 @@
+/*
+ * 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.apache.openmeetings.web.components.user.dashboard;
+
+import org.apache.openmeetings.web.app.Application;
+import org.apache.openmeetings.web.components.UserPanel;
+import org.apache.wicket.model.Model;
+
+import ro.fortsoft.wicket.dashboard.Dashboard;
+import ro.fortsoft.wicket.dashboard.web.DashboardPanel;
+
+public class OmDashboardPanel extends UserPanel {
+	private static final long serialVersionUID = 7815949875883825949L;
+
+	public OmDashboardPanel(String id) {
+		super(id);
+
+		add(new DashboardPanel("dashboard", new Model<Dashboard>(Application.getDashboard())));
+	}
+}

Added: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/dashboard/PrivateRoomsWidget.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/dashboard/PrivateRoomsWidget.java?rev=1470832&view=auto
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/dashboard/PrivateRoomsWidget.java (added)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/dashboard/PrivateRoomsWidget.java Tue Apr 23 07:14:43 2013
@@ -0,0 +1,28 @@
+package org.apache.openmeetings.web.components.user.dashboard;
+
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.wicket.model.Model;
+
+import ro.fortsoft.wicket.dashboard.AbstractWidget;
+import ro.fortsoft.wicket.dashboard.Widget;
+import ro.fortsoft.wicket.dashboard.WidgetLocation;
+import ro.fortsoft.wicket.dashboard.web.WidgetView;
+
+public class PrivateRoomsWidget extends AbstractWidget {
+	private static final long serialVersionUID = 1769428980617610979L;
+
+	public PrivateRoomsWidget(String id) {
+		this();
+		setId(id);
+	}
+	
+	public PrivateRoomsWidget() {
+		super();
+		title = WebSession.getString(781L);
+		location = new WidgetLocation(0, 1);
+	}
+	
+	public WidgetView createView(String viewId) {
+		return new PrivateRoomsWidgetView(viewId, new Model<Widget>(this));
+	}
+}

Added: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/dashboard/PrivateRoomsWidgetDescriptor.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/dashboard/PrivateRoomsWidgetDescriptor.java?rev=1470832&view=auto
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/dashboard/PrivateRoomsWidgetDescriptor.java (added)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/dashboard/PrivateRoomsWidgetDescriptor.java Tue Apr 23 07:14:43 2013
@@ -0,0 +1,26 @@
+package org.apache.openmeetings.web.components.user.dashboard;
+
+import org.apache.openmeetings.web.app.WebSession;
+
+import ro.fortsoft.wicket.dashboard.WidgetDescriptor;
+
+public class PrivateRoomsWidgetDescriptor implements WidgetDescriptor {
+	private static final long serialVersionUID = 389662353299319574L;
+
+	public String getName() {
+		return WebSession.getString(781L);
+	}
+
+	public String getProvider() {
+		return "Apache Openmeetings";
+	}
+
+	public String getDescription() {
+		return WebSession.getString(782L);
+	}
+
+	public String getWidgetClassName() {
+		return PrivateRoomsWidget.class.getName();
+	}
+
+}

Added: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/dashboard/PrivateRoomsWidgetView.html
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/dashboard/PrivateRoomsWidgetView.html?rev=1470832&view=auto
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/dashboard/PrivateRoomsWidgetView.html (added)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/dashboard/PrivateRoomsWidgetView.html Tue Apr 23 07:14:43 2013
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  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.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+	<wicket:panel>
+    	<div wicket:id="rooms"></div>
+	</wicket:panel>
+</html>
\ No newline at end of file

Added: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/dashboard/PrivateRoomsWidgetView.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/dashboard/PrivateRoomsWidgetView.java?rev=1470832&view=auto
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/dashboard/PrivateRoomsWidgetView.java (added)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/dashboard/PrivateRoomsWidgetView.java Tue Apr 23 07:14:43 2013
@@ -0,0 +1,22 @@
+package org.apache.openmeetings.web.components.user.dashboard;
+
+import org.apache.openmeetings.data.conference.dao.RoomDao;
+import org.apache.openmeetings.web.app.Application;
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.openmeetings.web.components.user.rooms.RoomsPanel;
+import org.apache.wicket.model.Model;
+
+import ro.fortsoft.wicket.dashboard.Widget;
+import ro.fortsoft.wicket.dashboard.web.WidgetView;
+
+public class PrivateRoomsWidgetView extends WidgetView {
+	private static final long serialVersionUID = 6950427893821991173L;
+
+	public PrivateRoomsWidgetView(String id, Model<Widget> model) {
+		super(id, model);
+		
+		//FIXME 2 !!!! fake rooms;
+		//FIXME need to be generalized with RoomsSelectorPanel
+		add(new RoomsPanel("rooms", Application.getBean(RoomDao.class).getAppointedRoomsByUser(WebSession.getUserId())));
+	}
+}

Modified: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/MainPage.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/MainPage.java?rev=1470832&r1=1470831&r2=1470832&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/MainPage.java (original)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/MainPage.java Tue Apr 23 07:14:43 2013
@@ -24,6 +24,7 @@ import org.apache.openmeetings.web.compo
 import org.apache.openmeetings.web.components.MenuPanel;
 import org.apache.openmeetings.web.components.user.AboutDialog;
 import org.apache.openmeetings.web.components.user.ChatPanel;
+import org.apache.openmeetings.web.components.user.dashboard.OmDashboardPanel;
 import org.apache.wicket.MarkupContainer;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.markup.html.AjaxLink;
@@ -43,7 +44,8 @@ public class MainPage extends BasePage {
 	
 	public MainPage() {
 		MarkupContainer contents = new WebMarkupContainer("contents");
-		contents.add(new WebMarkupContainer("child")).setOutputMarkupId(true).setMarkupId("contents");
+		//FIXME need to be generalized with MenuPanel
+		contents.add(new OmDashboardPanel("child")).setOutputMarkupId(true).setMarkupId("contents");
 		add(contents);
 		menu = new MenuPanel("menu", contents);
 		add(menu);