/* * 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 */ /* * * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. * * pmLoad.java * Load a Naming Context 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 pmLoad extends JPanel { final static int OK = 1; final static int APPLY = 2; final static int RESET = 3; final static int CANCEL = 4; final static int HELP = 5; final static int NIS = 6; final static int NONE = 7; pmFrame frame = new pmFrame( pmUtility.getResource("SPM:Select.Naming.Service")); JComboBox nameserviceCombo = new JComboBox(); pmTop mytop = null; int resetIndex; pmButton okButton = null; pmButton cancelButton = null; pmButton resetButton = null; pmButton helpButton = null; public pmLoad(pmTop mytop) { this.mytop = mytop; Debug.message("CLNT:pmLoad()"); setLayout(new BorderLayout()); resetIndex = mytop.actionindex; northPanel(); southPanel(); } public void northPanel() { JPanel north = new JPanel(); north.setLayout(new GridBagLayout()); GridBagConstraints c = new GridBagConstraints(); c.weightx = c.weighty = 0.0; c.fill = GridBagConstraints.NONE; c.anchor = GridBagConstraints.WEST; c.insets = new Insets(15, 15, 5, 15); c.gridheight = 1; c.gridwidth = 1; c.gridy = 1; c.gridx = 0; north.add(new JLabel (pmUtility.getResource("Naming.Service:")), c); c.gridy = 1; c.gridx = 2; c.ipadx = 15; nameserviceCombo.addItem("files"); if (mytop.nisns != null) nameserviceCombo.addItem("NIS"); if (mytop.ldapns != null) nameserviceCombo.addItem("LDAP"); nameserviceCombo.setSelectedIndex(mytop.actionindex); north.add(nameserviceCombo, c); nameserviceCombo.addActionListener(new nsListener()); nameserviceCombo.addItemListener(mytop.new topnsListener()); add("North", north); } class nsListener implements ActionListener { public nsListener() {} public void actionPerformed(ActionEvent e) { mytop.actionindex = nameserviceCombo.getSelectedIndex(); if (mytop.actionindex == 0) { Debug.message("CLNT:pmLoad:0: NONE"); } else if (mytop.actionindex == 1) { Debug.message("CLNT:pmLoad:1: NIS"); } else if (mytop.actionindex == 4) { Debug.message("CLNT:pmLoad:2: LDAP"); } }; } public void southPanel() { JPanel south = new JPanel(); south.setLayout(new GridBagLayout()); GridBagConstraints c = new GridBagConstraints(); c.gridheight = 1; c.gridwidth = 1; c.weightx = c.weighty = 1.0; c.anchor = GridBagConstraints.CENTER; c.fill = GridBagConstraints.HORIZONTAL; c.insets = new Insets(15, 15, 15, 15); c.gridy = 0; okButton = new pmButton( pmUtility.getResource("OK")); okButton.setMnemonic( pmUtility.getIntResource("OK.mnemonic")); resetButton = new pmButton( pmUtility.getResource("Reset")); resetButton.setMnemonic( pmUtility.getIntResource("Reset.mnemonic")); cancelButton = new pmButton( pmUtility.getResource("Cancel")); cancelButton.setMnemonic( pmUtility.getIntResource("Cancel.mnemonic")); helpButton = new pmButton( pmUtility.getResource("Help")); helpButton.setMnemonic( pmUtility.getIntResource("Help.mnemonic")); okButton.addActionListener(new ButtonListener(OK)); resetButton.addActionListener(new ButtonListener(RESET)); cancelButton.addActionListener(new ButtonListener(CANCEL)); helpButton.addActionListener(new ButtonListener(HELP)); c.gridx = 0; south.add(okButton, c); c.gridx = 1; south.add(resetButton, c); c.gridx = 2; south.add(cancelButton, c); c.gridx = 3; south.add(helpButton, c); add("South", south); } class ButtonListener implements ActionListener { int activeButton; // Constructor public ButtonListener(int aButton) { activeButton = aButton; } // Select Active Button and call routine public void actionPerformed(ActionEvent e) { switch (activeButton) { case OK: actionokButton(); break; case RESET: actionresetButton(); break; case CANCEL: actioncancelButton(); break; case HELP: actionhelpButton(); break; } } } public void pmScreendispose() { frame.dispose(); } // Action for buttons public void actionokButton() { Debug.message("CLNT:pmLoad:actionokButton()"); mytop.pmsetNS(); mytop.pmsetNSLabel(); mytop.pmsetPrinterList(); mytop.pmsetdefaultpLabel(); frame.setVisible(false); frame.repaint(); frame.dispose(); } public void actionresetButton() { Debug.message("CLNT:pmLoad:actionresetButton()"); nameserviceCombo.setSelectedIndex(resetIndex); frame.repaint(); } public void actioncancelButton() { Debug.message("CLNT:pmLoad:actioncancelButton()"); nameserviceCombo.setSelectedIndex(resetIndex); frame.setVisible(false); frame.repaint(); frame.dispose(); } public void actionhelpButton() { Debug.message("CLNT:pmLoad:actionhelpButton()"); mytop.showHelpItem("NameService"); } public void Show() { Debug.message("CLNT:pmLoad:Show()"); frame.getContentPane().add("North", this); frame.pack(); // handle Esc as cancel frame.getRootPane().registerKeyboardAction(new ActionListener() { public void actionPerformed(ActionEvent e) { Debug.message("CLNT: default cancel action"); actioncancelButton(); }}, KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0, false), JComponent.WHEN_IN_FOCUSED_WINDOW); // default button is always OK, for now... okButton.setAsDefaultButton(); frame.setDefaultComponent(nameserviceCombo); nameserviceCombo.requestFocus(); frame.setVisible(true); frame.repaint(); } }