blob: 39b894cd704249e111a6ec3bf55435a74ae62fc7 [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>
<class name="baseDrawSave" extends="baseDrawImage" >
<!-- saveing a file to a wml Object -->
<attribute name="savefileName" value="savefileName1" type="string" />
<attribute name="fileData" value="null" />
<attribute name="savefileDataWinRef" value="null" />
<!-- loading a file from a wml Object
<attribute name="loadfileData" value="null" />
<attribute name="loadfileDataIndex" value="0" type="number" />
<attribute name="loadfileDataWinRef" value="null" />
<attribute name="loadObjectTimer" value="null" />
<attribute name="loadmessageId" value="206" type="number" />
<attribute name="syncmessageId" value="207" type="number" />
<attribute name="_loadmessageTxt" value="" type="string" />
<attribute name="_loadingUsers" value="null" />
<attribute name="wmlfileName" value="" type="string" />
<attribute name="wmlroom" value="" type="string" />
<attribute name="wmldomain" value="" type="string" />
<attribute name="wmlspreadNews" value="false" type="boolean" />
<attribute name="wmlLoadingCompleteMessage" value="null" />
<attribute name="synccheckTime" value="1000" type="number" />
-->
<!-- loading all stage objects on init -->
<attribute name="isInitLoader" value="false" type="boolean" />
<!-- Export Image Type -->
<attribute name="exportType" value="svg" type="string" />
<!-- Vars for storing screenshot
removed cause of performance and
no php backend availible anymore -->
<attribute name="MCRef" value="null" />
<attribute name="pixelArray" value="null" />
<attribute name="snap" value="null" />
<attribute name="bpData" value="null" />
<attribute name="MatrixValue" value="null" />
<attribute name="w" value="0" type="number" />
<attribute name="h" value="0" type="number" />
<attribute name="a" value="0" type="number" />
<attribute name="pixel_del" value="$once{ new LzDelegate(this, 'buildPixelArray' )}" />
<attribute name="sendpictureName" value="snapchot.jpg" type="string" />
<attribute name="isSendPartArray" value="true" type="boolean" />
<attribute name="isRecordingLoad" value="false" type="boolean" />
<attribute name="isinitRecordingLoad" value="false" type="boolean" />
<!-- Start and Stop Event will be thrown by the loading process -->
<event name="onwmlloadStart" />
<event name="onwmlloadStop" />
<!-- Images will be send in packages
so timeout is workaround
-->
<attribute name="sendPartURL" value="http://host/createimagefrombitmap.php" type="string" />
<!-- create Image from whole Array
Large Images will not be rendered correctly here cause
there can be a timeout -->
<attribute name="sendURL" value="http://host/createimagefrombitmap.php" type="string" />
<event name="onprogress" />
<method name="catchSnapshot">
<![CDATA[
this.MCRef = this.getDisplayObject();
//Debug.write("this.MCRef: ",this.MCRef);
this.snap = new flash.display.BitmapData(this.width, this.height, false, 0 );
//Matrix to scale the new image
this.MatrixValue = new flash.geom.Matrix();
this.MatrixValue.scale(1, 1);
//Copy video image
this.snap.draw(this.MCRef, this.MatrixValue);
this.bpData = this.snap.getPixels(this.snap.rectangle);
this.w = this.width;
this.h = this.height;
this.a = 0;
this.pixelArray = new Array();
//pixel_del.register(lz.Idle,'onidle');
this.saveAsImage.doCall();
]]>
</method>
<netRemoteCallHib name="saveAsImage" funcname="fileservice.saveAsImage" remotecontext="$once{ canvas.thishib }" >
<netparam><method name="getValue">return parent.parent.bpData;</method></netparam>
<handler name="ondata" args="value">
//Debug.write(" saveAsImage: ",value);
</handler>
</netRemoteCallHib>
<method name="buildPixelArray" args="item">
<![CDATA[
for(var b=0; b<=this.h; b++){
var tmp = this.snap.getPixel(a, b);
this.pixelArray.push(tmp.toString(16));
}
var perc = Math.round((this.a*100)/this.w);
if (this.onprogress) this.onprogress.sendEvent(perc);
this.a++
if(this.a>this.w){
//Finish capturing
if (this.isSendPartArray){
this.sendPHPData(this.pixelArray, this.h, this.w);
} else {
this.sendPHPData(this.pixelArray, this.h, this.w);
}
//free memory
this.snap.dispose();
pixel_del.unregisterAll();
}
]]>
</method>
<method name="sendPHPData" args="pix,pixH,pixW">
//Debug.write("### sendPHPData: ",pix,pixH,pixW);
<![CDATA[
//Create the LoadVars object and pass data to PHP script
var output = new LoadVars();
output.img = pix.toString();
output.height = pixH;
output.width = pixW;
//The page (and this movie itself) should be in a server to work
output.send(this.sendURL, "output", "POST");
]]>
</method>
<!-- saving all object on whiteBoard as wml-file -->
<handler name="sendObject">
if ($debug) Debug.write("sendObject doSave: ",this.baseactionobjectList);
this.fileData = this.baseactionobjectList;
this.savefileDataWinRef = new lz.saveAsWmlWindow(canvas.main_content._content.inner,{
refObj:this});
</handler>
<method name="confirmSaveAsObject" args="fileName" >
this.savefileName = fileName;
this.saveAsObject.doCall();
</method>
<netRemoteCallHib name="saveAsObject" funcname="fileservice.saveAsObject" remotecontext="$once{ canvas.thishib }" >
<netparam><method name="getValue"> return canvas.sessionId; </method></netparam>
<netparam><method name="getValue">return hib.currentroomid;</method></netparam>
<netparam><method name="getValue"> return parent.parent.savefileName; </method></netparam>
<netparam><method name="getValue"> return parent.parent.fileData;</method></netparam>
<handler name="ondata" args="value">
<![CDATA[
if ($debug) Debug.write(" saveAsImage: ",value);
if (value>0){
parent.savefileDataWinRef.close();
canvas.currentFileExplorer.loadFiles();
} else {
new lz.rpcErrorDialog(canvas.main_content._content.inner,{errorid:value});
}
]]>
</handler>
</netRemoteCallHib>
<method name="confirmSaveAsImageTypeExport" args="fileName,type">
this.savefileName = fileName;
this.exportType = type;
this.fileData = this.baseactionobjectList;
this.addPrintList.doCall();
</method>
<method name="confirmSaveAsImageExport" args="fileName">
this.savefileName = fileName;
this.exportType = "svg";
this.fileData = this.baseactionobjectList;
this.addPrintList.doCall();
</method>
<netRemoteCallHib name="addPrintList" funcname="printservice.addPrintList" remotecontext="$once{ canvas.thishib }" >
<netparam><method name="getValue">return canvas.sessionId; </method></netparam>
<!--
<netparam><method name="getValue">return parent.parent.savefileName; </method></netparam>
-->
<netparam><method name="getValue">return parent.parent.fileData;</method></netparam>
<netparam><method name="getValue">return parent.parent.width;</method></netparam>
<netparam><method name="getValue">return parent.parent.height;</method></netparam>
<handler name="ondata" args="value">
<![CDATA[
if ($debug) Debug.write("addPrintList: ",value);
var downloadurl = canvas.getUrl()+'ExportToImage?' +
'fileName=' + parent.savefileName +
'&hash='+value +
'&exportType=' + parent.exportType +
'&sid='+canvas.sessionId;
lz.Browser.loadURL(downloadurl,"_BLANK");
]]>
</handler>
</netRemoteCallHib>
</class>
</library>