1 package net.systemeD.potlatch2.mapfeatures.editors {
3 import net.systemeD.halcyon.connection.*;
4 import net.systemeD.potlatch2.mapfeatures.*;
5 import flash.display.*;
7 public class RelationMemberEditorFactory extends EditorFactory {
8 private var _relationTags:Object;
9 private var _role:String;
11 public function RelationMemberEditorFactory(inputXML:XML) {
14 for each(var match:XML in inputXML.match) {
15 _relationTags[match.@k] = match.@v;
17 for each(var role:XML in inputXML.role) {
22 public function get relationTags():Object {
26 public function get role():String {
30 override public function areTagsMatching(entity:Entity):Boolean {
31 var parentRelations:Array = entity.parentRelations;
32 if ( parentRelations.length == 0 )
35 // get relations for the entity
36 for each(var relation:Relation in parentRelations) {
37 var match:Boolean=true;
38 for ( var k:String in _relationTags ) {
39 var relVal:String = relation.getTag(k);
40 if ( relVal != _relationTags[k] ) { match=false; break; }
41 if ( _role && !relation.hasMemberInRole(entity,_role) ) { match=false; break; }
43 if (match) { return true; }
48 override public function createEditorInstance(entity:Entity):DisplayObject {
49 var editor:RelationMemberEditor = createRelationMemberEditor();
50 editor.factory = this;
51 editor.entity = entity;
55 protected function createRelationMemberEditor():RelationMemberEditor {