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 2016/09/02 08:28:19 UTC

svn commit: r1758899 [2/2] - in /openmeetings/application: branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/ branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/ branches/3.2.x/openmeetin...

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RefreshIcon.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RefreshIcon.java?rev=1758899&r1=1758898&r2=1758899&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RefreshIcon.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RefreshIcon.java Fri Sep  2 08:28:19 2016
@@ -20,17 +20,15 @@ package org.apache.openmeetings.web.room
 
 import static org.apache.openmeetings.web.room.sidebar.RoomSidebar.FUNC_ACTION;
 
-import org.apache.openmeetings.db.entity.room.Room.Right;
 import org.apache.openmeetings.web.app.Client;
 import org.apache.openmeetings.web.room.RoomPanel;
 import org.apache.openmeetings.web.room.RoomPanel.Action;
-import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
 
-public class RefreshIcon extends RoomRightIcon {
+public class RefreshIcon extends ClientIcon {
 	private static final long serialVersionUID = 1L;
 	
 	public RefreshIcon(String id, Client client, RoomPanel room) {
-		super(id, client, Right.audio, room);
+		super(id, client, room);
 		mainCssClass = "restart ";
 	}
 
@@ -53,10 +51,10 @@ public class RefreshIcon extends RoomRig
 	protected String getScript() {
 		return String.format("%s('%s', '%s');", FUNC_ACTION, Action.refresh.name(), client.getUid());
 	}
-	
+
 	@Override
-	public void update(IPartialPageRequestHandler handler) {
-		super.update(handler);
+	public void internalUpdate() {
+		super.internalUpdate();
 		setVisible(isClickable());
 	}
 }

Added: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/SettingsIcon.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/SettingsIcon.java?rev=1758899&view=auto
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/SettingsIcon.java (added)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/SettingsIcon.java Fri Sep  2 08:28:19 2016
@@ -0,0 +1,49 @@
+/*
+ * 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.room.sidebar.icon;
+
+import static org.apache.openmeetings.web.room.sidebar.RoomSidebar.FUNC_ACTION;
+
+import org.apache.openmeetings.web.app.Client;
+import org.apache.openmeetings.web.room.RoomPanel;
+import org.apache.openmeetings.web.room.RoomPanel.Action;
+
+public class SettingsIcon extends ClientIcon {
+	private static final long serialVersionUID = 1L;
+	
+	public SettingsIcon(String id, Client client, RoomPanel room) {
+		super(id, client, room);
+		mainCssClass = "settings ";
+	}
+
+	@Override
+	protected String getTitle() {
+		return getString("306");
+	}
+
+	@Override
+	protected boolean isClickable() {
+		return true;
+	}
+
+	@Override
+	protected String getScript() {
+		return String.format("%s('%s', '%s');", FUNC_ACTION, Action.settings.name(), client.getUid());
+	}
+}

Copied: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/AudioRightIcon.java (from r1758898, openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/AudioRightIcon.java)
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/AudioRightIcon.java?p2=openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/AudioRightIcon.java&p1=openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/AudioRightIcon.java&r1=1758898&r2=1758899&rev=1758899&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/AudioRightIcon.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/AudioRightIcon.java Fri Sep  2 08:28:19 2016
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.web.room.sidebar.icon;
+package org.apache.openmeetings.web.room.sidebar.icon.right;
 
 import org.apache.openmeetings.db.entity.room.Room.Right;
 import org.apache.openmeetings.web.app.Client;
@@ -24,23 +24,13 @@ import org.apache.openmeetings.web.room.
 
 public class AudioRightIcon extends RoomRightIcon {
 	private static final long serialVersionUID = 1L;
-	
+
 	public AudioRightIcon(String id, Client client, RoomPanel room) {
 		super(id, client, Right.audio, room);
 		mainCssClass = "right audio ";
 	}
 
 	@Override
-	protected boolean isClickable() {
-		return self || room.getClient().hasRight(Right.moderator);
-	}
-	
-	@Override
-	protected boolean hasRight() {
-		return false; //FIXME TODO need some flag
-	}
-	
-	@Override
 	protected String getTitle() {
 		return getString(self ? "1606" : "1604");
 	}

Copied: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/ExclusiveRightIcon.java (from r1758898, openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ExclusiveRightIcon.java)
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/ExclusiveRightIcon.java?p2=openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/ExclusiveRightIcon.java&p1=openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ExclusiveRightIcon.java&r1=1758898&r2=1758899&rev=1758899&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ExclusiveRightIcon.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/ExclusiveRightIcon.java Fri Sep  2 08:28:19 2016
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.web.room.sidebar.icon;
+package org.apache.openmeetings.web.room.sidebar.icon.right;
 
 import org.apache.openmeetings.db.entity.room.Room.Right;
 import org.apache.openmeetings.web.app.Client;
@@ -24,7 +24,7 @@ import org.apache.openmeetings.web.room.
 
 public class ExclusiveRightIcon extends RoomRightIcon {
 	private static final long serialVersionUID = 1L;
-	
+
 	public ExclusiveRightIcon(String id, Client client, RoomPanel room) {
 		super(id, client, Right.exclusive, room);
 		mainCssClass = "exclsv-audio ";

Copied: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/ModeratorRightIcon.java (from r1758898, openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ModeratorRightIcon.java)
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/ModeratorRightIcon.java?p2=openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/ModeratorRightIcon.java&p1=openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ModeratorRightIcon.java&r1=1758898&r2=1758899&rev=1758899&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ModeratorRightIcon.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/ModeratorRightIcon.java Fri Sep  2 08:28:19 2016
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.web.room.sidebar.icon;
+package org.apache.openmeetings.web.room.sidebar.icon.right;
 
 import org.apache.openmeetings.db.entity.room.Room.Right;
 import org.apache.openmeetings.web.app.Client;
@@ -24,18 +24,13 @@ import org.apache.openmeetings.web.room.
 
 public class ModeratorRightIcon extends RoomRightIcon {
 	private static final long serialVersionUID = 1L;
-	
+
 	public ModeratorRightIcon(String id, Client client, RoomPanel room) {
 		super(id, client, Right.moderator, room);
 		mainCssClass = "right moderator ";
 	}
 
 	@Override
-	protected boolean isClickable() {
-		return (self && !hasRight()) || (!self && room.getClient().hasRight(Right.moderator) && !client.hasRight(Right.superModerator));
-	}
-	
-	@Override
 	protected String getTitle() {
 		String title;
 		if (client.hasRight(right)) {

Copied: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/MuteRightIcon.java (from r1758898, openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/MuteRightIcon.java)
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/MuteRightIcon.java?p2=openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/MuteRightIcon.java&p1=openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/MuteRightIcon.java&r1=1758898&r2=1758899&rev=1758899&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/MuteRightIcon.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/MuteRightIcon.java Fri Sep  2 08:28:19 2016
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.web.room.sidebar.icon;
+package org.apache.openmeetings.web.room.sidebar.icon.right;
 
 import org.apache.openmeetings.db.entity.room.Room.Right;
 import org.apache.openmeetings.web.app.Client;
@@ -24,7 +24,7 @@ import org.apache.openmeetings.web.room.
 
 public class MuteRightIcon extends RoomRightIcon {
 	private static final long serialVersionUID = 1L;
-	
+
 	public MuteRightIcon(String id, Client client, RoomPanel room) {
 		super(id, client, Right.mute, room);
 		mainCssClass = "global-mute ";

Copied: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/RemoteControlRightIcon.java (from r1758898, openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RemoteControlRightIcon.java)
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/RemoteControlRightIcon.java?p2=openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/RemoteControlRightIcon.java&p1=openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RemoteControlRightIcon.java&r1=1758898&r2=1758899&rev=1758899&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RemoteControlRightIcon.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/RemoteControlRightIcon.java Fri Sep  2 08:28:19 2016
@@ -16,12 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.web.room.sidebar.icon;
+package org.apache.openmeetings.web.room.sidebar.icon.right;
 
 import org.apache.openmeetings.db.entity.room.Room.Right;
 import org.apache.openmeetings.web.app.Client;
 import org.apache.openmeetings.web.room.RoomPanel;
-import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
 
 public class RemoteControlRightIcon extends RoomRightIcon {
 	private static final long serialVersionUID = 1L;
@@ -43,8 +42,7 @@ public class RemoteControlRightIcon exte
 	}
 
 	@Override
-	public void update(IPartialPageRequestHandler handler) {
-		setVisible(room.screenShareAllowed());
-		super.update(handler);
+	protected boolean visible() {
+		return room.screenShareAllowed() && super.visible();
 	}
 }

Copied: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/RoomRightIcon.java (from r1758898, openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RoomRightIcon.java)
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/RoomRightIcon.java?p2=openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/RoomRightIcon.java&p1=openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RoomRightIcon.java&r1=1758898&r2=1758899&rev=1758899&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RoomRightIcon.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/RoomRightIcon.java Fri Sep  2 08:28:19 2016
@@ -16,79 +16,49 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.web.room.sidebar.icon;
+package org.apache.openmeetings.web.room.sidebar.icon.right;
 
-import static org.apache.openmeetings.web.room.sidebar.RoomSidebar.FUNC_CHANGE_RIGHT;
+import static org.apache.openmeetings.web.room.sidebar.RoomSidebar.FUNC_TOGGLE_RIGHT;
 
 import org.apache.openmeetings.db.entity.room.Room.Right;
 import org.apache.openmeetings.web.app.Client;
 import org.apache.openmeetings.web.room.RoomPanel;
-import org.apache.wicket.behavior.AttributeAppender;
-import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
-import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.openmeetings.web.room.sidebar.icon.ClientIcon;
 
-public abstract class RoomRightIcon extends WebMarkupContainer {
+public abstract class RoomRightIcon extends ClientIcon {
 	private static final long serialVersionUID = 1L;
 	private static final String CLS_GRANTED = "granted ";
-	private static final String ICON_CLASS = "ui-icon ";
-	protected static final String ALIGN_LEFT = "align-left ";
-	protected static final String ALIGN_RIGHT = "align-right ";
-	protected static final String CLS_CLICKABLE = "clickable ";
-	protected final RoomPanel room;
 	protected final Right right;
-	protected final boolean self;
-	protected final Client client;
-	protected String mainCssClass;
-	
+
 	public RoomRightIcon(String id, Client client, Right right, RoomPanel room) {
-		super(id);
-		this.room = room;
-		this.client = client;
+		super(id, client, room);
 		this.right = right;
-		self = room.getClient().getUid().equals(client.getUid());
-		setOutputMarkupId(true);
 	}
 
 	@Override
-	protected void onInitialize() {
-		super.onInitialize();
-		update(null);
-	}
-	
-	protected abstract String getTitle();
-	
-	protected String getAlign() {
-		return ALIGN_LEFT;
-	}
-	
 	protected boolean isClickable() {
-		return (self && !hasRight()) || (!self && room.getClient().hasRight(Right.moderator));
+		return (self && !hasRight()) || !self && room.getClient().hasRight(Right.moderator);
 	}
-	
+
 	protected boolean hasRight() {
 		return client.hasRight(right);
 	}
 
+	@Override
 	protected String getScript() {
-		return String.format("%s('%s', '%s');", FUNC_CHANGE_RIGHT, right.name(), client.getUid());
+		return String.format("%s('%s', '%s');", FUNC_TOGGLE_RIGHT, right.name(), client.getUid());
+	}
+
+	protected boolean visible() {
+		return !client.hasRight(Right.superModerator) &&
+				((self && !hasRight()) || (!self && room.getClient().hasRight(Right.moderator)));
 	}
-	
-	public void update(IPartialPageRequestHandler handler) {
-		StringBuilder cls = new StringBuilder(ICON_CLASS);
-		cls.append(getAlign()).append(mainCssClass);
+
+	@Override
+	public void internalUpdate() {
+		setVisible(visible());
 		if (hasRight()) {
-			cls.append(CLS_GRANTED);
-		}
-		if (isClickable()) {
-			//request/remove
-			cls.append(CLS_CLICKABLE);
-			add(AttributeAppender.replace("onclick", getScript()));
-		}
-		add(AttributeAppender.replace("title", getTitle()));
-		add(AttributeAppender.replace("class", cls));
-		
-		if (handler != null) {
-			handler.add(this);
+			cssClass.append(CLS_GRANTED);
 		}
 	}
 }

Copied: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/ScreenShareRightIcon.java (from r1758898, openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ScreenShareRightIcon.java)
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/ScreenShareRightIcon.java?p2=openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/ScreenShareRightIcon.java&p1=openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ScreenShareRightIcon.java&r1=1758898&r2=1758899&rev=1758899&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ScreenShareRightIcon.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/ScreenShareRightIcon.java Fri Sep  2 08:28:19 2016
@@ -16,12 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.web.room.sidebar.icon;
+package org.apache.openmeetings.web.room.sidebar.icon.right;
 
 import org.apache.openmeetings.db.entity.room.Room.Right;
 import org.apache.openmeetings.web.app.Client;
 import org.apache.openmeetings.web.room.RoomPanel;
-import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
 
 public class ScreenShareRightIcon extends RoomRightIcon {
 	private static final long serialVersionUID = 1L;
@@ -41,10 +40,9 @@ public class ScreenShareRightIcon extend
 		}
 		return getString(title);
 	}
-	
+
 	@Override
-	public void update(IPartialPageRequestHandler handler) {
-		setVisible(room.screenShareAllowed());
-		super.update(handler);
+	protected boolean visible() {
+		return room.screenShareAllowed() && super.visible();
 	}
 }

Copied: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/VideoRightIcon.java (from r1758898, openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/VideoRightIcon.java)
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/VideoRightIcon.java?p2=openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/VideoRightIcon.java&p1=openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/VideoRightIcon.java&r1=1758898&r2=1758899&rev=1758899&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/VideoRightIcon.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/VideoRightIcon.java Fri Sep  2 08:28:19 2016
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.web.room.sidebar.icon;
+package org.apache.openmeetings.web.room.sidebar.icon.right;
 
 import org.apache.openmeetings.db.entity.room.Room.Right;
 import org.apache.openmeetings.web.app.Client;
@@ -28,21 +28,15 @@ public class VideoRightIcon extends Room
 	public VideoRightIcon(String id, Client client, RoomPanel room) {
 		super(id, client, Right.video, room);
 		mainCssClass = "right camera ";
-		setVisible(!room.getRoom().isAudioOnly());
 	}
 
 	@Override
-	protected boolean isClickable() {
-		return self || room.getClient().hasRight(Right.moderator);
-	}
-	
-	@Override
-	protected boolean hasRight() {
-		return false; //FIXME TODO need some flag
-	}
-	
-	@Override
 	protected String getTitle() {
 		return getString(self ? "687" : "683");
 	}
+
+	@Override
+	protected boolean visible() {
+		return !room.getRoom().isAudioOnly() && super.visible();
+	}
 }

Copied: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/WhiteboardRightIcon.java (from r1758898, openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/WhiteboardRightIcon.java)
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/WhiteboardRightIcon.java?p2=openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/WhiteboardRightIcon.java&p1=openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/WhiteboardRightIcon.java&r1=1758898&r2=1758899&rev=1758899&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/WhiteboardRightIcon.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/WhiteboardRightIcon.java Fri Sep  2 08:28:19 2016
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.web.room.sidebar.icon;
+package org.apache.openmeetings.web.room.sidebar.icon.right;
 
 import org.apache.openmeetings.db.entity.room.Room;
 import org.apache.openmeetings.db.entity.room.Room.Right;
@@ -26,12 +26,10 @@ import org.apache.openmeetings.web.room.
 
 public class WhiteboardRightIcon extends RoomRightIcon {
 	private static final long serialVersionUID = 1L;
-	
+
 	public WhiteboardRightIcon(String id, Client client, RoomPanel room) {
 		super(id, client, Right.whiteBoard, room);
 		mainCssClass = "right wb ";
-		Room r = room.getRoom();
-		setVisible(Room.Type.interview != r.getType() && !r.isHidden(RoomElement.Whiteboard));
 	}
 
 	@Override
@@ -44,4 +42,10 @@ public class WhiteboardRightIcon extends
 		}
 		return getString(title);
 	}
+
+	@Override
+	protected boolean visible() {
+		Room r = room.getRoom();
+		return Room.Type.interview != r.getType() && !r.isHidden(RoomElement.Whiteboard) && super.visible();
+	}
 }

Modified: openmeetings/application/trunk/openmeetings-web/src/main/webapp/css/room.css
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/webapp/css/room.css?rev=1758899&r1=1758898&r2=1758899&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/webapp/css/room.css (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/webapp/css/room.css Fri Sep  2 08:28:19 2016
@@ -222,6 +222,9 @@
 .restart.ui-icon {
 	background-image: url(images/arrow_refresh_small.png);
 }
+.settings.ui-icon {
+	background-image: url(images/settings.png);
+}
 .room.sidebar.left .tabs, .room.sidebar.left .tabs #utab, .room.sidebar.left .tabs #ftab {
 	padding: 0;
 }