1 package net.systemeD.halcyon.connection.actions {
3 import net.systemeD.halcyon.connection.*;
5 public class AddMemberToRelationAction extends UndoableEntityAction {
6 private var rel:Relation;
8 private var member:RelationMember;
9 private var memberList:Array;
11 public function AddMemberToRelationAction(rel:Relation, index:int, member:RelationMember, memberList:Array) {
12 super(rel, "Add " + member.entity.getType() + " " + member.entity.id + " at position " + index + " to ");
16 this.memberList = memberList;
19 public override function doAction():uint {
21 index = memberList.length;
22 memberList.splice(index, 0, member);
23 member.entity.addParent(rel);
25 rel.dispatchEvent(new RelationMemberEvent(Connection.RELATION_MEMBER_ADDED, member.entity, rel, index));
30 public override function undoAction():uint {
31 memberList.splice(index, 1);
32 member.entity.removeParent(rel);
34 rel.dispatchEvent(new RelationMemberEvent(Connection.RELATION_MEMBER_REMOVED, member.entity, rel, index));