01: package net.sourceforge.squirrel_sql.client.mainframe.action;
02:
03: /*
04: * Copyright (C) 2001-2003 Colin Bell
05: * colbell@users.sourceforge.net
06: *
07: * This library is free software; you can redistribute it and/or
08: * modify it under the terms of the GNU Lesser General Public
09: * License as published by the Free Software Foundation; either
10: * version 2.1 of the License, or (at your option) any later version.
11: *
12: * This library is distributed in the hope that it will be useful,
13: * but WITHOUT ANY WARRANTY; without even the implied warranty of
14: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15: * Lesser General Public License for more details.
16: *
17: * You should have received a copy of the GNU Lesser General Public
18: * License along with this library; if not, write to the Free Software
19: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20: */
21: import java.awt.Frame;
22:
23: import net.sourceforge.squirrel_sql.fw.gui.Dialogs;
24: import net.sourceforge.squirrel_sql.fw.sql.ISQLAlias;
25: import net.sourceforge.squirrel_sql.fw.util.ICommand;
26: import net.sourceforge.squirrel_sql.fw.util.StringManager;
27: import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory;
28:
29: import net.sourceforge.squirrel_sql.client.IApplication;
30: import net.sourceforge.squirrel_sql.client.gui.db.SQLAlias;
31:
32: /**
33: * This <CODE>ICommand</CODE> allows the user to delete an existing
34: * <TT>ISQLAlias</TT>.
35: *
36: * @author <A HREF="mailto:colbell@users.sourceforge.net">Colin Bell</A>
37: */
38: public class DeleteAliasCommand implements ICommand {
39: /** Internationalized strings for this class. */
40: private static final StringManager s_stringMgr = StringManagerFactory
41: .getStringManager(DeleteAliasCommand.class);
42:
43: /** Application API. */
44: private final IApplication _app;
45:
46: /** Owner of the maintenance dialog. */
47: private Frame _frame;
48:
49: /** <TT>SQLAlias</TT> to be deleted. */
50: private SQLAlias _sqlAlias;
51:
52: /**
53: * Ctor.
54: *
55: * @param app Application API.
56: * @param frame Owning <TT>Frame</TT>.
57: * @param sqlAlias <ISQLAlias</TT> to be deleted.
58: *
59: * @throws IllegalArgumentException
60: * Thrown if a <TT>null</TT> <TT>ISQLAlias</TT> or
61: * <TT>IApplication</TT> passed.
62: */
63: public DeleteAliasCommand(IApplication app, Frame frame,
64: SQLAlias sqlAlias) {
65: super ();
66: if (app == null) {
67: throw new IllegalArgumentException(
68: "Null IApplication passed");
69: }
70: if (sqlAlias == null) {
71: throw new IllegalArgumentException("Null ISQLAlias passed");
72: }
73:
74: _app = app;
75: _frame = frame;
76: _sqlAlias = sqlAlias;
77: }
78:
79: /**
80: * Delete the current <TT>ISQLAlias</TT> after confirmation.
81: */
82: public void execute() {
83: if (Dialogs.showYesNo(_frame, s_stringMgr.getString(
84: "DeleteAliasCommand.confirm", _sqlAlias.getName()))) {
85: _app.getDataCache().removeAlias(_sqlAlias);
86: }
87: }
88: }
|