/*
* 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 (c) 1999 by Sun Microsystems, Inc.
* All rights reserved.
*
* pmFindFrame.java
* Find Printer dialog implementation
*/
package com.sun.admin.pm.client;
import java.awt.*;
import java.awt.event.*;
import javax.swing.JPanel;
import javax.swing.*;
import com.sun.admin.pm.server.*;
public class pmFindFrame extends pmFrame {
JLabel statusText = null;
pmButton okButton = null;
pmButton cancelButton = null;
pmButton helpButton = null;
pmTop theTop = null;
String label = pmUtility.getResource("Enter.name.of.printer.to.find");
String helpTag = "ToFindPrinter";
public pmFindFrame(pmTop t) {
super(pmUtility.getResource("SPM:Find.Printer"));
setLocation(100, 100);
theTop = t;
JLabel l;
JPanel p;
// 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, 5, 10);
c.anchor = GridBagConstraints.WEST;
c.fill = GridBagConstraints.HORIZONTAL;
c.weightx = 1.0;
// top panel contains the message
p = new JPanel();
p.setLayout(new GridBagLayout());
l = new JLabel(label, SwingConstants.LEFT);
p.add(l, c);
getContentPane().add(p, "North");
// middle panel contains "other" text field
p = new JPanel();
p.setLayout(new GridBagLayout());
printerName = new pmTextField(30);
printerName.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
okPressed();
}
});
l.setLabelFor(printerName);
c.gridx = 1;
c.gridy = 0;
c.weightx = 1.0;
c.fill = GridBagConstraints.HORIZONTAL;
c.anchor = GridBagConstraints.CENTER;
c.insets = new Insets(0, 10, 5, 10);
p.add(printerName, c);
statusText = new JLabel(" ", SwingConstants.LEFT);
c.gridy = GridBagConstraints.RELATIVE;
c.gridx = 0;
c.gridwidth = 2;
c.insets = new Insets(5, 10, 5, 10);
p.add(statusText, c);
getContentPane().add(p, "Center");
// bottom panel contains buttons
c.gridx = 0;
c.weightx = 1.0;
c.weighty = 0.0;
c.gridwidth = GridBagConstraints.REMAINDER;
c.fill = GridBagConstraints.HORIZONTAL;
c.anchor = GridBagConstraints.CENTER;
c.insets = new Insets(5, 10, 10, 10);
JPanel thePanel = new JPanel();
okButton = new pmButton(
pmUtility.getResource("Find"));
okButton.setMnemonic(
pmUtility.getIntResource("Find.mnemonic"));
okButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
okPressed();
}
});
thePanel.add(okButton, c);
cancelButton = new pmButton(
pmUtility.getResource("Dismiss"));
cancelButton.setMnemonic(
pmUtility.getIntResource("Dismiss.mnemonic"));
cancelButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
cancelPressed();
}
});
thePanel.add(cancelButton, c);
helpButton = new pmButton(
pmUtility.getResource("Help"));
helpButton.setMnemonic(
pmUtility.getIntResource("Help.mnemonic"));
helpButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
theTop.showHelpItem(helpTag);
}
});
thePanel.add(helpButton, c);
getContentPane().add(thePanel, "South");
// lay out the dialog
pack();
// handle Esc as dismiss in any case
getRootPane().registerKeyboardAction(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Debug.message("CLNT: default cancel action");
cancelPressed();
}},
KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0, false),
JComponent.WHEN_IN_FOCUSED_WINDOW);
// set focus to initial field, depending on which action is tbd
// this seems to work best after pack()
/*
* frame.setVisible(true);
* frame.repaint();
*/
// getRootPane().setDefaultButton (okButton);
okButton.setAsDefaultButton();
printerName.requestFocus();
// enable improved focus handling
setDefaultComponent(printerName);
}
public void okPressed() {
Debug.message("CLNT: pmFindFrame:okPressed():" +
printerName.getText());
String name = printerName.getText();
boolean result = theTop.findPrinterInList(name.trim());
if (!result)
statusText.setText(new String(
pmUtility.getResource("Unable.to.find.printer") + name));
else
statusText.setText(" ");
// pmFindPanel.this.frame.setVisible (false);
}
public void cancelPressed() {
Debug.message("CLNT: pmFindFrame: cancelPressed()");
statusText.setText(" ");
printerName.setText("");
pmFindFrame.this.setVisible(false);
}
public pmTextField printerName = null;
}