From 52bd9dbe61ec6b53b4f3e809f8a8984274af5d57 Mon Sep 17 00:00:00 2001 From: "Gregory.Shrago" Date: Fri, 20 Jul 2018 21:06:09 +0300 Subject: [PATCH] a better flip buttons look --- .../editor/actions/BackgroundImageDialog.form | 88 ++++++++----------- .../editor/actions/BackgroundImageDialog.java | 58 +++++++----- 2 files changed, 73 insertions(+), 73 deletions(-) diff --git a/images/src/org/intellij/images/editor/actions/BackgroundImageDialog.form b/images/src/org/intellij/images/editor/actions/BackgroundImageDialog.form index 53726119a5d0..fe9f5cde2360 100644 --- a/images/src/org/intellij/images/editor/actions/BackgroundImageDialog.form +++ b/images/src/org/intellij/images/editor/actions/BackgroundImageDialog.form @@ -3,7 +3,7 @@ - + @@ -16,7 +16,7 @@ - + @@ -26,13 +26,13 @@ - + - + @@ -40,7 +40,7 @@ - + @@ -48,7 +48,7 @@ - + @@ -57,7 +57,7 @@ - + @@ -66,7 +66,7 @@ - + @@ -74,64 +74,46 @@ - + - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/src/org/intellij/images/editor/actions/BackgroundImageDialog.java b/images/src/org/intellij/images/editor/actions/BackgroundImageDialog.java index cf09a2ae3fc8..eccadcb5107d 100644 --- a/images/src/org/intellij/images/editor/actions/BackgroundImageDialog.java +++ b/images/src/org/intellij/images/editor/actions/BackgroundImageDialog.java @@ -17,6 +17,7 @@ package org.intellij.images.editor.actions; import com.intellij.application.options.colors.ColorAndFontOptions; import com.intellij.application.options.colors.SimpleEditorPreview; +import com.intellij.icons.AllIcons; import com.intellij.ide.util.PropertiesComponent; import com.intellij.openapi.Disposable; import com.intellij.openapi.actionSystem.*; @@ -38,6 +39,7 @@ import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.wm.impl.IdeBackgroundUtil; import com.intellij.ui.*; import com.intellij.ui.components.JBCheckBox; +import com.intellij.ui.components.JBLabel; import com.intellij.ui.components.JBPanelWithEmptyText; import com.intellij.util.ArrayUtil; import com.intellij.util.ObjectUtils; @@ -85,12 +87,14 @@ public class BackgroundImageDialog extends DialogWrapper { private JPanel myPreviewPanel; private ComboboxWithBrowseButton myPathField; private JBCheckBox myThisProjectOnlyCb; - private JBCheckBox myFlipHorCb; - private JBCheckBox myFlipVerCb; + private JPanel myFlipPanel; private JPanel myAnchorPanel; private JPanel myFillPanel; private JPanel myTargetPanel; + private final JBCheckBox myFlipHorCb = new JBCheckBox(); + private final JBCheckBox myFlipVerCb = new JBCheckBox(); + boolean myAdjusting; private final Map myResults = ContainerUtil.newHashMap(); @@ -130,7 +134,7 @@ public class BackgroundImageDialog extends DialogWrapper { } private void createUIComponents() { - ComboBox comboBox = new ComboBox<>(new CollectionComboBoxModel(), 100); + ComboBox comboBox = new ComboBox<>(new CollectionComboBoxModel<>(), 100); myPathField = new ComboboxWithBrowseButton(comboBox); } @@ -219,8 +223,9 @@ public class BackgroundImageDialog extends DialogWrapper { toolbarComponent.setBorder(JBUI.Borders.empty()); myTargetPanel.add(toolbarComponent); - myAnchorPanel.add(createAnchorPanel(myAnchorGroup), BorderLayout.CENTER); - myFillPanel.add(createFillPanel(myFillGroup, getDisposable()), BorderLayout.CENTER); + initFlipPanel(myFlipPanel, myFlipHorCb, myFlipVerCb); + initAnchorPanel(myAnchorPanel, myAnchorGroup); + initFillPanel(myFillPanel, myFillGroup, getDisposable()); ((CardLayout)myPreviewPanel.getLayout()).show(myPreviewPanel, EDITOR); myPathField.getComboBox().setEditable(true); FileChooserDescriptor descriptor = new FileChooserDescriptor(true, false, false, false, true, false) @@ -467,24 +472,36 @@ public class BackgroundImageDialog extends DialogWrapper { return ColorUtil.mix(UIUtil.getListSelectionBackground(), UIUtil.getLabelBackground(), UIUtil.isUnderDarcula() ? .5 : .75); } - @NotNull - private static JPanel createAnchorPanel(@NotNull ButtonGroup buttonGroup) { + private static void initFlipPanel(@NotNull JPanel p, @NotNull JBCheckBox flipHorCb, @NotNull JBCheckBox flipVerCb) { + flipHorCb.setToolTipText("Flip vertically"); + flipVerCb.setToolTipText("Flip horizontally"); + p.setLayout(new GridLayout(1, 2, 1, 1)); + Color color = getSelectionBackground(); + JBPanelWithEmptyText h = addClickablePanel(p, flipHorCb, color); + JBPanelWithEmptyText v = addClickablePanel(p, flipVerCb, color); + h.setLayout(new BorderLayout()); + h.add(new JBLabel(AllIcons.Actions.SplitVertically), BorderLayout.CENTER); + v.setLayout(new BorderLayout()); + v.add(new JBLabel(AllIcons.Actions.SplitHorizontally), BorderLayout.CENTER); + } + + private static void initAnchorPanel(@NotNull JPanel p, @NotNull ButtonGroup buttonGroup) { IdeBackgroundUtil.Anchor[] values = IdeBackgroundUtil.Anchor.values(); String[] names = new String[values.length]; for (int i = 0; i < names.length; i++) { names[i] = values[i].name().replace('_', '-').toLowerCase(Locale.ENGLISH); } Color color = getSelectionBackground(); - JPanel buttonPanel = new JPanel(new GridLayout(3, 3, 1, 1)); + p.setLayout(new GridLayout(3, 3, 1, 1)); for (int i = 0; i < names.length; i ++) { JRadioButton button = new JRadioButton(names[i], values[i] == IdeBackgroundUtil.Anchor.CENTER); - addClickablePanel(buttonPanel, buttonGroup, button, color); + button.setToolTipText(StringUtil.capitalize(button.getText().replace('-', ' '))); + buttonGroup.add(button); + addClickablePanel(p, button, color); } - return buttonPanel; } - @NotNull - private static JPanel createFillPanel(@NotNull ButtonGroup buttonGroup, @NotNull Disposable disposable) { + private static void initFillPanel(@NotNull JPanel p, @NotNull ButtonGroup buttonGroup, @NotNull Disposable disposable) { Fill[] values = Fill.values(); String[] names = new String[values.length]; BufferedImage image = sampleImage(); @@ -492,14 +509,15 @@ public class BackgroundImageDialog extends DialogWrapper { names[i] = values[i].name().replace('_', '-').toLowerCase(Locale.ENGLISH); } Color color = getSelectionBackground(); - JPanel buttonPanel = new JPanel(new GridLayout(1, values.length, 1, 1)); + p.setLayout(new GridLayout(1, values.length, 1, 1)); for (int i = 0; i < values.length; i ++) { - JRadioButton radioButton = new JRadioButton(names[i], values[i] == Fill.SCALE); - JBPanelWithEmptyText clickablePanel = addClickablePanel(buttonPanel, buttonGroup, radioButton, color); + JRadioButton button = new JRadioButton(names[i], values[i] == Fill.SCALE); + buttonGroup.add(button); + button.setToolTipText(StringUtil.capitalize(button.getText().replace('-', ' '))); + JBPanelWithEmptyText clickablePanel = addClickablePanel(p, button, color); createTemporaryBackgroundTransform( clickablePanel, image, values[i], IdeBackgroundUtil.Anchor.CENTER, 1f, JBUI.insets(2), disposable); } - return buttonPanel; } @NotNull @@ -517,9 +535,9 @@ public class BackgroundImageDialog extends DialogWrapper { return image; } + @NotNull private static JBPanelWithEmptyText addClickablePanel(@NotNull JPanel buttonPanel, - @NotNull ButtonGroup buttonGroup, - @NotNull JRadioButton button, + @NotNull JToggleButton button, @NotNull Color color) { JBPanelWithEmptyText panel = new JBPanelWithEmptyText() { @@ -551,18 +569,18 @@ public class BackgroundImageDialog extends DialogWrapper { return true; } }; + //panel.putClientProperty(JComponent.TOOL_TIP_TEXT_KEY, button.getToolTipText()); panel.getEmptyText().clear(); new ClickListener() { @Override public boolean onClick(@NotNull MouseEvent event, int clickCount) { - button.setSelected(true); + button.setSelected(button instanceof JRadioButton || !button.isSelected()); buttonPanel.invalidate(); buttonPanel.repaint(); return true; } }.installOn(panel); panel.setBorder(BorderFactory.createLineBorder(color)); - buttonGroup.add(button); buttonPanel.add(panel); return panel; }