void (@Nullable final RefEntity refEntity) { final JPanel editorPanel = new JPanel(); editorPanel.setLayout(new BorderLayout()); final JPanel actionsPanel = new JPanel(new BorderLayout()); editorPanel.add(actionsPanel, BorderLayout.NORTH); final int problemCount = myTree.getSelectedProblemCount(); JComponent previewPanel = null; final InspectionToolWrapper<?,?> tool = myTree.getSelectedToolWrapper(true); boolean isCustomActionPanelAlignedToLeft = false; if (tool != null) { final InspectionToolPresentation presentation = myGlobalInspectionContext.getPresentation(tool); isCustomActionPanelAlignedToLeft = presentation.shouldAlignCustomActionPanelToLeft(); final TreePath path = myTree.getSelectionPath(); if (path != null) { Object last = path.getLastPathComponent(); if (last instanceof ProblemDescriptionNode) { CommonProblemDescriptor descriptor = ((ProblemDescriptionNode)last).getDescriptor(); if (descriptor != null) { previewPanel = presentation.getCustomPreviewPanel(descriptor, this); JComponent customActions = presentation.getCustomActionsPanel(descriptor, this); if (customActions != null) { String borderLayout = isCustomActionPanelAlignedToLeft ? BorderLayout.WEST : BorderLayout.EAST; actionsPanel.add(customActions, borderLayout); } } } else { if (refEntity != null && refEntity.isValid()) { previewPanel = presentation.getCustomPreviewPanel(refEntity); } } } } EditorEx previewEditor = null; if (previewPanel == null) { final Pair<JComponent, EditorEx> panelAndEditor = createBaseRightComponentFor(problemCount, refEntity); previewPanel = panelAndEditor.getFirst(); previewEditor = panelAndEditor.getSecond(); } editorPanel.add(previewPanel, BorderLayout.CENTER); if (problemCount > 0) { var paths = myTree.getSelectionPaths(); if (paths != null) for (TreePath path: paths) { var node = (InspectionTreeNode)path.getLastPathComponent(); if (node instanceof SuppressableInspectionTreeNode) ((SuppressableInspectionTreeNode)node).updateAvailableSuppressActions(); } final JComponent fixToolbar = QuickFixPreviewPanelFactory.create(this); if (fixToolbar != null) { if (fixToolbar instanceof InspectionTreeLoadingProgressAware) { myLoadingProgressPreview = (InspectionTreeLoadingProgressAware)fixToolbar; } if (previewEditor != null) { previewPanel.setBorder(IdeBorderFactory.createBorder(SideBorder.TOP)); } String borderLayout = isCustomActionPanelAlignedToLeft ? BorderLayout.EAST : BorderLayout.WEST; actionsPanel.add(fixToolbar, borderLayout); } } if (previewEditor != null) { ProblemPreviewEditorPresentation.setupFoldingsAndHighlightProblems(previewEditor, this); } mySplitter.setSecondComponent(editorPanel); }