mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Move fallback icon logic from ActionToolbarImpl to ActionButton itself
It will unify buttons behaviour and allow to create the same buttons from createCustomComponent The base implementation of getDataContext is actually do the same as the removed one GitOrigin-RevId: 1827d0c8fa3bb393cfaa95c5c910d47422e556d1
This commit is contained in:
committed by
intellij-monorepo-bot
parent
eb5233512d
commit
f9a55966c7
@@ -25,7 +25,10 @@ import com.intellij.ui.popup.PopupState;
|
||||
import com.intellij.ui.popup.WizardPopup;
|
||||
import com.intellij.ui.popup.util.PopupImplUtil;
|
||||
import com.intellij.util.ReflectionUtil;
|
||||
import com.intellij.util.ui.*;
|
||||
import com.intellij.util.ui.JBDimension;
|
||||
import com.intellij.util.ui.JBInsets;
|
||||
import com.intellij.util.ui.StartupUiUtil;
|
||||
import com.intellij.util.ui.UIUtil;
|
||||
import com.intellij.util.ui.accessibility.AccessibleContextUtil;
|
||||
import com.intellij.util.ui.accessibility.ScreenReader;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
@@ -388,7 +391,11 @@ public class ActionButton extends JComponent implements ActionButtonComponent, A
|
||||
|
||||
@NotNull
|
||||
protected Icon getFallbackIcon(boolean enabled) {
|
||||
return EmptyIcon.ICON_18;
|
||||
Presentation p = getAction().getTemplatePresentation();
|
||||
Icon icon = Objects.requireNonNullElse(p.getIcon(), AllIcons.Toolbar.Unknown);
|
||||
if (enabled) return icon;
|
||||
if (p.getDisabledIcon() != null) return p.getDisabledIcon();
|
||||
return IconLoader.getDisabledIcon(icon);
|
||||
}
|
||||
|
||||
public void updateIcon() {
|
||||
|
||||
+8
-17
@@ -17,7 +17,10 @@ import com.intellij.openapi.diagnostic.ControlFlowException;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.ui.popup.*;
|
||||
import com.intellij.openapi.ui.popup.util.PopupUtil;
|
||||
import com.intellij.openapi.util.*;
|
||||
import com.intellij.openapi.util.Disposer;
|
||||
import com.intellij.openapi.util.Key;
|
||||
import com.intellij.openapi.util.NlsContexts;
|
||||
import com.intellij.openapi.util.Ref;
|
||||
import com.intellij.openapi.util.registry.Registry;
|
||||
import com.intellij.openapi.wm.IdeFocusManager;
|
||||
import com.intellij.openapi.wm.ToolWindow;
|
||||
@@ -51,8 +54,10 @@ import javax.swing.border.Border;
|
||||
import java.awt.*;
|
||||
import java.awt.event.*;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.List;
|
||||
import java.util.*;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.CancellationException;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.function.Function;
|
||||
@@ -552,21 +557,7 @@ public class ActionToolbarImpl extends JPanel implements ActionToolbar, QuickAct
|
||||
return buttonWithText;
|
||||
}
|
||||
|
||||
ActionButton actionButton = new ActionButton(action, presentation, place, minimumSize) {
|
||||
@Override
|
||||
protected DataContext getDataContext() {
|
||||
return getToolbarDataContext();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected @NotNull Icon getFallbackIcon(boolean enabled) {
|
||||
Presentation p = getAction().getTemplatePresentation();
|
||||
Icon icon = Objects.requireNonNullElse(p.getIcon(), AllIcons.Toolbar.Unknown);
|
||||
if (enabled) return icon;
|
||||
if (p.getDisabledIcon() != null) return p.getDisabledIcon();
|
||||
return IconLoader.getDisabledIcon(icon);
|
||||
}
|
||||
};
|
||||
ActionButton actionButton = new ActionButton(action, presentation, place, minimumSize);
|
||||
|
||||
applyToolbarLook(look, presentation, actionButton);
|
||||
return actionButton;
|
||||
|
||||
Reference in New Issue
Block a user