Пример #1
0
        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);
            }
        }
Пример #2
0
        private void Tree_AttributeSpecChangeEvent(MapTree.AttributeSpec node, MapTree.AttributeSpecEventArgs e)
        {
            IChange change = factory.CreateChange(node, e);

            if (change != null)
            {
                RecordChange(change);
            }
        }