Pergunta

Eu estou querendo saber como fazer um realmente lido apenas eclipse editor .. Meu editor estende TextEditor , então quando eu reimplementar método isEditable para sempre retornar false .

É a maneira mais fácil, o que impede usuário de digitação ou excluir nada no documento aberto no editor. Mas você ainda pode alterar o conteúdo do documento, por exemplo, usando find / substituir. E isso não é desejado ..

Existe alguma outra maneira aesy como arhieve este objetivo?

Foi útil?

Solução

Eu queria usar editor em vez de espectador porque o editor já foi feito, então eu usei apenas um 3o partido plugin ..

Eu encontrei minha solução - maybee não muito limpo, mas faz o trabalho e é muito fácil por isso ganha

Eu anulado métodos theese:

@Override
public boolean isEditable() {
    return false;
}

@Override
public boolean isEditorInputModifiable() {
    return false;
}

@Override
public boolean isEditorInputReadOnly() {
    return true;
}

@Override
public boolean isDirty() {
    return false;
}

Outras dicas

Você já tentou criar o seu próprio SourceViewer? Algo assim. Eu não tentei o código de mim mesmo.

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;
    }
}

Nos estilos SWT, especifique SWT.READ_ONLY . Isso deve rejeitar todas as APIs que modificam o documento (com exceção de setText (), eu espero ...)

Se não, por favor registrar um bug .

Por que você está usando um TextEditor em vez de usar um TextViewer ?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top