xref: /onnv-gate/usr/src/cmd/print/printmgr/com/sun/admin/pm/client/pmDelete.java (revision 2141:8b55f69b9419)
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 (the "License").
6  * You may not use this file except in compliance with the License.
7  *
8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9  * or http://www.opensolaris.org/os/licensing.
10  * See the License for the specific language governing permissions
11  * and limitations under the License.
12  *
13  * When distributing Covered Code, include this CDDL HEADER in each
14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15  * If applicable, add the following below this CDDL HEADER, with the
16  * fields enclosed by brackets "[]" replaced with your own identifying
17  * information: Portions Copyright [yyyy] [name of copyright owner]
18  *
19  * CDDL HEADER END
20  */
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  * pmDelete.java
29  * Delete Printer implementation
30  */
31 
32 package com.sun.admin.pm.client;
33 
34 import java.awt.*;
35 import java.awt.event.*;
36 import javax.swing.JPanel;
37 import javax.swing.*;
38 
39 import com.sun.admin.pm.server.*;
40 
41 
42 /*
43  * Window for Edit -> Delete
44  */
45 
46 // public class pmDelete extends JPanel {
47 public class pmDelete {
48 
49     Printer newpr = null;
50     pmTop mytop = null;
51 
pmDelete(pmTop mytop)52     public pmDelete(pmTop mytop)
53     {
54         this.mytop = mytop;
55         newpr = new Printer(mytop.ns);
56 
57         Debug.message("CLNT:  pmDelete");
58 
59         if (mytop.selectedPrinter.equals("")) {
60             Debug.warning("CLNT:  pmDelete:error: selectedPrinter empty");
61             // Display error window
62             actioncancelButton();
63          }
64 
65         pmOKCancelDialog d = new pmOKCancelDialog(
66             mytop.parentFrame,
67             pmUtility.getResource("SPM:Delete.Printer"),
68             pmUtility.getResource("Please.confirm.deletion.of.printer") +
69 		mytop.selectedPrinter, false);
70         d.setVisible(true);
71 
72         if (d.getValue() != JOptionPane.OK_OPTION)
73             actioncancelButton();
74         else {
75             try {
76                 actionokButton();
77             } catch (pmUserCancelledException ce) {
78                 Debug.message("CLNT:  pmDelete:okButton: Login cancelled");
79             } catch (pmLoginFailedException de) {
80                 pmMessageDialog m = new pmMessageDialog(
81                     mytop.parentFrame,
82                     pmUtility.getResource("Error"),
83                     pmUtility.getResource("Required.login.failed."),
84                     mytop,
85                     "LoginFailed");
86                 m.setVisible(true);
87             } catch (pmGuiException ge) {
88                 pmMessageDialog m = new pmMessageDialog(
89                     mytop.parentFrame,
90                     pmUtility.getResource("Application.Error"),
91                     ge.toString());
92                 m.setVisible(true);
93             }
94         }
95 
96     }
97 
actionokButton()98     public void actionokButton() throws pmGuiException {
99 	int ret;
100         String cmd = null;
101         String warn = null;
102         String err = null;
103 
104 	Debug.message("CLNT:  pmDelete actionokButton()");
105 
106 	// handle authentication if needed
107 	if (mytop.ns.getNameService().equals("nis") == true ||
108 		mytop.ns.getNameService().equals("ldap") == true) {
109 	    try {
110 		if (!mytop.ns.isAuth()) {
111 			pmUtility.doLogin(mytop, mytop.parentFrame);
112 		}
113 	    } catch (pmUserCancelledException e) {
114 		Debug.message("CLNT:  pmDelete:User cancelled login");
115 		throw new pmUserCancelledException(
116 				pmUtility.getResource("User.Cancelled.Login"));
117 	    } catch (pmGuiException e) {
118 		Debug.warning("CLNT:  pmDelete:login for nis/ldap failed");
119 		throw new pmLoginFailedException(
120 			pmUtility.getResource("Login.Authorization.Failed"));
121 	    } catch (Exception e) {
122 		Debug.warning("CLNT:  pmDelete:login for nis/ldap failed");
123 		throw new pmLoginFailedException(
124                   pmUtility.getResource("Login.Authorization.Failed"));
125 	    }
126 	}
127 
128 	newpr.setPrinterName(mytop.selectedPrinter);
129 
130 	// delete the printer
131 	boolean failed = false;
132 	try {
133 		newpr.deletePrinter();
134         } catch (Exception e) {
135 		Debug.warning("CLNT:  pmDelete:deletePrinter exception " + e);
136 		failed = true;
137 	}
138 
139 	cmd = newpr.getCmdLog();
140 	warn = newpr.getWarnLog();
141 	err = newpr.getErrorLog();
142 
143 	Debug.message("CLNT:  pmDelete: delete cmd = " + cmd);
144 	Debug.message("CLNT:  pmDelete: delete err = " + err);
145 	Debug.message("CLNT:  pmDelete: delete warn = " + warn);
146 
147 	if (failed) {
148 		pmMessageDialog m = new pmMessageDialog(
149 			mytop.parentFrame,
150 			pmUtility.getResource("Error"),
151 			((err == null) ?
152 			   pmUtility.getResource(
153 				"Printer.delete.operation.failed.") :
154 			err),
155 			mytop,
156 			"DeletePrinterFailed");
157 		m.setVisible(true);
158 
159         } else {
160 		Debug.message("CLNT: pmDelete return from deletePrinter ok");
161 
162 		// Deletion successful, change the table
163 		if (mytop.selectedRow >= 0) {
164 			// update table
165 			mytop.pmsetPrinterList();
166 			mytop.clearSelected();
167 			mytop.listTable.clearSelection();
168 			mytop.pmsetdefaultpLabel();
169 		} else {
170 			Debug.warning("CLNT:  pmDelete:selectedRow invalid: " +
171 				   mytop.selectedRow);
172 		}
173 	}
174 	mytop.setLogData(cmd, err, warn);
175 	mytop.showLogData(pmUtility.getResource("Delete.Printer"));
176     }
177 
178 
actioncancelButton()179     public void actioncancelButton() {
180 	Debug.message("CLNT:  pmDelete: actioncancelButton()");
181     }
182 
183 }
184