下面列出了怎么用org.eclipse.ui.texteditor.ITextEditorExtension的API类实例代码及写法,或者点击链接到github查看源代码。
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;
}
@Override
public void setActiveEditor(IEditorPart part) {
super.setActiveEditor(part);
if (part instanceof ITextEditor) {
ITextEditor textEditor = (ITextEditor) part;
if (commandsMenuContributionItem != null) {
commandsMenuContributionItem.setTextEditor(textEditor);
}
if (inputPositionStatsContributionItem != null) {
inputPositionStatsContributionItem.setActionHandler(getAction(textEditor, ITextEditorActionConstants.GOTO_LINE));
ITextEditorExtension extension = (ITextEditorExtension) textEditor;
extension.setStatusField(inputPositionStatsContributionItem, ITextEditorActionConstants.STATUS_CATEGORY_INPUT_POSITION);
}
if (part instanceof AbstractThemeableEditor) {
FoldingActionsGroup foldingActions = ((AbstractThemeableEditor) part).getFoldingActionsGroup();
if (foldingActions != null) {
foldingActions.updateActionBars();
}
}
markOccurrencesAction.setEditor(textEditor);
}
}
/**
* @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;
}
protected boolean validateEditorInputState(ITextEditor editor) {
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;
}
protected boolean validateEditorInputState(ITextEditor editor) {
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;
}
/**
* 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;
}
private void findJavaAnnotation() {
fPosition= null;
fAnnotation= null;
fHasCorrection= false;
AbstractMarkerAnnotationModel model= getAnnotationModel();
IAnnotationAccessExtension annotationAccess= getAnnotationAccessExtension();
IDocument document= getDocument();
if (model == null)
return ;
boolean hasAssistLightbulb= fStore.getBoolean(PreferenceConstants.EDITOR_QUICKASSIST_LIGHTBULB);
Iterator<Annotation> iter= model.getAnnotationIterator();
int layer= Integer.MIN_VALUE;
while (iter.hasNext()) {
Annotation annotation= iter.next();
if (annotation.isMarkedDeleted())
continue;
int annotationLayer= layer;
if (annotationAccess != null) {
annotationLayer= annotationAccess.getLayer(annotation);
if (annotationLayer < layer)
continue;
}
Position position= model.getPosition(annotation);
if (!includesRulerLine(position, document))
continue;
AnnotationPreference preference= fAnnotationPreferenceLookup.getAnnotationPreference(annotation);
if (preference == null)
continue;
String key= preference.getVerticalRulerPreferenceKey();
if (key == null)
continue;
if (!fStore.getBoolean(key))
continue;
boolean isReadOnly= fTextEditor instanceof ITextEditorExtension && ((ITextEditorExtension)fTextEditor).isEditorInputReadOnly();
if (!isReadOnly
&& (
((hasAssistLightbulb && annotation instanceof AssistAnnotation)
|| JavaCorrectionProcessor.hasCorrections(annotation)))) {
fPosition= position;
fAnnotation= annotation;
fHasCorrection= true;
layer= annotationLayer;
continue;
} else if (!fHasCorrection) {
fPosition= position;
fAnnotation= annotation;
layer= annotationLayer;
}
}
}
/**
* 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
*/
protected boolean validateEditorInputState(ITextEditor editor) {
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;
}
/**
* 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;
}