src/it/ht/rcs/console/system/view/nia/RulesActionBar.mxml
<?xml version="1.0" encoding="utf-8"?>
<actionbar:ActionBar 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:actionbar="it.ht.rcs.console.main.actionbar.*">
<s:Button label="{R.get('RULE_ADD')}" click="addRule()" enabled="{Console.currentSession.user.is_tech_ni_rules() && selectedInjector != null}"
icon="@Embed('/img/NEW/newRule.png')"/>
<s:Button label="{R.get('RULE_DUPLICATE')}" click="duplicateRule()" enabled="{Console.currentSession.user.is_tech_ni_rules() && selectedInjector != null && selectedRule != null}"
icon="@Embed('/img/NEW/duplicateRule.png')"/>
<s:Button label="{R.get('EDIT')}" click="editRule()" enabled="{Console.currentSession.user.is_tech_ni_rules() && selectedRule != null}"
icon="@Embed('/img/NEW/edit.png')"/>
<s:Button label="{R.get('DELETE')}" click="deleteRule()" enabled="{Console.currentSession.user.is_tech_ni_rules() && selectedRule != null}"
icon="@Embed('/img/NEW/delete_32.png')"/>
<actionbar:Separator/>
<s:Button label="{R.get('APPLY_RULES')}" click="applyRules()" enabled="{Console.currentSession.user.is_tech_ni_rules()}"
icon="@Embed('/img/NEW/confirm.png')"/>
<fx:Script>
<![CDATA[
import it.ht.rcs.console.network.model.Injector;
import it.ht.rcs.console.network.model.InjectorRule;
import it.ht.rcs.console.task.controller.DownloadManager;
import it.ht.rcs.console.utils.AlertPopUp;
import locale.R;
import mx.events.CloseEvent;
import mx.managers.PopUpManager;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
[Bindable]
public var selectedInjector:Injector;
[Bindable]
public var selectedRule:InjectorRule;
private function addRule():void
{
var popup:RuleForm = PopUpManager.createPopUp(root, RuleForm, true) as RuleForm;
popup.mode = 'create';
popup.injector = selectedInjector;
PopUpManager.centerPopUp(popup);
}
private function editRule():void
{
var popup:RuleForm = PopUpManager.createPopUp(this.parentDocument as DisplayObject, RuleForm, true) as RuleForm;
popup.mode = 'edit';
popup.injector = selectedInjector;
popup.rule = selectedRule;
PopUpManager.centerPopUp(popup);
}
private function duplicateRule():void
{
var popup:RuleForm = PopUpManager.createPopUp(this.parentDocument as DisplayObject, RuleForm, true) as RuleForm;
popup.mode = 'duplicate';
popup.injector = selectedInjector;
popup.rule = new InjectorRule(selectedRule);
PopUpManager.centerPopUp(popup);
}
private function deleteRule():void
{
AlertPopUp.show(R.get('CONFIRM_RULE_DELETION'),
R.get('CONFIRM'),
AlertPopUp.YES | AlertPopUp.NO,
null,
function(e:CloseEvent):void {
if (e.detail == AlertPopUp.YES)
selectedInjector.rules.removeItemAt(selectedInjector.rules.getItemIndex(selectedRule));
},
null, AlertPopUp.NO);
}
private function applyRules():void
{
DownloadManager.instance.createTask("injector", null, {injector_id: selectedInjector._id}, onSuccess, onFailure);
}
private function onSuccess(e:ResultEvent):void
{
}
private function onFailure(e:FaultEvent):void
{
}
]]>
</fx:Script>
</actionbar:ActionBar>