Example usage for com.intellij.openapi.fileEditor OpenFileDescriptor OpenFileDescriptor

List of usage examples for com.intellij.openapi.fileEditor OpenFileDescriptor OpenFileDescriptor

Introduction

In this page you can find the example usage for com.intellij.openapi.fileEditor OpenFileDescriptor OpenFileDescriptor.

Prototype

public OpenFileDescriptor(@NotNull Project project, @NotNull VirtualFile file, int offset) 

Source Link

Usage

From source file:org.jetbrains.plugins.groovy.annotator.intentions.CreateClassActionBase.java

License:Apache License

@Nullable
public static Editor putCursor(Project project, @NotNull PsiFile targetFile, PsiElement element) {
    int textOffset = element.getTextOffset();
    VirtualFile virtualFile = targetFile.getVirtualFile();
    if (virtualFile != null) {
        OpenFileDescriptor descriptor = new OpenFileDescriptor(project, virtualFile, textOffset);
        return FileEditorManager.getInstance(project).openTextEditor(descriptor, true);
    } else {/*from   w w w . j a va2 s  .  c  om*/
        return null;
    }
}

From source file:org.jetbrains.plugins.groovy.annotator.intentions.CreateLocalVariableFromUsageFix.java

License:Apache License

@Nullable
protected static Editor positionCursor(Project project, PsiFile targetFile, PsiElement element) {
    TextRange range = element.getTextRange();
    int textOffset = range.getStartOffset();

    VirtualFile vFile = targetFile.getVirtualFile();
    assert vFile != null;
    OpenFileDescriptor descriptor = new OpenFileDescriptor(project, vFile, textOffset);
    return FileEditorManager.getInstance(project).openTextEditor(descriptor, true);
}

From source file:org.jetbrains.plugins.ruby.ruby.actions.BaseEditorActionTestCase.java

License:Apache License

private void prepareEditor(String documentText) {
    final IntRef selStartOffset = new IntRef(documentText.indexOf(SELECTION_START_MARKER));
    final IntRef selEndOffset = new IntRef(documentText.indexOf(SELECTION_END_MARKER));
    final IntRef caretOffset = new IntRef(documentText.indexOf(CARET_MARKER));

    if (caretOffset.get() >= 0) {
        documentText = TestUtil.removeSubstring(documentText, caretOffset.get(), CARET_MARKER.length(),
                caretOffset, selStartOffset, selEndOffset);
    }/*from   ww w  .  ja  v  a 2 s  .  c om*/

    if (selStartOffset.get() >= 0) {
        documentText = TestUtil.removeSubstring(documentText, selStartOffset.get(),
                SELECTION_START_MARKER.length(), caretOffset, selStartOffset, selEndOffset);
    }

    if (selEndOffset.get() >= 0) {
        documentText = TestUtil.removeSubstring(documentText, selEndOffset.get(), SELECTION_END_MARKER.length(),
                caretOffset, selStartOffset, selEndOffset);
    }

    assert (selStartOffset.get() <= -1) || selStartOffset.get() < selEndOffset.get();

    myFile = TestUtil.createPseudoPhysicalFile(myProject, documentText);
    fileEditorManager = FileEditorManager.getInstance(myProject);
    myEditor = fileEditorManager.openTextEditor(new OpenFileDescriptor(myProject, myFile.getVirtualFile(), 0),
            false);

    // Setting up editor
    if (caretOffset.get() >= 0) {
        myEditor.getCaretModel().moveToOffset(caretOffset.get());
    } else {
        myEditor.getCaretModel().moveToOffset(0);
    }
    if (selStartOffset.get() >= 0 && selEndOffset.get() >= 0) {
        myEditor.getSelectionModel().setSelection(selStartOffset.get(), selEndOffset.get());
    }
}

From source file:org.jetbrains.plugins.scala.lang.actions.editor.enter.AbstractEnterActionTestBase.java

License:Apache License

private String processFile(final PsiFile file)
        throws IncorrectOperationException, InvalidDataException, IOException {
    String result;//from   w  w  w  .  java2 s  .  co m
    String fileText = file.getText();
    int offset = fileText.indexOf(CARET_MARKER);
    fileText = removeMarker(fileText);
    myFile = TestUtils.createPseudoPhysicalScalaFile(getProject(), fileText);
    fileEditorManager = FileEditorManager.getInstance(getProject());
    myEditor = fileEditorManager
            .openTextEditor(new OpenFileDescriptor(getProject(), myFile.getVirtualFile(), 0), false);
    myEditor.getCaretModel().moveToOffset(offset);

    final myDataContext dataContext = getDataContext(myFile);
    final EditorActionHandler handler = getMyHandler();

    try {
        performAction(getProject(), new Runnable() {
            public void run() {
                handler.execute(myEditor, dataContext);
            }
        });

        offset = myEditor.getCaretModel().getOffset();
        result = myEditor.getDocument().getText();
        result = result.substring(0, offset) + CARET_MARKER + result.substring(offset);
    } finally {
        fileEditorManager.closeFile(myFile.getVirtualFile());
        myEditor = null;
    }

    return result;
}

From source file:org.moe.designer.configurations.ConfigurationAction.java

License:Apache License

protected void pickedBetterMatch(@NotNull VirtualFile file, @NotNull VirtualFile old) {
    // Switch files, and leave this configuration alone
    Module module = myRenderContext.getModule();
    assert module != null;
    Project project = module.getProject();
    OpenFileDescriptor descriptor = new OpenFileDescriptor(project, file, -1);
    FileEditorManager manager = FileEditorManager.getInstance(project);
    FileEditor selectedEditor = manager.getSelectedEditor(old);
    List<FileEditor> editors = manager.openEditor(descriptor, true);

    // Switch to the same type of editor (XML or Layout Editor) in the target file
    if (selectedEditor instanceof IOSDesignerEditor) {
        manager.setSelectedEditor(file, IXMLFileEditorProvider.ANDROID_DESIGNER_ID);
    } else if (selectedEditor != null) {
        manager.setSelectedEditor(file, TextEditorProvider.getInstance().getEditorTypeId());

        // Proactively switch to the new editor right away in the layout XML preview, if applicable
        if (!editors.isEmpty()) {
            for (FileEditor editor : editors) {
                if (editor instanceof TextEditor && editor.getComponent().isShowing()) {
                    //TODO: implement preview window if it is important
                    //            AndroidLayoutPreviewToolWindowManager previewManager = AndroidLayoutPreviewToolWindowManager.getInstance(project);
                    //            previewManager.notifyFileShown((TextEditor)editor, true);
                    break;
                }// ww w .  j  a v a2  s .c  o  m
            }
        }
    }
}

From source file:org.moe.designer.rendering.RenderedPanel.java

License:Apache License

private boolean handleMenu(@Nullable RenderedView leaf) {
    boolean showMenu = false;
    if (leaf != null) {
        ViewInfo view = leaf.view;/*from   w w w. j  a v a  2  s  .c o m*/
        if (view != null) {
            ViewType viewType = view.getViewType();
            if (viewType != ViewType.USER) {
                IXmlFile xmlFile = myContext.getXmlFile();
                if (ResourceHelper.getFolderType(xmlFile) == ResourceFolderType.MENU) {
                    // When rendering a menu file, don't hide menu when clicking outside of it
                    showMenu = true;
                }
                if (viewType == ViewType.ACTION_BAR_OVERFLOW) {
                    showMenu = !ActionBarHandler.isShowingMenu(myContext);
                } else if (ActionBarHandler.isShowingMenu(myContext)) {
                    RenderedView v = leaf.getParent();
                    while (v != null) {
                        if (v.tag != null) {
                            // A view *containing* a system view is the menu
                            showMenu = true;
                            if (TAG_ITEM.equals(v.tag.getName())) {
                                PsiFile file = v.tag.getContainingFile();
                                if (file != null && file != xmlFile) {
                                    VirtualFile virtualFile = file.getVirtualFile();
                                    if (virtualFile != null) {
                                        Project project = file.getProject();
                                        int offset = v.tag.getTextOffset();
                                        OpenFileDescriptor descriptor = new OpenFileDescriptor(project,
                                                virtualFile, offset);
                                        FileEditorManager.getInstance(project).openEditor(descriptor, true);
                                        return true;
                                    }
                                }
                            }
                            break;
                        }
                        v = v.getParent();
                    }
                }
            }
        }
    }

    ActionBarHandler.showMenu(showMenu, myContext, true);

    return false;
}

From source file:org.moe.designer.rendering.RenderOptionsMenuBuilder.java

License:Apache License

@NotNull
public RenderOptionsMenuBuilder addPreferXmlOption() {
    myGroup.addAction(new CheckboxAction("Prefer XML Editor") {
        @Override/*w  w  w.  j a  v a  2  s  .  c  om*/
        public boolean isSelected(AnActionEvent e) {
            return mySettings.getGlobalState().isPreferXmlEditor();
        }

        @Override
        public void setSelected(AnActionEvent e, boolean state) {
            mySettings.getGlobalState().setPreferXmlEditor(state);

            // Switch to XML editor
            Module module = myContext.getModule();
            VirtualFile file = myContext.getVirtualFile();
            if (module != null && file != null) {
                Project project = module.getProject();
                FileEditorManager manager = FileEditorManager.getInstance(project);
                if (state) {
                    OpenFileDescriptor descriptor = new OpenFileDescriptor(project, file, 0);
                    manager.openEditor(descriptor, true);
                } else {
                    FileEditorManager.getInstance(project).setSelectedEditor(file,
                            IXMLFileEditorProvider.ANDROID_DESIGNER_ID);
                }
            }
        }
    }).setAsSecondary(true);

    return this;
}

From source file:org.napile.idea.thermit.config.execution.TreeView.java

License:Apache License

private JPanel createPanel() {
    createModel();/*from   w w  w  . j a  v  a2s. co m*/
    myTree = new MyTree();
    myTree.setLineStyleAngled();
    myTree.setRootVisible(false);
    myTree.setShowsRootHandles(true);
    myTree.updateUI();
    myTree.setLargeModel(true);

    myTree.addKeyListener(new KeyAdapter() {
        public void keyPressed(KeyEvent e) {
            if (e.getKeyCode() == KeyEvent.VK_ENTER) {
                OpenSourceUtil.openSourcesFrom(DataManager.getInstance().getDataContext(myTree), false);
            }
        }
    });

    myTree.addMouseListener(new PopupHandler() {
        public void invokePopup(Component comp, int x, int y) {
            popupInvoked(comp, x, y);
        }
    });

    EditSourceOnDoubleClickHandler.install(myTree);

    myAutoScrollToSourceHandler.install(myTree);

    myOccurenceNavigatorSupport = new OccurenceNavigatorSupport(myTree) {
        protected Navigatable createDescriptorForNode(DefaultMutableTreeNode node) {
            if (!(node instanceof MessageNode)) {
                return null;
            }
            MessageNode messageNode = (MessageNode) node;
            AntBuildMessageView.MessageType type = messageNode.getType();

            if (type != AntBuildMessageView.MessageType.MESSAGE
                    && type != AntBuildMessageView.MessageType.ERROR) {
                return null;
            }

            if (!isValid(messageNode.getFile())) {
                return null;
            }

            return new OpenFileDescriptor(myProject, messageNode.getFile(), messageNode.getOffset());
        }

        @Nullable
        public String getNextOccurenceActionName() {
            return ThermitBundle.message("ant.execution.next.error.warning.action.name");
        }

        @Nullable
        public String getPreviousOccurenceActionName() {
            return ThermitBundle.message("ant.execution.previous.error.warning.action.name");
        }
    };

    JPanel panel = new JPanel(new BorderLayout());

    JScrollPane scrollPane = MessageTreeRenderer.install(myTree);
    panel.add(scrollPane, BorderLayout.CENTER);
    return panel;
}

From source file:org.napile.idea.thermit.config.execution.TreeView.java

License:Apache License

@Nullable
public Object getData(String dataId) {
    if (PlatformDataKeys.NAVIGATABLE.is(dataId)) {
        MessageNode item = getSelectedItem();
        if (item == null)
            return null;
        if (isValid(item.getFile())) {
            return new OpenFileDescriptor(myProject, item.getFile(), item.getOffset());
        }/*from w  ww  .j  a  v  a 2  s.  co  m*/
        if (item.getType() == AntBuildMessageView.MessageType.TARGET) {
            final OpenFileDescriptor descriptor = getDescriptorForTargetNode(item);
            if (descriptor != null && isValid(descriptor.getFile())) {
                return descriptor;
            }
        }
        if (item.getType() == AntBuildMessageView.MessageType.TASK) {
            final OpenFileDescriptor descriptor = getDescriptorForTaskNode(item);
            if (descriptor != null && isValid(descriptor.getFile())) {
                return descriptor;
            }
        }
    }
    return null;
}

From source file:org.sonarlint.intellij.ui.AbstractIssuesPanel.java

License:Open Source License

@CheckForNull
private OccurenceNavigator.OccurenceInfo occurrence(@Nullable IssueNode node) {
    if (node == null) {
        return null;
    }/*from   w  w  w.  j a  v a2 s .c  om*/

    TreePath path = new TreePath(node.getPath());
    tree.getSelectionModel().setSelectionPath(path);
    tree.scrollPathToVisible(path);

    RangeMarker range = node.issue().getRange();
    int startOffset = (range != null) ? range.getStartOffset() : 0;
    return new OccurenceNavigator.OccurenceInfo(
            new OpenFileDescriptor(project, node.issue().psiFile().getVirtualFile(), startOffset), -1, -1);
}