src/it/ht/rcs/console/accounting/view/users/PrivsPreferencePanel.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.*"
xmlns:renderers="it.ht.rcs.console.accounting.view.users.renderers.*"
xmlns:users="it.ht.rcs.console.accounting.view.users.*"
creationComplete="init()"
save="save()"
width="400"
height="720"
title="{R.get('ADVANCED_PERMISSIONS')}">
<fx:Script>
<![CDATA[
import com.hurlant.util.der.OID;
import it.ht.rcs.console.accounting.model.User;
import it.ht.rcs.console.events.SaveEvent;
import it.ht.rcs.console.events.TreeEvent;
import locale.R;
import mx.collections.ArrayCollection;
[Bindable]
public var user:User;
[Bindable]
public var newPreferences:ArrayCollection;
[Bindable]
public var permissionsXML:XMLList;
protected function init():void
{
trPermissions.addEventListener("itemChange", onItemChange);
trPermissions.addEventListener("childItemChange", onChildItemChange);
callLater(expandTree)
}
private function expandTree():void
{
trPermissions.expandChildrenOf(permissionsXML[0], true);
trPermissions.expandChildrenOf(permissionsXML[1], true);
trPermissions.expandChildrenOf(permissionsXML[2], true);
trPermissions.expandChildrenOf(permissionsXML[3], true);
}
private function onItemChange(e:TreeEvent):void
{
for each (var element:* in permissionsXML)
{
if (String(element.@id) == String(e.data.@id))
{
for each (var node:* in element..permission)
{
if (element.@selected == "0")
{
node.@selected="0"
}
else if (element.@selected == "1")
{
if (node.@default == "1")
{
node.@selected="1"
}
else
{
node.@selected="0"
}
}
}
}
}
}
private function onChildItemChange(e:TreeEvent):void
{
var allUnselected:Boolean=true;
for each (var element:* in permissionsXML)
{
allUnselected=true;
for each (var node:* in element..permission)
{
if (node.@selected == "1")
{
allUnselected=false;
element.@selected="1"
}
}
if (allUnselected)
{
element.@selected="0"
}
}
}
private function save():void
{
}
]]>
</fx:Script>
<users:PrivsTree id="trPermissions"
left="10"
top="10"
bottom="10"
width="380"
itemRenderer="it.ht.rcs.console.accounting.view.users.renderers.PermissionsTreeItemRenderer"
showRoot="false"
paddingTop="1"
labelField="@desc"
folderClosedIcon="{null}"
folderOpenIcon="{null}"
defaultLeafIcon="{null}"
mouseEnabled="false"
verticalScrollPolicy="auto"
height="100%"
dataProvider="{permissionsXML}"
user="{user}"/>
</utils:TitleWindowSaveCancel>