List of usage examples for com.intellij.openapi.fileEditor OpenFileDescriptor OpenFileDescriptor
public OpenFileDescriptor(@NotNull Project project, @NotNull VirtualFile file, int offset)
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(); }