diff options
Diffstat (limited to 'libjava/javax/swing/plaf/basic/BasicOptionPaneUI.java')
-rw-r--r-- | libjava/javax/swing/plaf/basic/BasicOptionPaneUI.java | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/libjava/javax/swing/plaf/basic/BasicOptionPaneUI.java b/libjava/javax/swing/plaf/basic/BasicOptionPaneUI.java new file mode 100644 index 00000000000..bfb6cbadfdc --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicOptionPaneUI.java @@ -0,0 +1,103 @@ +package javax.swing.plaf.basic; + +import java.awt.*; +import java.awt.event.*; +import javax.swing.*; +import javax.swing.plaf.*; +import javax.accessibility.*; + +public class BasicOptionPaneUI extends OptionPaneUI +{ + JOptionPane pane; + + BasicOptionPaneUI() + { + } + + public static ComponentUI createUI(JComponent x) + { + return new BasicOptionPaneUI(); + } + + public void installUI(JComponent c) + { + super.installUI(c); + pane = (JOptionPane)c; + + System.out.println(" -------------: " + pane); + + JLabel message = pane.msg != null ? new JLabel((String)pane.msg) : null; + JButton ok_button = new JButton("Ok"); + + ok_button.addActionListener(new ActionListener() + { + public void actionPerformed(ActionEvent a) + { + System.out.println("ACTION ---> " + a); + // pane.dialog.dispose(); + + if (pane.dialog.isModal()) + { + System.out.println("modal dialog !!"); + pane.dialog.setModal(false); + } + pane.dialog.setVisible(false); + } + }); + + if (pane.args != null) + { + for (int i=0; i<pane.args.length; i++) + { + Object o = pane.args[i]; + if (o != null) + { + if (o instanceof String) + { + String s = (String) o; + JLabel m = new JLabel(s); + pane.add(m); + } + else if (o instanceof Component) + { + Component com = (Component) o; + pane.add(com); + } + else + { + System.out.println("UNRECOGNIZED ARG: " + o); + } + } + } + } + + pane.add(message); + pane.add(ok_button); + } + + Dimension getMinimumOptionPaneSize() + { + return new Dimension(300,100); + } + + public Dimension getPreferredSize(JComponent c) + { + if (c == null) + return getMinimumOptionPaneSize(); + + if (c != pane) + return null; + + LayoutManager l = c.getLayout(); + if (l == null) + return getMinimumOptionPaneSize(); + + Dimension d1 = l.preferredLayoutSize(c); + Dimension d2 = getMinimumOptionPaneSize(); + + d1.width = Math.max(d1.width, d2.width); + d1.height = Math.max(d1.height, d2.height); + + return d2; + } +} |