< 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 >