Merge branch 'master' into history
[potlatch2.git] / net / systemeD / halcyon / connection / Tag.as
1 package net.systemeD.halcyon.connection {
2
3     public class Tag {
4         private var entity:Entity;
5         private var _key:String;
6         private var _value:String;
7
8         public function Tag(entity:Entity, key:String, value:String) {
9             this.entity = entity;
10             entity.addEventListener(Connection.TAG_CHANGED, tagChanged, false, 0, true);
11             this._key = key;
12             this._value = value;
13         }
14
15         public function get key():String { return _key; }
16         public function get value():String { return _value; }
17
18         public function set key(key:String):void {
19             var oldKey:String = _key;
20             var realVal:String = entity.getTag(oldKey);
21             _key = key;
22             if ( oldKey != null && realVal != null && realVal != "" )
23                 entity.renameTag(oldKey, key, MainUndoStack.getGlobalStack().addAction);
24         }
25
26         public function set value(value:String):void {
27             entity.setTag(_key, value, MainUndoStack.getGlobalStack().addAction);
28         }
29
30         private function tagChanged(event:TagEvent):void {
31             if ( event.key == _key )
32                 _value = event.newValue;
33         }
34     }
35
36
37 }
38