home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / swingall.jar / javax / swing / JOptionPane.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-07-15  |  15.7 KB  |  689 lines

  1. package javax.swing;
  2.  
  3. import java.awt.BorderLayout;
  4. import java.awt.Component;
  5. import java.awt.Container;
  6. import java.awt.Dialog;
  7. import java.awt.Dimension;
  8. import java.awt.Frame;
  9. import java.awt.Window;
  10. import java.beans.PropertyVetoException;
  11. import java.io.IOException;
  12. import java.io.ObjectInputStream;
  13. import java.io.ObjectOutputStream;
  14. import java.io.Serializable;
  15. import java.util.Vector;
  16. import javax.accessibility.Accessible;
  17. import javax.accessibility.AccessibleContext;
  18. import javax.swing.plaf.OptionPaneUI;
  19.  
  20. public class JOptionPane extends JComponent implements Accessible {
  21.    private static final String uiClassID = "OptionPaneUI";
  22.    public static final Object UNINITIALIZED_VALUE = "uninitializedValue";
  23.    public static final int DEFAULT_OPTION = -1;
  24.    public static final int YES_NO_OPTION = 0;
  25.    public static final int YES_NO_CANCEL_OPTION = 1;
  26.    public static final int OK_CANCEL_OPTION = 2;
  27.    public static final int YES_OPTION = 0;
  28.    public static final int NO_OPTION = 1;
  29.    public static final int CANCEL_OPTION = 2;
  30.    public static final int OK_OPTION = 0;
  31.    public static final int CLOSED_OPTION = -1;
  32.    public static final int ERROR_MESSAGE = 0;
  33.    public static final int INFORMATION_MESSAGE = 1;
  34.    public static final int WARNING_MESSAGE = 2;
  35.    public static final int QUESTION_MESSAGE = 3;
  36.    public static final int PLAIN_MESSAGE = -1;
  37.    public static final String ICON_PROPERTY = "icon";
  38.    public static final String MESSAGE_PROPERTY = "message";
  39.    public static final String VALUE_PROPERTY = "value";
  40.    public static final String OPTIONS_PROPERTY = "options";
  41.    public static final String INITIAL_VALUE_PROPERTY = "initialValue";
  42.    public static final String MESSAGE_TYPE_PROPERTY = "messageType";
  43.    public static final String OPTION_TYPE_PROPERTY = "optionType";
  44.    public static final String SELECTION_VALUES_PROPERTY = "selectionValues";
  45.    public static final String INITIAL_SELECTION_VALUE_PROPERTY = "initialSelectionValue";
  46.    public static final String INPUT_VALUE_PROPERTY = "inputValue";
  47.    public static final String WANTS_INPUT_PROPERTY = "wantsInput";
  48.    protected transient Icon icon;
  49.    protected transient Object message;
  50.    protected transient Object[] options;
  51.    protected transient Object initialValue;
  52.    protected int messageType;
  53.    protected int optionType;
  54.    protected transient Object value;
  55.    protected transient Object[] selectionValues;
  56.    protected transient Object inputValue;
  57.    protected transient Object initialSelectionValue;
  58.    protected boolean wantsInput;
  59.    private static final Object sharedFrameKey;
  60.    // $FF: synthetic field
  61.    static Class class$javax$swing$JOptionPane;
  62.  
  63.    static {
  64.       sharedFrameKey = class$javax$swing$JOptionPane != null ? class$javax$swing$JOptionPane : (class$javax$swing$JOptionPane = class$("javax.swing.JOptionPane"));
  65.    }
  66.  
  67.    public JOptionPane() {
  68.       this("JOptionPane message");
  69.    }
  70.  
  71.    public JOptionPane(Object var1) {
  72.       this(var1, -1);
  73.    }
  74.  
  75.    public JOptionPane(Object var1, int var2) {
  76.       this(var1, var2, -1);
  77.    }
  78.  
  79.    public JOptionPane(Object var1, int var2, int var3) {
  80.       this(var1, var2, var3, (Icon)null);
  81.    }
  82.  
  83.    public JOptionPane(Object var1, int var2, int var3, Icon var4) {
  84.       this(var1, var2, var3, var4, (Object[])null);
  85.    }
  86.  
  87.    public JOptionPane(Object var1, int var2, int var3, Icon var4, Object[] var5) {
  88.       this(var1, var2, var3, var4, var5, (Object)null);
  89.    }
  90.  
  91.    public JOptionPane(Object var1, int var2, int var3, Icon var4, Object[] var5, Object var6) {
  92.       this.message = var1;
  93.       this.options = var5;
  94.       this.initialValue = var6;
  95.       this.icon = var4;
  96.       this.setMessageType(var2);
  97.       this.setOptionType(var3);
  98.       this.value = "uninitializedValue";
  99.       this.inputValue = "uninitializedValue";
  100.       this.updateUI();
  101.    }
  102.  
  103.    private void adjustPreferredSize() {
  104.       Dimension var1 = ((JComponent)this).getPreferredSize();
  105.       var1.width += 5;
  106.       var1.height += 2;
  107.       ((JComponent)this).setPreferredSize(var1);
  108.    }
  109.  
  110.    // $FF: synthetic method
  111.    static Class class$(String var0) {
  112.       try {
  113.          return Class.forName(var0);
  114.       } catch (ClassNotFoundException var2) {
  115.          throw new NoClassDefFoundError(((Throwable)var2).getMessage());
  116.       }
  117.    }
  118.  
  119.    public JDialog createDialog(Component var1, String var2) {
  120.       Frame var3 = getFrameForComponent(var1);
  121.       String var5 = System.getProperty("os.name");
  122.       boolean var6 = var5 != null && var5.indexOf("Solaris") != -1;
  123.       JDialog var4;
  124.       if (var6) {
  125.          var4 = SwingUtilities.getRecycledModalDialog(var3, var2);
  126.       } else {
  127.          var4 = new JDialog(var3, var2, true);
  128.       }
  129.  
  130.       Container var7 = var4.getContentPane();
  131.       var7.setLayout(new BorderLayout());
  132.       var7.add(this, "Center");
  133.       ((Window)var4).pack();
  134.       var4.setLocationRelativeTo(var1);
  135.       ((Window)var4).addWindowListener(new 1(this));
  136.       ((JComponent)this).addPropertyChangeListener(new 2(var4, var6, this));
  137.       return var4;
  138.    }
  139.  
  140.    public JInternalFrame createInternalFrame(Component var1, String var2) {
  141.       Object var3 = getDesktopPaneForComponent(var1);
  142.       if (var3 != null || var1 != null && (var3 = var1.getParent()) != null) {
  143.          JInternalFrame var4 = new JInternalFrame(var2, true, false, false, false);
  144.          ((JComponent)this).addPropertyChangeListener(new 3(var4, this));
  145.          var4.getContentPane().add(this, "Center");
  146.          if (var3 instanceof JDesktopPane) {
  147.             ((Container)var3).add(var4, JLayeredPane.MODAL_LAYER);
  148.          } else {
  149.             ((Container)var3).add(var4, "Center");
  150.          }
  151.  
  152.          Dimension var5 = ((JComponent)var4).getPreferredSize();
  153.          Dimension var6 = ((Component)var3).getSize();
  154.          ((Component)var4).setBounds((var6.width - var5.width) / 2, (var6.height - var5.height) / 2, var5.width, var5.height);
  155.          ((Container)var3).validate();
  156.  
  157.          try {
  158.             var4.setSelected(true);
  159.          } catch (PropertyVetoException var7) {
  160.          }
  161.  
  162.          return var4;
  163.       } else {
  164.          throw new RuntimeException("JOptionPane: parentComponent does not have a valid parent");
  165.       }
  166.    }
  167.  
  168.    public AccessibleContext getAccessibleContext() {
  169.       if (super.accessibleContext == null) {
  170.          super.accessibleContext = new AccessibleJOptionPane(this);
  171.       }
  172.  
  173.       return super.accessibleContext;
  174.    }
  175.  
  176.    public static JDesktopPane getDesktopPaneForComponent(Component var0) {
  177.       if (var0 == null) {
  178.          return null;
  179.       } else {
  180.          return var0 instanceof JDesktopPane ? (JDesktopPane)var0 : getDesktopPaneForComponent(var0.getParent());
  181.       }
  182.    }
  183.  
  184.    public static Frame getFrameForComponent(Component var0) {
  185.       if (var0 == null) {
  186.          return getRootFrame();
  187.       } else {
  188.          return var0 instanceof Frame ? (Frame)var0 : getFrameForComponent(var0.getParent());
  189.       }
  190.    }
  191.  
  192.    public Icon getIcon() {
  193.       return this.icon;
  194.    }
  195.  
  196.    public Object getInitialSelectionValue() {
  197.       return this.initialSelectionValue;
  198.    }
  199.  
  200.    public Object getInitialValue() {
  201.       return this.initialValue;
  202.    }
  203.  
  204.    public Object getInputValue() {
  205.       return this.inputValue;
  206.    }
  207.  
  208.    public int getMaxCharactersPerLineCount() {
  209.       return Integer.MAX_VALUE;
  210.    }
  211.  
  212.    public Object getMessage() {
  213.       return this.message;
  214.    }
  215.  
  216.    public int getMessageType() {
  217.       return this.messageType;
  218.    }
  219.  
  220.    public int getOptionType() {
  221.       return this.optionType;
  222.    }
  223.  
  224.    public Object[] getOptions() {
  225.       if (this.options != null) {
  226.          int var1 = this.options.length;
  227.          Object[] var2 = new Object[var1];
  228.          System.arraycopy(this.options, 0, var2, 0, var1);
  229.          return var2;
  230.       } else {
  231.          return this.options;
  232.       }
  233.    }
  234.  
  235.    public static Frame getRootFrame() {
  236.       Frame var0 = (Frame)SwingUtilities.appContextGet(sharedFrameKey);
  237.       if (var0 == null) {
  238.          var0 = SwingUtilities.getSharedOwnerFrame();
  239.          SwingUtilities.appContextPut(sharedFrameKey, var0);
  240.       }
  241.  
  242.       return var0;
  243.    }
  244.  
  245.    public Object[] getSelectionValues() {
  246.       return this.selectionValues;
  247.    }
  248.  
  249.    public OptionPaneUI getUI() {
  250.       return (OptionPaneUI)super.ui;
  251.    }
  252.  
  253.    public String getUIClassID() {
  254.       return "OptionPaneUI";
  255.    }
  256.  
  257.    public Object getValue() {
  258.       return this.value;
  259.    }
  260.  
  261.    public boolean getWantsInput() {
  262.       return this.wantsInput;
  263.    }
  264.  
  265.    protected String paramString() {
  266.       String var1 = this.icon != null ? this.icon.toString() : "";
  267.       String var2 = this.initialValue != null ? this.initialValue.toString() : "";
  268.       String var3 = this.message != null ? this.message.toString() : "";
  269.       String var4;
  270.       if (this.messageType == 0) {
  271.          var4 = "ERROR_MESSAGE";
  272.       } else if (this.messageType == 1) {
  273.          var4 = "INFORMATION_MESSAGE";
  274.       } else if (this.messageType == 2) {
  275.          var4 = "WARNING_MESSAGE";
  276.       } else if (this.messageType == 3) {
  277.          var4 = "QUESTION_MESSAGE";
  278.       } else if (this.messageType == -1) {
  279.          var4 = "PLAIN_MESSAGE";
  280.       } else {
  281.          var4 = "";
  282.       }
  283.  
  284.       String var5;
  285.       if (this.optionType == -1) {
  286.          var5 = "DEFAULT_OPTION";
  287.       } else if (this.optionType == 0) {
  288.          var5 = "YES_NO_OPTION";
  289.       } else if (this.optionType == 1) {
  290.          var5 = "YES_NO_CANCEL_OPTION";
  291.       } else if (this.optionType == 2) {
  292.          var5 = "OK_CANCEL_OPTION";
  293.       } else {
  294.          var5 = "";
  295.       }
  296.  
  297.       String var6 = this.wantsInput ? "true" : "false";
  298.       return super.paramString() + ",icon=" + var1 + ",initialValue=" + var2 + ",message=" + var3 + ",messageType=" + var4 + ",optionType=" + var5 + ",wantsInput=" + var6;
  299.    }
  300.  
  301.    private void readObject(ObjectInputStream var1) throws IOException, ClassNotFoundException {
  302.       var1.defaultReadObject();
  303.       Vector var2 = (Vector)var1.readObject();
  304.       int var3 = 0;
  305.       int var4 = var2.size();
  306.       if (var3 < var4 && var2.elementAt(var3).equals("icon")) {
  307.          ++var3;
  308.          this.icon = (Icon)var2.elementAt(var3);
  309.          ++var3;
  310.       }
  311.  
  312.       if (var3 < var4 && var2.elementAt(var3).equals("message")) {
  313.          ++var3;
  314.          this.message = var2.elementAt(var3);
  315.          ++var3;
  316.       }
  317.  
  318.       if (var3 < var4 && var2.elementAt(var3).equals("options")) {
  319.          ++var3;
  320.          this.options = var2.elementAt(var3);
  321.          ++var3;
  322.       }
  323.  
  324.       if (var3 < var4 && var2.elementAt(var3).equals("initialValue")) {
  325.          ++var3;
  326.          this.initialValue = var2.elementAt(var3);
  327.          ++var3;
  328.       }
  329.  
  330.       if (var3 < var4 && var2.elementAt(var3).equals("value")) {
  331.          ++var3;
  332.          this.value = var2.elementAt(var3);
  333.          ++var3;
  334.       }
  335.  
  336.       if (var3 < var4 && var2.elementAt(var3).equals("selectionValues")) {
  337.          ++var3;
  338.          this.selectionValues = var2.elementAt(var3);
  339.          ++var3;
  340.       }
  341.  
  342.       if (var3 < var4 && var2.elementAt(var3).equals("inputValue")) {
  343.          ++var3;
  344.          this.inputValue = var2.elementAt(var3);
  345.          ++var3;
  346.       }
  347.  
  348.       if (var3 < var4 && var2.elementAt(var3).equals("initialSelectionValue")) {
  349.          ++var3;
  350.          this.initialSelectionValue = var2.elementAt(var3);
  351.          ++var3;
  352.       }
  353.  
  354.       if (super.ui != null && this.getUIClassID().equals("OptionPaneUI")) {
  355.          super.ui.installUI(this);
  356.       }
  357.  
  358.    }
  359.  
  360.    public void selectInitialValue() {
  361.       OptionPaneUI var1 = this.getUI();
  362.       if (var1 != null) {
  363.          var1.selectInitialValue(this);
  364.       }
  365.  
  366.    }
  367.  
  368.    public void setIcon(Icon var1) {
  369.       Icon var2 = this.icon;
  370.       this.icon = var1;
  371.       ((JComponent)this).firePropertyChange("icon", var2, this.icon);
  372.    }
  373.  
  374.    public void setInitialSelectionValue(Object var1) {
  375.       Object var2 = this.initialSelectionValue;
  376.       this.initialSelectionValue = var1;
  377.       ((JComponent)this).firePropertyChange("initialSelectionValue", var2, var1);
  378.    }
  379.  
  380.    public void setInitialValue(Object var1) {
  381.       Object var2 = this.initialValue;
  382.       this.initialValue = var1;
  383.       ((JComponent)this).firePropertyChange("initialValue", var2, this.initialValue);
  384.    }
  385.  
  386.    public void setInputValue(Object var1) {
  387.       Object var2 = this.inputValue;
  388.       this.inputValue = var1;
  389.       ((JComponent)this).firePropertyChange("inputValue", var2, var1);
  390.    }
  391.  
  392.    public void setMessage(Object var1) {
  393.       Object var2 = this.message;
  394.       this.message = var1;
  395.       ((JComponent)this).firePropertyChange("message", var2, this.message);
  396.    }
  397.  
  398.    public void setMessageType(int var1) {
  399.       if (var1 != 0 && var1 != 1 && var1 != 2 && var1 != 3 && var1 != -1) {
  400.          throw new RuntimeException("JOptionPane: type must be one of JOptionPane.ERROR_MESSAGE, JOptionPane.INFORMATION_MESSAGE, JOptionPane.WARNING_MESSAGE, JOptionPane.QUESTION_MESSAGE or JOptionPane.PLAIN_MESSAGE");
  401.       } else {
  402.          int var2 = this.messageType;
  403.          this.messageType = var1;
  404.          ((JComponent)this).firePropertyChange("messageType", var2, this.messageType);
  405.       }
  406.    }
  407.  
  408.    public void setOptionType(int var1) {
  409.       if (var1 != -1 && var1 != 0 && var1 != 1 && var1 != 2) {
  410.          throw new RuntimeException("JOptionPane: option type must be one of JOptionPane.DEFAULT_OPTION, JOptionPane.YES_NO_OPTION, JOptionPane.YES_NO_CANCEL_OPTION or JOptionPane.OK_CANCEL_OPTION");
  411.       } else {
  412.          int var2 = this.optionType;
  413.          this.optionType = var1;
  414.          ((JComponent)this).firePropertyChange("optionType", var2, this.optionType);
  415.       }
  416.    }
  417.  
  418.    public void setOptions(Object[] var1) {
  419.       Object[] var2 = this.options;
  420.       this.options = var1;
  421.       ((JComponent)this).firePropertyChange("options", var2, this.options);
  422.    }
  423.  
  424.    public static void setRootFrame(Frame var0) {
  425.       if (var0 != null) {
  426.          SwingUtilities.appContextPut(sharedFrameKey, var0);
  427.       } else {
  428.          SwingUtilities.appContextRemove(sharedFrameKey);
  429.       }
  430.  
  431.    }
  432.  
  433.    public void setSelectionValues(Object[] var1) {
  434.       Object[] var2 = this.selectionValues;
  435.       this.selectionValues = var1;
  436.       ((JComponent)this).firePropertyChange("selectionValues", var2, var1);
  437.       if (this.selectionValues != null) {
  438.          this.setWantsInput(true);
  439.       }
  440.  
  441.    }
  442.  
  443.    public void setUI(OptionPaneUI var1) {
  444.       if ((OptionPaneUI)super.ui != var1) {
  445.          super.setUI(var1);
  446.          ((Container)this).invalidate();
  447.       }
  448.  
  449.    }
  450.  
  451.    public void setValue(Object var1) {
  452.       Object var2 = this.value;
  453.       this.value = var1;
  454.       ((JComponent)this).firePropertyChange("value", var2, this.value);
  455.    }
  456.  
  457.    public void setWantsInput(boolean var1) {
  458.       boolean var2 = this.wantsInput;
  459.       this.wantsInput = var1;
  460.       ((JComponent)this).firePropertyChange("wantsInput", var2, var1);
  461.    }
  462.  
  463.    public static int showConfirmDialog(Component var0, Object var1) {
  464.       return showConfirmDialog(var0, var1, "Select an Option", 1);
  465.    }
  466.  
  467.    public static int showConfirmDialog(Component var0, Object var1, String var2, int var3) {
  468.       return showConfirmDialog(var0, var1, var2, var3, 3);
  469.    }
  470.  
  471.    public static int showConfirmDialog(Component var0, Object var1, String var2, int var3, int var4) {
  472.       return showConfirmDialog(var0, var1, var2, var3, var4, (Icon)null);
  473.    }
  474.  
  475.    public static int showConfirmDialog(Component var0, Object var1, String var2, int var3, int var4, Icon var5) {
  476.       return showOptionDialog(var0, var1, var2, var3, var4, var5, (Object[])null, (Object)null);
  477.    }
  478.  
  479.    public static String showInputDialog(Component var0, Object var1) {
  480.       return showInputDialog(var0, var1, "Input", 3);
  481.    }
  482.  
  483.    public static String showInputDialog(Component var0, Object var1, String var2, int var3) {
  484.       return (String)showInputDialog(var0, var1, var2, var3, (Icon)null, (Object[])null, (Object)null);
  485.    }
  486.  
  487.    public static Object showInputDialog(Component var0, Object var1, String var2, int var3, Icon var4, Object[] var5, Object var6) {
  488.       JOptionPane var7 = new JOptionPane(var1, var3, 2, var4, (Object[])null, (Object)null);
  489.       var7.adjustPreferredSize();
  490.       var7.setWantsInput(true);
  491.       var7.setSelectionValues(var5);
  492.       var7.setInitialSelectionValue(var6);
  493.       JDialog var8 = var7.createDialog(var0, var2);
  494.       var7.selectInitialValue();
  495.       ((Dialog)var8).show();
  496.       Object var9 = var7.getInputValue();
  497.       return var9 == "uninitializedValue" ? null : var9;
  498.    }
  499.  
  500.    public static String showInputDialog(Object var0) {
  501.       return showInputDialog((Component)null, var0);
  502.    }
  503.  
  504.    public static int showInternalConfirmDialog(Component var0, Object var1) {
  505.       return showInternalConfirmDialog(var0, var1, "Select an Option", 1);
  506.    }
  507.  
  508.    public static int showInternalConfirmDialog(Component var0, Object var1, String var2, int var3) {
  509.       return showInternalConfirmDialog(var0, var1, var2, var3, 3);
  510.    }
  511.  
  512.    public static int showInternalConfirmDialog(Component var0, Object var1, String var2, int var3, int var4) {
  513.       return showInternalConfirmDialog(var0, var1, var2, var3, var4, (Icon)null);
  514.    }
  515.  
  516.    public static int showInternalConfirmDialog(Component var0, Object var1, String var2, int var3, int var4, Icon var5) {
  517.       return showInternalOptionDialog(var0, var1, var2, var3, var4, var5, (Object[])null, (Object)null);
  518.    }
  519.  
  520.    public static String showInternalInputDialog(Component var0, Object var1) {
  521.       return showInternalInputDialog(var0, var1, "Input", 3);
  522.    }
  523.  
  524.    public static String showInternalInputDialog(Component var0, Object var1, String var2, int var3) {
  525.       return (String)showInternalInputDialog(var0, var1, var2, var3, (Icon)null, (Object[])null, (Object)null);
  526.    }
  527.  
  528.    public static Object showInternalInputDialog(Component var0, Object var1, String var2, int var3, Icon var4, Object[] var5, Object var6) {
  529.       JOptionPane var7 = new JOptionPane(var1, var3, 2, var4, (Object[])null, (Object)null);
  530.       var7.setWantsInput(true);
  531.       var7.setSelectionValues(var5);
  532.       var7.setInitialSelectionValue(var6);
  533.       JInternalFrame var8 = var7.createInternalFrame(var0, var2);
  534.       var7.selectInitialValue();
  535.       var8.startModal();
  536.       Object var9 = var7.getInputValue();
  537.       return var9 == "uninitializedValue" ? null : (String)var9;
  538.    }
  539.  
  540.    public static void showInternalMessageDialog(Component var0, Object var1) {
  541.       showInternalMessageDialog(var0, var1, "Message", 1);
  542.    }
  543.  
  544.    public static void showInternalMessageDialog(Component var0, Object var1, String var2, int var3) {
  545.       showInternalMessageDialog(var0, var1, var2, var3, (Icon)null);
  546.    }
  547.  
  548.    public static void showInternalMessageDialog(Component var0, Object var1, String var2, int var3, Icon var4) {
  549.       showInternalOptionDialog(var0, var1, var2, -1, var3, var4, (Object[])null, (Object)null);
  550.    }
  551.  
  552.    public static int showInternalOptionDialog(Component var0, Object var1, String var2, int var3, int var4, Icon var5, Object[] var6, Object var7) {
  553.       JOptionPane var8 = new JOptionPane(var1, var4, var3, var5, var6, var7);
  554.       var8.setInitialValue(var7);
  555.       JInternalFrame var9 = var8.createInternalFrame(var0, var2);
  556.       var8.selectInitialValue();
  557.       var9.startModal();
  558.       Object var10 = var8.getValue();
  559.       if (var10 == null) {
  560.          return -1;
  561.       } else if (var6 == null) {
  562.          return var10 instanceof Integer ? (Integer)var10 : -1;
  563.       } else {
  564.          int var11 = 0;
  565.  
  566.          for(int var12 = var6.length; var11 < var12; ++var11) {
  567.             if (var6[var11].equals(var10)) {
  568.                return var11;
  569.             }
  570.          }
  571.  
  572.          return -1;
  573.       }
  574.    }
  575.  
  576.    public static void showMessageDialog(Component var0, Object var1) {
  577.       showMessageDialog(var0, var1, "Message", 1);
  578.    }
  579.  
  580.    public static void showMessageDialog(Component var0, Object var1, String var2, int var3) {
  581.       showMessageDialog(var0, var1, var2, var3, (Icon)null);
  582.    }
  583.  
  584.    public static void showMessageDialog(Component var0, Object var1, String var2, int var3, Icon var4) {
  585.       showOptionDialog(var0, var1, var2, -1, var3, var4, (Object[])null, (Object)null);
  586.    }
  587.  
  588.    public static int showOptionDialog(Component var0, Object var1, String var2, int var3, int var4, Icon var5, Object[] var6, Object var7) {
  589.       JOptionPane var8 = new JOptionPane(var1, var4, var3, var5, var6, var7);
  590.       var8.adjustPreferredSize();
  591.       var8.setInitialValue(var7);
  592.       JDialog var9 = var8.createDialog(var0, var2);
  593.       var8.selectInitialValue();
  594.       ((Dialog)var9).show();
  595.       Object var10 = var8.getValue();
  596.       if (var10 == null) {
  597.          return -1;
  598.       } else if (var6 == null) {
  599.          return var10 instanceof Integer ? (Integer)var10 : -1;
  600.       } else {
  601.          int var11 = 0;
  602.  
  603.          for(int var12 = var6.length; var11 < var12; ++var11) {
  604.             if (var6[var11].equals(var10)) {
  605.                return var11;
  606.             }
  607.          }
  608.  
  609.          return -1;
  610.       }
  611.    }
  612.  
  613.    public void updateUI() {
  614.       this.setUI((OptionPaneUI)UIManager.getUI(this));
  615.    }
  616.  
  617.    private void writeObject(ObjectOutputStream var1) throws IOException {
  618.       Vector var2 = new Vector();
  619.       var1.defaultWriteObject();
  620.       if (this.icon != null && this.icon instanceof Serializable) {
  621.          var2.addElement("icon");
  622.          var2.addElement(this.icon);
  623.       }
  624.  
  625.       if (this.message != null && this.message instanceof Serializable) {
  626.          var2.addElement("message");
  627.          var2.addElement(this.message);
  628.       }
  629.  
  630.       if (this.options != null) {
  631.          Vector var3 = new Vector();
  632.          int var4 = 0;
  633.  
  634.          for(int var5 = this.options.length; var4 < var5; ++var4) {
  635.             if (this.options[var4] instanceof Serializable) {
  636.                var3.addElement(this.options[var4]);
  637.             }
  638.          }
  639.  
  640.          if (var3.size() > 0) {
  641.             int var6 = var3.size();
  642.             Object[] var7 = new Object[var6];
  643.             var3.copyInto(var7);
  644.             var2.addElement("options");
  645.             var2.addElement(var7);
  646.          }
  647.       }
  648.  
  649.       if (this.initialValue != null && this.initialValue instanceof Serializable) {
  650.          var2.addElement("initialValue");
  651.          var2.addElement(this.initialValue);
  652.       }
  653.  
  654.       if (this.value != null && this.value instanceof Serializable) {
  655.          var2.addElement("value");
  656.          var2.addElement(this.value);
  657.       }
  658.  
  659.       if (this.selectionValues != null) {
  660.          boolean var8 = true;
  661.          int var9 = 0;
  662.  
  663.          for(int var10 = this.selectionValues.length; var9 < var10; ++var9) {
  664.             if (this.selectionValues[var9] != null && !(this.selectionValues[var9] instanceof Serializable)) {
  665.                var8 = false;
  666.                break;
  667.             }
  668.          }
  669.  
  670.          if (var8) {
  671.             var2.addElement("selectionValues");
  672.             var2.addElement(this.selectionValues);
  673.          }
  674.       }
  675.  
  676.       if (this.inputValue != null && this.inputValue instanceof Serializable) {
  677.          var2.addElement("inputValue");
  678.          var2.addElement(this.inputValue);
  679.       }
  680.  
  681.       if (this.initialSelectionValue != null && this.initialSelectionValue instanceof Serializable) {
  682.          var2.addElement("initialSelectionValue");
  683.          var2.addElement(this.initialSelectionValue);
  684.       }
  685.  
  686.       var1.writeObject(var2);
  687.    }
  688. }
  689.