< prev index next >

src/share/classes/javax/swing/plaf/synth/SynthComboPopup.java

Print this page
rev 1578 : 7158712: Synth Property "ComboBox.popupInsets" is ignored
Reviewed-by: alexp

*** 24,40 **** */ package javax.swing.plaf.synth; import javax.swing.*; ! import javax.swing.event.*; ! import javax.swing.plaf.basic.*; import java.awt.*; - import java.awt.event.*; - import java.beans.PropertyChangeListener; - import java.beans.PropertyChangeEvent; - import java.io.Serializable; /** * Synth's ComboPopup. * --- 24,36 ---- */ package javax.swing.plaf.synth; import javax.swing.*; ! import javax.swing.plaf.ComboBoxUI; ! import javax.swing.plaf.basic.BasicComboPopup; import java.awt.*; /** * Synth's ComboPopup. *
*** 50,59 **** --- 46,56 ---- * popup. This method is called when the UI class * is created. * * @see #createList */ + @Override protected void configureList() { list.setFont( comboBox.getFont() ); list.setCellRenderer( comboBox.getRenderer() ); list.setFocusable( false ); list.setSelectionMode( ListSelectionModel.SINGLE_SELECTION );
*** 65,70 **** --- 62,90 ---- list.setSelectedIndex( selectedIndex ); list.ensureIndexIsVisible( selectedIndex ); } installListListeners(); } + + /** + * @inheritDoc + * + * Overridden to take into account any popup insets specified in + * SynthComboBoxUI + */ + @Override + protected Rectangle computePopupBounds(int px, int py, int pw, int ph) { + ComboBoxUI ui = comboBox.getUI(); + if (ui instanceof SynthComboBoxUI) { + SynthComboBoxUI sui = (SynthComboBoxUI) ui; + if (sui.popupInsets != null) { + Insets i = sui.popupInsets; + return super.computePopupBounds( + px + i.left, + py + i.top, + pw - i.left - i.right, + ph - i.top - i.bottom); + } + } + return super.computePopupBounds(px, py, pw, ph); + } }
< prev index next >