import com.intellij.util.ui.UIUtil;
import javax.swing.*;
-import javax.swing.border.Border;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public final Dimension getPreferredSize() {
int width = myMinimumAndPreferredWidth;
+ final Dimension preferredSize = super.getPreferredSize();
if (width < 0) {
- width = super.getPreferredSize().width;
+ width = preferredSize.width;
}
- final int height = getPreferredHeight();
- return new Dimension(width, height);
+
+ return new Dimension(width, preferredSize.height);
}
protected Dimension getOriginalPreferredSize() {
return super.getPreferredSize();
}
- private int getPreferredHeight() {
- final Border border = getBorder();
- final ComboBoxEditor editor = getEditor();
- int height;
- if (editor != null) {
- height = editor.getEditorComponent().getPreferredSize().height;
- if (border != null) {
- height += border.getBorderInsets(this).top + border.getBorderInsets(this).bottom;
- }
- }
- else {
- height = super.getPreferredSize().height;
- }
- return height;
- }
-
@Override
public void paint(Graphics g) {
super.paint(g);
import javax.swing.*;
import javax.swing.border.Border;
import java.awt.*;
-import java.awt.event.FocusEvent;
-import java.awt.event.FocusListener;
/**
* User: spLeaner
private boolean myIsSupplementary;
private boolean myInheritSwingFont = true;
private Color myEnforcedBgColor = null;
- private boolean myUseTextFieldPreferredSize = true;
public EditorTextField() {
this("");
editor.setBackgroundColor(getBackgroundColor(!myIsViewer));
- if (myUseTextFieldPreferredSize && !UIUtil.isUnderQuaquaLookAndFeel()) {
- editor.getComponent().setPreferredSize(new JTextField().getPreferredSize());
- }
-
editor.putUserData(SUPPLEMENTARY_KEY, myIsSupplementary);
editor.getContentComponent().setFocusCycleRoot(false);
preferredSize.height += insets.bottom;
}
- final Insets defaultInsets = new JTextField().getInsets();
- if (defaultInsets != null) {
- preferredSize.height -= defaultInsets.top;
- preferredSize.width -= defaultInsets.left;
- }
-
return preferredSize;
}
return new Dimension(100, 20);
}
- public void setUseTextFieldPreferredSize(final boolean b) {
- myUseTextFieldPreferredSize = b;
- }
-
public Component getNextFocusableComponent() {
if (myEditor == null && myNextFocusable == null) return super.getNextFocusableComponent();
if (myEditor == null) return myNextFocusable;
*/
package com.intellij.util.ui;
-import com.intellij.util.graph.Graph;
+import com.intellij.openapi.util.SystemInfo;
import org.jetbrains.annotations.NotNull;
import javax.swing.*;
}
public static void drawComboboxFocusRing(@NotNull final JComboBox combobox, @NotNull final Graphics g) {
- if (combobox.isEnabled() && combobox.isEditable() && UIUtil.isUnderAquaLookAndFeel()) {
+ if (SystemInfo.isMac && combobox.isEnabled() && combobox.isEditable() && UIUtil.isUnderAquaLookAndFeel()) {
final Component focusOwner = KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner();
if (focusOwner != null) {
final Container ancestor = SwingUtilities.getAncestorOfClass(JComboBox.class, focusOwner);
if (ancestor == combobox) {
- MacUIUtil.paintComboboxFocusRing((Graphics2D) g, combobox.getBounds());
+ paintComboboxFocusRing((Graphics2D) g, combobox.getBounds());
}
}
}