route=hiking } PopUpManager.addPopUp(this, Application(FlexGlobals.topLevelApplication), true); PopUpManager.centerPopUp(this); var titles:Array = []; relationList = conn.getMatchingRelationIDs(t); if (relationList.length == 0) { warning.text = "No relations available"; } else { warning.text = "These relations are available:"; } //relationSelector.dataProvider = relationList; for each (var id:Number in relationList) { var relation:Relation = conn.getRelation(id); titles.push({label:relation.getDescription(), relId:id}); } titles.sortOn('label'); titles.forEach(function(item:Object, index:int, arr:Array):void { arr[index].label=item.relId+": "+item.label; }); relationSelector.dataProvider = titles; } public function updateEntityAndClose():void { var undo:CompositeUndoableAction = new CompositeUndoableAction("Add to relation"); for each (var relObject:Object in relationSelector.selectedItems) { var relation:Relation = conn.getRelation(relObject.relId); if (entity is EntityCollection) { for each (var e:Entity in EntityCollection(entity).entities) { if (relation.findEntityMemberIndex(e)==-1) { relation.appendMember(new RelationMember(e, ''), undo.push); } } } else { relation.appendMember(new RelationMember(entity, ''), undo.push); } } MainUndoStack.getGlobalStack().addAction(undo); PopUpManager.removePopUp(this); } public function closeAndNewRelation():void { var members:Array=[]; if (entity is EntityCollection) { for each (var e:Entity in EntityCollection(entity).entities) { members.push(new RelationMember(e, '')); } } else members.push(new RelationMember(entity, '')); var relation:Relation = conn.createRelation(defaulttags, members, MainUndoStack.getGlobalStack().addAction); PopUpManager.removePopUp(this); var panel:RelationEditorPanel = RelationEditorPanel( PopUpManager.createPopUp(Application(FlexGlobals.topLevelApplication), RelationEditorPanel, true)); panel.setRelation(relation); PopUpManager.centerPopUp(panel); } public function closeAndLoadRelation():void { PopUpManager.removePopUp(this); var panel:RelationLoaderPanel = RelationLoaderPanel( PopUpManager.createPopUp(Application(FlexGlobals.topLevelApplication), RelationLoaderPanel, true)); panel.setEntity(entity); PopUpManager.centerPopUp(panel); } public function updateSelectButton():void { selectButton.enabled=relationSelector.selectedItems.length>0; } ]]>