src/it/ht/rcs/console/entities/view/EntitiesActionBar.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:editors="it.ht.rcs.console.operations.view.evidences.actionbar.editors.*"
xmlns:actionbar="it.ht.rcs.console.main.actionbar.*"
xmlns:view="it.ht.rcs.console.entities.view.*">
<fx:Declarations>
<s:Parallel id="fadeIn" duration="200">
<s:Fade alphaFrom="0" alphaTo="1"/>
</s:Parallel>
<s:Parallel id="fadeOut" duration="200">
<s:Fade alphaFrom="1" alphaTo="0"/>
</s:Parallel>
</fx:Declarations>
<fx:Metadata>
[Event(name="update", type="flash.events.Event")]
[Event(name="linkAdded", type="flash.events.Event")]
[Event(name="linkUpdated", type="flash.events.Event")]
[Event(name="linkRemoved", type="flash.events.Event")]
[Event(name="entityDeleted", type="flash.events.Event")]
[Event(name="entityCreated", type="flash.events.Event")]
[Event(name="entityUpdated", type="flash.events.Event")]
[Event(name="entityMerged", type="flash.events.Event")]
[Event(name="group", type="flash.events.Event")]
[Event(name="ungroup", type="flash.events.Event")]
[Event(name="expandAll", type="flash.events.Event")]
[Event(name="collapseAll", type="flash.events.Event")]
</fx:Metadata>
<actionbar:states>
<s:State name="linkmap"/>
<s:State name="geomap"/>
<s:State name="list"/>
<s:State name="table"/>
</actionbar:states>
<s:Button label="{R.get('NEW')}"
click="onNewClick()"
enabled="{Console.currentSession.user.is_view_profiles()}"
icon="@Embed('/img/NEW/newEntity.png')"
visible="{LicenseManager.instance.intelligence}"
includeInLayout="{LicenseManager.instance.intelligence}"
includeIn="geomap, linkmap,list, table"/>
<s:Button label="{R.get('EDIT')}"
click="onEditClick()"
enabled="{Console.currentSession.user.is_view_profiles() && selectedObjects.length==1 && selectedObject is Entity && hasEditPermission} "
icon="@Embed('/img/NEW/edit.png')"
includeIn="geomap, linkmap,list, table"/>
<s:Button label="{R.get('DELETE')}"
click="onDeleteClick()"
enabled="{Console.currentSession.user.is_view_profiles() && selectedObjects.length==1 && selectedObject is Entity && selectedObject.type!='target' && hasDeletePermission}"
icon="@Embed('/img/NEW/delete_32.png')"
visible="{LicenseManager.instance.intelligence}"
includeInLayout="{LicenseManager.instance.intelligence}"
includeIn="geomap, linkmap,list, table"/>
<s:Button label="{R.get('EXPORT')}"
icon="@Embed('/img/NEW/export.png')"
visible="{LicenseManager.instance.intelligence}"
click="exportEntity(event)"
includeInLayout="{LicenseManager.instance.intelligence}"
enabled="{Console.currentSession.user.is_view_profiles() && exportEnabled }"
includeIn="geomap, linkmap,list, table"/>
<s:Button label="{R.get('MERGE')}"
enabled="{Console.currentSession.user.is_view_profiles() && mergeEnabled}"
icon="@Embed('/img/NEW/merge32.png')"
visible="{LicenseManager.instance.intelligence}"
includeInLayout="{LicenseManager.instance.intelligence}"
click="onMergeClick()"
includeIn="linkmap"/>
<actionbar:Separator width="20"/>
<s:Button label="{R.get('JUMP_TO_TARGET')}"
click="onJumpClick()"
enabled="{selectedObjects.length==1 && selectedObject.type=='target'}"
icon="@Embed('/img/NEW/jumpToTarget.png')"
includeIn="geomap, linkmap,list, table"/>
<s:Button label="{R.get('JUMP_TO_EVIDENCE')}"
visible="{LicenseManager.instance.intelligence}"
includeInLayout="{LicenseManager.instance.intelligence}"
enabled="{jumpEnabled}"
icon="@Embed('/img/NEW/jumpToEvidence.png')"
click="jumpToEvidence()"
includeIn="linkmap"/>
<actionbar:Separator width="20"/>
<s:VGroup includeIn="linkmap, geomap" horizontalAlign="center" paddingBottom="0" paddingLeft="0" paddingRight="0" paddingTop="0">
<s:HGroup verticalAlign="bottom" paddingBottom="0" paddingTop="0" paddingLeft="0" paddingRight="0" gap="0" buttonMode="true" useHandCursor="true" click="{popup.displayPopUp=true}">
<s:Button label="{R.get('LINK')}"
visible="{LicenseManager.instance.intelligence}"
includeInLayout="{LicenseManager.instance.intelligence}"
enabled="{Console.currentSession.user.is_view_profiles()}"
icon="@Embed('/img/NEW/link32.png')"
click="{popup.displayPopUp=true}"
includeIn="linkmap, geomap"/>
<s:Image source="@Embed('/img/NEW/downArrow.png')"/>
</s:HGroup>
<s:PopUpAnchor id="popup" includeIn="linkmap, geomap">
<s:BorderContainer backgroundAlpha="1" backgroundColor="#E6E9EE" right="0" bottom="0" mouseDownOutside="{popup.displayPopUp=false}" borderColor="0x333333" borderAlpha="0.5" cornerRadius="6" dropShadowVisible="true">
<s:HGroup paddingBottom="4" paddingLeft="4" paddingTop="4" paddingRight="4" horizontalAlign="center" verticalAlign="middle">
<s:Button label="{R.get('LINK_ADD')}"
visible="{LicenseManager.instance.intelligence}"
includeInLayout="{LicenseManager.instance.intelligence}"
enabled="{Console.currentSession.user.is_view_profiles() && this.linkEnabled==true}" iconPlacement="top" skinClass="it.ht.rcs.console.main.actionbar.RCSActionBarButtonSkin"
icon="@Embed('/img/NEW/linkAdd.png')"
click="addLink()"
includeIn="linkmap, geomap" fontWeight="normal"/>
<s:Button label="{R.get('LINK_EDIT')}"
visible="{LicenseManager.instance.intelligence}"
includeInLayout="{LicenseManager.instance.intelligence} "
enabled="{Console.currentSession.user.is_view_profiles() && this.selectedObject && !this.selectedObject.name && this.selectedObject.type!='identity'}"
iconPlacement="top"
skinClass="it.ht.rcs.console.main.actionbar.RCSActionBarButtonSkin"
icon="@Embed('/img/NEW/linkEdit.png')"
click="editLink()"
includeIn="linkmap, geomap"
fontWeight="normal"/>
<s:Button label="{R.get('LINK_REMOVE')}"
visible="{LicenseManager.instance.intelligence}"
includeInLayout="{LicenseManager.instance.intelligence}"
enabled="{Console.currentSession.user.is_view_profiles() && this.selectedObject && !this.selectedObject.name}" iconPlacement="top" skinClass="it.ht.rcs.console.main.actionbar.RCSActionBarButtonSkin"
icon="@Embed('/img/NEW/linkRemove.png')"
click="onDeleteLinkClick()"
includeIn="linkmap, geomap" fontWeight="normal"/>
<editors:TagEditor label="{R.get('RELEVANCE')}"
id="tagEditor"
width="80"
enabled="{Console.currentSession.user.is_view_profiles() && this.selectedObject && !this.selectedObject.name}"
change="updateRelevance(tagEditor.tag)"
tag="{selectedObject.name ? 0: selectedObject.rel}"
includeIn="linkmap, geomap"/>
</s:HGroup>
</s:BorderContainer>
</s:PopUpAnchor>
</s:VGroup>
<actionbar:Separator includeIn="linkmap"
width="20"/>
<s:VGroup includeIn="linkmap" horizontalAlign="center" paddingBottom="0" paddingLeft="0" paddingRight="0" paddingTop="0">
<s:HGroup verticalAlign="bottom" buttonMode="true" useHandCursor="true" click="{groupPopup.displayPopUp=true}">
<s:Button label="{R.get('GROUP')}"
visible="{LicenseManager.instance.intelligence}"
includeInLayout="{LicenseManager.instance.intelligence}"
enabled="{Console.currentSession.user.is_view_profiles() }"
icon="@Embed('/img/NEW/group32.png')"
click="{groupPopup.displayPopUp=true}"
includeIn="linkmap"/>
<s:Image source="@Embed('/img/NEW/downArrow.png')" includeIn="linkmap"/>
</s:HGroup>
<s:PopUpAnchor id="groupPopup" includeIn="linkmap">
<s:BorderContainer backgroundAlpha="1" backgroundColor="#E6E9EE" right="0" bottom="0" mouseDownOutside="{groupPopup.displayPopUp=false}" borderColor="0x333333" borderAlpha="0.5" cornerRadius="6" dropShadowVisible="true">
<s:HGroup paddingBottom="4" paddingLeft="4" paddingTop="4" paddingRight="4" horizontalAlign="center" verticalAlign="middle">
<s:Button label="{R.get('DO_GROUP')}"
visible="{LicenseManager.instance.intelligence}"
includeInLayout="{LicenseManager.instance.intelligence}"
enabled="{Console.currentSession.user.is_view_profiles() && this.groupEnabled}"
icon="@Embed('/img/NEW/dogroup.png')" click="onGroup(event)"
iconPlacement="top" skinClass="it.ht.rcs.console.main.actionbar.RCSActionBarButtonSkin"
includeIn="linkmap"/>
<s:Button label="{R.get('UNGROUP')}"
visible="{LicenseManager.instance.intelligence}"
includeInLayout="{LicenseManager.instance.intelligence}" click="onUngroup(event)"
icon="@Embed('/img/NEW/ungroup.png')" enabled="{Console.currentSession.user.is_view_profiles() && this.ungroupEnabled}"
iconPlacement="top" skinClass="it.ht.rcs.console.main.actionbar.RCSActionBarButtonSkin"
includeIn="linkmap"/>
<s:Button label="{R.get('EXPAND_ALL')}"
visible="{LicenseManager.instance.intelligence}"
includeInLayout="{LicenseManager.instance.intelligence}" click="onExpandAll(event)"
icon="@Embed('/img/NEW/expandAll.png')" enabled="{Console.currentSession.user.is_view_profiles()}"
iconPlacement="top" skinClass="it.ht.rcs.console.main.actionbar.RCSActionBarButtonSkin"
includeIn="linkmap"/>
<s:Button label="{R.get('COLLAPSE_ALL')}"
visible="{LicenseManager.instance.intelligence}"
includeInLayout="{LicenseManager.instance.intelligence}" click="onCollapseAll(event)"
icon="@Embed('/img/NEW/collapseAll.png')" enabled="{Console.currentSession.user.is_view_profiles()}"
iconPlacement="top" skinClass="it.ht.rcs.console.main.actionbar.RCSActionBarButtonSkin"
includeIn="linkmap"/>
</s:HGroup>
</s:BorderContainer>
</s:PopUpAnchor>
</s:VGroup>
<actionbar:Separator includeIn="linkmap"
width="20"/>
<s:Button label="{R.get('EXPORT_GRAPH')}"
icon="@Embed('/img/NEW/exportGraph.png')"
visible="{LicenseManager.instance.intelligence}"
includeInLayout="{LicenseManager.instance.intelligence}"
enabled="{section.stateManager.tableView.length>0}"
click="exportGraph(event)"
includeIn="linkmap"/>
<s:Spacer width="100%"/>
<s:ButtonBar dataProvider="{viewStack}"
requireSelection="true"/>
<s:TextInput id="searchInput"
keyUp="onKeyUp(event)"
removedFromStage="onRemovedFromStage()"
enabled="{currentState=='list' || currentState=='table'}"/>
<fx:Metadata>
[Event(name="update", type="flash.events.Event")]
[Event(name="linkAdded", type="flash.events.Event")]
[Event(name="linkRemoved", type="flash.events.Event")]
[Event(name="entityDeleted", type="flash.events.Event")]
[Event(name="entityCreated", type="flash.events.Event")]
[Event(name="entityUpdated", type="flash.events.Event")]
[Event(name="merge", type="flash.events.Event")]
</fx:Metadata>
<fx:Script>
<![CDATA[
import it.ht.rcs.console.entities.controller.EntityManager;
import it.ht.rcs.console.entities.model.Entity;
import it.ht.rcs.console.entities.model.Link;
import it.ht.rcs.console.entities.model.LinkInfo;
import it.ht.rcs.console.events.SectionEvent;
import it.ht.rcs.console.monitor.controller.LicenseManager;
import it.ht.rcs.console.search.controller.SearchManager;
import it.ht.rcs.console.utils.AlertPopUp;
import locale.R;
import mx.collections.ArrayCollection;
import mx.core.FlexGlobals;
import mx.events.CloseEvent;
import mx.managers.PopUpManager;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
[Bindable]
public var section:EntitiesSection;
[Bindable]
public var selectedEntities:ArrayCollection;
[Bindable]
public var selectedObjects:Vector.<Object>;
[Bindable]
public var mergeEnabled:Boolean;
[Bindable]
public var linkEnabled:Boolean; //Add a link
[Bindable]
public var isLink:Boolean;
[Bindable]
public var jumpEnabled:Boolean; //Jump to evidence
[Bindable]
public var exportEnabled:Boolean; //Export entities
[Bindable]
public var groupEnabled:Boolean; //Jump to evidence
[Bindable]
public var ungroupEnabled:Boolean; //Jump to evidence
private function exportGraph(event:MouseEvent):void
{
var popup:EntityExport=PopUpManager.createPopUp(root, EntityExport, true) as EntityExport;
popup.operation=section.stateManager.selectedOperation;
popup.type="entitygraph";
var ids:Array=[]
for (var i:int=0; i < section.stateManager.tableView.length; i++)
{
var entity:Entity=section.stateManager.tableView.getItemAt(i) as Entity;
ids.push(entity._id)
}
popup.ids=ids
PopUpManager.centerPopUp(popup);
}
private function onNewClick():void
{
var popup:EntityForm=PopUpManager.createPopUp(FlexGlobals.topLevelApplication as DisplayObject, EntityForm, true) as EntityForm;
popup.addEventListener(EntityForm.CLOSE, onEntityAdded)
popup.operation=section.stateManager.selectedOperation;
popup.entity=new Entity(Entity.defaultEntity());
popup.currentState=EntityForm.CREATE;
PopUpManager.centerPopUp(popup);
}
private function onEditClick():void
{
var popup:EntityForm=PopUpManager.createPopUp(FlexGlobals.topLevelApplication as DisplayObject, EntityForm, true) as EntityForm;
popup.addEventListener("update", onUpdate)
popup.entity=selectedObject as Entity;
popup.entity.desc=selectedObject.desc;
popup.currentState=EntityForm.EDIT
PopUpManager.centerPopUp(popup);
}
private function onJumpClick():void
{
var event:SectionEvent=new SectionEvent(SectionEvent.CHANGE_SECTION);
event.section=SectionEvent.OPERATIONS;
event.subsection='target';
var entity:Entity=selectedObject as Entity;
var targetId:String=entity.path[entity.path.length - 1];
event.item=SearchManager.instance.getItem(targetId);
FlexGlobals.topLevelApplication.dispatchEvent(event);
}
private function onUpdate(e:Event):void
{
selectedObject.name=e.currentTarget.entity.name;
selectedObject.desc=e.currentTarget.entity.desc;
dispatchEvent(e)
dispatchEvent(new Event("entityUpdated"));
}
private function onDeleteClick():void
{
AlertPopUp.show(R.get('CONFIRM_ENTITY_DELETION', [selectedObject.name]), R.get('CONFIRM'), AlertPopUp.YES | AlertPopUp.NO, null, function(e:CloseEvent):void
{
if (e.detail == AlertPopUp.YES)
{
EntityManager.instance.removeItem(selectedObject);
section.stateManager.setState("singleOperation")
dispatchEvent(new Event("entityDeleted"));
}
}, null, AlertPopUp.NO);
}
private function onLinkClick():void
{
selectedEntities=new ArrayCollection()
var i:int;
var entity:Entity;
if (this.selectedObjects.length == 0 || this.selectedObjects.length == section.stateManager.view.length) //??
{
for (i=0; i < section.stateManager.view.length; i++)
{
entity=section.stateManager.view.getItemAt(i) as Entity;
selectedEntities.addItem(entity);
}
}
else
{
for (i=0; i < this.selectedObjects.length; i++)
{
entity=selectedObjects[i] as Entity;
selectedEntities.addItem(entity);
}
}
section.stateManager.selectedEntities=selectedEntities;
section.stateManager.setState("links")
}
private function onMapClick():void
{
selectedEntities=new ArrayCollection()
for (var i:int=0; i < section.stateManager.view.length; i++)
{
var entity:Entity=section.stateManager.view.getItemAt(i) as Entity;
selectedEntities.addItem(entity);
}
section.stateManager.selectedEntities=selectedEntities;
section.stateManager.setState("map");
}
private function onRemovedFromStage():void
{
searchInput.text='';
section.stateManager.searchField=searchInput;
section.stateManager.view.refresh();
section.stateManager.tableView.refresh();
}
private function onKeyUp(event:KeyboardEvent):void
{
section.stateManager.searchField=searchInput;
section.stateManager.view.refresh();
section.stateManager.tableView.refresh();
}
private function exportEntity(event:MouseEvent):void
{
var popup:EntityExport=PopUpManager.createPopUp(root, EntityExport, true) as EntityExport;
popup.operation=section.stateManager.selectedOperation;
popup.type="entity";
var ids:Array=[];
for (var i:int=0; i < this.selectedObjects.length; i++)
{
var entity:Entity=selectedObjects[i] as Entity;
ids.push(entity._id);
}
popup.ids=ids;
PopUpManager.centerPopUp(popup);
}
public function jumpToEvidence():void
{
var entity1:Entity=EntityManager.instance.getItem(selectedObject.source);
var entity2:Entity=EntityManager.instance.getItem(selectedObject.target);
var li:LinkInfo=selectedObject.info as LinkInfo;
//getInfo(li)
var temp:Array= li.getPlainList();//selectedObject.info.toString().split(",");
var info:Array=[]
if (entity1.type == "position" || entity2.type == "position")
{
var position:Entity=entity1.type == "position" ? entity1 : entity2;
info.push("lon:" + position.position.longitude + ",lat:" + position.position.latitude + ",r:500")
}
else
{ //really needed???
for (var i:int=0; i <temp.length; i++)
{
info.push(temp[i]);
}
}
var targetId:String;
if (entity1.type == "target" && entity2.type == "target")
{
//open dialog
var popup:TargetSelectionForm=PopUpManager.createPopUp(FlexGlobals.topLevelApplication as DisplayObject, TargetSelectionForm, true) as TargetSelectionForm;
popup.entity1=entity1;
popup.entity2=entity2;
popup.info=info;
popup.addEventListener("targetSelected", onTargetSelection);
PopUpManager.centerPopUp(popup);
return;
}
else if (entity1.type == "target" && entity2.type != "target")
{
targetId=String(entity1.path.getItemAt(entity1.path.length - 1));
}
else if (entity2.type == "target" && entity1.type != "target")
{
targetId=String(entity2.path.getItemAt(entity2.path.length - 1));
}
var event:SectionEvent=new SectionEvent(SectionEvent.CHANGE_SECTION);
event.section=SectionEvent.OPERATIONS;
event.subsection='evidence';
event.item=SearchManager.instance.getItem(targetId);
if (entity1.type == "position" || entity2.type == "position")
event.evidenceTypes=["position", "photo"];
else if (entity1.type == "virtual" || entity2.type == "virtual")
event.evidenceTypes=["url"];
else
event.evidenceTypes=["call", "chat", "message","money"];
event.info=info;
//event.from=getFromTimestamp();
//event.to=getToTimestamp();
event.from=0;
event.to=0; //no filter
FlexGlobals.topLevelApplication.dispatchEvent(event);
}
private function onTargetSelection(e:Event):void
{
var targetId:String=String(e.currentTarget.selectedTarget.path.getItemAt(e.currentTarget.selectedTarget.path.length - 1));
var event:SectionEvent=new SectionEvent(SectionEvent.CHANGE_SECTION);
event.section=SectionEvent.OPERATIONS;
event.subsection='evidence';
event.item=SearchManager.instance.getItem(targetId);
event.evidenceTypes=["call", "chat", "message", "money"];
event.info=e.currentTarget.info;
//event.from=getFromTimestamp();
//event.to=getToTimestamp();
event.from=0;
event.to=0; //no filter
FlexGlobals.topLevelApplication.dispatchEvent(event);
}
private function updateRelevance(value:int):void
{
if (selectedObject != null && !selectedObject.name)
{
selectedObject.rel=value;
/* if(selectedObject is Edge)
{
var currentRenderer:BidirectedArrowEdgeRenderer=selectedObject.vedge.edgeView as BidirectedArrowEdgeRenderer; //TODO REMOCVE
currentRenderer.draw();
}
else
{
trace("update geoview")
} */
var entity1:Entity=EntityManager.instance.getItem(selectedObject.source);
var entity2:Entity=EntityManager.instance.getItem(selectedObject.target);
trace("1: " + entity1.name);
trace("2: " + entity2.name);
//
EntityManager.instance.editLink(entity1._id, entity2._id, selectedObject.type, selectedObject.versus, value, onLinkUpdated, null);
}
}
private function addLink():void
{
var popup:LinkForm=PopUpManager.createPopUp(FlexGlobals.topLevelApplication as DisplayObject, LinkForm, true) as LinkForm;
var entity1:Entity;
var entity2:Entity;
if(selectedObjects[0] is Dictionary) //link view
entity1=EntityManager.instance.getItem(selectedObjects[0].id);
else //geo view
entity1=selectedObjects[0] as Entity;
if(selectedObjects[1] is Dictionary)//link view
entity2=EntityManager.instance.getItem(selectedObjects[1].id);
else //geo view
entity2=selectedObjects[1] as Entity;
if (entity1.type == "position" && (entity2.type == "target" || entity2.type == "person"))
{
popup.entity1=entity2;
popup.entity2=entity1;
popup.versusSelectionEnabled=false;
}
else if (entity2.type == "position" && (entity1.type == "target" || entity1.type == "person"))
{
popup.entity1=entity1;
popup.entity2=entity2;
popup.versusSelectionEnabled=false;
}
else if (entity1.type == "virtual" && (entity2.type == "target" || entity2.type == "person"))
{
popup.entity1=entity2;
popup.entity2=entity1;
popup.versusSelectionEnabled=false;
}
else if (entity2.type == "virtual" && (entity1.type == "target" || entity1.type == "person"))
{
popup.entity1=entity1;
popup.entity2=entity2;
popup.versusSelectionEnabled=false;
}
else
{
popup.entity1=entity1;
popup.entity2=entity2;
popup.versusSelectionEnabled=true;
}
popup.currentState=LinkForm.CREATE;
popup.addEventListener(LinkForm.LINK_ADDED, onLinkAdded)
PopUpManager.centerPopUp(popup);
}
private function onLinkAdded(e:Event):void
{
dispatchEvent(new Event("linkAdded"));
}
private function onLinkUpdated(e:Event):void
{
dispatchEvent(new Event("linkUpdated"));
}
private function onDeleteLinkClick():void
{
AlertPopUp.show('Do you want to remove the selected link ', R.get('CONFIRM'), AlertPopUp.YES | AlertPopUp.NO, null, function(e:CloseEvent):void
{
if (e.detail == AlertPopUp.YES)
{
EntityManager.instance.deleteLink(selectedObject.source, selectedObject.target, onDeleteLinkResult, onFault)
}
}, null, AlertPopUp.NO);
}
private function onDeleteLinkResult(e:ResultEvent):void
{
dispatchEvent(new Event("linkRemoved"))
}
private function onFault(e:FaultEvent):void
{
trace("Fault CallBack");
}
private function editLink():void
{
var popup:LinkForm=PopUpManager.createPopUp(FlexGlobals.topLevelApplication as DisplayObject, LinkForm, true) as LinkForm;
var entity1:Entity=EntityManager.instance.getItem(selectedObject.source);
var entity2:Entity=EntityManager.instance.getItem(selectedObject.target);
var versus:String=selectedObject.versus //== "both" ? "both" : "out";
var type:String=selectedObject.type;
var relevance:int=selectedObject.rel;
popup.entity1=entity1;
popup.entity2=entity2;
popup.versus=versus;
popup.type=type;
popup.rel=relevance;
if (entity1.type == "position" && (entity2.type == "target" || entity2.type == "person"))
{
popup.versusSelectionEnabled=false;
}
else if (entity2.type == "position" && (entity1.type == "target" || entity1.type == "person"))
{
popup.versusSelectionEnabled=false;
}
else
{
popup.versusSelectionEnabled=true;
}
popup.currentState=LinkForm.EDIT;
popup.addEventListener(LinkForm.LINK_ADDED, onLinkUpdated)
PopUpManager.centerPopUp(popup);
}
private function onMergeClick():void
{
var entity1:Entity=EntityManager.instance.getItem(selectedObjects[0]._id);
var entity2:Entity=EntityManager.instance.getItem(selectedObjects[1]._id);
var msg:String;
if (entity1.type == "person" && entity2.type == "target")
{
msg='Merge ' + entity2.name + ' with ' + entity1.name + '?'
}
else
{
msg='Merge ' + entity1.name + ' with ' + entity2.name + '?'
}
AlertPopUp.show(msg, R.get('CONFIRM'), AlertPopUp.YES | AlertPopUp.NO, null, function(e:CloseEvent):void
{
if (e.detail == AlertPopUp.YES)
{
merge()
}
}, null, AlertPopUp.NO);
}
private function merge():void
{
var entity1:Entity=EntityManager.instance.getItem(selectedObjects[0]._id);
var entity2:Entity=EntityManager.instance.getItem(selectedObjects[1]._id);
if (entity1.type == "person" && entity2.type == "target")
{
EntityManager.instance.merge(entity2, entity1, onMergeResult, onFault)
}
else
{
EntityManager.instance.merge(entity1, entity2, onMergeResult, onFault)
}
}
private function onMergeResult(e:ResultEvent):void
{
dispatchEvent(new Event("entityMerged"));
}
private function onEntityAdded(e:Event):void
{
dispatchEvent(new Event("entityCreated"));
}
protected function onGroup(event:MouseEvent):void
{
dispatchEvent(new Event("group"));
groupPopup.displayPopUp=false
}
protected function onUngroup(event:MouseEvent):void
{
dispatchEvent(new Event("ungroup"));
groupPopup.displayPopUp=false
}
protected function onExpandAll(event:MouseEvent):void
{
dispatchEvent(new Event("expandAll"));
groupPopup.displayPopUp=false
}
protected function onCollapseAll(event:MouseEvent):void
{
dispatchEvent(new Event("collapseAll"));
groupPopup.displayPopUp=false
}
private function get hasEditPermission():Boolean
{
if(selectedObject.type=="group" && selectedObject.stand_for && !SearchManager.instance.getItem(selectedObject.stand_for))
return false;
return true;
}
private function get hasDeletePermission():Boolean
{
if(selectedObject.type=="group" && selectedObject.stand_for)
return false;
return true;
}
]]>
</fx:Script>
</actionbar:ActionBar>