diff options
Diffstat (limited to 'plugins/infra/org.eclipse.papyrus.infra.ui.resources/src/org/eclipse/papyrus/infra/ui/resources/refactoring/RenameModelChange.java')
-rw-r--r-- | plugins/infra/org.eclipse.papyrus.infra.ui.resources/src/org/eclipse/papyrus/infra/ui/resources/refactoring/RenameModelChange.java | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/plugins/infra/org.eclipse.papyrus.infra.ui.resources/src/org/eclipse/papyrus/infra/ui/resources/refactoring/RenameModelChange.java b/plugins/infra/org.eclipse.papyrus.infra.ui.resources/src/org/eclipse/papyrus/infra/ui/resources/refactoring/RenameModelChange.java index 7163d8a32b2..f4f3ed6ae18 100644 --- a/plugins/infra/org.eclipse.papyrus.infra.ui.resources/src/org/eclipse/papyrus/infra/ui/resources/refactoring/RenameModelChange.java +++ b/plugins/infra/org.eclipse.papyrus.infra.ui.resources/src/org/eclipse/papyrus/infra/ui/resources/refactoring/RenameModelChange.java @@ -60,6 +60,8 @@ import org.eclipse.papyrus.infra.core.resource.ModelSet; import org.eclipse.papyrus.infra.core.resource.ModelsReader; import org.eclipse.papyrus.infra.core.resource.ReadOnlyAxis; import org.eclipse.papyrus.infra.core.resource.sasheditor.DiModelUtils; +import org.eclipse.papyrus.infra.core.resource.sasheditor.SashModel; +import org.eclipse.papyrus.infra.core.resource.sasheditor.SashModelUtils; import org.eclipse.papyrus.infra.core.services.ServiceException; import org.eclipse.papyrus.infra.core.utils.EditorUtils; import org.eclipse.papyrus.infra.emf.readonly.ReadOnlyManager; @@ -282,6 +284,27 @@ public class RenameModelChange extends Change { } pm.worked(5); + + try { + SashModel oldSash = SashModelUtils.getSashModel(resourceSet); + URI oldSashURI = oldSash.getResourceURI(); + Resource resource = oldSash.getResource(); + resourceSet.loadModels(newFile); + SashModel sashModel = SashModelUtils.getSashModel(resourceSet); + URI stashNewFile = sashModel.getResourceURI(); + resource.setURI(stashNewFile); + resource.save(ResourceUtils.getSaveOptions()); + if(oldSash != null) { // delete old stash + try { + resourceSet.getURIConverter().delete(oldSashURI, null); + } catch (IOException e) { + log.error(Messages.bind(Messages.RenameModelChange_ErrorLoading, oldSashURI), e); + } + } + } catch (Exception e) { + log.error(e); + } + // Do not forget to unload all the resources to avoid memory leak pm.subTask(Messages.RenameModelChange_Unloading); resourceSet.unload(); |