Wie machen nur Editor in Eclipse (Eclipse Plugin Development) lesen
-
05-07-2019 - |
Frage
Ich frage mich, wie man einen wirklich nur Eclipse-Editor lesbar machen .. Mein Editor erweitert Texteditor , also wenn ich Methode reimplementieren isEditable immer zurückkehren false .
Es ist die einfachste Art und Weise, die im Editor geöffnet Benutzer eingeben oder löscht etwas im Dokument verhindert. Aber man kann immer noch Inhalt des Dokuments zum Beispiel ändern, indem FIND / ersetzen. Und dies ist nicht erwünscht ..
Gibt es eine andere Art und Weise aesy, wie dieses Ziel arhieve?
Lösung
Ich wollte Editor statt Betrachter verwenden, da der Editor bereits gemacht wurde, so habe ich nur ein 3rd-Party-Plugin ..
fand ich meine Lösung - maybee nicht sehr sauber, aber es erfüllt seinen Zweck und ist ziemlich einfach, so dass es gewinnt
Ich habe theese Methoden außer Kraft gesetzt:
@Override
public boolean isEditable() {
return false;
}
@Override
public boolean isEditorInputModifiable() {
return false;
}
@Override
public boolean isEditorInputReadOnly() {
return true;
}
@Override
public boolean isDirty() {
return false;
}
Andere Tipps
Haben Sie versucht, Ihren eigenen SourceViewer zu schaffen? Etwas wie das. Ich habe den Code nicht selber ausprobiert.
class ReadOnlyViewer extends SourceViewer
{
protected StyledText createTextWidget(Composite parent, int styles)
{
return new StyledText(parent, styles | SWT.READ_ONLY);
}
}
class MyEditor extends TextEditor
{
protected ISourceViewer createSourceViewer(Composite parent, IVerticalRuler ruler, int styles)
{
fAnnotationAccess= getAnnotationAccess();
fOverviewRuler= createOverviewRuler(getSharedColors());
ISourceViewer viewer= new ReadOnlyViewer(parent, ruler, getOverviewRuler(), isOverviewRulerVisible(), styles);
// ensure decoration support has been created and configured.
getSourceViewerDecorationSupport(viewer);
return viewer;
}
}
In den SWT Stile, geben Sie SWT.READ_ONLY . Dies sollte alle APIs ablehnen, die das Dokument (mit Ausnahme von setText (), ich hoffe, ...) ändern
Falls nicht, nehmen Sie bitte einen Fehler Datei.
Warum Sie einen Texteditor verwenden, anstatt mit einem Textviewer ?