1 <?xml version="1.0" encoding="utf-8"?>
3 xmlns:fx="http://ns.adobe.com/mxml/2009"
4 xmlns:mx="library://ns.adobe.com/flex/mx"
5 xmlns:potlatch2="net.systemeD.potlatch2.*"
6 title="Load Relation" width="350" height="160"
7 creationComplete="requestedID.setFocus()"
8 showCloseButton="true" close="PopUpManager.removePopUp(this);">
10 <mx:HBox paddingLeft="3" paddingTop="4">
11 <mx:Label text="Relation ID: " />
12 <mx:TextInput id="requestedID" restrict="0-9" />
15 <mx:Spacer width="100%"/>
16 <mx:Button label="Load" click="loadRelation();" styleName="titleWindowButton" />
19 import net.systemeD.halcyon.*;
20 import net.systemeD.halcyon.connection.*;
21 import net.systemeD.potlatch2.*;
22 import mx.managers.PopUpManager;
24 private var entity:Entity;
25 private var connection:Connection;
26 private var relid:Number;
28 public function setEntity(e:Entity):void {
30 connection=e.connection;
33 private function loadRelation():void {
34 relid = Number(requestedID.text);
35 PopUpManager.removePopUp(this);
38 if (connection.getRelation(relid)) {
41 connection.loadEntityByID("relation",relid);
42 connection.addEventListener(Connection.LOAD_COMPLETED, relationLoaded);
46 private function relationLoaded(event:Event):void {
47 var relation:Relation = connection.getRelation(relid);
48 connection.removeEventListener(Connection.LOAD_COMPLETED, relationLoaded);
49 if (!relation) return;
51 var undo:CompositeUndoableAction = new CompositeUndoableAction("Add to relation");
52 if (entity is EntityCollection) {
53 for each (var e:Entity in EntityCollection(entity).entities) {
54 if (relation.findEntityMemberIndex(e)==-1) {
55 relation.appendMember(new RelationMember(e, ''), undo.push);
59 relation.appendMember(new RelationMember(entity, ''), undo.push);
61 MainUndoStack.getGlobalStack().addAction(undo);