private static void onCSPConstraintDoubleClicked(SQLRepository sqlRepository, EA.Element doubleClickedElement) { TGG tggPackage = new TGG(sqlRepository, EAUtil.getOutermostPackage(doubleClickedElement, sqlRepository)); tggPackage.loadTreeFromTaggedValue(); CSPInstanceDialog CSPConstraintDialog = new CSPInstanceDialog(sqlRepository, sqlRepository.GetElementByID(doubleClickedElement.ElementID), new TGGCSPController(tggPackage)); CSPConstraintDialog.ShowDialog(); }
public bool EA_OnPostNewElement(SQLRepository sqlRepository, EA.Element newElement, EA.Diagram currentDiagram) { EA.Repository repository = sqlRepository.GetOriginalRepository(); try { //a correspondence is created as an instance of CorrespondenceType //Therefore its stereotype is at first time "CorrespondenceType" //but we want to change it to "Correspondence" if (TGGModelingMain.TggRuleDiagramMetatype.Contains(currentDiagram.MetaType)) { sqlRepository.SuppressEADialogs = true; if (newElement.Type == Main.EAObjectType) { TGGObjectVariable tggOv = null; //drag & drop is used if (newElement.ClassifierID != 0) { SQLElement classifier = sqlRepository.GetElementByID(newElement.ClassifierID); if (classifier.Stereotype == ECOREModelingMain.EClassStereotype) { tggOv = new TGGObjectVariable(sqlRepository.GetElementByID(newElement.ElementID), sqlRepository); tggOv.Name = classifier.Name.ToLower().Substring(0, 1) + classifier.Name.Substring(1, classifier.Name.Length - 1); tggOv.BindingOperator = BindingOperator.CREATE; this.ObjectVariableDialog = new OvDialog(sqlRepository, tggOv); ObjectVariableDialog.ShowDialog(); } else if (classifier.Stereotype == TGGModelingMain.TggCorrespondenceTypeStereotype) { tggOv = new TGGCorrespondence(sqlRepository.GetElementByID(newElement.ElementID), sqlRepository); tggOv.Name = classifier.Name.ToLower().Substring(0, 1) + classifier.Name.Substring(1, classifier.Name.Length - 1); tggOv.BindingOperator = BindingOperator.CREATE; this.ObjectVariableDialog = new OvDialog(sqlRepository, tggOv); ObjectVariableDialog.ShowDialog(); } } else { //toolbox is used if (newElement.Stereotype == TGGModelingMain.TggObjectVariableStereotype) { tggOv = new TGGObjectVariable(sqlRepository.GetElementByID(newElement.ElementID), sqlRepository); this.ObjectVariableDialog = new OvDialog(sqlRepository, tggOv); ObjectVariableDialog.ShowDialog(); } else if (newElement.Stereotype == TGGModelingMain.TggCorrespondenceStereotype) { tggOv = new TGGCorrespondence(sqlRepository.GetElementByID(newElement.ElementID), sqlRepository); this.ObjectVariableDialog = new OvDialog(sqlRepository, tggOv); this.ObjectVariableDialog.ShowDialog(); } else if (newElement.Stereotype == SDMModelingMain.CSPInstanceStereotype) { TGG tggPackage = new TGG(sqlRepository, EAUtil.getOutermostPackage(newElement, sqlRepository)); tggPackage.loadTreeFromTaggedValue(); CSPInstanceDialog cspInstanceDialog = new CSPInstanceDialog(sqlRepository, sqlRepository.GetElementByID(newElement.ElementID), new TGGCSPController(tggPackage)); cspInstanceDialog.ShowDialog(); } } } } else if (TGGModelingMain.TggRulesDiagramMetatype.Contains(currentDiagram.MetaType)) { sqlRepository.SuppressEADialogs = true; if (newElement.Type == Main.EAClassType && (newElement.Stereotype == TGGModelingMain.TggRuleStereotype)) { newElement = EAUtil.sqlEAObjectToOriginalObject(sqlRepository, newElement) as EA.Element; EA.Diagram ruleDiagram = newElement.Diagrams.AddNew(newElement.Name, TGGModelingMain.TggRuleDiagramMetatype[0]) as EA.Diagram; ruleDiagram.Update(); EA_OnNotifyContextItemModified(sqlRepository.GetOriginalRepository(), newElement.ElementGUID, EA.ObjectType.otElement); } } else if (TGGModelingMain.TggPatternsDiagramMetatype.Contains(currentDiagram.MetaType)) { sqlRepository.SuppressEADialogs = true; } } catch { } return(true); }