@Override public boolean isDirty() { if (fBundleModel != null && (fBundleModel instanceof IEditable) && ((IEditable) fBundleModel).isDirty()) return true; if (fExtensionsModel != null && (fExtensionsModel instanceof IEditable) && ((IEditable) fExtensionsModel).isDirty()) return true; return false; }
public boolean mustSave() { if (!fIsSourceMode) { if (fModel instanceof IEditable) { if (((IEditable) fModel).isDirty()) { return true; } } } return !fEditOperations.isEmpty() || fDocumentProvider.canSaveDocument(fEditorInput); }
public void flushEditorInput() { if (!fEditOperations.isEmpty()) { IDocument doc = fDocumentProvider.getDocument(fEditorInput); fDocumentProvider.aboutToChange(fEditorInput); flushModel(doc); fDocumentProvider.changed(fEditorInput); fValidated = false; } else if ((fModel instanceof IEditable) && ((IEditable) fModel).isDirty()) { // When text edit operations are made that cancel each other out, // the editor is not undirtied // e.g. Extensions page: Move an element up and then move it down // back in the same position: Bug # 197831 ((IEditable) fModel).setDirty(false); } }
@Override protected void flushModel(IDocument doc) { if (!(getModel() instanceof IEditable)) return; IEditable editableModel = (IEditable) getModel(); if (editableModel.isDirty() == false) return; try (StringWriter swriter = new StringWriter(); PrintWriter writer = new PrintWriter(swriter)) { editableModel.save(writer); writer.flush(); String content = swriter.toString(); content = AbstractModel.fixLineDelimiter(content, (IFile) ((IModel) getModel()).getUnderlyingResource()); doc.set(content); } catch (IOException e) { PDEPlugin.logException(e); } }
@Override protected void flushModel(IDocument doc) { // if model is dirty, flush its content into // the document so that the source editor will // pick up the changes. if (!(getModel() instanceof IEditable)) return; IEditable editableModel = (IEditable) getModel(); if (editableModel.isDirty() == false) return; try (StringWriter swriter = new StringWriter(); PrintWriter writer = new PrintWriter(swriter)) { editableModel.save(writer); writer.flush(); String content = swriter.toString(); content = AbstractModel.fixLineDelimiter(content, (IFile) ((IModel) getModel()).getUnderlyingResource()); doc.set(content); } catch (IOException e) { PDEPlugin.logException(e); } }
@Override protected void flushModel(IDocument doc) { // if model is dirty, flush its content into // the document so that the source editor will // pick up the changes. if (!(getModel() instanceof IEditable)) return; IEditable editableModel = (IEditable) getModel(); if (editableModel.isEditable() == false) return; if (editableModel.isDirty() == false) return; try (StringWriter swriter = new StringWriter(); PrintWriter writer = new PrintWriter(swriter)) { editableModel.save(writer); writer.flush(); String content = swriter.toString(); content = AbstractModel.fixLineDelimiter(content, (IFile) ((IModel) getModel()).getUnderlyingResource()); doc.set(content); } catch (IOException e) { PDEPlugin.logException(e); } }
@Override protected void flushModel(IDocument doc) { // if model is dirty, flush its content into // the document so that the source editor will // pick up the changes. if (!(getModel() instanceof IEditable)) return; IEditable editableModel = (IEditable) getModel(); if (editableModel.isDirty() == false) return; try (StringWriter swriter = new StringWriter(); PrintWriter writer = new PrintWriter(swriter)) { editableModel.save(writer); writer.flush(); String content = swriter.toString(); if (getInput() instanceof IFileEditorInput) { // If we are working with a file in the workspace, correct line delimeters based on workspace/file settings IFile file = ((IFileEditorInput) getInput()).getFile(); content = AbstractModel.fixLineDelimiter(content, file); } doc.set(content); } catch (IOException e) { PDEPlugin.logException(e); } }
@Override protected void flushModel(IDocument doc) { // if model is dirty, flush its content into // the document so that the source editor will // pick up the changes. if (!(getModel() instanceof IEditable)) return; IEditable editableModel = (IEditable) getModel(); if (editableModel.isEditable() == false) return; if (editableModel.isDirty() == false) return; try (StringWriter swriter = new StringWriter(); PrintWriter writer = new PrintWriter(swriter)) { editableModel.save(writer); writer.flush(); String content = swriter.toString(); content = AbstractModel.fixLineDelimiter(content, (IFile) ((IModel) getModel()).getUnderlyingResource()); doc.set(content); } catch (IOException e) { PDEPlugin.logException(e); } }