diff --git a/.gitignore b/.gitignore index 0ea3c18..9108361 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,6 @@ /bin .classpath .project -/.settings \ No newline at end of file +/.settings +/.idea +*.DS_Store \ No newline at end of file diff --git a/src/main/java/org/aero/mtip/ModelElements/InternalBlock/Connector.java b/src/main/java/org/aero/mtip/ModelElements/InternalBlock/Connector.java index 73813d8..ef123e5 100644 --- a/src/main/java/org/aero/mtip/ModelElements/InternalBlock/Connector.java +++ b/src/main/java/org/aero/mtip/ModelElements/InternalBlock/Connector.java @@ -81,12 +81,12 @@ public Element createElement(Project project, Element owner, Element client, Ele CameoUtils.logGUI("Supplier port not from part property."); firstMemberEnd.setRole((ConnectableElement) supplier); } - + Element clientPart = (Element) project.getElementByID(ImportXmlSysml.idConversion(xmlElement.getAttribute(XmlTagConstants.CLIENT_PART_WITH_PORT))); if(clientPart != null) { CameoUtils.logGUI("Client part found with id: " + clientPart.getID()); secondMemberEnd.setPartWithPort((com.nomagic.uml2.ext.magicdraw.classes.mdkernel.Property)clientPart); - secondMemberEnd.setRole(((List) ((com.nomagic.uml2.ext.magicdraw.classes.mdkernel.Property) clientPart).get_connectorEndOfPartWithPort()).get(0).getRole()); + secondMemberEnd.setRole((ConnectableElement) client); StereotypesHelper.addStereotype(secondMemberEnd, nestedConnectorEndStereotype); StereotypesHelper.setStereotypePropertyValue(secondMemberEnd, elementPropertyPathStereotype, "propertyPath", clientPart); } else { diff --git a/src/main/java/org/aero/mtip/XML/Import/ImportXmlSysml.java b/src/main/java/org/aero/mtip/XML/Import/ImportXmlSysml.java index 0415519..28a4df1 100644 --- a/src/main/java/org/aero/mtip/XML/Import/ImportXmlSysml.java +++ b/src/main/java/org/aero/mtip/XML/Import/ImportXmlSysml.java @@ -1068,7 +1068,14 @@ public static String idConversion(String id) { public static Element GetImportedOwner(XMLItem modelElement, HashMap parsedXML) { String ownerID = modelElement.getParent(); XMLItem ownerElement = parsedXML.get(ownerID); - + +// If an owner is specified by ID but no element is provided, attempt to query the project for an existing element + if(ownerID != null && ownerElement == null){ + Element element = (Element) project.getElementByID(ownerID); + if(element != null){ + return element; + } + } if(modelElement.getParent().trim().isEmpty() || ownerElement == null) { return primaryLocation; // Set owned equal to Primary model if no hasParent attribute in XML -> parent field in XMLItem == "" } diff --git a/src/main/java/org/aero/mtip/XML/Import/ImportXmlSysmlAction.java b/src/main/java/org/aero/mtip/XML/Import/ImportXmlSysmlAction.java index 6d72b32..7d14f17 100644 --- a/src/main/java/org/aero/mtip/XML/Import/ImportXmlSysmlAction.java +++ b/src/main/java/org/aero/mtip/XML/Import/ImportXmlSysmlAction.java @@ -33,6 +33,10 @@ public ImportXmlSysmlAction(String id, String name) { super(id, name, null, null); } public void actionPerformed(ActionEvent e) { + importXmlSysml(); + } + + public static void importXmlSysml() { ImportXmlSysml.resetImportParameters(); Project project = Application.getInstance().getProject(); if(project == null) {