Browse Source

DarculaComboBoxUI.java: removed overridden getDisplaySize method and two not deeded anymore variables.

master
Alessandro Falappa 9 years ago
parent
commit
b75da472e0
  1. 74
      src/com/bulenkov/darcula/ui/DarculaComboBoxUI.java

74
src/com/bulenkov/darcula/ui/DarculaComboBoxUI.java

@ -42,11 +42,6 @@ import java.awt.geom.Path2D;
@SuppressWarnings("GtkPreferredJComboBoxRenderer")
public class DarculaComboBoxUI extends BasicComboBoxUI implements Border {
private final JComboBox myComboBox;
// Flag for calculating the display size
private boolean myDisplaySizeDirty = true;
// Cached the size that the display needs to render the largest item
private Dimension myDisplaySizeCache = new Dimension(0, 0);
private Insets myPadding;
public DarculaComboBoxUI(JComboBox comboBox) {
@ -128,65 +123,6 @@ public class DarculaComboBoxUI extends BasicComboBoxUI implements Border {
return new InsetsUIResource(4, 7, 4, 5);
}
protected Dimension getDisplaySize() {
Dimension display = new Dimension();
ListCellRenderer renderer = comboBox.getRenderer();
if (renderer == null) {
renderer = new DefaultListCellRenderer();
}
boolean sameBaseline = true;
Object prototypeValue = comboBox.getPrototypeDisplayValue();
if (prototypeValue != null) {
display = getSizeForComponent(renderer.getListCellRendererComponent(listBox, prototypeValue, -1, false, false));
} else {
final ComboBoxModel model = comboBox.getModel();
int baseline = -1;
Dimension d;
if (model.getSize() > 0) {
for (int i = 0; i < model.getSize(); i++) {
Object value = model.getElementAt(i);
Component rendererComponent = renderer.getListCellRendererComponent(listBox, value, -1, false, false);
d = getSizeForComponent(rendererComponent);
if (sameBaseline && value != null && (!(value instanceof String) || !"".equals(value))) {
int newBaseline = rendererComponent.getBaseline(d.width, d.height);
if (newBaseline == -1) {
sameBaseline = false;
}
else if (baseline == -1) {
baseline = newBaseline;
}
else if (baseline != newBaseline) {
sameBaseline = false;
}
}
display.width = Math.max(display.width, d.width);
display.height = Math.max(display.height, d.height);
}
}
else {
display = getDefaultSize();
if (comboBox.isEditable()) {
display.width = 100;
}
}
}
if (myPadding != null) {
display.width += myPadding.left + myPadding.right;
display.height += myPadding.top + myPadding.bottom;
}
myDisplaySizeCache.setSize(display.width, display.height);
myDisplaySizeDirty = false;
return display;
}
protected Dimension getSizeForComponent(Component comp) {
currentValuePane.add(comp);
comp.setFont(comboBox.getFont());
@ -401,4 +337,14 @@ public class DarculaComboBoxUI extends BasicComboBoxUI implements Border {
public boolean isBorderOpaque() {
return false;
}
@Override
public Component.BaselineResizeBehavior getBaselineResizeBehavior(JComponent c) {
return super.getBaselineResizeBehavior(c);
}
@Override
public int getBaseline(JComponent c, int width, int height) {
return super.getBaseline(c, width, height);
}
}
Loading…
Cancel
Save