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谢谢,我将对此进行研究