* @return The size of the display area for the combo box.
*/
protected Dimension getDisplaySize()
{
Dimension dim = new Dimension();
ListCellRenderer renderer = comboBox.getRenderer();
if (renderer == null)
{
renderer = defaultRenderer();
}
Object prototype = comboBox.getPrototypeDisplayValue();
if (prototype != null)
{
Component comp = renderer.getListCellRendererComponent(listBox,
prototype, -1, false, false);
currentValuePane.add(comp);
comp.setFont(comboBox.getFont());
Dimension renderSize = comp.getPreferredSize();
currentValuePane.remove(comp);
dim.height = renderSize.height;
dim.width = renderSize.width;
}
else
{
ComboBoxModel model = comboBox.getModel();
int size = model.getSize();
if (size > 0)
{
for (int i = 0; i < size; ++i)
{
Component comp = renderer.getListCellRendererComponent(listBox,
model.getElementAt(i), -1, false, false);
currentValuePane.add(comp);
comp.setFont(comboBox.getFont());
Dimension renderSize = comp.getPreferredSize();
currentValuePane.remove(comp);