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:com.intellij.codeInsight.CodeInsightUtil.java

License:Apache License

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

    OpenFileDescriptor descriptor = new OpenFileDescriptor(project, targetFile.getVirtualFile(), textOffset);
    return FileEditorManager.getInstance(project).openTextEditor(descriptor, true);
}

From source file:com.intellij.codeInsight.daemon.impl.quickfix.CreateClassFromUsageFix.java

License:Apache License

@Override
public void invoke(@NotNull final Project project, final Editor editor, final PsiFile file) {
    final PsiJavaCodeReferenceElement element = getRefElement();
    assert element != null;
    if (!FileModificationService.getInstance().preparePsiElementForWrite(element))
        return;/* w  w w.  ja  v  a 2  s.  c o m*/
    final String superClassName = getSuperClassName(element);
    final PsiClass aClass = CreateFromUsageUtils.createClass(element, myKind, superClassName);
    if (aClass == null)
        return;

    ApplicationManager.getApplication().runWriteAction(new Runnable() {
        @Override
        public void run() {
            PsiJavaCodeReferenceElement refElement = element;
            try {
                refElement = (PsiJavaCodeReferenceElement) refElement.bindToElement(aClass);
            } catch (IncorrectOperationException e) {
                LOG.error(e);
            }

            IdeDocumentHistory.getInstance(project).includeCurrentPlaceAsChangePlace();

            OpenFileDescriptor descriptor = new OpenFileDescriptor(refElement.getProject(),
                    aClass.getContainingFile().getVirtualFile(), aClass.getTextOffset());
            FileEditorManager.getInstance(aClass.getProject()).openTextEditor(descriptor, true);
        }
    });
}

From source file:com.intellij.codeInsight.daemon.impl.quickfix.CreateFromUsageBaseFix.java

License:Apache License

@Nullable("null means unable to open the editor")
protected static Editor positionCursor(@NotNull Project project, @NotNull PsiFile targetFile,
        @NotNull PsiElement element) {//from   w  ww.  j ava 2  s  . c o  m
    TextRange range = element.getTextRange();
    int textOffset = range.getStartOffset();
    VirtualFile file = targetFile.getVirtualFile();
    if (file == null) {
        file = PsiUtilCore.getVirtualFile(element);
        if (file == null)
            return null;
    }
    OpenFileDescriptor descriptor = new OpenFileDescriptor(project, file, textOffset);
    return FileEditorManager.getInstance(project).openTextEditor(descriptor, true);
}

From source file:com.intellij.codeInsight.daemon.impl.quickfix.MoveClassToSeparateFileFix.java

License:Apache License

@Override
public void invoke(@NotNull Project project, @Nullable Editor editor, @NotNull PsiFile file) {
    if (!FileModificationService.getInstance().prepareFileForWrite(myClass.getContainingFile()))
        return;/*from w  w w .ja va 2 s.  co m*/

    PsiDirectory dir = file.getContainingDirectory();
    try {
        String name = myClass.getName();
        JavaDirectoryService directoryService = JavaDirectoryService.getInstance();
        PsiClass placeHolder = myClass.isInterface() ? directoryService.createInterface(dir, name)
                : directoryService.createClass(dir, name);
        PsiClass newClass = (PsiClass) placeHolder.replace(myClass);
        myClass.delete();

        OpenFileDescriptor descriptor = new OpenFileDescriptor(project,
                newClass.getContainingFile().getVirtualFile(), newClass.getTextOffset());
        FileEditorManager.getInstance(project).openTextEditor(descriptor, true);
    } catch (IncorrectOperationException e) {
        LOG.error(e);
    }
}

From source file:com.intellij.codeInsight.hint.NavigationLinkHandler.java

License:Apache License

@Override
public boolean handleLink(@NotNull final String refSuffix, @NotNull final Editor editor) {
    final int pos = refSuffix.lastIndexOf(':');
    if (pos <= 0 || pos == refSuffix.length() - 1) {
        LOG.error("Malformed suffix: " + refSuffix);
        return true;
    }//from  ww  w  .j  a  v a2s. com

    final String path = refSuffix.substring(0, pos);
    final VirtualFile vFile = LocalFileSystem.getInstance().findFileByPath(path);
    if (vFile == null) {
        LOG.error("Unknown file: " + path);
        return true;
    }

    final int offset;
    try {
        offset = Integer.parseInt(refSuffix.substring(pos + 1));
    } catch (NumberFormatException e) {
        LOG.error("Malformed suffix: " + refSuffix);
        return true;
    }

    new OpenFileDescriptor(editor.getProject(), vFile, offset).navigate(true);
    return true;
}

From source file:com.intellij.codeInsight.intention.impl.config.LazyEditor.java

License:Apache License

private Editor getEditor() {
    if (myEditor == null) {
        final Project project = myFile.getProject();
        myEditor = FileEditorManager.getInstance(project)
                .openTextEditor(new OpenFileDescriptor(project, myFile.getVirtualFile(), 0), false);
        assert myEditor != null;
    }//from   w w w  .  j a  v  a  2s  .co  m
    return myEditor;
}

From source file:com.intellij.codeInsight.intention.impl.QuickEditHandler.java

License:Apache License

public void navigate(int injectedOffset) {
    if (myAction.isShowInBalloon()) {
        Ref<Balloon> ref = Ref.create(null);
        final JComponent component = myAction.createBalloonComponent(myNewFile, ref);
        if (component != null) {
            final Balloon balloon = JBPopupFactory.getInstance().createBalloonBuilder(component).setShadow(true)
                    .setAnimationCycle(0).setHideOnClickOutside(true).setHideOnKeyOutside(true)
                    .setHideOnAction(false).setFillColor(UIUtil.getControlColor()).createBalloon();
            ref.set(balloon);/* ww  w. j  a  v  a2  s  . co  m*/
            Disposer.register(myNewFile.getProject(), balloon);
            final Balloon.Position position = QuickEditAction.getBalloonPosition(myEditor);
            RelativePoint point = JBPopupFactory.getInstance().guessBestPopupLocation(myEditor);
            if (position == Balloon.Position.above) {
                final Point p = point.getPoint();
                point = new RelativePoint(point.getComponent(), new Point(p.x, p.y - myEditor.getLineHeight()));
            }
            balloon.show(point, position);
        }
    } else {
        final FileEditorManagerEx fileEditorManager = FileEditorManagerEx.getInstanceEx(myProject);
        final FileEditor[] editors = fileEditorManager.getEditors(myNewVirtualFile);
        if (editors.length == 0) {
            final EditorWindow curWindow = fileEditorManager.getCurrentWindow();
            mySplittedWindow = curWindow.split(SwingConstants.HORIZONTAL, false, myNewVirtualFile, true);
        }
        Editor editor = fileEditorManager
                .openTextEditor(new OpenFileDescriptor(myProject, myNewVirtualFile, injectedOffset), true);
        // fold missing values
        if (editor != null) {
            editor.putUserData(QuickEditAction.QUICK_EDIT_HANDLER, this);
            final FoldingModel foldingModel = editor.getFoldingModel();
            foldingModel.runBatchFoldingOperation(new Runnable() {
                @Override
                public void run() {
                    for (RangeMarker o : ContainerUtil
                            .reverse(((DocumentEx) myNewDocument).getGuardedBlocks())) {
                        String replacement = o.getUserData(REPLACEMENT_KEY);
                        if (StringUtil.isEmpty(replacement))
                            continue;
                        FoldRegion region = foldingModel.addFoldRegion(o.getStartOffset(), o.getEndOffset(),
                                replacement);
                        if (region != null)
                            region.setExpanded(false);
                    }
                }
            });
        }
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                myEditor.getScrollingModel().scrollToCaret(ScrollType.MAKE_VISIBLE);
            }
        });

    }
}

From source file:com.intellij.codeInsight.navigation.actions.GotoTypeDeclarationAction.java

License:Apache License

private static void navigate(@NotNull Project project, @NotNull PsiElement symbolType) {
    PsiElement element = symbolType.getNavigationElement();
    assert element != null : "SymbolType :" + symbolType + "; file: " + symbolType.getContainingFile();
    VirtualFile file = element.getContainingFile().getVirtualFile();
    if (file != null) {
        OpenFileDescriptor descriptor = new OpenFileDescriptor(project, file, element.getTextOffset());
        FileEditorManager.getInstance(project).openTextEditor(descriptor, true);
    }//from  w ww  . j ava 2  s.  c om
}

From source file:com.intellij.codeInsight.navigation.JavaGotoSuperHandler.java

License:Apache License

@Override
public void invoke(@NotNull final Project project, @NotNull final Editor editor, @NotNull final PsiFile file) {
    FeatureUsageTracker.getInstance().triggerFeatureUsed(GotoSuperAction.FEATURE_ID);

    int offset = editor.getCaretModel().getOffset();
    PsiElement[] superElements = findSuperElements(file, offset);
    if (superElements == null || superElements.length == 0)
        return;/*from w w  w. ja  va 2  s  . c o m*/
    if (superElements.length == 1) {
        PsiElement superElement = superElements[0].getNavigationElement();
        final PsiFile containingFile = superElement.getContainingFile();
        if (containingFile == null)
            return;
        final VirtualFile virtualFile = containingFile.getVirtualFile();
        if (virtualFile == null)
            return;
        OpenFileDescriptor descriptor = new OpenFileDescriptor(project, virtualFile,
                superElement.getTextOffset());
        FileEditorManager.getInstance(project).openTextEditor(descriptor, true);
    } else {
        if (superElements[0] instanceof PsiMethod) {
            boolean showMethodNames = !PsiUtil.allMethodsHaveSameSignature((PsiMethod[]) superElements);
            PsiElementListNavigator
                    .openTargets(editor, (PsiMethod[]) superElements,
                            CodeInsightBundle.message("goto.super.method.chooser.title"),
                            CodeInsightBundle.message("goto.super.method.findUsages.title",
                                    ((PsiMethod) superElements[0]).getName()),
                            new MethodCellRenderer(showMethodNames));
        } else {
            NavigationUtil
                    .getPsiElementPopup(superElements,
                            CodeInsightBundle.message("goto.super.class.chooser.title"))
                    .showInBestPositionFor(editor);
        }
    }
}

From source file:com.intellij.codeInspection.ui.InspectionResultsView.java

License:Apache License

public InspectionResultsView(@NotNull final Project project, final InspectionProfile inspectionProfile,
        @NotNull AnalysisScope scope, @NotNull GlobalInspectionContextImpl globalInspectionContext,
        @NotNull InspectionRVContentProvider provider) {
    setLayout(new BorderLayout());

    myProject = project;//  w  w w  .j a v a2s  . c o m
    myInspectionProfile = inspectionProfile;
    myScope = scope;
    myGlobalInspectionContext = globalInspectionContext;
    myProvider = provider;

    myTree = new InspectionTree(project, globalInspectionContext);
    initTreeListeners();

    myOccurenceNavigator = initOccurenceNavigator();

    myBrowser = new Browser(this);

    mySplitter = new Splitter(false, AnalysisUIOptions.getInstance(myProject).SPLITTER_PROPORTION);

    mySplitter
            .setFirstComponent(ScrollPaneFactory.createScrollPane(myTree, SideBorder.LEFT | SideBorder.RIGHT));
    mySplitter.setSecondComponent(myBrowser);

    mySplitter.addPropertyChangeListener(new PropertyChangeListener() {
        @Override
        public void propertyChange(PropertyChangeEvent evt) {
            if (Splitter.PROP_PROPORTION.equals(evt.getPropertyName())) {
                myGlobalInspectionContext.setSplitterProportion(((Float) evt.getNewValue()).floatValue());
            }
        }
    });
    add(mySplitter, BorderLayout.CENTER);

    myBrowser.addClickListener(new Browser.ClickListener() {
        @Override
        public void referenceClicked(final Browser.ClickEvent e) {
            if (e.getEventType() == Browser.ClickEvent.REF_ELEMENT) {
                final RefElement refElement = e.getClickedElement();
                final OpenFileDescriptor descriptor = getOpenFileDescriptor(refElement);
                if (descriptor != null) {
                    FileEditorManager.getInstance(project).openTextEditor(descriptor, false);
                }
            } else if (e.getEventType() == Browser.ClickEvent.FILE_OFFSET) {
                final VirtualFile file = e.getFile();
                final OpenFileDescriptor descriptor = new OpenFileDescriptor(project, file, e.getStartOffset());
                final Editor editor = FileEditorManager.getInstance(project).openTextEditor(descriptor, true);
                if (editor != null) {
                    final TextAttributes selectionAttributes = EditorColorsManager.getInstance()
                            .getGlobalScheme().getAttributes(EditorColors.SEARCH_RESULT_ATTRIBUTES);
                    HighlightManager.getInstance(project).addRangeHighlight(editor, e.getStartOffset(),
                            e.getEndOffset(), selectionAttributes, true, null);
                }
            }
        }
    });

    createActionsToolbar();
}