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 logicalLine,
            int logicalColumn) 

Source Link

Usage

From source file:com.intellij.platform.PlatformProjectOpenProcessor.java

License:Apache License

private static void openFileFromCommandLine(final Project project, final VirtualFile virtualFile,
        final int line) {
    StartupManager.getInstance(project).registerPostStartupActivity(new DumbAwareRunnable() {
        @Override/*from  w w w . j  a va 2 s  . c o m*/
        public void run() {
            if (project.isDisposed()) {
                return;
            }
            ToolWindowManager.getInstance(project).invokeLater(new Runnable() {
                @Override
                public void run() {
                    ToolWindowManager.getInstance(project).invokeLater(new Runnable() {
                        @Override
                        public void run() {
                            if (!virtualFile.isDirectory()) {
                                if (line > 0) {
                                    new OpenFileDescriptor(project, virtualFile, line - 1, 0).navigate(true);
                                } else {
                                    new OpenFileDescriptor(project, virtualFile).navigate(true);
                                }
                            }
                        }
                    });
                }
            });
        }
    });
}

From source file:de.mobilej.plugin.adc.ToolWindowFactory.java

License:Apache License

@NotNull
private JPanel createPanel(@NotNull Project project) {
    // Create Panel and Content
    JPanel panel = new JPanel(new GridBagLayout());
    GridBagConstraints c = new GridBagConstraints();
    c.fill = GridBagConstraints.NONE;
    c.anchor = GridBagConstraints.LINE_START;

    devices = new ComboBox(new String[] { resourceBundle.getString("device.none") });

    c.gridx = 0;//from w w  w  . j a v a  2s. c  o m
    c.gridy = 0;
    panel.add(new JLabel("Device"), c);
    c.gridx = 1;
    c.gridy = 0;
    panel.add(devices, c);

    showLayoutBounds = new JBCheckBox(resourceBundle.getString("show.layout.bounds"));
    c.gridx = 0;
    c.gridy = 1;
    c.gridwidth = 2;
    panel.add(showLayoutBounds, c);

    showLayoutBounds.addActionListener(e -> {
        final String what = showLayoutBounds.isSelected() ? "true" : "\"\"";
        final String cmd = "setprop debug.layout " + what;

        ProgressManager.getInstance().runProcessWithProgressSynchronously(() -> {
            ProgressManager.getInstance().getProgressIndicator().setIndeterminate(true);
            userAction = true;
            executeShellCommand(cmd, true);
            userAction = false;
        }, resourceBundle.getString("setting.values.title"), false, null);
    });

    localeChooser = new ComboBox(LOCALES);
    c.gridx = 0;
    c.gridy = 2;
    c.gridwidth = 2;
    panel.add(localeChooser, c);

    localeChooser.addActionListener(e -> {
        final LocaleData ld = (LocaleData) localeChooser.getSelectedItem();
        if (ld == null) {
            return;
        }

        ProgressManager.getInstance().runProcessWithProgressSynchronously(() -> {
            ProgressManager.getInstance().getProgressIndicator().setIndeterminate(true);
            userAction = true;
            executeShellCommand(
                    "am start -a SETMYLOCALE --es language " + ld.language + " --es country " + ld.county,
                    false);
            userAction = false;
        }, resourceBundle.getString("setting.values.title"), false, null);
    });

    goToActivityButton = new JButton(resourceBundle.getString("button.goto_activity"));
    c.gridx = 0;
    c.gridy = 3;
    c.gridwidth = 2;
    panel.add(goToActivityButton, c);

    goToActivityButton
            .addActionListener(e -> ProgressManager.getInstance().runProcessWithProgressSynchronously(() -> {
                ProgressManager.getInstance().getProgressIndicator().setIndeterminate(true);
                userAction = true;
                final String result = executeShellCommand("dumpsys activity top", false);
                userAction = false;

                if (result == null) {
                    return;
                }

                ApplicationManager.getApplication().invokeLater(() -> {

                    String activity = result.substring(result.indexOf("ACTIVITY ") + 9);
                    activity = activity.substring(0, activity.indexOf(" "));
                    String pkg = activity.substring(0, activity.indexOf("/"));
                    String clz = activity.substring(activity.indexOf("/") + 1);
                    if (clz.startsWith(".")) {
                        clz = pkg + clz;
                    }

                    GlobalSearchScope scope = GlobalSearchScope.allScope(project);
                    PsiClass psiClass = JavaPsiFacade.getInstance(project).findClass(clz, scope);

                    if (psiClass != null) {
                        FileEditorManager fileEditorManager = FileEditorManager.getInstance(project);
                        //Open the file containing the class
                        VirtualFile vf = psiClass.getContainingFile().getVirtualFile();
                        //Jump there
                        new OpenFileDescriptor(project, vf, 1, 0).navigateInEditor(project, false);
                    } else {
                        Messages.showMessageDialog(project, clz,
                                resourceBundle.getString("error.class_not_found"), Messages.getWarningIcon());
                        return;
                    }

                });

            }, resourceBundle.getString("setting.values.title"), false, null));

    inputOnDeviceButton = new JButton(resourceBundle.getString("button.input_on_device"));
    c.gridx = 0;
    c.gridy = 4;
    c.gridwidth = 2;
    panel.add(inputOnDeviceButton, c);

    inputOnDeviceButton.addActionListener(e -> {
        final String text2send = Messages.showMultilineInputDialog(project,
                resourceBundle.getString("send_text.message"), resourceBundle.getString("send_text.title"),
                storage.getLastSentText(), Messages.getQuestionIcon(), null);

        if (text2send != null) {
            storage.setLastSentText(text2send);

            ProgressManager.getInstance().runProcessWithProgressSynchronously(() -> {
                ProgressManager.getInstance().getProgressIndicator().setIndeterminate(true);
                userAction = true;
                doInputOnDevice(text2send);
                userAction = false;
            }, resourceBundle.getString("processing.title"), false, null);
        }
    });

    clearDataButton = new JButton(resourceBundle.getString("button.clear_data"));
    c.gridx = 0;
    c.gridy = 5;
    c.gridwidth = 2;
    panel.add(clearDataButton, c);
    clearDataButton.addActionListener(actionEvent -> {
        ArrayList<String> appIds = new ArrayList<String>();
        List<AndroidFacet> androidFacets = ProjectFacetManager.getInstance(project).getFacets(AndroidFacet.ID);
        if (androidFacets != null) {
            for (AndroidFacet facet : androidFacets) {
                if (!facet.isLibraryProject()) {
                    AndroidModel androidModel = facet.getAndroidModel();
                    if (androidModel != null) {
                        String appId = androidModel.getApplicationId();
                        appIds.add(appId);
                    }
                }
            }
        }

        ProgressManager.getInstance().runProcessWithProgressSynchronously(() -> {
            ProgressManager.getInstance().getProgressIndicator().setIndeterminate(true);
            userAction = true;
            for (String appId : appIds) {
                executeShellCommand("pm clear " + appId, false);
            }
            userAction = false;
        }, resourceBundle.getString("processing.title"), false, null);
    });

    JPanel framePanel = new JPanel(new BorderLayout());
    framePanel.add(panel, BorderLayout.NORTH);
    return framePanel;
}

From source file:net.groboclown.idea.p4ic.v2.ui.warning.WarningViewHandler.java

License:Apache License

@NotNull
protected List<P4MessageElement> createMessageElementsFor(@NotNull Collection<WarningMessage> warnings) {
    VirtualFile root = project.getBaseDir();
    Map<String, GroupingElement> groups = new HashMap<String, GroupingElement>();
    List<P4MessageElement> ret = new ArrayList<P4MessageElement>();
    for (WarningMessage warning : warnings) {
        String groupName = warning.getSummary();
        GroupingElement group = groups.get(groupName);
        if (group == null) {
            group = new GroupingElement(groupName, root, root);
            groups.put(groupName, group);
        }//from w w w.ja  v  a 2s .  co  m
        Collection<VirtualFile> files = warning.getAffectedFiles();
        if (files.isEmpty()) {
            files = Collections.singletonList(root);
        }
        for (VirtualFile file : files) {
            String message = warning.getMessage();
            String exportText = "";
            if (files.size() > 1) {
                exportText = " (" + file.getPresentableName() + ")";
            }
            ret.add(new P4MessageElement(warning.getErrorKind(), group, new String[] { message },
                    new OpenFileDescriptor(project, file, -1, -1), exportText, "",
                    FilePathUtil.getFilePath(file)));
        }
    }
    return ret;
}

From source file:org.cordovastudio.editors.designer.rendering.HtmlLinkManager.java

License:Apache License

private static boolean openEditor(@NotNull Project project, @NotNull VirtualFile file, int line, int column) {
    OpenFileDescriptor descriptor = new OpenFileDescriptor(project, file, line, column);
    return !FileEditorManager.getInstance(project).openEditor(descriptor, true).isEmpty();
}

From source file:org.eclipse.xtext.idea.execution.TraceBasedExceptionFilter.java

License:Open Source License

@Override
public Filter.Result applyFilter(final String line, final int textEndOffset) {
    final Filter.Result result = super.applyFilter(line, textEndOffset);
    boolean _equals = Objects.equal(result, null);
    if (_equals) {
        return null;
    }//from  ww  w .  j  av  a2  s.  co  m
    List<Filter.ResultItem> _resultItems = result.getResultItems();
    final Function1<Filter.ResultItem, Boolean> _function = (Filter.ResultItem it) -> {
        HyperlinkInfo _hyperlinkInfo = it.getHyperlinkInfo();
        return Boolean.valueOf((!Objects.equal(_hyperlinkInfo, null)));
    };
    final Filter.ResultItem resultItem = IterableExtensions.<Filter.ResultItem>findFirst(_resultItems,
            _function);
    final HyperlinkInfo hyperlinkInfo = resultItem.getHyperlinkInfo();
    if ((hyperlinkInfo instanceof FileHyperlinkInfo)) {
        final OpenFileDescriptor descriptor = ((FileHyperlinkInfo) hyperlinkInfo).getDescriptor();
        boolean _notEquals = (!Objects.equal(descriptor, null));
        if (_notEquals) {
            VirtualFile _file = descriptor.getFile();
            Project _project = descriptor.getProject();
            final VirtualFileInProject fileInProject = new VirtualFileInProject(_file, _project);
            boolean _isGenerated = this.traceProvider.isGenerated(fileInProject);
            if (_isGenerated) {
                final IIdeaTrace trace = this.traceProvider.getTraceToSource(fileInProject);
                final RangeMarker rangeMarker = descriptor.getRangeMarker();
                if (((!Objects.equal(trace, null)) && (!Objects.equal(rangeMarker, null)))) {
                    Application _application = ApplicationManager.getApplication();
                    final Computable<Integer> _function_1 = () -> {
                        int _xblockexpression = (int) 0;
                        {
                            FileDocumentManager _instance = FileDocumentManager.getInstance();
                            VirtualFile _file_1 = descriptor.getFile();
                            final Document document = _instance.getDocument(_file_1);
                            int _startOffset = rangeMarker.getStartOffset();
                            final int lineNumber = document.getLineNumber(_startOffset);
                            _xblockexpression = DocumentUtil.getFirstNonSpaceCharOffset(document, lineNumber);
                        }
                        return Integer.valueOf(_xblockexpression);
                    };
                    final Integer nonSpaceCharOffset = _application.<Integer>runReadAction(_function_1);
                    TextRegion _textRegion = new TextRegion((nonSpaceCharOffset).intValue(), 0);
                    final ILocationInVirtualFile location = trace.getBestAssociatedLocation(_textRegion);
                    boolean _notEquals_1 = (!Objects.equal(location, null));
                    if (_notEquals_1) {
                        VirtualFileInProject _platformResource = location.getPlatformResource();
                        Project _project_1 = _platformResource.getProject();
                        VirtualFileInProject _platformResource_1 = location.getPlatformResource();
                        VirtualFile _file_1 = _platformResource_1.getFile();
                        ITextRegionWithLineInformation _textRegion_1 = location.getTextRegion();
                        int _lineNumber = _textRegion_1.getLineNumber();
                        final OpenFileDescriptor sourceFileDescriptor = new OpenFileDescriptor(_project_1,
                                _file_1, _lineNumber, 0);
                        final OpenFileHyperlinkInfo linkInfo = new OpenFileHyperlinkInfo(sourceFileDescriptor);
                        int _highlightStartOffset = resultItem.getHighlightStartOffset();
                        int _highlightEndOffset = resultItem.getHighlightEndOffset();
                        TextAttributes _highlightAttributes = resultItem.getHighlightAttributes();
                        return new Filter.Result(_highlightStartOffset, _highlightEndOffset, linkInfo,
                                _highlightAttributes);
                    }
                }
            }
        }
    }
    return result;
}

From source file:org.infinitest.intellij.idea.IdeaSourceNavigator.java

License:Open Source License

@Override
public void line(int line) {
    VirtualFile source = fileForClass();
    if (source != null) {
        FileEditorManager.getInstance(project).openEditor(new OpenFileDescriptor(project, source, line - 1, 0),
                true);/* w w  w  .j  ava 2 s .  co  m*/
    }
}

From source file:org.intellij.plugins.xsltDebugger.XsltDebuggerSession.java

License:Apache License

@Nullable
public static Editor openLocation(Project project, @NotNull String uri, int lineNumber) {
    try {//from ww  w .j ava  2 s  .  co m
        final VirtualFile file = VfsUtil.findFileByURL(new URI(uri).toURL());
        final OpenFileDescriptor descriptor = new OpenFileDescriptor(project, file, lineNumber, 0);
        descriptor.navigate(true);

        return FileEditorManager.getInstance(project).openTextEditor(descriptor, true);
    } catch (MalformedURLException e) {
        e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
        return null;
    } catch (URISyntaxException e) {
        e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
        return null;
    }
}

From source file:org.jetbrains.plugins.ruby.ruby.run.filters.OpenIOFileHyperlinkInfo.java

License:Apache License

@Override
@Nullable//from   ww  w .  j  a  va  2  s.  co m
public OpenFileDescriptor getDescriptor() {
    if (!isLazyInitialized) {
        final Ref<VirtualFile> virtualFileRef = new Ref<VirtualFile>(null);
        IdeaInternalUtil.runInsideWriteAction(new ActionRunner.InterruptibleRunnable() {
            @Override
            public void run() throws Exception {
                virtualFileRef.set(LocalFileSystem.getInstance().refreshAndFindFileByIoFile(myFile));
            }
        });
        final VirtualFile virtualFile = virtualFileRef.get();
        myDescriptor = virtualFile == null ? null
                : new OpenFileDescriptor(myProject, virtualFile, myLine, myColumn);

        isLazyInitialized = true;
    }
    return myDescriptor;
}

From source file:org.twodividedbyzero.idea.findbugs.gui.tree.view.BugTree.java

License:Open Source License

public Object getData(@NonNls final String s) {
    final TreePath treepath = getSelectionPath();
    if (treepath == null) {
        return null;
    }/*from  w w w  . j a  v  a2  s  .c  o  m*/

    @SuppressWarnings({ "unchecked" })
    final AbstractTreeNode<VisitableTreeNode> treeNode = (AbstractTreeNode<VisitableTreeNode>) treepath
            .getLastPathComponent();
    if (!(treeNode instanceof BugInstanceNode)) {
        return null;
    }
    final BugInstanceNode node = (BugInstanceNode) treeNode;

    if ("virtualFile".equals(s)) {
        final PsiFile psiFile = _treeHelper.getSelectedFile();
        return psiFile == null ? null : psiFile.getVirtualFile();
    }
    if ("Navigatable".equals(s)) {
        final PsiFile psiFile = _treeHelper.getSelectedFile();
        if (psiFile != null) {
            final VirtualFile virtualFile = psiFile.getVirtualFile();
            //LOGGER.debug("PsiFile: " + psiFile + " VirtualFile: " + virtualFile.getName() + " - Line: " + node.getSourceLines()[0]);
            final int[] lines = node.getSourceLines();
            if (lines[0] == -1 && lines[1] == -1) { // find anonymous classes
                final PsiElement psiElement = IdeaUtilImpl.findAnonymousClassPsiElement(psiFile, node,
                        _project);
                if (psiElement != null) {
                    return psiElement;
                }
            } else if (virtualFile != null) {
                return new OpenFileDescriptor(_project, virtualFile, node.getSourceLines()[0] - 1, 0);
            } else {
                return null;
            }
        } else {
            return null;
        }
    }
    if ("psi.Element".equals(s)) {
        final int[] lines = node.getSourceLines();
        if (lines[0] == -1 && lines[1] == -1) { // find anonymous classes
            final PsiFile psiFile = _treeHelper.getSelectedFile();
            final PsiElement psiElement = IdeaUtilImpl.findAnonymousClassPsiElement(psiFile, node, _project);
            if (psiElement != null) {
                return psiElement;
            }
        }
        return _treeHelper.getSelectedElement();
    }
    if ("virtualFileArray".equals(s)) {
        final PsiFile psiFile = _treeHelper.getSelectedFile();
        if (psiFile != null) {
            LOGGER.debug("PsiFile: " + psiFile);
            return new VirtualFile[] { psiFile.getVirtualFile() };
        } else {
            return VirtualFile.EMPTY_ARRAY;
        }
    }
    /*if ("helpId".equals(s)) {
       return "find.todoList";
    } else {
       return null;
    }*/
    return null;
}

From source file:pl.otros.intellij.JumpToCode.logic.FileUtils.java

License:Apache License

public static String getContent(SourceLocation location) {
    List<SourceFile> files = findSourceFiles(location);
    final int lineNumber = location.getLineNumber() - 1;
    StringBuilder stringBuilder = new StringBuilder();
    for (SourceFile sourceFile : files) {
        final OpenFileDescriptor ofd = new OpenFileDescriptor(sourceFile.project, sourceFile.virtualFile,
                lineNumber, 1);//from   w w  w  .j  a v  a  2 s  . c  o  m
        try {
            stringBuilder.append("\nPath: ").append(ofd.getFile().getCanonicalPath()).append("\n");
            readFileSelectedLines(lineNumber, ofd.getFile().getInputStream(), stringBuilder);
            stringBuilder.append("\n");
        } catch (IOException e) {
            PluginManager.getLogger().error("Can't read source file", e);
        }
    }
    return stringBuilder.toString().trim();
}