Canguro.Model.Model.abstractCases_ElementRemoved C# (CSharp) Method

abstractCases_ElementRemoved() private method

Callback function called before an abstract case is deleted. Cancels the removing if the case has dependencies.
private abstractCases_ElementRemoved ( object sender, ListChangedEventArgs args ) : void
sender object The AbstractCases Managed List
args ListChangedEventArgs Object to check the Abstract case being deleted and to cancel if needed
return void
        void abstractCases_ElementRemoved(object sender, ListChangedEventArgs<AbstractCase> args)
        {
            Dictionary<AbstractCase, LinkedList<AbstractCase>> adjacency = BuildAnalysisCaseAdjacency();
            bool cancel = false;
            // Cancel if there are dependencies.
            if (adjacency.ContainsKey(args.ChangedObject) && adjacency[args.ChangedObject].Count > 0)
                cancel = true;
            else
            {
                // Deactivate before removing
                args.ChangedObject.IsActive = false;
                // Cancel remove if can't deactivate
                cancel = args.ChangedObject.IsActive;
            }
            args.Cancel = cancel;
        }