blob: 441b6b3fcd61f9ebdb263a760548a63907c4b592 [file] [log] [blame]
<?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.
-->
<library>
<!--- TODO:
inprement of history feature
add resize feature to labelExplorerBox component
-->
<!--
<include href="extensions/html.lzx"/>
-->
<class name="browserButton" extends="view" width="22" height="22">
<attribute name="enabled" value="true" type="boolean" />
<handler name="onenabled" args="o">
this.enabled = o;
if (o) {
this.setAttribute("opacity",1);
} else {
this.setAttribute("opacity",0.5);
}
</handler>
</class>
<class name="conferenceBrowser" extends="labelExplorerBox" labelid="749"
x="200" closable="false" resizeable="true">
<!--
this attribute is true if the user has opened the browser on its own
if the browser is opened by a Remote-Call, the user will get the Web-Site
notifications from the Moderator(s)
-->
<attribute name="initedByUser" value="true" type="boolean" />
<attribute name="initURL" value="" type="string" />
<attribute name="callBackJSDelegate" value="null" />
<attribute name="browserhistoryPre" value="null" />
<attribute name="browserhistoryPost" value="null" />
<handler name="oninit">
<![CDATA[
this.browserhistoryPre = new Array();
this.browserhistoryPost = new Array();
this.updateIcons();
canvas.conferenceBrowserIsinited = true;
this.callBackJSDelegate = new LzDelegate(this, "updatedURLValues");
var os = lz.Browser.getOS();
//We have to detect Firefox, unfortunately it does not work for
//Windows with Firefox see: http://jira.openlaszlo.org/jira/browse/LPP-8525
if ($debug) Debug.write("os ::",os.indexOf('Win'),os);
//To test this you have to run the application with the index.jsp wrapper that
//contains the browser-detection code
if (false && os.indexOf("Win") >= 0) {
if ($debug) Debug.write("os :: version isWindows check for Firefox Bug ",os,version);
getBrowserLang(this);
}
if (canvas.ismoderator) {
this._navigation._inner._showBar.setAttribute('started', true);
}
//see attribute definition for docs
if (this.initedByUser) {
this._navigation._inner.browser.navigation.url.setAttribute("text","http://www.google.com");
this._navigation._inner.browser.navigation.readStart.setURL();
this.sendBrowserMessageToMembers.objMessage = new Array();
this.sendBrowserMessageToMembers.objMessage[0] = "initBrowser";
this.sendBrowserMessageToMembers.objMessage[1] = this._navigation._inner.browser.navigation.url.text;
this.sendBrowserMessageToMembers.doCall();
} else {
this._navigation._inner.browser.navigation.url.setAttribute("text",this.initURL);
this._navigation._inner.browser.navigation.readStart.setURL();
}
]]>
</handler>
<method name="callback" args="returnValue">
<![CDATA[
if ($debug) Debug.write("getBrowserInfo callback ",returnValue);
if (returnValue.indexOf("Firefox") >= 0) {
this.setAttribute("y",160);
new lz.labelerrorPopup(canvas,{y:0,errorlabelid:750});
}
]]>
</method>
<method name="newBrowserURL" args="newURL">
this._navigation._inner.browser.navigation.url.setAttribute("text",newURL);
this._navigation._inner.browser.navigation.readStart.setURL();
</method>
<method name="updatedURLValues" args="returnValue">
if ($debug) Debug.write("updatedURLValues ",returnValue);
</method>
<method name="getIFrameLocation">
<![CDATA[
//function callbackIFrameLocation(returnValue) {
// if ($debug) Debug.write("callbackIFrameLocation ",returnValue);
//}
//lz.Browser.callJS("getiFrameOMSource",callbackIFrameLocation, "__lz0");
this.htmlviewer.callJavascript("window.location.href",this.callBackJSDelegate);
]]>
</method>
<netRemoteCallHib name="sendBrowserMessageToMembers" funcname="sendBrowserMessageToMembers"
remotecontext="$once{ canvas.thishib }" >
<attribute name="objMessage" value="null" />
<netparam name="vars"><method name="getValue">return parent.objMessage;</method></netparam>
<handler name="ondata" args="value">
<![CDATA[
//The onResult-Handler will be called be the rtmpconnection
if ($debug) Debug.write("getValue : ",value);
if (this.objMessage[0] == "closeBrowserURL") {
parent.close();
}
]]>
</handler>
</netRemoteCallHib>
<handler name="onismoderator" reference="canvas" args="m">
if ($debug) Debug.write("###### ismoderator ",m);
<![CDATA[
//this.isMod = canvas.getIsModeratorByPublicSID(this.refObj.publicSID);
if (m) {
this._navigation._inner._showBar.setAttribute('started', true);
} else {
this._navigation._inner.setAttribute("y",-40);
}
//throw a onx/y event to
this.setAttribute("y",this.y);
]]>
</handler>
<method name="addLocalHistoryPre" args="url">
this.browserhistoryPre.push(url);
this.updateIcons();
</method>
<method name="addLocalHistoryPost" args="url">
this.browserhistoryPost.push(url);
this.updateIcons();
</method>
<method name="updateIcons">
<![CDATA[
if (this.browserhistoryPre.length > 1) {
this._navigation._inner.browser.navigation._pre.setAttribute("enabled",true);
} else {
this._navigation._inner.browser.navigation._pre.setAttribute("enabled",false);
}
if (this.browserhistoryPost.length > 0) {
this._navigation._inner.browser.navigation._post.setAttribute("enabled",true);
} else {
this._navigation._inner.browser.navigation._post.setAttribute("enabled",false);
}
]]>
</method>
<method name="doPreItem">
<![CDATA[
if (this.browserhistoryPre.length > 1) {
if ($debug) Debug.write("doPreItem 1 ",this.browserhistoryPre.length);
var lastItem = this.browserhistoryPre[this.browserhistoryPre.length-2];
var nextItem = this.browserhistoryPre[this.browserhistoryPre.length-1];
if ($debug) Debug.write("doPreItem 2 ",lastItem);
this.browserhistoryPost.push(nextItem);
this.browserhistoryPre.splice(this.browserhistoryPre.length-2,1);
if ($debug) Debug.write("doPreItem 3 ",this.browserhistoryPre.length);
this._navigation._inner.browser.navigation.url.setAttribute("text",lastItem);
this._navigation._inner.browser.navigation.readStart.setURLWithoutEvent();
this.updateIcons();
return lastItem;
}
]]>
</method>
<method name="doPostItem">
<![CDATA[
if (this.browserhistoryPost.length > 0) {
var lastItem = this.browserhistoryPost[this.browserhistoryPost.length-1];
this.browserhistoryPost.splice(this.browserhistoryPost.length-1,1);
this.browserhistoryPre.push(lastItem);
this._navigation._inner.browser.navigation.url.setAttribute("text",lastItem);
this._navigation._inner.browser.navigation.readStart.setURLWithoutEvent();
this.updateIcons();
return lastItem;
}
]]>
</method>
<method name="doClose">
if (canvas.ismoderator) {
this.sendBrowserMessageToMembers.objMessage = new Array();
this.sendBrowserMessageToMembers.objMessage[0] = "closeBrowserURL";
this.sendBrowserMessageToMembers.doCall();
}
</method>
<handler name="onclose">
canvas.conferenceBrowserIsinited = false;
this.htmlviewer.setVisible(false);
</handler>
<!--
Broadcast Message to all user
-->
<view name="_navigation" clip="true" y="22" height="38" width="${ parent.width }" >
<view name="_inner" y="-40">
<animator name="_showBar" attribute="y" to="0" duration="750" started="false">
<handler name="onstop">
lz.Focus.setFocus(parent.browser.navigation.url,true);
</handler>
</animator>
<!-- enabled="false" -->
<view name="browser" height="28" bgcolor="0xEEEEEE" x="1" >
<view name="navigation" layout="axis:x;spacing:1;inset:1">
<browserButton name="_pre" resource="./resources/pre.png" y="2">
<handler name="onclick">
if ($debug) Debug.write("PRE");
parent.parent.parent.parent.parent.doPreItem();
</handler>
<labelTooltip labelid="751" />
</browserButton>
<browserButton name="_post" resource="./resources/next.png" y="2" enabled="false">
<handler name="onclick">
if ($debug) Debug.write("NEXT");
parent.parent.parent.parent.parent.doPostItem();
</handler>
<labelTooltip labelid="752" />
</browserButton>
<browserButton resource="./resources/refresh.png" y="2">
<handler name="onclick">
if ($debug) Debug.write("RELOAD");
parent.readStart.sendURL();
</handler>
<labelTooltip labelid="753" />
</browserButton>
<browserButton resource="./resources/home.png" y="2">
<handler name="onclick">
if ($debug) Debug.write("HOME");
parent.url.setAttribute("text","http://www.google.com");
parent.readStart.sendURL();
</handler>
<labelTooltip labelid="754" />
</browserButton>
<edittext name="url" width="${classroot.width- (5*22) - 8}">
<handler name="onkeyup" args="key">
if ((key == 27) || (key == 13)) {
this.parent.readStart.onclick.sendEvent();
}
</handler>
</edittext>
<browserButton name="readStart" resource="./resources/run.png"
y="2">
<handler name="onclick">
this.sendURL();
</handler>
<method name="sendURL">
this.setURL();
parent.parent.parent.parent.parent.sendBrowserMessageToMembers.objMessage = new Array();
parent.parent.parent.parent.parent.sendBrowserMessageToMembers.objMessage[0] = "newBrowserURL";
parent.parent.parent.parent.parent.sendBrowserMessageToMembers.objMessage[1] = parent.url.text;
parent.parent.parent.parent.parent.sendBrowserMessageToMembers.doCall();
</method>
<method name="setURL">
<![CDATA[
var url = parent.url.getText();
if ((url.indexOf("http://") < 0)
&& (url.indexOf("https://") < 0)) {
url = "http://" + url;
}
parent.parent.parent.parent.parent.htmlviewer.ignoreNextEvent = true;
parent.parent.parent.parent.parent.htmlviewer.setAttribute("src",url);
parent.parent.parent.parent.parent.htmlviewer.setAttribute("visible",true);
parent.parent.parent.parent.parent.addLocalHistoryPre(url);
parent.url.setAttribute('text', url);
]]>
</method>
<method name="setURLWithoutEvent">
<![CDATA[
var url = parent.url.getText();
if ((url.indexOf("http://") < 0)
&& (url.indexOf("https://") < 0)) {
url = "http://" + url;
}
parent.parent.parent.parent.parent.htmlviewer.ignoreNextEvent = true;
parent.parent.parent.parent.parent.htmlviewer.setAttribute("src",url);
parent.parent.parent.parent.parent.htmlviewer.setAttribute("visible",true);
parent.url.setAttribute('text', url);
]]>
</method>
</browserButton>
</view>
<view x="0" resource="./resources/browser_sub_cit.swf"
width="${ parent.parent.parent.parent.width-2 }" stretches="width" y="28" />
</view>
</view>
</view>
<html name="htmlviewer" x="4" y="${ (canvas.ismoderator) ? 60 : 22 }" width="${ parent.width-8 }"
height="${ (canvas.ismoderator) ? (parent.height - 90) : (parent.height-52) }" >
<attribute name="ignoreNextEvent" value="false" type="boolean" />
<handler name="onloading" args="loading">
<![CDATA[
this.loading = loading;
if ($debug) Debug.write("LOADING 1 ",loading,this.src);
if ($debug) Debug.write("LOADING 2 ",loading,this);
if (canvas.ismoderator) {
if (!loading && !this.ignoreNextEvent) {
parent.getIFrameLocation();
//parent.sendBrowserMessageToMembers.objMessage = new Object();
//parent.sendBrowserMessageToMembers.objMessage[0] = "newBrowserURL";
//parent.sendBrowserMessageToMembers.objMessage[1] = this.src;
//parent.sendBrowserMessageToMembers.doCall();
}
}
if (!loading) {
this.ignoreNextEvent = false;
}
]]>
</handler>
<handler name="onsrc" args="src">
this.src = src;
//if ($debug) Debug.write("SRC ",src);
</handler>
</html>
<labelText labelid="1006" y="${ parent.height-22 }" x="2"
visibility="${ (canvas.ismoderator) ? 'visible' : 'hidden' }" />
<simpleLabelButton labelid="61" width="100"
visibility="${ (canvas.ismoderator) ? 'visible' : 'hidden' }"
x="${ parent.width-105 }" y="${ parent.height-24 }"
onclick="this.parent.doClose();" />
</class>
</library>