2

ワークベンチでアクティブなエディターからテキストを取得したいハンドラーがあります。下のスクリーンショットから、Test.java ("public class Test...") 内のすべてを取得したいと思います。

テストクラスのスクリーンショット

「ソース」メニューの下に新しいコマンドを正常に追加しました。アクティブなエディターからテキストを取得する場所がわかりません。テキストを取得しようとしてこれまでに得たものは次のとおりです(ポップアップにファイル名を表示するだけです):

package generatebuilderproject.handlers;

import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.handlers.HandlerUtil;
import org.eclipse.jface.dialogs.MessageDialog;

public class GenerateBuilderHandler extends AbstractHandler {

    public GenerateBuilderHandler() {
    }

    public Object execute(ExecutionEvent event) throws ExecutionException {
        IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);
        IEditorPart editorPart = HandlerUtil.getActiveEditor(event);

        MessageDialog.openInformation(
                window.getShell(),
                "GenerateBuilderProject",
                editorPart.getEditorInput().getName());
        return null;
    }
}
4

2 に答える 2

3

を取得したらIEditorPart、次のことを試すことができます。

IEditorInput input = editorPart.getEditorInput();
if (input instanceof FileEditorInput) {
    IFile file = ((FileEditorInput) input).getFile();
    InputStream is = file.getContents();
    // TODO get contents from InputStream
}
于 2013-02-15T15:51:53.423 に答える