From 12fb48b4e16817bbc0090b82b9f00a9173dff294 Mon Sep 17 00:00:00 2001 From: Alexey Borokhvostov Date: Sun, 22 Sep 2024 11:21:17 +0700 Subject: [PATCH] =?UTF-8?q?Added=20code=20preview=20for=20=E2=80=9Csearch?= =?UTF-8?q?=20results=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../search/ui/BasicSearchResultsPanel.java | 44 ++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/platform/api.search/src/org/netbeans/modules/search/ui/BasicSearchResultsPanel.java b/platform/api.search/src/org/netbeans/modules/search/ui/BasicSearchResultsPanel.java index 67b0e671f896..9516021af3ba 100644 --- a/platform/api.search/src/org/netbeans/modules/search/ui/BasicSearchResultsPanel.java +++ b/platform/api.search/src/org/netbeans/modules/search/ui/BasicSearchResultsPanel.java @@ -18,15 +18,24 @@ */ package org.netbeans.modules.search.ui; +import java.beans.PropertyChangeEvent; +import javax.swing.BoxLayout; +import javax.swing.JPanel; +import javax.swing.JSplitPane; import org.netbeans.modules.search.BasicComposition; +import org.netbeans.modules.search.ContextView; +import org.netbeans.modules.search.FindDialogMemory; import org.netbeans.modules.search.ResultModel; import org.openide.nodes.Node; +import org.openide.util.RequestProcessor; /** * * @author jhavlin */ public class BasicSearchResultsPanel extends BasicAbstractResultsPanel { + private final RequestProcessor.Task SAVE_TASK = RequestProcessor.getDefault().create(new BasicSearchResultsPanel.SaveTask()); + private JSplitPane splitPane; public BasicSearchResultsPanel(ResultModel resultModel, BasicComposition composition, boolean details, Node infoNode) { @@ -37,6 +46,39 @@ public BasicSearchResultsPanel(ResultModel resultModel, } private void init() { - getContentPanel().add(resultsOutlineSupport.getOutlineView()); + JPanel leftPanel = new JPanel(); + leftPanel.setLayout(new BoxLayout(leftPanel, BoxLayout.PAGE_AXIS)); + leftPanel.add(resultsOutlineSupport.getOutlineView()); + + this.splitPane = new JSplitPane(); + splitPane.setLeftComponent(leftPanel); + splitPane.setRightComponent(new ContextView(resultModel, + getExplorerManager())); + initSplitDividerLocationHandling(); + getContentPanel().add(splitPane); + } + + private void initSplitDividerLocationHandling() { + int location = FindDialogMemory.getDefault().getReplaceResultsDivider(); + if (location > 0) { + splitPane.setDividerLocation(location); + } + splitPane.addPropertyChangeListener((PropertyChangeEvent evt) -> { + String pn = evt.getPropertyName(); + if (pn.equals(JSplitPane.DIVIDER_LOCATION_PROPERTY)) { + SAVE_TASK.schedule(1000); + } + }); + } + + private class SaveTask implements Runnable { + + @Override + public void run() { + if (splitPane != null) { + FindDialogMemory.getDefault().setReplaceResultsDivider( + splitPane.getDividerLocation()); + } + } } }