private static void TranslateAttributes(IHasPSMAttributes hasPsmAttributes, ChangesDetectorContext context) { foreach (PSMAttribute psmAttribute in hasPsmAttributes.PSMAttributes) { TranslateAttribute(psmAttribute, context); } }
public static IList <EvolutionChange> Detect(Version v1, Version v2, IHasPSMAttributes hasAttributes) { return((from psmAttribute in hasAttributes.PSMAttributes where psmAttribute.GetInVersion(v1) == null && psmAttribute.GetInVersion(v2) != null select new HasAttributesAttributeAddedChange(hasAttributes, psmAttribute) { OldVersion = v1, NewVersion = v2 }).Cast <EvolutionChange>().ToList()); }
internal override void CommandOperation() { if (AttributeContainer == null) { removedFrom = DeletedAttribute.Class; } else { removedFrom = AttributeContainer; } DeletedAttribute.RemoveMeFromModel(); associatedElements.Add(removedFrom); }
public HasAttributesAttributeAddedChange(IHasPSMAttributes hasAttributes, PSMAttribute newAttribute) : base(hasAttributes) { NewAttribute = newAttribute; }
public ControlsPSMAttributes(IHasPSMAttributes attributeHolder, DiagramController diagramController) { AttributeHolder = attributeHolder; DiagramController = diagramController; }
private void FillTable() { // load all constructs in old version foreach (Element oldE in DiagramOldVersion.DiagramElements.Keys.Where(k => !(k is Comment))) { comboItemsList.Add(oldE); if (oldE is IHasAttributes) { comboItemsList.AddRange(((IHasAttributes)oldE).Attributes); } if (oldE is IHasPSMAttributes) { comboItemsList.AddRange(((IHasPSMAttributes)oldE).PSMAttributes); } } // load all constructs in new version List <Element> newElements = DiagramNewVersion.DiagramElements.Keys.Where(k => !(k is Comment)).ToList(); // fill comboboxes with new version items ItemsList.Clear(); foreach (Element newElement in newElements) { #region item MappingGridItem mappingGridItem = new MappingGridItem { NewVersionConstructName = newElement.ToString(), NewVersionConstruct = newElement, Type = newElement.GetType().Name.Substring(1) }; ItemsList.Add(mappingGridItem); IVersionedElement elementOldVersion = newElement.GetInVersion(OldVersion); if (elementOldVersion != null) { mappingGridItem.OldVersionConstructName = elementOldVersion.ToString(); mappingGridItem.OldVersionConstruct = (Element)elementOldVersion; mappingGridItem.OriginalMapping = mappingGridItem.OldVersionConstruct; } else { Element found; if (NameMatch(comboItemsList, newElement, out found)) { mappingGridItem.OldVersionConstructName = found.ToString(); mappingGridItem.OldVersionConstruct = found; } } #endregion #region psm attributes if (newElement is IHasPSMAttributes) { foreach (PSMAttribute attribute in ((IHasPSMAttributes)newElement).PSMAttributes) { MappingGridItem attributeItem = new MappingGridItem { NewVersionConstructName = attribute.ToString(), NewVersionConstruct = attribute, Type = String.Format("PSMA in {0}", newElement) }; attributeItem.Color = Brushes.DarkGreen; IHasPSMAttributes elementOldVersionHA = null; if (mappingGridItem.OldVersionConstruct != null) { elementOldVersionHA = (IHasPSMAttributes)mappingGridItem.OldVersionConstruct; } IVersionedElement atOld = attribute.GetInVersion(OldVersion); if (atOld != null) { attributeItem.OldVersionConstruct = (Element)atOld; attributeItem.OriginalMapping = mappingGridItem.OldVersionConstruct; attributeItem.OldVersionConstructName = attributeItem.OldVersionConstruct.ToString(); } else if (elementOldVersionHA != null) { PSMAttribute found; if (NameMatch(elementOldVersionHA.PSMAttributes, attribute, out found)) { attributeItem.OldVersionConstruct = found; attributeItem.OldVersionConstructName = attributeItem.OldVersionConstruct.ToString(); } } ItemsList.Add(attributeItem); } } #endregion #region pim attributes else if (newElement is IHasAttributes) { foreach (Property attribute in ((IHasAttributes)newElement).Attributes) { MappingGridItem attributeItem = new MappingGridItem { NewVersionConstructName = attribute.ToString(), NewVersionConstruct = attribute, Type = String.Format("PSMA in {0}", newElement) }; attributeItem.Color = Brushes.DarkGreen; IHasAttributes elementOldVersionHA = null; if (mappingGridItem.OldVersionConstruct != null) { elementOldVersionHA = (IHasAttributes)mappingGridItem.OldVersionConstruct; } IVersionedElement atOld = attribute.GetInVersion(OldVersion); if (atOld != null) { attributeItem.OldVersionConstruct = (Element)atOld; attributeItem.OriginalMapping = mappingGridItem.OldVersionConstruct; attributeItem.OldVersionConstructName = attributeItem.OldVersionConstruct.ToString(); } else if (elementOldVersionHA != null) { Property found; if (NameMatch(elementOldVersionHA.Attributes, attribute, out found)) { attributeItem.OldVersionConstruct = found; attributeItem.OldVersionConstructName = attributeItem.OldVersionConstruct.ToString(); } } ItemsList.Add(attributeItem); } } #endregion } mapToColumn.ItemsSource = comboItemsList; dataGrid1.ItemsSource = ItemsList; lUnmapped.Content = ItemsList.Count(i => i.OldVersionConstruct == null); }
public override void Execute(object parameter) { IHasPSMAttributes hasAttributes = (IHasPSMAttributes)GetElement(); SelectItemsDialog selectVersion = new SelectItemsDialog(); List <Version> _versions = new List <Version>(CurrentProject.VersionManager.Versions.Where(ver => ver.Number < hasAttributes.Version.Number)); Version v; if (_versions.Count > 1) { selectVersion.UseRadioButtons = true; selectVersion.SetItems(_versions); selectVersion.ShortMessage = "Select version"; selectVersion.LongMessage = "Select version to map to."; selectVersion.Title = "Select version"; if (selectVersion.ShowDialog() != true || selectVersion.selectedObjects.Count != 1) { return; } v = (Version)selectVersion.selectedObjects[0]; } else { v = _versions[0]; } SelectItemsDialog selectAttributes = new SelectItemsDialog(); selectAttributes.UseRadioButtons = true; selectAttributes.SetItems(hasAttributes.PSMAttributes); selectAttributes.ShortMessage = "Select attribute"; selectAttributes.LongMessage = "Select attribute for mapping."; selectAttributes.Title = "Select attribute"; selectAttributes.SelectItem(hasAttributes.PSMAttributes.FirstOrDefault(a => a.GetInVersion(v) == null)); if (selectAttributes.ShowDialog() != true || selectAttributes.selectedObjects.Count != 1) { return; } IVersionedElement selectedAttribute = (IVersionedElement)selectAttributes.selectedObjects[0]; Version currentVersion = selectedAttribute.Version; Diagram diagram = (Diagram)ActiveDiagramView.Diagram.GetInVersion(v); if (diagram == null) { XCaseYesNoBox.ShowOK("Diagram not present", "Diagram does not exist in this version. "); return; } List <Element> _candidates = new List <Element>(); foreach (var element in ((IHasPSMAttributes)hasAttributes.GetInVersion(v)).PSMAttributes.Where (e => e.GetType() == selectedAttribute.GetType() && e.IsFirstVersion && e.GetInVersion(currentVersion) == null)) { _candidates.Add(element); } if (_candidates.Count == 0) { XCaseYesNoBox.ShowOK("Not found", "No possible elements found for this item. "); return; } SelectItemsDialog selectElement = new SelectItemsDialog(); selectElement.UseRadioButtons = true; selectElement.SetItems(_candidates); Element guess = _candidates.FirstOrDefault(c => c.ToString() == selectedAttribute.ToString()); selectElement.SelectItem(guess); selectElement.ShortMessage = "Select element"; selectElement.LongMessage = "Select element to map to."; selectElement.Title = "Select element"; if (selectElement.ShowDialog() != true || selectElement.selectedObjects.Count != 1) { return; } Element el = (Element)selectElement.selectedObjects[0]; CurrentProject.VersionManager.RegisterBranch(el, selectedAttribute, currentVersion, true, el.Version); }
public HasAttributesAttributeRemovedChange(IHasPSMAttributes hasAttributes, PSMAttribute removedAttribute) : base(hasAttributes) { RemovedAttribute = removedAttribute; }
protected HasAttributesChange(IHasPSMAttributes hasAttributes) { Element = hasAttributes; }