Java 在自定义Eclipse文本编辑器插件中打开之前处理文件

Java 在自定义Eclipse文本编辑器插件中打开之前处理文件,java,eclipse-plugin,Java,Eclipse Plugin,我正在创建一个插件来编辑run.properties文件的加密内容。我的编辑器窗口可以打开属性文件,但我不确定如何实现代码来处理(读取解密)所选文件。我需要获得我选择的文件,使用我的解密代码将其转换为可读的纯文本,然后在编辑器窗口中打开该文件 目前,我有自己的类TextEditor扩展AbstractTextEditor。我的ISelection对象在以下代码段中为空 public class TextEditor extends AbstractTextEditor { public

我正在创建一个插件来编辑
run.properties
文件的加密内容。我的编辑器窗口可以打开属性文件,但我不确定如何实现代码来处理(读取解密)所选文件。我需要获得我选择的文件,使用我的解密代码将其转换为可读的纯文本,然后在编辑器窗口中打开该文件

目前,我有自己的类
TextEditor
扩展
AbstractTextEditor
。我的
ISelection
对象在以下代码段中为空

public class TextEditor extends AbstractTextEditor
{
    public TextEditor()
    {
        super();

        setSourceViewerConfiguration(new TextSourceViewerConfiguration());
        setDocumentProvider(new TextFileDocumentProvider());

        ISelection selection = doGetSelection();
    }

    @Override
    public void dispose()
    {
        super.dispose();
    }
}

我找到了我问题的答案。TextFileDocumentProDriver扩展了FileDocumentProvider,它有一个名为createDocument()的方法

我创建MyDocumentProvider以扩展FileDocumentProvider并重写createDocument()方法。这是密码

/**
 * Class to set up editor
 */
public class MyEditor extends TextEditor
{
    public MyEditor()
    {
        super();
        setSourceViewerConfiguration(new TextSourceViewerConfiguration());
        setDocumentProvider(new MyDocumentProvider());
    }

    @Override
    public void dispose()
    {
        super.dispose();
    }
}

/**
 * Class for document provider
 */
public class MyDocumentProvider extends FileDocumentProvider
{
    @Override
    protected IDocument createDocument(Object selectedFile) throws CoreException
    {
        IDocument doc = super.createDocument(selectedFile);
        if(doc != null)
        {
            // Manipulate document with my convenience method
            String manipulatedText = manipulate(doc);

            // Set the text of the displayed document
            doc.set(manipulatedText);
        }

        return doc;
    }
}

您可以在编辑器的init()方法中获得编辑器输入的内容。您可以根据解密操作编辑器输入的文本

试试super().doGetSelection();文档提供者在那里提供包含文本的文档,所以它应该在那里。注意,更常见的是扩展
org.eclipse.ui.editors.text.textdeditor
,它扩展了
AbstractDecoratedTextEditor
它扩展了
statustextdeditor
它扩展了
abstracttextdeditor
@greg-449谢谢,我将对此进行研究