/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
*
* ident "%Z%%M% %I% %E% SMI"
*
* Copyright 2004 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*
* pmMessageDialog.java
* Common info message dialog
*/
package com.sun.admin.pm.client;
import javax.swing.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import com.sun.admin.pm.server.*;
public class pmMessageDialog extends pmDialog {
pmButton helpButton = null;
pmButton okButton = null;
JList theText = null;
pmTop theTop = null;
String helpTag = null;
public pmMessageDialog(String title, String msg) {
this(null, title, msg, null, null);
}
public pmMessageDialog(Frame f, String title, String msg) {
this(f, title, msg, null, null);
}
public pmMessageDialog(Frame f,
String title,
String msg,
pmTop top,
String h) {
super(f, title, true); // modal
theTop = top;
helpTag = h;
// initialize constraints
GridBagConstraints c = new GridBagConstraints();
c.gridx = 0;
c.gridy = GridBagConstraints.RELATIVE;
c.gridwidth = 1;
c.gridheight = 1;
c.insets = new Insets(10, 10, 10, 10);
c.anchor = GridBagConstraints.EAST;
// top panel
JPanel p = new JPanel();
p.setLayout(new GridBagLayout());
// p.setLayout(new BoxLayout(BoxLayout.X_AXIS));
// JLabel label = new JLabel(msg, SwingConstants.CENTER);
JList theText = new JList() {
public boolean isFocusable() {
return false;
}
};
Vector v = new Vector();
Debug.message("CLNT: MessageDialog: " + title + " , " + msg);
if (msg != null) {
StringTokenizer st = new StringTokenizer(msg, "\n", false);
try {
while (st.hasMoreTokens())
v.addElement(st.nextToken());
} catch (Exception x) {
Debug.warning("CLNT: pmMessageDialog caught " + x);
}
theText.setListData(v);
}
theText.setBackground(p.getBackground());
// p.add(theText, "Center");
p.add(theText, c);
this.getContentPane().add(p, "Center");
okButton = new pmButton(
pmUtility.getResource("Dismiss"));
okButton.setMnemonic(
pmUtility.getIntResource("Dismiss.mnemonic"));
okButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
actionOKButton();
}
});
// handle Esc as dismiss in any case
this.getRootPane().registerKeyboardAction(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Debug.message("CLNT: default cancel action");
actionOKButton();
}},
KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0, false),
JComponent.WHEN_IN_FOCUSED_WINDOW);
p = new JPanel();
p.add(okButton);
if (theTop != null && helpTag != null) {
helpButton = new pmButton(
pmUtility.getResource("Help"));
helpButton.setMnemonic(
pmUtility.getIntResource("Help.mnemonic"));
p.add(helpButton);
helpButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
theTop.showHelpItem(helpTag);
}
});
}
this.getContentPane().add(p, "South");
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) {
actionOKButton();
}
});
this.pack();
// this.getRootPane().setDefaultButton(okButton);
okButton.setAsDefaultButton();
// okButton.requestFocus();
okButton.grabFocus();
}
protected void actionOKButton() {
returnValue = JOptionPane.OK_OPTION;
pmMessageDialog.this.setVisible(false);
}
public int getValue() {
return returnValue;
}
public static void main(String[] args) {
JFrame f = new JFrame("Test Dialog");
f.setSize(300, 100);
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) {
System.exit(0);
}
});
f.setVisible(true);
while (true) {
System.out.println("creating a new dialog instance...");
pmMessageDialog d =
new pmMessageDialog(null,
"Dialog Test",
"Dumb test message.",
null,
null);
d.setVisible(true);
System.out.println("Dialog returns " + d.getValue());
d.dispose();
}
}
protected int returnValue = JOptionPane.CLOSED_OPTION;
}