views:

150

answers:

1

Hi!

I'm developing an Eclipse plug-in where upon pressing a button, the plug-in takes the selected text in the java editor and puts in a text box which appears.

My code looks like this: I got it from here: http://dev.eclipse.org/newslists/news.eclipse.newcomer/msg02200.html

private ITextSelection getSelection(ITextEditor editor) {
         ISelection selection = editor.getSelectionProvider()
            .getSelection();
     return (ITextSelection) selection;
     }

 private String getSelectedText(ITextEditor editor) {
     return getSelection(editor).getText();
     }

The problem is how will I get the ITextEditor of the java editor being displayed. Coincidentally it's the next question in the thread in the link I posted but it's unanswered :(

Thanks and regards, Krt_Malta

A: 

You could ask for the ActiveEditor, as in this thread:

IEditorPart part;

part =
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().get
ActiveEditor();

if(part instanceof ITextEditor){
    ITextEditor editor = (ITextEditor)part;
    IDocumentProvider provider = editor.getDocumentProvider();
    IDocument document = provider.getDocument(editor.getEditorInput());

The OP Krt_Malta mentions this blog entry "Programmatically query current text selection", which is similar to this other SO answer (written before the blog entry) "Replace selected code from eclipse editor through plugin command".

VonC
See also SO question http://stackoverflow.com/questions/1694748/adding-item-to-eclipse-text-viewer-context-menu with a similar problem
VonC
Thanks :) Just after I submitted the question I decided to give the methods I posted earlier a seach on google just to see if any matches come up. One of the hits was http://usayadis.wordpress.com/2009/10/20/programmatically-query-current-text-selection/ which did exactly what I was looking for.Thanks and regards,Krt_Malta
Krt_Malta