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?

War es hilfreich?

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 ?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top