@Override protected IProgressMonitor executeCommand(final RefactorCommand command) { IProgressMonitor monitor = super.executeCommand(command); try { // Save refactored resource final ModelEditor editor = ModelerCore.getModelEditor(); // defect 16527 - check that a resource is a file before casting IResource res = this.dest.findMember(MoveRefactorAction.this.resSelectedResource.getName()); if (res instanceof IFile) { final IFile file = (IFile) res; ModelResource model = editor.findModelResource(file); if (model != null) { if (model.getEmfResource().isModified()) { // If an editor is open, call doSave on it, else tell the model to save org.teiid.designer.ui.editors.ModelEditor openEditor = ModelEditorManager.getModelEditorForFile(file, false); if (openEditor != null) { openEditor.doSave(monitor); } else { model.save(monitor, true); } } } } // endif -- move was on a file // Save modified dependent resources for (final Iterator iter = ((ResourceMoveCommand) command).getDependentResources().iterator(); iter.hasNext(); ) { IFile file = (IFile) iter.next(); ModelResource model = editor.findModelResource(file); if (model != null) { if (model.getEmfResource().isModified() && !model.isReadOnly()) { // If an editor is open, call doSave on it, else tell the model to save org.teiid.designer.ui.editors.ModelEditor openEditor = ModelEditorManager.getModelEditorForFile(file, false); if (openEditor != null) { openEditor.doSave(monitor); } else { model.save(monitor, true); } } } } } catch (final ModelWorkspaceException err) { ModelerCore.Util.log(err); } return monitor; }