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

时间:2016-08-19 18:15:02

标签: java eclipse-plugin

我正在创建一个插件来编辑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();
    }
}

2 个答案:

答案 0 :(得分:1)

我找到了问题的答案。 TextFileDocumentProdiver扩展了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;
    }
}

答案 1 :(得分:0)

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