IJPL-165629 Custom plugin repositories dialogs became smaller

(cherry picked from commit 86a3109c9ef82220fb0f27b67ca1042b15248b53)

IJ-CR-162261

GitOrigin-RevId: f64cc478163a641f9e5204282629e0fae1b6f593
This commit is contained in:
Alexander Lobas
2025-03-07 20:31:39 +01:00
committed by intellij-monorepo-bot
parent 2defb5e87d
commit ae542388a8
8 changed files with 47 additions and 4 deletions

View File

@@ -1555,6 +1555,8 @@ com.intellij.openapi.options.Configurable$NoMargin
com.intellij.openapi.options.Configurable$NoScroll
com.intellij.openapi.options.Configurable$Promo
- a:getPromoIcon():javax.swing.Icon
com.intellij.openapi.options.Configurable$SingleEditorConfiguration
- a:getDialogInitialSize():java.awt.Dimension
com.intellij.openapi.options.Configurable$TopComponentController
- sf:EMPTY:com.intellij.openapi.options.Configurable$TopComponentController
- a:setLeftComponent(java.awt.Component):V

View File

@@ -232,6 +232,18 @@ public interface Configurable extends UnnamedConfigurable {
@NotNull java.util.List<Configurable> getModifiableParents();
}
/**
* The interface is used when configuration opens as single configuration in dialog.
*/
interface SingleEditorConfiguration {
/**
* Override to set default initial size of the window.
*
* @return initial window size
*/
@NotNull Dimension getDialogInitialSize();
}
/**
* Ask opened configurable to focus on a control with a specified label.
* It could be a tab name, name of the tree item, checkbox label, etc.

View File

@@ -3597,10 +3597,12 @@ e:com.intellij.ide.plugins.PluginEnabledState
f:com.intellij.ide.plugins.PluginHostsConfigurable
- com.intellij.openapi.options.Configurable
- com.intellij.openapi.options.Configurable$NoScroll
- com.intellij.openapi.options.Configurable$SingleEditorConfiguration
- <init>():V
- apply():V
- createComponent():javax.swing.JComponent
- disposeUIResources():V
- getDialogInitialSize():java.awt.Dimension
- getDisplayName():java.lang.String
- isModified():Z
- reset():V
@@ -9744,6 +9746,7 @@ c:com.intellij.openapi.options.newEditor.SettingsDialog
- p:getDimensionServiceKey():java.lang.String
- f:getEditor():com.intellij.openapi.options.newEditor.AbstractEditor
- p:getHelpId():java.lang.String
- getInitialSize():java.awt.Dimension
- getPreferredFocusedComponent():javax.swing.JComponent
- p:getStyle():com.intellij.openapi.ui.DialogWrapper$DialogStyle
- p:setHelpTooltip(javax.swing.JButton):V

View File

@@ -38,7 +38,7 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public final class PluginHostsConfigurable implements Configurable.NoScroll, Configurable {
public final class PluginHostsConfigurable implements Configurable.NoScroll, Configurable, Configurable.SingleEditorConfiguration {
private final ListTableModel<UrlInfo> myModel = new ListTableModel<>() {
@Override
public void addRow() {
@@ -173,7 +173,7 @@ public final class PluginHostsConfigurable implements Configurable.NoScroll, Con
withCellComponentProvider(CellComponentProvider.forTable(myTable)).
installOn(myTable);
return ToolbarDecorator.createDecorator(myTable).disableUpDownActions().setMinimumSize(JBUI.size(470, 220)).createPanel();
return ToolbarDecorator.createDecorator(myTable).disableUpDownActions().createPanel();
}
@Override
@@ -275,6 +275,11 @@ public final class PluginHostsConfigurable implements Configurable.NoScroll, Con
}
}
@Override
public @NotNull Dimension getDialogInitialSize() {
return JBUI.DialogSizes.medium();
}
private static @NotNull String correctRepositoryRule(@NotNull String input) {
if (VirtualFileManager.extractProtocol(input) == null) {
return VirtualFileManager.constructUrl(URLUtil.HTTP_PROTOCOL, input);

View File

@@ -5,6 +5,7 @@ import com.intellij.ide.IdeBundle
import com.intellij.openapi.fileChooser.FileChooser
import com.intellij.openapi.options.BoundConfigurable
import com.intellij.openapi.options.Configurable
import com.intellij.openapi.options.Configurable.SingleEditorConfiguration
import com.intellij.openapi.options.ConfigurationException
import com.intellij.openapi.ui.DialogPanel
import com.intellij.openapi.ui.Messages
@@ -22,6 +23,7 @@ import com.intellij.util.ui.JBDimension
import com.intellij.util.ui.JBUI
import com.intellij.util.ui.UIUtil
import java.awt.CardLayout
import java.awt.Dimension
import java.security.cert.X509Certificate
import javax.swing.JPanel
import javax.swing.tree.TreeSelectionModel
@@ -30,7 +32,7 @@ class PluginCertificateManager :
BoundConfigurable(
IdeBundle.message("plugin.manager.custom.certificates"),
"plugin.certificates"
), Configurable.NoScroll, CertificateListener {
), Configurable.NoScroll, CertificateListener, SingleEditorConfiguration {
private val myTree: Tree = Tree()
@@ -154,7 +156,6 @@ class PluginCertificateManager :
showCard(getCardName(certificate))
}
}
myRootPanel.minimumSize = JBUI.size(500, 260)
}
private fun chooseFileAndAdd() {
@@ -216,4 +217,5 @@ class PluginCertificateManager :
myDetailsPanel.add(scrollPane, uniqueName)
}
override fun getDialogInitialSize(): Dimension = JBUI.DialogSizes.medium()
}

View File

@@ -12,6 +12,7 @@ import org.jetbrains.annotations.ApiStatus
import org.jetbrains.annotations.NonNls
import java.awt.AWTEvent
import java.awt.BorderLayout
import java.awt.Dimension
import javax.swing.Action
import javax.swing.JComponent
import javax.swing.JPanel
@@ -51,4 +52,6 @@ abstract class AbstractEditor internal constructor(parent: Disposable) : JPanel(
protected open fun cancel(source: AWTEvent?): Boolean = true
protected abstract fun getPreferredFocusedComponent(): JComponent?
open fun getDialogInitialSize(): Dimension? = null
}

View File

@@ -180,6 +180,11 @@ public class SettingsDialog extends DialogWrapper implements UiCompatibleDataPro
return dimensionServiceKey;
}
@Override
public @Nullable Dimension getInitialSize() {
return editor.getDialogInitialSize();
}
@Override
public JComponent getPreferredFocusedComponent() {
return editor.getPreferredFocusedComponent();

View File

@@ -5,6 +5,7 @@ import com.intellij.openapi.Disposable;
import com.intellij.openapi.options.Configurable;
import com.intellij.ui.scale.JBUIScale;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.Nullable;
import java.awt.*;
import java.util.HashMap;
@@ -23,12 +24,17 @@ public final class SingleSettingEditor extends ConfigurableEditor {
};
private final Map<Configurable, ConfigurableController> myControllers = new HashMap<>();
private ConfigurableController myLastController;
private Dimension myDialogInitSize;
SingleSettingEditor(Disposable parent, Configurable configurable) {
super(parent);
add(myBanner, BorderLayout.NORTH);
myBanner.setVisible(false);
init(configurable, false);
if (configurable instanceof Configurable.SingleEditorConfiguration singleEditorConfiguration) {
myDialogInitSize = singleEditorConfiguration.getDialogInitialSize();
}
}
@Override
@@ -46,4 +52,9 @@ public final class SingleSettingEditor extends ConfigurableEditor {
myBanner.setVisible(myBanner.canShow());
}
@Override
public @Nullable Dimension getDialogInitialSize() {
return myDialogInitSize;
}
}