private boolean canModifyEditor(ITextEditor editor) { if (editor instanceof ITextEditorExtension2) { return ((ITextEditorExtension2) editor).isEditorInputModifiable(); } else if (editor instanceof ITextEditorExtension) { return !((ITextEditorExtension) editor).isEditorInputReadOnly(); } else if (editor != null) { return editor.isEditable(); } return false; }
/** * @return true if the contents of the editor may be changed. Clients MUST call this before actually * modifying the editor. */ public static boolean canModifyEditor(ITextEditor editor) { if (editor instanceof ITextEditorExtension2) { return ((ITextEditorExtension2) editor).isEditorInputModifiable(); } else if (editor instanceof ITextEditorExtension) { return !((ITextEditorExtension) editor).isEditorInputReadOnly(); } else if (editor != null) { return editor.isEditable(); } //If we don't have the editor, let's just say it's ok (working on document). return true; }
/** * Ensures that the editor is modifyable. If the editor is an instance of * <code>ITextEditorExtension2</code>, its <code>validateEditorInputState</code> method * is called, otherwise, the result of <code>isEditable</code> is returned. * * @param editor the editor to be checked * @return <code>true</code> if the editor is editable, <code>false</code> otherwise */ protected boolean ensureEditable(ITextEditor editor) { Assert.isNotNull(editor); if (editor instanceof ITextEditorExtension2) { ITextEditorExtension2 ext= (ITextEditorExtension2) editor; return ext.validateEditorInputState(); } return editor.isEditable(); }
/** * Eclipse forces us to check this ourselves * * @return true if the editor is modifiable */ private boolean getEditable() { boolean result = false; ITextEditor editor= getThisEditor(); if (editor != null) { if (editor instanceof ITextEditorExtension2) result = ((ITextEditorExtension2) editor).isEditorInputModifiable(); else if (editor instanceof ITextEditorExtension) result = !((ITextEditorExtension) editor).isEditorInputReadOnly(); else result = editor.isEditable(); } return result; }
public static void checkValidateState(IEditorPart iEditorPart) { if (iEditorPart instanceof ITextEditorExtension2) { ITextEditorExtension2 editor = (ITextEditorExtension2) iEditorPart; editor.validateEditorInputState(); } }
/** * Checks the editor's modifiable state. Returns <code>true</code> if the editor can be modified, * taking in account the possible editor extensions. * * <p>If the editor implements <code>ITextEditorExtension2</code>, * this method returns {@link ITextEditorExtension2#isEditorInputModifiable()};<br> else if the editor * implements <code>ITextEditorExtension</code>, it returns {@link ITextEditorExtension#isEditorInputReadOnly()};<br> * else, {@link ITextEditor#isEditable()} is returned, or <code>false</code> if the editor is <code>null</code>.</p> * * <p>There is only a difference to {@link #validateEditorInputState()} if the editor implements * <code>ITextEditorExtension2</code>.</p> * * @return <code>true</code> if a modifying action should be enabled, <code>false</code> otherwise * @since 3.0 */ protected boolean canModifyEditor() { ITextEditor editor= getTextEditor(); if (editor instanceof ITextEditorExtension2) return ((ITextEditorExtension2) editor).isEditorInputModifiable(); else if (editor instanceof ITextEditorExtension) return !((ITextEditorExtension) editor).isEditorInputReadOnly(); else if (editor != null) return editor.isEditable(); else return false; }
/** * Checks and validates the editor's modifiable state. Returns <code>true</code> if an action * can proceed modifying the editor's input, <code>false</code> if it should not. * * <p>If the editor implements <code>ITextEditorExtension2</code>, * this method returns {@link ITextEditorExtension2#validateEditorInputState()};<br> else if the editor * implements <code>ITextEditorExtension</code>, it returns {@link ITextEditorExtension#isEditorInputReadOnly()};<br> * else, {@link ITextEditor#isEditable()} is returned, or <code>false</code> if the editor is <code>null</code>.</p> * * <p>There is only a difference to {@link #canModifyEditor()} if the editor implements * <code>ITextEditorExtension2</code>.</p> * * @return <code>true</code> if a modifying action can proceed to modify the underlying document, <code>false</code> otherwise * @since 3.0 */ protected boolean validateEditorInputState() { ITextEditor editor= getTextEditor(); if (editor instanceof ITextEditorExtension2) return ((ITextEditorExtension2) editor).validateEditorInputState(); else if (editor instanceof ITextEditorExtension) return !((ITextEditorExtension) editor).isEditorInputReadOnly(); else if (editor != null) return editor.isEditable(); else return false; }