internal IChange CreateChange(MapTree.AttributeSpec spec, MapTree.AttributeSpecEventArgs e) { switch (e.Change) { case MapTree.AttributeSpecChange.Added: return(new AttributeSpecAdd(spec)); case MapTree.AttributeSpecChange.Removed: return(new AttributeSpecDelete(spec)); case MapTree.AttributeSpecChange.NameChanged: return(new AttributeSpecName(spec, (string)e.OldValue)); case MapTree.AttributeSpecChange.VisibilityChanged: return(new AttributeSpecVisibility(spec, (bool)e.OldValue)); case MapTree.AttributeSpecChange.DataTypedChanged: return(new AttributeSpecDataType(spec, (MapTree.AttributeDataType)e.OldValue)); case MapTree.AttributeSpecChange.TypeChanged: return(new AttributeSpecType(spec, (MapTree.AttributeType)e.OldValue)); case MapTree.AttributeSpecChange.ListTypeChanged: return(new AttributeSpecListType(spec, (MapTree.AttributeListOption)e.OldValue)); case MapTree.AttributeSpecChange.ListValueAdded: return(new AttributeSpecValueAdd(spec, (string)e.OldValue)); case MapTree.AttributeSpecChange.ListValueRemoved: return(new AttributeSpecValueRemove(spec, (string)e.OldValue)); default: return(null); } }
private void Tree_AttributeSpecChangeEvent(MapTree.AttributeSpec node, MapTree.AttributeSpecEventArgs e) { IChange change = factory.CreateChange(node, e); if (change != null) { RecordChange(change); } }