private void addTGGElementToRuleFromSchema(EA.Element elementToBeCopied, EA.DiagramObject diagramObjectToBeCopied) { EA.Element newElement = newRuleElement.Elements.AddNew(elementToBeCopied.Name.Substring(0, 1).ToLower() + elementToBeCopied.Name.Substring(1, elementToBeCopied.Name.Length - 1), Main.EAObjectType) as EA.Element; newElement.ClassifierID = elementToBeCopied.ElementID; newElement.Update(); newElementIdToNewElement.Add(newElement.ElementID, newElement); oldElementIdToNewElementId.Add(elementToBeCopied.ElementID, newElement.ElementID); EA.DiagramObject newDiagramObject = newRuleDiagram.DiagramObjects.AddNew("", newElement.Type) as EA.DiagramObject; newDiagramObject.ElementID = newElement.ElementID; newDiagramObject.left = diagramObjectToBeCopied.left; newDiagramObject.right = diagramObjectToBeCopied.right; newDiagramObject.top = diagramObjectToBeCopied.top; newDiagramObject.bottom = diagramObjectToBeCopied.bottom; newDiagramObject.Update(); SQLElement sqlElement = repository.GetElementByID(newElement.ElementID); if (elementToBeCopied.Stereotype == ECOREModeling.ECOREModelingMain.EClassStereotype) { TGGObjectVariable tggOv = new TGGObjectVariable(sqlElement, repository); tggOv.loadTreeFromTaggedValue(); tggOv.BindingOperator = SDMModeling.SDMExportWrapper.patterns.BindingOperator.CREATE; tggOv.saveTreeToEATaggedValue(true); } else if (elementToBeCopied.Stereotype == TGGModelingMain.TggCorrespondenceTypeStereotype) { TGGCorrespondence tggCorr = new TGGCorrespondence(sqlElement, repository); tggCorr.loadTreeFromTaggedValue(); tggCorr.BindingOperator = SDMModeling.SDMExportWrapper.patterns.BindingOperator.CREATE; tggCorr.saveTreeToEATaggedValue(true); } }
private void addElementCopyToRule(EA.Element elementToBeCopied, EA.DiagramObject diagramObjectToBeCopied) { EA.Element newElement = newRuleElement.Elements.AddNew(elementToBeCopied.Name.Substring(0, 1).ToLower() + elementToBeCopied.Name.Substring(1, elementToBeCopied.Name.Length - 1), elementToBeCopied.Type) as EA.Element; newElement.Stereotype = elementToBeCopied.Stereotype; newElement.ClassifierID = elementToBeCopied.ClassifierID; newElement.Notes = elementToBeCopied.Notes; newElement.Update(); newElementIdToNewElement.Add(newElement.ElementID, newElement); oldElementIdToNewElementId.Add(elementToBeCopied.ElementID, newElement.ElementID); foreach (EA.TaggedValue tags in elementToBeCopied.TaggedValues) { EA.TaggedValue newTag = newElement.TaggedValues.AddNew(tags.Name, "") as EA.TaggedValue; if (!checkBoxExactCopy.Checked) { newTag.Value = tags.Value.Replace(elementToBeCopied.ElementGUID, newElement.ElementGUID).Replace("create", "check_only"); newTag.Notes = tags.Notes.Replace(elementToBeCopied.ElementGUID, newElement.ElementGUID).Replace("\"bindingOperator\" value=\"create", "\"bindingOperator\" value=\"check_only"); } else { newTag.Value = tags.Value; newTag.Notes = tags.Notes; } newTag.Update(); } EA.DiagramObject newDiagramObject = newRuleDiagram.DiagramObjects.AddNew("", newElement.Type) as EA.DiagramObject; newDiagramObject.ElementID = newElement.ElementID; newDiagramObject.left = diagramObjectToBeCopied.left; newDiagramObject.right = diagramObjectToBeCopied.right; newDiagramObject.top = diagramObjectToBeCopied.top; newDiagramObject.bottom = diagramObjectToBeCopied.bottom; newDiagramObject.Update(); if (newElement.Stereotype == TGGModelingMain.TggObjectVariableStereotype) { TGGObjectVariable tggOv = new TGGObjectVariable(repository.GetElementByID(newElement.ElementID), repository); tggOv.loadTreeFromTaggedValue(); if (!checkBoxExactCopy.Checked) { tggOv.BindingOperator = SDMModeling.SDMExportWrapper.patterns.BindingOperator.CHECK_ONLY; TGGModelingUtil.assignmentsToConstraints(tggOv, repository); } tggOv.saveTreeToEATaggedValue(true); } else if (newElement.Stereotype == TGGModelingMain.TggCorrespondenceStereotype) { TGGCorrespondence tggCorr = new TGGCorrespondence(repository.GetElementByID(newElement.ElementID), repository); tggCorr.loadTreeFromTaggedValue(); if (!checkBoxExactCopy.Checked) { tggCorr.BindingOperator = SDMModeling.SDMExportWrapper.patterns.BindingOperator.CHECK_ONLY; TGGModelingUtil.assignmentsToConstraints(tggCorr, repository); } tggCorr.saveTreeToEATaggedValue(true); } else if (newElement.Stereotype == TGGModelingMain.CSPConstraintStereotype) { CSPInstance instance = new CSPInstance(repository, repository.GetElementByID(newElement.ElementID)); instance.loadTreeFromTaggedValue(); instance.saveTreeToEATaggedValue(true); } }