diff --git a/prism/src/prism/Prism.java b/prism/src/prism/Prism.java index 53936592..e742f1d4 100644 --- a/prism/src/prism/Prism.java +++ b/prism/src/prism/Prism.java @@ -1436,6 +1436,10 @@ public class Prism extends PrismComponent implements PrismSettingsListener try { // parse file modulesFile = prismParser.parseModulesFile(strModel, typeOverride); + + if (modulesFile != null) + modulesFile.setLocation(file.toPath().toAbsolutePath()); + } finally { // release prism parser releasePrismParser(); @@ -1532,7 +1536,10 @@ public class Prism extends PrismComponent implements PrismSettingsListener PrismLanguageTranslator importer = createPrismLanguageTranslator(lang); importer.load(file); String prismModelString = importer.translateToString(); - return parseModelString(prismModelString); + ModulesFile result = parseModelString(prismModelString); + if (result != null) + result.setLocation(file.toPath().toAbsolutePath()); + return result; } /** @@ -1583,7 +1590,11 @@ public class Prism extends PrismComponent implements PrismSettingsListener } // Parse string as PRISM model and return - return parseModelString(modelString); + ModulesFile result = parseModelString(modelString); + if (result != null) + result.setLocation(file.toPath().toAbsolutePath()); + + return result; } /** @@ -1647,6 +1658,8 @@ public class Prism extends PrismComponent implements PrismSettingsListener try { // parse file propertiesFile = prismParser.parsePropertiesFile(modelInfo, strProperties); + if (propertiesFile != null) + propertiesFile.setLocation(file.toPath().toAbsolutePath()); } finally { // release prism parser releasePrismParser(); diff --git a/prism/src/userinterface/model/GUIMultiModelHandler.java b/prism/src/userinterface/model/GUIMultiModelHandler.java index 21c41b4a..869e3aef 100644 --- a/prism/src/userinterface/model/GUIMultiModelHandler.java +++ b/prism/src/userinterface/model/GUIMultiModelHandler.java @@ -569,6 +569,9 @@ public class GUIMultiModelHandler extends JPanel implements PrismModelListener modifiedSinceParse = false; lastError = "Parse Successful"; + if (activeFile != null) + parsedModel.setLocation(activeFile.toPath().toAbsolutePath()); + editor.modelParseSuccessful(); if (parseAfterParse) { diff --git a/prism/src/userinterface/properties/GUIMultiProperties.java b/prism/src/userinterface/properties/GUIMultiProperties.java index 78d41bdf..acecf86e 100644 --- a/prism/src/userinterface/properties/GUIMultiProperties.java +++ b/prism/src/userinterface/properties/GUIMultiProperties.java @@ -412,6 +412,10 @@ public class GUIMultiProperties extends GUIPlugin implements MouseListener, List // parse property to be used for experiment parsedProperties = getPrism().parsePropertiesString( getLabelsString() + "\n" + getConstantsString() + "\n" + propList.getValidSelectedAndReferencedString()); + + if (activeFile != null) + parsedProperties.setLocation(activeFile.toPath().toAbsolutePath()); + if (parsedProperties.getNumProperties() <= 0) { error("There are no properties selected"); return;