diff --git a/prism/src/prism/Prism.java b/prism/src/prism/Prism.java index fd5bb540..8ca5951b 100644 --- a/prism/src/prism/Prism.java +++ b/prism/src/prism/Prism.java @@ -1414,6 +1414,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(); @@ -1510,7 +1514,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; } /** @@ -1561,7 +1568,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; } /** @@ -1600,6 +1611,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 3cc90440..03d9d779 100644 --- a/prism/src/userinterface/model/GUIMultiModelHandler.java +++ b/prism/src/userinterface/model/GUIMultiModelHandler.java @@ -537,6 +537,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 bab3eb0a..28cdcf81 100644 --- a/prism/src/userinterface/properties/GUIMultiProperties.java +++ b/prism/src/userinterface/properties/GUIMultiProperties.java @@ -413,6 +413,10 @@ public class GUIMultiProperties extends GUIPlugin implements MouseListener, List // parse property to be used for experiment parsedProperties = getPrism().parsePropertiesString(parsedModel, 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;