home *** CD-ROM | disk | FTP | other *** search
- package com.sun.java.swing.plaf.basic;
-
- import com.sun.java.swing.Icon;
- import com.sun.java.swing.JComboBox;
- import com.sun.java.swing.JComponent;
- import com.sun.java.swing.JList;
- import com.sun.java.swing.JOptionPane;
- import com.sun.java.swing.JScrollPane;
- import com.sun.java.swing.JTextField;
- import com.sun.java.swing.LookAndFeel;
- import com.sun.java.swing.UIManager;
- import com.sun.java.swing.plaf.ComponentUI;
- import com.sun.java.swing.text.JTextComponent;
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Dimension;
- import java.awt.Insets;
- import java.awt.LayoutManager;
- import java.beans.PropertyChangeEvent;
- import java.beans.PropertyChangeListener;
- import java.util.EventObject;
-
- public class BasicOptionPaneUI extends AbstractOptionPaneUI implements PropertyChangeListener {
- public static final int MIN_WIDTH = 262;
- public static final int MIN_HEIGHT = 90;
- public static final String[] yesNoOptions = new String[]{"Yes", "No"};
- public static final String[] yesNoCancelOptions = new String[]{"Yes", "No", "Cancel"};
- public static final String[] defaultOptions = new String[]{"OK"};
- public static final String[] okCancelOptions = new String[]{"OK", "Cancel"};
- protected JOptionPane optionPane;
- protected JComponent inputComponent;
- protected PropertyChangeListener propListener;
-
- public static ComponentUI createUI(JComponent var0) {
- return new BasicOptionPaneUI();
- }
-
- public void installUI(JComponent var1) {
- this.optionPane = (JOptionPane)var1;
- this.installDefaults(var1);
- Dimension var2 = this.getMinimumOptionPaneSize();
- if (var2 != null) {
- this.optionPane.setMinimumSize(var2);
- }
-
- ((AbstractOptionPaneUI)this).validateComponent();
- var1.setOpaque(true);
- this.installListeners(var1);
- }
-
- public void uninstallUI(JComponent var1) {
- if ((JOptionPane)var1 == this.optionPane) {
- ((AbstractOptionPaneUI)this).emptyContainer(this.optionPane);
- this.uninstallListeners(var1);
- this.uninstallDefaults(var1);
- this.optionPane = null;
- }
-
- }
-
- protected void installDefaults(JComponent var1) {
- LookAndFeel.installColorsAndFont(var1, "OptionPane.background", "OptionPane.foreground", "OptionPane.font");
- LookAndFeel.installBorder(var1, "OptionPane.border");
- }
-
- protected void uninstallDefaults(JComponent var1) {
- LookAndFeel.uninstallBorder(var1);
- }
-
- protected void installListeners(JComponent var1) {
- if ((this.propListener = this.createPropertyChangeListener(var1)) != null) {
- this.optionPane.addPropertyChangeListener(this.propListener);
- }
-
- }
-
- protected void uninstallListeners(JComponent var1) {
- if (this.propListener != null) {
- this.optionPane.removePropertyChangeListener(this.propListener);
- this.propListener = null;
- }
-
- }
-
- protected PropertyChangeListener createPropertyChangeListener(JComponent var1) {
- return this;
- }
-
- public void propertyChange(PropertyChangeEvent var1) {
- if (((EventObject)var1).getSource() == this.optionPane) {
- String var2 = var1.getPropertyName();
- if (var2.equals("options") || var2.equals("initialValue") || var2.equals("icon") || var2.equals("messageType") || var2.equals("optionType") || var2.equals("message") || var2.equals("selectionValues") || var2.equals("initialSelectionValue") || var2.equals("wantsInput")) {
- ((AbstractOptionPaneUI)this).validateComponent();
- }
- }
-
- }
-
- public Icon getIcon() {
- Icon var1 = this.optionPane == null ? null : this.optionPane.getIcon();
- if (var1 == null && this.optionPane != null) {
- var1 = this.getIconForType(this.optionPane.getMessageType());
- }
-
- return var1;
- }
-
- public Icon getIconForType(int var1) {
- if (var1 >= 0 && var1 <= 3) {
- switch (var1) {
- case 0:
- return UIManager.getIcon("OptionPane.errorIcon");
- case 1:
- return UIManager.getIcon("OptionPane.informationIcon");
- case 2:
- return UIManager.getIcon("OptionPane.warningIcon");
- case 3:
- return UIManager.getIcon("OptionPane.questionIcon");
- default:
- return null;
- }
- } else {
- return null;
- }
- }
-
- public int getMaxCharactersPerLineCount() {
- return this.optionPane.getMaxCharactersPerLineCount();
- }
-
- public Object getMessage() {
- this.inputComponent = null;
- if (this.optionPane != null) {
- if (!this.optionPane.getWantsInput()) {
- return this.optionPane.getMessage();
- } else {
- Object var1 = this.optionPane.getMessage();
- Object[] var2 = this.optionPane.getSelectionValues();
- Object var3 = this.optionPane.getInitialSelectionValue();
- Object var4;
- if (var2 != null) {
- if (var2.length < 20) {
- JComboBox var5 = new JComboBox();
- int var6 = 0;
-
- for(int var7 = var2.length; var6 < var7; ++var6) {
- var5.addItem(var2[var6]);
- }
-
- if (var3 != null) {
- var5.setSelectedItem(var3);
- }
-
- this.inputComponent = var5;
- var4 = var5;
- } else {
- JList var8 = new JList(var2);
- JScrollPane var11 = new JScrollPane(var8);
- var8.setVisibleRowCount(10);
- if (var3 != null) {
- var8.setSelectedValue(var3, true);
- }
-
- ((Component)var8).addMouseListener(new ListSelectionListener(this));
- var4 = var11;
- this.inputComponent = var8;
- }
- } else {
- JTextField var9 = new JTextField(20);
- if (var3 != null) {
- ((JTextComponent)var9).setText(var3.toString());
- }
-
- var9.addActionListener(new TextFieldActionListener(this));
- var4 = this.inputComponent = var9;
- }
-
- Object[] var10;
- if (var1 == null) {
- var10 = new Object[]{var4};
- } else {
- var10 = new Object[]{var1, var4};
- }
-
- return var10;
- }
- } else {
- return null;
- }
- }
-
- public Object[] getButtons() {
- if (this.optionPane != null) {
- Object[] var1 = this.optionPane.getOptions();
- if (var1 == null) {
- int var2 = this.optionPane.getOptionType();
- if (var2 == 0) {
- return yesNoOptions;
- } else if (var2 == 1) {
- return yesNoCancelOptions;
- } else {
- return var2 == 2 ? okCancelOptions : defaultOptions;
- }
- } else {
- return var1;
- }
- } else {
- return null;
- }
- }
-
- public Container getContainer() {
- return this.optionPane;
- }
-
- public int getInitialIndex() {
- if (this.optionPane != null) {
- Object var1 = this.optionPane.getInitialValue();
- Object[] var2 = this.optionPane.getOptions();
- if (var2 == null) {
- return 0;
- }
-
- if (var1 != null) {
- for(int var3 = var2.length - 1; var3 >= 0; --var3) {
- if (var2[var3].equals(var1)) {
- return var3;
- }
- }
- }
- }
-
- return -1;
- }
-
- protected void resetInputValue() {
- if (this.inputComponent != null && this.inputComponent instanceof JTextField) {
- this.optionPane.setInputValue(((JTextField)this.inputComponent).getText());
- } else if (this.inputComponent != null && this.inputComponent instanceof JComboBox) {
- this.optionPane.setInputValue(((JComboBox)this.inputComponent).getSelectedItem());
- } else {
- if (this.inputComponent != null) {
- this.optionPane.setInputValue(((JList)this.inputComponent).getSelectedValue());
- }
-
- }
- }
-
- public void createdButtonFired(int var1) {
- if (this.optionPane != null) {
- Object[] var2 = this.optionPane.getOptions();
- if (var2 == null) {
- int var3 = this.optionPane.getOptionType();
- if (this.inputComponent != null && (var3 == 0 || var3 == 1 || var3 == 2) && var1 == 0) {
- this.resetInputValue();
- }
-
- if (var3 == 2 && var1 == 1) {
- this.optionPane.setValue(new Integer(2));
- return;
- }
-
- this.optionPane.setValue(new Integer(var1));
- return;
- }
-
- this.optionPane.setValue(var2[var1]);
- }
-
- }
-
- public Dimension getMinimumOptionPaneSize() {
- return new Dimension(262, 90);
- }
-
- public Dimension getPreferredSize(JComponent var1) {
- if ((JOptionPane)var1 == this.optionPane) {
- Dimension var2 = this.getMinimumOptionPaneSize();
- LayoutManager var3 = ((Container)var1).getLayout();
- if (var3 != null) {
- Dimension var4 = var3.preferredLayoutSize(var1);
- return var2 != null ? new Dimension(Math.max(var4.width, var2.width), Math.max(var4.height, var2.height)) : var4;
- } else {
- return var2;
- }
- } else {
- return null;
- }
- }
-
- public Dimension getMinimumSize(JComponent var1) {
- return this.getPreferredSize(var1);
- }
-
- public Dimension getMaximumSize(JComponent var1) {
- return this.getPreferredSize(var1);
- }
-
- public Insets getInsets(JComponent var1) {
- return null;
- }
-
- public boolean getSizeButtonsToSameWidth() {
- return true;
- }
-
- public void selectInitialValue() {
- if (this.inputComponent != null) {
- this.inputComponent.requestFocus();
- } else {
- super.selectInitialValue();
- }
- }
- }
-