Revert "Revert "Added Java check to the configuration notifications""
This reverts commit 82545a03f3
.
This commit is contained in:
parent
87151b5513
commit
815be28d0b
@ -451,17 +451,26 @@ DataGrid {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.presentationUploadFileFormatHintBoxStyle, .desktopShareUsingChromeOnMacHintBoxStyle {
|
.presentationUploadFileFormatHintBoxStyle {
|
||||||
backgroundColor: #D4D4D4;
|
backgroundColor: #D4D4D4;
|
||||||
dropShadowEnabled: false;
|
dropShadowEnabled: false;
|
||||||
paddingLeft: 10;
|
paddingLeft: 10;
|
||||||
paddingRight: 10
|
paddingRight: 10
|
||||||
}
|
}
|
||||||
|
|
||||||
.presentationUploadFileFormatHintTextStyle, .desktopShareUsingChromeOnMacHintTextStyle {
|
.presentationUploadFileFormatHintTextStyle {
|
||||||
fontWeight: bold;
|
fontWeight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.desktopShareTextStyle {
|
||||||
|
fontSize: 11;
|
||||||
|
fontWeight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.chromeJavaHelpImage {
|
||||||
|
imageSource: Embed(source='assets/images/chromePluginBlocked.png');
|
||||||
|
}
|
||||||
|
|
||||||
.cameraDisplaySettingsWindowStyle {
|
.cameraDisplaySettingsWindowStyle {
|
||||||
borderColor: #b9babc;
|
borderColor: #b9babc;
|
||||||
borderAlpha: 1;
|
borderAlpha: 1;
|
||||||
|
Binary file not shown.
After Width: | Height: | Size: 7.2 KiB |
@ -105,6 +105,10 @@ bbb.clientstatus.flash.title = Flash Player
|
|||||||
bbb.clientstatus.flash.message = Your Flash Player plugin ({0}) is out-of-date. Recommend updating to the latest version.
|
bbb.clientstatus.flash.message = Your Flash Player plugin ({0}) is out-of-date. Recommend updating to the latest version.
|
||||||
bbb.clientstatus.webrtc.title = Audio
|
bbb.clientstatus.webrtc.title = Audio
|
||||||
bbb.clientstatus.webrtc.message = Recommend using either Firefox or Chrome for better audio.
|
bbb.clientstatus.webrtc.message = Recommend using either Firefox or Chrome for better audio.
|
||||||
|
bbb.clientstatus.java.title = Java
|
||||||
|
bbb.clientstatus.java.notdetected = Java version not detected.
|
||||||
|
bbb.clientstatus.java.notinstalled = You have no Java installed, please click <font color='#0a4a7a'><a href='http://www.java.com/download/' target='_blank'>HERE</a></font> to install the latest Java to use the desktop sharing feature.
|
||||||
|
bbb.clientstatus.java.oldversion = You have an old Java installed, please click <font color='#0a4a7a'><a href='http://www.java.com/download/' target='_blank'>HERE</a></font> to install the latest Java to use the desktop sharing feature.
|
||||||
bbb.window.minimizeBtn.toolTip = Minimize
|
bbb.window.minimizeBtn.toolTip = Minimize
|
||||||
bbb.window.maximizeRestoreBtn.toolTip = Maximize
|
bbb.window.maximizeRestoreBtn.toolTip = Maximize
|
||||||
bbb.window.closeBtn.toolTip = Close
|
bbb.window.closeBtn.toolTip = Close
|
||||||
@ -265,10 +269,9 @@ bbb.desktopPublish.chromeOnMacUnsupportedHint = Desktop sharing is not currently
|
|||||||
bbb.desktopPublish.minimizeBtn.toolTip = Minimize
|
bbb.desktopPublish.minimizeBtn.toolTip = Minimize
|
||||||
bbb.desktopPublish.minimizeBtn.accessibilityName = Minimize the Desktop Sharing Publish Window
|
bbb.desktopPublish.minimizeBtn.accessibilityName = Minimize the Desktop Sharing Publish Window
|
||||||
bbb.desktopPublish.maximizeRestoreBtn.accessibilityName = Maximize the Desktop Sharing Publish Window
|
bbb.desktopPublish.maximizeRestoreBtn.accessibilityName = Maximize the Desktop Sharing Publish Window
|
||||||
bbb.desktopPublish.javaRequiredLabel = Requires Java 7u51 (or later) to run.
|
bbb.desktopPublish.chromeHint.title = Chrome may need your permission.
|
||||||
bbb.desktopPublish.javaTestLinkLabel = Test Java
|
bbb.desktopPublish.chromeHint.message = Select the plug-in icon (upper right-hand corner of Chrome), un-block plug-ins, and then select 'Retry'.
|
||||||
bbb.desktopPublish.javaTestLinkLabel.tooltip = Test Your Java Version
|
bbb.desktopPublish.chromeHint.button = Retry
|
||||||
bbb.desktopPublish.javaTestLinkLabel.tooltip.accessibility = Test Your Java Version
|
|
||||||
bbb.desktopView.title = Desktop Sharing
|
bbb.desktopView.title = Desktop Sharing
|
||||||
bbb.desktopView.fitToWindow = Fit to Window
|
bbb.desktopView.fitToWindow = Fit to Window
|
||||||
bbb.desktopView.actualSize = Display actual size
|
bbb.desktopView.actualSize = Display actual size
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
<language userSelectionEnabled="true" />
|
<language userSelectionEnabled="true" />
|
||||||
<skinning enabled="true" url="http://HOST/client/branding/css/BBBDefault.css.swf" />
|
<skinning enabled="true" url="http://HOST/client/branding/css/BBBDefault.css.swf" />
|
||||||
<shortcutKeys showButton="true" />
|
<shortcutKeys showButton="true" />
|
||||||
<browserVersions chrome="CHROME_VERSION" firefox="FIREFOX_VERSION" flash="FLASH_VERSION" />
|
<browserVersions chrome="CHROME_VERSION" firefox="FIREFOX_VERSION" flash="FLASH_VERSION" java="1.7.0_51" />
|
||||||
<layout showLogButton="false" showVideoLayout="false" showResetLayout="true" defaultLayout="bbb.layout.name.defaultlayout"
|
<layout showLogButton="false" showVideoLayout="false" showResetLayout="true" defaultLayout="bbb.layout.name.defaultlayout"
|
||||||
showToolbar="true" showFooter="true" showMeetingName="true" showHelpButton="true"
|
showToolbar="true" showFooter="true" showMeetingName="true" showHelpButton="true"
|
||||||
showLogoutWindow="true" showLayoutTools="true" showNetworkMonitor="false" confirmLogout="true"
|
showLogoutWindow="true" showLayoutTools="true" showNetworkMonitor="false" confirmLogout="true"
|
||||||
@ -40,7 +40,7 @@
|
|||||||
|
|
||||||
|
|
||||||
<module name="DeskShareModule"
|
<module name="DeskShareModule"
|
||||||
url="http://HOST/client/DeskShareModule.swf?v=4105"
|
url="http://HOST/client/DeskShareModule.swf?v=VERSION"
|
||||||
uri="rtmp://HOST/deskShare"
|
uri="rtmp://HOST/deskShare"
|
||||||
showButton="true"
|
showButton="true"
|
||||||
autoStart="false"
|
autoStart="false"
|
||||||
|
@ -17,9 +17,14 @@
|
|||||||
width: 1px !important;
|
width: 1px !important;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#deployJavaPlugin {
|
||||||
|
display : none;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<script type="text/javascript" src="swfobject/swfobject.js"></script>
|
<script type="text/javascript" src="swfobject/swfobject.js"></script>
|
||||||
|
<script src="lib/deployJava.js?v=VERSION" language="javascript"></script>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
//swfobject.registerObject("BigBlueButton", "11", "expressInstall.swf");
|
//swfobject.registerObject("BigBlueButton", "11", "expressInstall.swf");
|
||||||
var flashvars = {};
|
var flashvars = {};
|
||||||
|
BIN
bigbluebutton-client/resources/prod/bbb-deskshare-applet-0.9.0.jar
Normal file → Executable file
BIN
bigbluebutton-client/resources/prod/bbb-deskshare-applet-0.9.0.jar
Normal file → Executable file
Binary file not shown.
BIN
bigbluebutton-client/resources/prod/bbb-deskshare-applet-unsigned-0.9.0.jar
Normal file → Executable file
BIN
bigbluebutton-client/resources/prod/bbb-deskshare-applet-unsigned-0.9.0.jar
Normal file → Executable file
Binary file not shown.
@ -560,6 +560,13 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BBB.javaAppletLaunched = function() {
|
||||||
|
var swfObj = getSwfObj();
|
||||||
|
if (swfObj) {
|
||||||
|
swfObj.javaAppletLaunched();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Third-party JS apps should use this to query if the BBB SWF file is ready to handle calls.
|
// Third-party JS apps should use this to query if the BBB SWF file is ready to handle calls.
|
||||||
BBB.isSwfClientReady = function() {
|
BBB.isSwfClientReady = function() {
|
||||||
return swfReady;
|
return swfReady;
|
||||||
|
@ -41,7 +41,6 @@ function stopApplet(){
|
|||||||
removeFrame();
|
removeFrame();
|
||||||
}
|
}
|
||||||
|
|
||||||
function checkForJava(){
|
function appletStartupCallback() {
|
||||||
// if (navigator.javaEnabled() || window.navigator.javaEnabled())
|
BBB.javaAppletLaunched();
|
||||||
return 1;
|
|
||||||
}
|
}
|
||||||
|
2
bigbluebutton-client/resources/prod/lib/deployJava.js
Executable file
2
bigbluebutton-client/resources/prod/lib/deployJava.js
Executable file
File diff suppressed because one or more lines are too long
@ -37,6 +37,8 @@ package org.bigbluebutton.main.api
|
|||||||
import org.bigbluebutton.main.model.users.events.KickUserEvent;
|
import org.bigbluebutton.main.model.users.events.KickUserEvent;
|
||||||
import org.bigbluebutton.main.model.users.events.RaiseHandEvent;
|
import org.bigbluebutton.main.model.users.events.RaiseHandEvent;
|
||||||
import org.bigbluebutton.main.model.users.events.RoleChangeEvent;
|
import org.bigbluebutton.main.model.users.events.RoleChangeEvent;
|
||||||
|
import org.bigbluebutton.modules.deskshare.events.DeskshareAppletLaunchedEvent;
|
||||||
|
import org.bigbluebutton.modules.deskshare.utils.JavaCheck;
|
||||||
import org.bigbluebutton.modules.phone.events.AudioSelectionWindowEvent;
|
import org.bigbluebutton.modules.phone.events.AudioSelectionWindowEvent;
|
||||||
import org.bigbluebutton.modules.phone.events.FlashCallConnectedEvent;
|
import org.bigbluebutton.modules.phone.events.FlashCallConnectedEvent;
|
||||||
import org.bigbluebutton.modules.phone.events.FlashCallDisconnectedEvent;
|
import org.bigbluebutton.modules.phone.events.FlashCallDisconnectedEvent;
|
||||||
@ -111,6 +113,7 @@ package org.bigbluebutton.main.api
|
|||||||
ExternalInterface.addCallback("webRTCWebcamRequest", handleWebRTCWebcamRequest);
|
ExternalInterface.addCallback("webRTCWebcamRequest", handleWebRTCWebcamRequest);
|
||||||
ExternalInterface.addCallback("webRTCWebcamRequestSuccess", handleWebRTCWebcamRequestSuccess);
|
ExternalInterface.addCallback("webRTCWebcamRequestSuccess", handleWebRTCWebcamRequestSuccess);
|
||||||
ExternalInterface.addCallback("webRTCWebcamRequestFail", handleWebRTCWebcamRequestFail);
|
ExternalInterface.addCallback("webRTCWebcamRequestFail", handleWebRTCWebcamRequestFail);
|
||||||
|
ExternalInterface.addCallback("javaAppletLaunched", handleJavaAppletLaunched);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Tell out JS counterpart that we are ready.
|
// Tell out JS counterpart that we are ready.
|
||||||
@ -483,5 +486,11 @@ package org.bigbluebutton.main.api
|
|||||||
trace(LOG + "handleWebRTCWebcamRequest: received");
|
trace(LOG + "handleWebRTCWebcamRequest: received");
|
||||||
_dispatcher.dispatchEvent(new WebRTCWebcamRequestEvent(WebRTCWebcamRequestEvent.WEBRTC_WEBCAM_REQUEST));
|
_dispatcher.dispatchEvent(new WebRTCWebcamRequestEvent(WebRTCWebcamRequestEvent.WEBRTC_WEBCAM_REQUEST));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function handleJavaAppletLaunched():void
|
||||||
|
{
|
||||||
|
trace(LOG + "handleJavaAppletLaunched: received");
|
||||||
|
_dispatcher.dispatchEvent(new DeskshareAppletLaunchedEvent(DeskshareAppletLaunchedEvent.APPLET_LAUNCHED));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
titleLbl.text = value.title;
|
titleLbl.text = value.title;
|
||||||
messageTxt.text = value.message;
|
messageTxt.htmlText = value.message;
|
||||||
|
|
||||||
validateNow();
|
validateNow();
|
||||||
}
|
}
|
||||||
|
@ -178,6 +178,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
if (!showFooterOpt) {
|
if (!showFooterOpt) {
|
||||||
footerHeight = 0;
|
footerHeight = 0;
|
||||||
|
controlBar.visible = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -637,8 +638,6 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
|||||||
ls.x = point1.x - (ls.width/2);
|
ls.x = point1.x - (ls.width/2);
|
||||||
ls.y = point1.y - (ls.height/2);
|
ls.y = point1.y - (ls.height/2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
]]>
|
]]>
|
||||||
</mx:Script>
|
</mx:Script>
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
|||||||
click="handleButtonClick();"
|
click="handleButtonClick();"
|
||||||
move="handleMove();"
|
move="handleMove();"
|
||||||
creationComplete="onCreationComplete();"
|
creationComplete="onCreationComplete();"
|
||||||
visible="false">
|
visible="false" includeInLayout="false">
|
||||||
<mate:Listener type="{ClientStatusEvent.SUCCESS_MESSAGE_EVENT}" method="handleSuccessMessageEvent" />
|
<mate:Listener type="{ClientStatusEvent.SUCCESS_MESSAGE_EVENT}" method="handleSuccessMessageEvent" />
|
||||||
<mate:Listener type="{ClientStatusEvent.WARNING_MESSAGE_EVENT}" method="handleWarningMessageEvent" />
|
<mate:Listener type="{ClientStatusEvent.WARNING_MESSAGE_EVENT}" method="handleWarningMessageEvent" />
|
||||||
<mate:Listener type="{ClientStatusEvent.FAIL_MESSAGE_EVENT}" method="handleFailMessageEvent" />
|
<mate:Listener type="{ClientStatusEvent.FAIL_MESSAGE_EVENT}" method="handleFailMessageEvent" />
|
||||||
@ -78,7 +78,8 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
|||||||
}
|
}
|
||||||
|
|
||||||
private function showNotification():void {
|
private function showNotification():void {
|
||||||
visible = true;
|
if (parent.visible) {
|
||||||
|
visible = includeInLayout = true;
|
||||||
|
|
||||||
if (hideTimer.running) hideTimer.reset();
|
if (hideTimer.running) hideTimer.reset();
|
||||||
hideTimer.start()
|
hideTimer.start()
|
||||||
@ -88,6 +89,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
|||||||
handleMove();
|
handleMove();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private function isUniqueMessage(type:String, title:String, message:String):Boolean {
|
private function isUniqueMessage(type:String, title:String, message:String):Boolean {
|
||||||
for (var i:Number=0; i<messages.length; i++) {
|
for (var i:Number=0; i<messages.length; i++) {
|
||||||
|
@ -0,0 +1,14 @@
|
|||||||
|
package org.bigbluebutton.modules.deskshare.events
|
||||||
|
{
|
||||||
|
import flash.events.Event;
|
||||||
|
|
||||||
|
public class DeskshareAppletLaunchedEvent extends Event
|
||||||
|
{
|
||||||
|
public static const APPLET_LAUNCHED:String = "DESKSHARE_APPLET_LAUNCHED_EVENT";
|
||||||
|
|
||||||
|
public function DeskshareAppletLaunchedEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false)
|
||||||
|
{
|
||||||
|
super(type, bubbles, cancelable);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
104
bigbluebutton-client/src/org/bigbluebutton/modules/deskshare/utils/JavaCheck.as
Executable file
104
bigbluebutton-client/src/org/bigbluebutton/modules/deskshare/utils/JavaCheck.as
Executable file
@ -0,0 +1,104 @@
|
|||||||
|
/**
|
||||||
|
* WebMeeting open source conferencing system - http://www.speakserve.org/
|
||||||
|
*
|
||||||
|
* Copyright (c) 2013 SpeakServe Ltd. and by respective authors (see below).
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify it under the
|
||||||
|
* terms of the GNU Lesser General Public License as published by the Free Software
|
||||||
|
* Foundation; either version 3.0 of the License, or (at your option) any later
|
||||||
|
* version.
|
||||||
|
*
|
||||||
|
* WebMeeting is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||||
|
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||||
|
* PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public License along
|
||||||
|
* with WebMeeting; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.bigbluebutton.modules.deskshare.utils
|
||||||
|
{
|
||||||
|
import com.asfusion.mate.events.Dispatcher;
|
||||||
|
|
||||||
|
import flash.external.ExternalInterface;
|
||||||
|
import flash.utils.setTimeout;
|
||||||
|
|
||||||
|
import org.bigbluebutton.core.BBB;
|
||||||
|
import org.bigbluebutton.main.events.ClientStatusEvent;
|
||||||
|
import org.bigbluebutton.util.i18n.ResourceUtil;
|
||||||
|
|
||||||
|
public class JavaCheck {
|
||||||
|
public static function checkJava():String {
|
||||||
|
var dispatcher : Dispatcher = new Dispatcher();
|
||||||
|
var java_version:String = "1.7.0_51";
|
||||||
|
|
||||||
|
var xml:XML = BBB.initConfigManager().config.browserVersions;
|
||||||
|
if (xml.@java != undefined) {
|
||||||
|
java_version = xml.@java.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
var javas : Array = JavaCheck.getJREs();
|
||||||
|
} catch ( e : Error ) {
|
||||||
|
dispatcher.dispatchEvent(new ClientStatusEvent(ClientStatusEvent.FAIL_MESSAGE_EVENT, ResourceUtil.getInstance().getString("bbb.clientstatus.java.title"), ResourceUtil.getInstance().getString("bbb.clientstatus.java.notdetected")));
|
||||||
|
return ResourceUtil.getInstance().getString("bbb.clientstatus.java.notdetected");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (javas.length == 0) {
|
||||||
|
dispatcher.dispatchEvent(new ClientStatusEvent(ClientStatusEvent.FAIL_MESSAGE_EVENT, ResourceUtil.getInstance().getString("bbb.clientstatus.java.title"), ResourceUtil.getInstance().getString("bbb.clientstatus.java.notinstalled")));
|
||||||
|
return ResourceUtil.getInstance().getString("bbb.clientstatus.java.notinstalled");
|
||||||
|
}
|
||||||
|
|
||||||
|
var highestJava : String = javas[0];
|
||||||
|
for each (var java : String in javas) {
|
||||||
|
var highest : Array = highestJava.split(".");
|
||||||
|
var iter : Array = java.split(".");
|
||||||
|
|
||||||
|
if (Number(iter[0]) > Number(highest[0])) {
|
||||||
|
highestJava = java;
|
||||||
|
} else if (Number(iter[0]) == Number(highest[0]) && Number(iter[1]) > Number(highest[1])) {
|
||||||
|
highestJava = java;
|
||||||
|
} else if (Number(iter[0]) == Number(highest[0]) && Number(iter[1]) == Number(highest[1])) {
|
||||||
|
var iterMinor : Number = Number((iter[2] as String).split("_")[1]);
|
||||||
|
var highestMinor : Number = Number((highest[2] as String).split("_")[1]);
|
||||||
|
if (iterMinor > highestMinor)
|
||||||
|
{
|
||||||
|
highestJava = java;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var passedJava : Boolean = true;
|
||||||
|
var required : Array = java_version.split(".");
|
||||||
|
highest = highestJava.split(".");
|
||||||
|
if (Number(required[0]) > Number(highest[0])) {
|
||||||
|
passedJava = false;
|
||||||
|
} else if (Number(required[0]) == Number(highest[0]) && Number(required[1]) > Number(highest[1])) {
|
||||||
|
passedJava = false;
|
||||||
|
} else if (Number(required[0]) == Number(highest[0]) && Number(required[1]) == Number(highest[1])) {
|
||||||
|
var requiredMinor : Number = Number((required[2] as String).split("_")[1]);
|
||||||
|
var highestJavaMinor : Number = Number((highest[2] as String).split("_")[1]);
|
||||||
|
if (requiredMinor > highestJavaMinor)
|
||||||
|
{
|
||||||
|
passedJava = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!passedJava) {
|
||||||
|
dispatcher.dispatchEvent(new ClientStatusEvent(ClientStatusEvent.FAIL_MESSAGE_EVENT, ResourceUtil.getInstance().getString("bbb.clientstatus.java.title"), ResourceUtil.getInstance().getString("bbb.clientstatus.java.oldversion")));
|
||||||
|
return ResourceUtil.getInstance().getString("bbb.clientstatus.java.oldversion");
|
||||||
|
} else {
|
||||||
|
// Java success
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static function getJREs():Array{
|
||||||
|
var installedJREs:Array = ExternalInterface.call("deployJava.getJREs");
|
||||||
|
|
||||||
|
if (installedJREs == null) throw new Error("Javascript files not found.");
|
||||||
|
|
||||||
|
return installedJREs;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -29,7 +29,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
|||||||
initialize="init()"
|
initialize="init()"
|
||||||
creationComplete="onCreationComplete()"
|
creationComplete="onCreationComplete()"
|
||||||
verticalScrollPolicy="off" horizontalScrollPolicy="off"
|
verticalScrollPolicy="off" horizontalScrollPolicy="off"
|
||||||
width="365" height="320"
|
width="365" height="350"
|
||||||
title="{ResourceUtil.getInstance().getString('bbb.desktopPublish.title')}"
|
title="{ResourceUtil.getInstance().getString('bbb.desktopPublish.title')}"
|
||||||
resizable="false">
|
resizable="false">
|
||||||
|
|
||||||
@ -40,7 +40,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
|||||||
<mate:Listener type="{ViewStreamEvent.STOP}" method="closePublishWindow" />
|
<mate:Listener type="{ViewStreamEvent.STOP}" method="closePublishWindow" />
|
||||||
<mate:Listener type="{LocaleChangeEvent.LOCALE_CHANGED}" method="localeChanged" />
|
<mate:Listener type="{LocaleChangeEvent.LOCALE_CHANGED}" method="localeChanged" />
|
||||||
<mate:Listener type="{StopSharingButtonEvent.STOP_SHARING}" method="stopSharingEvent" />
|
<mate:Listener type="{StopSharingButtonEvent.STOP_SHARING}" method="stopSharingEvent" />
|
||||||
|
<mate:Listener type="{DeskshareAppletLaunchedEvent.APPLET_LAUNCHED}" method="handleDeskshareAppletLaunchedEvent" />
|
||||||
<mate:Listener type="{ShortcutEvent.REMOTE_FOCUS_DESKTOP}" method="remoteFocus" />
|
<mate:Listener type="{ShortcutEvent.REMOTE_FOCUS_DESKTOP}" method="remoteFocus" />
|
||||||
|
|
||||||
|
|
||||||
@ -50,7 +50,9 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
import flexlib.mdi.events.MDIWindowEvent;
|
import flexlib.mdi.events.MDIWindowEvent;
|
||||||
import flexlib.scheduling.scheduleClasses.BackgroundItem;
|
import flexlib.scheduling.scheduleClasses.BackgroundItem;
|
||||||
|
|
||||||
import mx.core.UIComponent;
|
import mx.core.UIComponent;
|
||||||
|
|
||||||
import org.bigbluebutton.common.Images;
|
import org.bigbluebutton.common.Images;
|
||||||
import org.bigbluebutton.common.LogUtil;
|
import org.bigbluebutton.common.LogUtil;
|
||||||
import org.bigbluebutton.common.events.LocaleChangeEvent;
|
import org.bigbluebutton.common.events.LocaleChangeEvent;
|
||||||
@ -61,11 +63,13 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
|||||||
import org.bigbluebutton.main.views.MainCanvas;
|
import org.bigbluebutton.main.views.MainCanvas;
|
||||||
import org.bigbluebutton.modules.deskshare.events.AppletStartedEvent;
|
import org.bigbluebutton.modules.deskshare.events.AppletStartedEvent;
|
||||||
import org.bigbluebutton.modules.deskshare.events.CursorEvent;
|
import org.bigbluebutton.modules.deskshare.events.CursorEvent;
|
||||||
|
import org.bigbluebutton.modules.deskshare.events.DeskshareAppletLaunchedEvent;
|
||||||
import org.bigbluebutton.modules.deskshare.events.ShareWindowEvent;
|
import org.bigbluebutton.modules.deskshare.events.ShareWindowEvent;
|
||||||
import org.bigbluebutton.modules.deskshare.events.StopSharingButtonEvent;
|
import org.bigbluebutton.modules.deskshare.events.StopSharingButtonEvent;
|
||||||
import org.bigbluebutton.modules.deskshare.events.StreamEvent;
|
import org.bigbluebutton.modules.deskshare.events.StreamEvent;
|
||||||
import org.bigbluebutton.modules.deskshare.events.ViewStreamEvent;
|
import org.bigbluebutton.modules.deskshare.events.ViewStreamEvent;
|
||||||
import org.bigbluebutton.modules.deskshare.model.DeskshareOptions;
|
import org.bigbluebutton.modules.deskshare.model.DeskshareOptions;
|
||||||
|
import org.bigbluebutton.modules.deskshare.utils.JavaCheck;
|
||||||
import org.bigbluebutton.util.i18n.ResourceUtil;
|
import org.bigbluebutton.util.i18n.ResourceUtil;
|
||||||
|
|
||||||
public static const SCALE:Number = 5;
|
public static const SCALE:Number = 5;
|
||||||
@ -92,6 +96,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
|||||||
private var captureWidth:Number = Capabilities.screenResolutionX;
|
private var captureWidth:Number = Capabilities.screenResolutionX;
|
||||||
private var autoStart:Boolean = false;
|
private var autoStart:Boolean = false;
|
||||||
private var globalDispatcher:Dispatcher = new Dispatcher();
|
private var globalDispatcher:Dispatcher = new Dispatcher();
|
||||||
|
private var javaTimer:Timer;
|
||||||
|
|
||||||
[Bindable] private var cursor:Sprite;
|
[Bindable] private var cursor:Sprite;
|
||||||
[Bindable] private var baseIndex:int;
|
[Bindable] private var baseIndex:int;
|
||||||
@ -109,9 +114,15 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
|||||||
cursor.graphics.lineStyle(6, 0xFF0000, 0.6);
|
cursor.graphics.lineStyle(6, 0xFF0000, 0.6);
|
||||||
cursor.graphics.drawCircle(0,0,3);
|
cursor.graphics.drawCircle(0,0,3);
|
||||||
|
|
||||||
|
var javaIssue:String = JavaCheck.checkJava();
|
||||||
|
|
||||||
if (isUsingLessThanChrome38OnMac()) {
|
if (isUsingLessThanChrome38OnMac()) {
|
||||||
setCurrentState("chromeOnMacWarningState");
|
setCurrentState("chromeOnMacWarningState");
|
||||||
}
|
}
|
||||||
|
else if (javaIssue != null) {
|
||||||
|
setCurrentState("javaIssueWarningState");
|
||||||
|
javaIssueWarningStateLbl.htmlText = javaIssue;
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
setCurrentState("dispFullRegionControlBar");
|
setCurrentState("dispFullRegionControlBar");
|
||||||
}
|
}
|
||||||
@ -168,6 +179,9 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
|||||||
btnFSPublish.enabled = false;
|
btnFSPublish.enabled = false;
|
||||||
btnRegionPublish.enabled = false;
|
btnRegionPublish.enabled = false;
|
||||||
// useSVC2Check.enabled = false;
|
// useSVC2Check.enabled = false;
|
||||||
|
javaTimer = new Timer(3000, 1);
|
||||||
|
javaTimer.addEventListener(TimerEvent.TIMER, onJavaTimer);
|
||||||
|
javaTimer.start();
|
||||||
startSharing(connection, uri, room, fullScreen);
|
startSharing(connection, uri, room, fullScreen);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -203,6 +217,12 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
|||||||
closeWindow();
|
closeWindow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function onJavaTimer(e:TimerEvent):void {
|
||||||
|
var browser:Array = ExternalInterface.call("determineBrowser");
|
||||||
|
if (browser[0] == "Chrome")
|
||||||
|
javaHelpArea.visible = javaHelpArea.includeInLayout = true;
|
||||||
|
}
|
||||||
|
|
||||||
private function onUpdateCursorEvent(event:CursorEvent):void {
|
private function onUpdateCursorEvent(event:CursorEvent):void {
|
||||||
// DO NOT compute the x and y coordinate and assign directly to the cursorImg
|
// DO NOT compute the x and y coordinate and assign directly to the cursorImg
|
||||||
// as it results in a flickering and jerky mouse pointer (ralam jun 10, 2010).
|
// as it results in a flickering and jerky mouse pointer (ralam jun 10, 2010).
|
||||||
@ -322,6 +342,18 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
|||||||
dispatchEvent(new ShareWindowEvent(ShareWindowEvent.CLOSE));
|
dispatchEvent(new ShareWindowEvent(ShareWindowEvent.CLOSE));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function restartJava():void {
|
||||||
|
ExternalInterface.call("stopApplet");
|
||||||
|
shareScreen(sharingFullScreen);
|
||||||
|
}
|
||||||
|
|
||||||
|
private function handleDeskshareAppletLaunchedEvent(e:DeskshareAppletLaunchedEvent):void {
|
||||||
|
if (javaTimer && javaTimer.running) {
|
||||||
|
javaTimer.stop();
|
||||||
|
}
|
||||||
|
javaHelpArea.visible = javaHelpArea.includeInLayout = false;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Override the close handler. We want the Event Map to send a message to
|
* Override the close handler. We want the Event Map to send a message to
|
||||||
* the MDIManager to close this window;
|
* the MDIManager to close this window;
|
||||||
@ -360,25 +392,23 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
|||||||
closeWindow();
|
closeWindow();
|
||||||
}
|
}
|
||||||
|
|
||||||
private function onCheckYourJavaClicked():void {
|
|
||||||
var CHECK_JAVA_URL:String = BBB.initConfigManager().config.javaTest.url;
|
|
||||||
navigateToURL(new URLRequest(CHECK_JAVA_URL));
|
|
||||||
}
|
|
||||||
private function isUsingLessThanChrome38OnMac():Boolean {
|
private function isUsingLessThanChrome38OnMac():Boolean {
|
||||||
var browser:Array = ExternalInterface.call("determineBrowser");
|
var browser:Array = ExternalInterface.call("determineBrowser");
|
||||||
|
return ((browser[0] == "Chrome") && (parseInt(browser[1]) <= 38) && (Capabilities.os.indexOf("Mac") >= 0));
|
||||||
return ((browser[0] == "Chrome")
|
|
||||||
&& (parseInt(browser[1]) <= 38)
|
|
||||||
&& (Capabilities.os.indexOf("Mac") >= 0));
|
|
||||||
}
|
}
|
||||||
]]>
|
]]>
|
||||||
</mx:Script>
|
</mx:Script>
|
||||||
|
|
||||||
<!--http://stackoverflow.com/questions/369120/why-does-mxstates-have-trouble-being-resolved-to-a-component-implementation-->
|
<!--http://stackoverflow.com/questions/369120/why-does-mxstates-have-trouble-being-resolved-to-a-component-implementation-->
|
||||||
|
<mx:VBox id="javaHelpArea" includeInLayout="false" visible="false" height="100%" width="100%" verticalAlign="middle" horizontalAlign="center">
|
||||||
|
<mx:Text width="80%" textAlign="center" styleName="desktopShareTextStyle" text="{ResourceUtil.getInstance().getString('bbb.desktopPublish.chromeHint.title')}" />
|
||||||
|
<mx:Image id="javaHelpImg" styleName="chromeJavaHelpImage" source="{javaHelpImg.getStyle('imageSource')}" />
|
||||||
|
<mx:Text width="80%" textAlign="center" styleName="desktopShareTextStyle" text="{ResourceUtil.getInstance().getString('bbb.desktopPublish.chromeHint.message')}" />
|
||||||
|
<mx:Button label="{ResourceUtil.getInstance().getString('bbb.desktopPublish.chromeHint.button')}" click="restartJava()"/>
|
||||||
|
</mx:VBox>
|
||||||
<dspub:states>
|
<dspub:states>
|
||||||
<mx:State name="dispFullRegionControlBar">
|
<mx:State name="dispFullRegionControlBar">
|
||||||
<mx:AddChild>
|
<mx:AddChild>
|
||||||
|
|
||||||
<mx:ControlBar id="fullRegionBottomBar">
|
<mx:ControlBar id="fullRegionBottomBar">
|
||||||
<mx:VBox width="100%" height="100%" horizontalAlign="center">
|
<mx:VBox width="100%" height="100%" horizontalAlign="center">
|
||||||
<mx:HBox horizontalAlign="center">
|
<mx:HBox horizontalAlign="center">
|
||||||
@ -407,34 +437,22 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
|||||||
tabEnabled="false"/>
|
tabEnabled="false"/>
|
||||||
<mx:Spacer width="100%"/>
|
<mx:Spacer width="100%"/>
|
||||||
</mx:HBox>
|
</mx:HBox>
|
||||||
|
|
||||||
|
|
||||||
<mx:Label id="javaVersionLabel" styleName="javaVersionRequiredLabelStyle" text="{ResourceUtil.getInstance().getString('bbb.desktopPublish.javaRequiredLabel')}"/>
|
|
||||||
<mx:LinkButton id="checkJavaBtn" label="{ResourceUtil.getInstance().getString('bbb.desktopPublish.javaTestLinkLabel')}" click="onCheckYourJavaClicked()" height="22"
|
|
||||||
styleName="testJavaLinkButtonStyle" textDecoration="underline"
|
|
||||||
toolTip="{ResourceUtil.getInstance().getString('bbb.desktopPublish.javaTestLinkLabel.tooltip')}"
|
|
||||||
accessibilityDescription="{ResourceUtil.getInstance().getString('bbb.desktopPublish.javaTestLinkLabel.tooltip.accessibility')}"/>
|
|
||||||
</mx:VBox>
|
</mx:VBox>
|
||||||
</mx:ControlBar>
|
</mx:ControlBar>
|
||||||
</mx:AddChild>
|
</mx:AddChild>
|
||||||
</mx:State>
|
</mx:State>
|
||||||
<mx:State name="chromeOnMacWarningState">
|
<mx:State name="chromeOnMacWarningState">
|
||||||
<mx:AddChild>
|
<mx:AddChild>
|
||||||
<mx:VBox id="chromeOnMacWarningBottomBar" horizontalAlign="center" width="100%" height="100%" verticalAlign="bottom">
|
<mx:VBox height="100%" width="100%" verticalAlign="middle" horizontalAlign="center">
|
||||||
<mx:HBox>
|
<mx:Text id="chromeOnMacWarningLbl" width="80%" textAlign="center" styleName="desktopShareTextStyle"
|
||||||
<mx:Button id="chromeOnMacWarningCloseButton"
|
text="{ResourceUtil.getInstance().getString('bbb.desktopPublish.chromeOnMacUnsupportedHint')}" />
|
||||||
toolTip="{ResourceUtil.getInstance().getString('bbb.desktopPublish.stop.tooltip')}"
|
</mx:VBox>
|
||||||
label="{ResourceUtil.getInstance().getString('bbb.desktopPublish.stop.label')}"
|
</mx:AddChild>
|
||||||
visible="true"
|
</mx:State>
|
||||||
enabled="true"
|
<mx:State name="javaIssueWarningState">
|
||||||
click="stopSharing()"
|
<mx:AddChild>
|
||||||
/>
|
<mx:VBox height="100%" width="100%" verticalAlign="middle" horizontalAlign="center">
|
||||||
<mx:Spacer width="100%"/>
|
<mx:Text id="javaIssueWarningStateLbl" width="80%" textAlign="center" styleName="desktopShareTextStyle" />
|
||||||
</mx:HBox>
|
|
||||||
<mx:HBox horizontalAlign="center" width="300" styleName="desktopShareUsingChromeOnMacHintBoxStyle">
|
|
||||||
<mx:Text id="chromeOnMacWarningLbl" width="100%" textAlign="center" text="{ResourceUtil.getInstance().getString('bbb.desktopPublish.chromeOnMacUnsupportedHint')}"
|
|
||||||
styleName="desktopShareUsingChromeOnMacHintTextStyle" toolTip="{ResourceUtil.getInstance().getString('bbb.desktopPublish.chromeOnMacUnsupportedHint')}" />
|
|
||||||
</mx:HBox>
|
|
||||||
</mx:VBox>
|
</mx:VBox>
|
||||||
</mx:AddChild>
|
</mx:AddChild>
|
||||||
</mx:State>
|
</mx:State>
|
||||||
|
9
deskshare/applet/src/main/java/org/bigbluebutton/deskshare/client/DeskShareApplet.java
Normal file → Executable file
9
deskshare/applet/src/main/java/org/bigbluebutton/deskshare/client/DeskShareApplet.java
Normal file → Executable file
@ -26,6 +26,7 @@ import java.io.IOException;
|
|||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.security.*;
|
import java.security.*;
|
||||||
import java.awt.Image;
|
import java.awt.Image;
|
||||||
|
import netscape.javascript.*;
|
||||||
|
|
||||||
public class DeskShareApplet extends JApplet implements ClientListener {
|
public class DeskShareApplet extends JApplet implements ClientListener {
|
||||||
public static final String NAME = "DESKSHAREAPPLET: ";
|
public static final String NAME = "DESKSHAREAPPLET: ";
|
||||||
@ -94,6 +95,14 @@ public class DeskShareApplet extends JApplet implements ClientListener {
|
|||||||
icon = ImageIO.read(url);
|
icon = ImageIO.read(url);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Callback to JavaScript
|
||||||
|
try {
|
||||||
|
JSObject window = JSObject.getWindow(this);
|
||||||
|
window.call("appletStartupCallback", new Object[]{});
|
||||||
|
} catch (JSException jse) {
|
||||||
|
jse.printStackTrace();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getJavaVersionRuntime() {
|
private String getJavaVersionRuntime() {
|
||||||
|
Loading…
Reference in New Issue
Block a user