public void openDeclaration() {
    EditorPartPresenter activeEditor = editorAgent.getActiveEditor();
    if (activeEditor == null) {
      return;
    }

    if (!(activeEditor instanceof EmbeddedTextEditorPresenter)) {
      Log.error(getClass(), "Open Declaration support only EmbeddedTextEditorPresenter as editor");
      return;
    }
    EmbeddedTextEditorPresenter editor = ((EmbeddedTextEditorPresenter) activeEditor);
    int offset = editor.getCursorOffset();
    final VirtualFile file = editor.getEditorInput().getFile();
    Unmarshallable<OpenDeclarationDescriptor> unmarshaller =
        factory.newUnmarshaller(OpenDeclarationDescriptor.class);
    navigationService.findDeclaration(
        file.getProject().getProjectConfig().getPath(),
        JavaSourceFolderUtil.getFQNForFile(file),
        offset,
        new AsyncRequestCallback<OpenDeclarationDescriptor>(unmarshaller) {
          @Override
          protected void onSuccess(OpenDeclarationDescriptor result) {
            if (result != null) {
              handleDescriptor(result);
            }
          }

          @Override
          protected void onFailure(Throwable exception) {
            Log.error(OpenDeclarationFinder.class, exception);
          }
        });
  }
Example #2
0
 private void fileOpened(EditorPartPresenter editor) {
   if (editor instanceof EmbeddedTextEditorPresenter) {
     ((EmbeddedTextEditorPresenter) editor)
         .getDocument()
         .setSelectedRange(
             LinearRange.createWithStart(match.getFileMatchRegion().getOffset())
                 .andLength(match.getFileMatchRegion().getLength()),
             true);
   }
 }
 private void fileOpened(final EditorPartPresenter editor, final int offset) {
   new Timer() { // in some reason we need here timeout otherwise it not work cursor don't set to
                 // correct position
     @Override
     public void run() {
       if (editor instanceof EmbeddedTextEditorPresenter) {
         ((EmbeddedTextEditorPresenter) editor)
             .getDocument()
             .setSelectedRange(LinearRange.createWithStart(offset).andLength(0), true);
       }
     }
   }.schedule(100);
 }