예제 #1
0
 private void RemoveAllElementSources(IModelElement element)
 {
     if (elementSources.Remove(element))
     {
         foreach (var item in element.Descendants())
         {
             elementSources.Remove(item);
         }
     }
 }
예제 #2
0
        private void AddAllElementSources(IModelElement createdElement, IModelChange currentChange)
        {
            var changeMe = (ModelElement)currentChange;

            if (!elementSources.ContainsKey(createdElement))
            {
                elementSources.Add(createdElement, new ElementSourceInfo(changeMe, "addedElement"));
                foreach (ModelElement item in createdElement.Descendants())
                {
                    var relative = item.CreateUriWithFragment(null, false, createdElement);
                    if (relative != null)
                    {
                        elementSources.Add(item, new ElementSourceInfo(changeMe, "addedElement/" + relative.OriginalString));
                    }
                }
            }
        }