diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/filter/VcsLogPopupComponent.java b/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/filter/VcsLogPopupComponent.java index 74607a7b4d5e..add0ed963101 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/filter/VcsLogPopupComponent.java +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/filter/VcsLogPopupComponent.java @@ -26,7 +26,8 @@ import java.util.function.Supplier; public abstract class VcsLogPopupComponent extends JPanel { private static final int GAP_BEFORE_ARROW = 3; - private static final int BORDER_SIZE = 2; + protected static final int BORDER_SIZE = 2; + protected static final int ARC_SIZE = 10; private final PopupState myPopupState = new PopupState(); @NotNull private final Supplier myDisplayName; @@ -42,7 +43,7 @@ public abstract class VcsLogPopupComponent extends JPanel { myValueLabel = new DynamicLabel(this::getCurrentText); setDefaultForeground(); setFocusable(true); - setBorder(createUnfocusedBorder()); + setBorder(wrapBorder(createUnfocusedBorder())); setLayout(new BoxLayout(this, BoxLayout.X_AXIS)); if (myNameLabel != null) add(myNameLabel); @@ -90,12 +91,12 @@ public abstract class VcsLogPopupComponent extends JPanel { addFocusListener(new FocusAdapter() { @Override public void focusGained(@NotNull FocusEvent e) { - setBorder(createFocusedBorder()); + setBorder(wrapBorder(createFocusedBorder())); } @Override public void focusLost(@NotNull FocusEvent e) { - setBorder(createUnfocusedBorder()); + setBorder(wrapBorder(createUnfocusedBorder())); } }); } @@ -164,20 +165,23 @@ public abstract class VcsLogPopupComponent extends JPanel { } private static Border createFocusedBorder() { - return BorderFactory.createCompoundBorder(new FilledRoundedBorder(UIUtil.getFocusedBorderColor(), 10, BORDER_SIZE), - JBUI.Borders.empty(2)); + return new FilledRoundedBorder(UIUtil.getFocusedBorderColor(), ARC_SIZE, BORDER_SIZE); } - private static Border createUnfocusedBorder() { - return BorderFactory.createCompoundBorder(JBUI.Borders.empty(BORDER_SIZE), JBUI.Borders.empty(2)); + protected Border createUnfocusedBorder() { + return JBUI.Borders.empty(BORDER_SIZE); } - private static class FilledRoundedBorder implements Border { + private static Border wrapBorder(Border outerBorder) { + return BorderFactory.createCompoundBorder(outerBorder, JBUI.Borders.empty(2)); + } + + public static class FilledRoundedBorder implements Border { private final Color myColor; private final int myThickness; private final int myArcSize; - FilledRoundedBorder(@NotNull Color color, int arcSize, int thickness) { + public FilledRoundedBorder(@NotNull Color color, int arcSize, int thickness) { myColor = color; myThickness = thickness; myArcSize = arcSize; diff --git a/plugins/git4idea/src/git4idea/config/GitVcsPanel.kt b/plugins/git4idea/src/git4idea/config/GitVcsPanel.kt index dfec54f58256..f89ae1701f5b 100644 --- a/plugins/git4idea/src/git4idea/config/GitVcsPanel.kt +++ b/plugins/git4idea/src/git4idea/config/GitVcsPanel.kt @@ -23,13 +23,12 @@ import com.intellij.openapi.util.registry.Registry import com.intellij.openapi.vcs.ProjectLevelVcsManager import com.intellij.openapi.vcs.changes.VcsDirtyScopeManager import com.intellij.openapi.vcs.update.AbstractCommonUpdateAction -import com.intellij.ui.CollectionComboBoxModel -import com.intellij.ui.EnumComboBoxModel -import com.intellij.ui.SimpleListCellRenderer +import com.intellij.ui.* import com.intellij.ui.components.JBLabel import com.intellij.ui.components.fields.ExpandableTextField import com.intellij.ui.layout.* import com.intellij.util.execution.ParametersListUtil +import com.intellij.util.ui.JBUI import com.intellij.util.ui.UIUtil import com.intellij.util.ui.VcsExecutablePathSelector import com.intellij.vcs.log.VcsLogFilterCollection.STRUCTURE_FILTER @@ -37,6 +36,7 @@ import com.intellij.vcs.log.impl.MainVcsLogUiProperties import com.intellij.vcs.log.ui.VcsLogColorManagerImpl import com.intellij.vcs.log.ui.filter.StructureFilterPopupComponent import com.intellij.vcs.log.ui.filter.VcsLogClassicFilterUi +import com.intellij.vcs.log.ui.filter.VcsLogPopupComponent import git4idea.GitVcs import git4idea.branch.GitBranchIncomingOutgoingManager import git4idea.i18n.GitBundle @@ -48,6 +48,7 @@ import org.jetbrains.annotations.CalledInAny import java.awt.Color import java.util.function.Consumer import javax.swing.JLabel +import javax.swing.border.Border private fun projectSettings(project: Project) = GitVcsSettings.getInstance(project) private val applicationSettings get() = GitVcsApplicationSettings.getInstance() @@ -347,6 +348,9 @@ internal class GitVcsPanel(private val project: Project) : override fun shouldDrawLabel(): Boolean = false override fun shouldIndicateHovering(): Boolean = false override fun getDefaultSelectorForeground(): Color = UIUtil.getLabelForeground() + override fun createUnfocusedBorder(): Border { + return FilledRoundedBorder(JBColor.namedColor("Component.borderColor", Gray.xBF), ARC_SIZE, 1) + } }.initUi() label(message("settings.filter.update.info"))