package zielu.gittoolbox.ui.util; import com.intellij.ui.CheckBoxWithColorChooser; import java.awt.Color; import java.awt.Component; import java.awt.event.MouseListener; import javax.swing.JButton; public class CheckBoxWithColorChooserEx extends CheckBoxWithColorChooser { private MouseListener[] disabledListeners; public CheckBoxWithColorChooserEx(String text, boolean selected, Color color) { super(text, selected, color); } public CheckBoxWithColorChooserEx(String text, boolean selected) { super(text, selected); } public CheckBoxWithColorChooserEx(String text) { super(text); } @Override public void setEnabled(boolean enabled) { super.setEnabled(enabled); synchronized (getTreeLock()) { for (Component component : getComponents()) { component.setEnabled(enabled); if (component instanceof JButton) { if (enabled) { if (disabledListeners != null) { for (MouseListener listener : disabledListeners) { component.addMouseListener(listener); } } disabledListeners = null; } else { disabledListeners = component.getMouseListeners(); for (MouseListener listener : disabledListeners) { component.removeMouseListener(listener); } } } } } } public void dispose() { disabledListeners = null; } }