home *** CD-ROM | disk | FTP | other *** search
Wrap
package javax.swing.plaf.metal; import java.awt.Component; import java.awt.Container; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Insets; import java.awt.LayoutManager; import java.awt.event.FocusListener; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import javax.swing.AbstractButton; import javax.swing.ComboBoxEditor; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JComponent; import javax.swing.KeyStroke; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.basic.BasicComboBoxUI; import javax.swing.plaf.basic.ComboPopup; public class MetalComboBoxUI extends BasicComboBoxUI { FocusListener focusDelegator; public void configureArrowButton() { if (super.arrowButton != null) { super.arrowButton.setRequestFocusEnabled(!super.comboBox.isEditable() && super.comboBox.isEnabled()); if (super.keyListener != null) { super.arrowButton.addKeyListener(super.keyListener); } if (super.popupKeyListener != null) { super.arrowButton.addKeyListener(super.popupKeyListener); } if (super.focusListener != null) { super.arrowButton.addFocusListener(super.focusListener); } if (super.popupMouseListener != null) { super.arrowButton.addMouseListener(super.popupMouseListener); } if (super.popupMouseMotionListener != null) { super.arrowButton.addMouseMotionListener(super.popupMouseMotionListener); } } } public void configureEditor() { super.configureEditor(); if (super.popupKeyListener != null) { super.editor.removeKeyListener(super.popupKeyListener); } if (super.focusListener != null) { super.editor.addFocusListener(super.focusListener); } } protected JButton createArrowButton() { MetalComboBoxButton var1 = new MetalComboBoxButton(super.comboBox, new MetalComboBoxIcon(), super.comboBox.isEditable(), super.currentValuePane, super.listBox); ((AbstractButton)var1).setMargin(new Insets(0, 1, 1, 3)); return var1; } protected ComboBoxEditor createEditor() { return new MetalComboBoxEditor.UIResource(); } FocusListener createFocusDelegator() { return new FocusDelegator(this); } protected LayoutManager createLayoutManager() { return new MetalComboBoxLayoutManager(this); } protected ComboPopup createPopup() { return new MetalComboPopup(this, super.comboBox); } public PropertyChangeListener createPropertyChangeListener() { return new MetalPropertyChangeListener(this); } public static ComponentUI createUI(JComponent var0) { return new MetalComboBoxUI(); } protected void editablePropertyChanged(PropertyChangeEvent var1) { if (super.arrowButton instanceof MetalComboBoxButton) { MetalComboBoxButton var2 = (MetalComboBoxButton)super.arrowButton; var2.setIconOnly(super.comboBox.isEditable()); ((JComponent)var2).setRequestFocusEnabled(!super.comboBox.isEditable() && super.comboBox.isEnabled()); super.comboBox.repaint(); } } void enabledPropertyChanged(PropertyChangeEvent var1) { if (super.arrowButton instanceof MetalComboBoxButton) { super.arrowButton.setRequestFocusEnabled(!super.comboBox.isEditable() && super.comboBox.isEnabled()); super.comboBox.repaint(); } } JButton getArrowButton() { return super.arrowButton; } public Dimension getMinimumSize(JComponent var1) { if (!super.isMinimumSizeDirty) { return new Dimension(super.cachedMinimumSize); } else { Object var2 = null; Dimension var6; if (!super.comboBox.isEditable() && super.arrowButton != null && super.arrowButton instanceof MetalComboBoxButton) { MetalComboBoxButton var7 = (MetalComboBoxButton)super.arrowButton; Insets var8 = ((JComponent)var7).getInsets(); Insets var9 = super.comboBox.getInsets(); var6 = ((BasicComboBoxUI)this).getDisplaySize(); var6.width += var9.left + var9.right; var6.width += var8.left + var8.right; var6.width += var8.right + var7.getComboIcon().getIconWidth(); var6.height += var9.top + var9.bottom; var6.height += var8.top + var8.bottom; } else if (super.comboBox.isEditable() && super.arrowButton != null && super.editor != null) { var6 = super.getMinimumSize(var1); Insets var3 = super.arrowButton.getMargin(); Insets var4 = super.comboBox.getInsets(); if (super.editor instanceof JComponent) { Insets var5 = ((JComponent)super.editor).getInsets(); var6.height += var5.top + var5.bottom; } var6.height += var3.top + var3.bottom; var6.height += var4.top + var4.bottom; } else { var6 = super.getMinimumSize(var1); } super.cachedMinimumSize.setSize(var6.width, var6.height); super.isMinimumSizeDirty = false; return new Dimension(super.cachedMinimumSize); } } protected void installKeyboardActions() { super.installKeyboardActions(); 1 var1 = new 1(this); this.metalGetComboBox().registerKeyboardAction(var1, KeyStroke.getKeyStroke(40, 0), 1); 2 var2 = new 2(this); this.metalGetComboBox().registerKeyboardAction(var2, KeyStroke.getKeyStroke(40, 8), 1); this.metalGetComboBox().registerKeyboardAction(var2, KeyStroke.getKeyStroke(38, 8), 1); 3 var3 = new 3(this); this.metalGetComboBox().registerKeyboardAction(var3, KeyStroke.getKeyStroke(38, 0), 1); } protected void installListeners() { if ((super.itemListener = ((BasicComboBoxUI)this).createItemListener()) != null) { super.comboBox.addItemListener(super.itemListener); } if ((super.propertyChangeListener = this.createPropertyChangeListener()) != null) { super.comboBox.addPropertyChangeListener(super.propertyChangeListener); } super.keyListener = ((BasicComboBoxUI)this).createKeyListener(); super.focusListener = ((BasicComboBoxUI)this).createFocusListener(); super.popupKeyListener = super.popup.getKeyListener(); super.popupMouseListener = super.popup.getMouseListener(); super.popupMouseMotionListener = super.popup.getMouseMotionListener(); if (super.comboBox.getModel() != null && (super.listDataListener = ((BasicComboBoxUI)this).createListDataListener()) != null) { super.comboBox.getModel().addListDataListener(super.listDataListener); } if ((this.focusDelegator = this.createFocusDelegator()) != null) { super.comboBox.addFocusListener(this.focusDelegator); } } public void installUI(JComponent var1) { super.installUI(var1); super.comboBox.setRequestFocusEnabled(true); } public boolean isFocusTraversable(JComboBox var1) { return false; } boolean isPopupVisible() { return super.isPopupVisible(super.comboBox); } public void layoutComboBox(Container var1, MetalComboBoxLayoutManager var2) { if (super.comboBox.isEditable()) { var2.superLayout(var1); } else if (super.arrowButton != null) { Insets var3 = super.comboBox.getInsets(); int var4 = super.comboBox.getWidth(); int var5 = super.comboBox.getHeight(); super.arrowButton.setBounds(var3.left, var3.top, var4 - (var3.left + var3.right), var5 - (var3.top + var3.bottom)); } } JButton metalGetArrowButton() { return super.arrowButton; } JComboBox metalGetComboBox() { return super.comboBox; } Component metalGetEditor() { return super.editor; } public void paint(Graphics var1, JComponent var2) { } protected void removeListeners() { if (super.itemListener != null) { super.comboBox.removeItemListener(super.itemListener); } if (super.propertyChangeListener != null) { super.comboBox.removePropertyChangeListener(super.propertyChangeListener); } } protected void selectNextPossibleValue() { super.selectNextPossibleValue(); } protected void selectPreviousPossibleValue() { super.selectPreviousPossibleValue(); } void togglePopup() { ((BasicComboBoxUI)this).toggleOpenClose(); } public void unconfigureArrowButton() { if (super.arrowButton != null) { super.unconfigureArrowButton(); if (super.keyListener != null) { super.arrowButton.removeKeyListener(super.keyListener); } if (super.popupKeyListener != null) { super.arrowButton.removeKeyListener(super.popupKeyListener); } if (super.focusListener != null) { super.arrowButton.removeFocusListener(super.focusListener); } } } public void unconfigureEditor() { super.unconfigureEditor(); if (super.focusListener != null) { super.editor.removeFocusListener(super.focusListener); } } protected void uninstallKeyboardActions() { super.uninstallKeyboardActions(); super.comboBox.unregisterKeyboardAction(KeyStroke.getKeyStroke(40, 0)); super.comboBox.unregisterKeyboardAction(KeyStroke.getKeyStroke(40, 8)); super.comboBox.unregisterKeyboardAction(KeyStroke.getKeyStroke(38, 0)); super.comboBox.unregisterKeyboardAction(KeyStroke.getKeyStroke(38, 8)); } protected void uninstallListeners() { if (super.itemListener != null) { super.comboBox.removeItemListener(super.itemListener); } if (super.propertyChangeListener != null) { super.comboBox.removePropertyChangeListener(super.propertyChangeListener); } if (super.comboBox.getModel() != null && super.listDataListener != null) { super.comboBox.getModel().removeListDataListener(super.listDataListener); } if (this.focusDelegator != null) { super.comboBox.removeFocusListener(this.focusDelegator); } } public void uninstallUI(JComponent var1) { super.uninstallUI(var1); } }