1 /* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License, Version 1.0 only 6 * (the "License"). You may not use this file except in compliance 7 * with the License. 8 * 9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10 * or http://www.opensolaris.org/os/licensing. 11 * See the License for the specific language governing permissions 12 * and limitations under the License. 13 * 14 * When distributing Covered Code, include this CDDL HEADER in each 15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16 * If applicable, add the following below this CDDL HEADER, with the 17 * fields enclosed by brackets "[]" replaced with your own identifying 18 * information: Portions Copyright [yyyy] [name of copyright owner] 19 * 20 * CDDL HEADER END 21 */ 22 /* 23 * ident "%Z%%M% %I% %E% SMI" 24 * 25 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 26 * Use is subject to license terms. 27 */ 28 package com.sun.dhcpmgr.client; 29 30 import java.awt.*; 31 import java.awt.event.*; 32 import java.text.MessageFormat; 33 import java.util.*; 34 import javax.swing.*; 35 36 import com.sun.dhcpmgr.server.*; 37 import com.sun.dhcpmgr.data.*; 38 import com.sun.dhcpmgr.ui.*; 39 40 /** 41 * This dialog handles enabling and disabling the service, with user 42 * confirmation 43 */ 44 public class DisableServiceDialog extends DhcpmgrDialog { 45 private boolean disable; 46 private JLabel message; 47 48 public DisableServiceDialog(Frame f, boolean disable) { 49 super(f, false); 50 51 this.disable = disable; 52 53 String name = DataManager.get().getShortServerName(); 54 if (disable) { 55 setTitle(ResourceStrings.getString("disable_service_title")); 56 if (DhcpmgrApplet.modeIsRelay) { 57 message.setText(MessageFormat.format( 58 ResourceStrings.getString("disable_relay_confirm"), name)); 59 message.setToolTipText(MessageFormat.format( 60 ResourceStrings.getString("disable_relay_confirm"), name)); 61 } else { 62 message.setText(MessageFormat.format( 63 ResourceStrings.getString("disable_service_confirm"), 64 name)); 65 message.setToolTipText(MessageFormat.format( 66 ResourceStrings.getString("disable_service_confirm"), 67 name)); 68 } 69 } else { 70 setTitle(ResourceStrings.getString("enable_service_title")); 71 if (DhcpmgrApplet.modeIsRelay) { 72 message.setText(MessageFormat.format( 73 ResourceStrings.getString("enable_relay_confirm"), name)); 74 message.setToolTipText(MessageFormat.format( 75 ResourceStrings.getString("enable_relay_confirm"), name)); 76 } else { 77 message.setText(MessageFormat.format( 78 ResourceStrings.getString("enable_service_confirm"), name)); 79 message.setToolTipText(MessageFormat.format( 80 ResourceStrings.getString("enable_service_confirm"), name)); 81 } 82 } 83 } 84 85 protected JPanel getMainPanel() { 86 JPanel panel = new JPanel(); 87 panel.setBorder(BorderFactory.createEmptyBorder(20, 10, 20, 10)); 88 message = new JLabel(); 89 panel.add(message); 90 91 buttonPanel.setOkEnabled(true); 92 return panel; 93 } 94 95 protected void doOk() { 96 try { 97 DhcpServiceMgr server = DataManager.get().getDhcpServiceMgr(); 98 DhcpdOptions opts = 99 DataManager.get().getDhcpServiceMgr().readDefaults(); 100 if (disable) { 101 // Shutdown the server and disable the daemon. 102 server.shutdown(); 103 opts.setDaemonEnabled(false); 104 DataManager.get().getDhcpServiceMgr().writeDefaults(opts); 105 } else { 106 // Enable = reverse the process 107 opts.setDaemonEnabled(true); 108 DataManager.get().getDhcpServiceMgr().writeDefaults(opts); 109 server.startup(); 110 } 111 fireActionPerformed(); 112 setVisible(false); 113 dispose(); 114 } catch (Exception e) { 115 e.printStackTrace(); 116 MessageFormat form = null; 117 Object [] args = new Object[1]; 118 if (disable) { 119 form = new MessageFormat( 120 ResourceStrings.getString("disable_service_error")); 121 } else { 122 form = new MessageFormat( 123 ResourceStrings.getString("enable_service_error")); 124 } 125 args[0] = e.getMessage(); 126 JOptionPane.showMessageDialog(this, form.format(args), 127 ResourceStrings.getString("server_error_title"), 128 JOptionPane.ERROR_MESSAGE); 129 } 130 } 131 132 protected String getHelpKey() { 133 if (disable) { 134 return "disable_service"; 135 } else { 136 return "enable_service"; 137 } 138 } 139 140 /** 141 * Notify listeners that enable or disable has been done. 142 */ 143 protected void fireActionPerformed() { 144 String cmd; 145 if (disable) { 146 cmd = DialogActions.DISABLE; 147 } else { 148 cmd = DialogActions.ENABLE; 149 } 150 fireActionPerformed(this, cmd); 151 } 152 }