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 buttonOk_Click(object sender, EventArgs e) { if (!checkBoxCreateNew.Checked) { if (this.comboBoxCorrClasses.SelectedIndex != -1) { int i = 0; foreach (int corId in this.possibleCorrespondencesLinkWithConnectors.Keys) { if (i++ == this.comboBoxCorrClasses.SelectedIndex) { this.selectedCorrespondenceLinkId = corId; } } EA.Element selectedLink = sqlRepository.GetOriginalRepository().GetElementByID(selectedCorrespondenceLinkId); corrObject.getRealElement().ClassifierID = selectedLink.ElementID; corrObject.getRealElement().Name = textBoxObjectName.Text; corrObject.getRealElement().Update(); TGGCorrespondence tggCorrOv = new TGGCorrespondence(sqlRepository.GetElementByID(corrObject.ElementID), sqlRepository); tggCorrOv.BindingOperator = this.bo; tggCorrOv.saveTreeToEATaggedValue(true); Close(); } } else if (checkBoxCreateNew.Checked) { EA.Package tggOutermostPackage = EAUtil.sqlEAObjectToOriginalObject(sqlRepository, EAUtil.getOutermostPackage(corrObject, sqlRepository)) as EA.Package; EA.Connector connectorToSource; EA.Connector connectorToTarget; EA.Element selectedLink = createNewCorrespondenceLink(tggOutermostPackage, out connectorToSource, out connectorToTarget); this.corrObject.getRealElement().ClassifierID = selectedLink.ElementID; this.corrObject.getRealElement().Name = textBoxObjectName.Text; this.corrObject.getRealElement().Update(); TGGCorrespondence tggCorrOv = new TGGCorrespondence(sqlRepository.GetElementByID(corrObject.ElementID), sqlRepository); tggCorrOv.BindingOperator = this.bo; tggCorrOv.saveTreeToEATaggedValue(true); List <SQLConnector> references = new List <SQLConnector>(); references.Add(sqlRepository.GetConnectorByID(connectorToSource.ConnectorID)); references.Add(sqlRepository.GetConnectorByID(connectorToTarget.ConnectorID)); possibleCorrespondencesLinkWithConnectors.Add(selectedLink.ElementID, references); Close(); } }
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); } }