01: package net.sourceforge.squirrel_sql.client.session.action;
02:
03: /*
04: * Copyright (C) 2001-2004 Colin Bell
05: * colbell@users.sourceforge.net
06: *
07: * Modifications Copyright (C) 2003-2004 Jason Height
08: *
09: * This library is free software; you can redistribute it and/or
10: * modify it under the terms of the GNU Lesser General Public
11: * License as published by the Free Software Foundation; either
12: * version 2.1 of the License, or (at your option) any later version.
13: *
14: * This library is distributed in the hope that it will be useful,
15: * but WITHOUT ANY WARRANTY; without even the implied warranty of
16: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17: * Lesser General Public License for more details.
18: *
19: * You should have received a copy of the GNU Lesser General Public
20: * License along with this library; if not, write to the Free Software
21: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22: */
23: import java.awt.event.ActionEvent;
24:
25: import net.sourceforge.squirrel_sql.fw.gui.CursorChanger;
26:
27: import net.sourceforge.squirrel_sql.client.IApplication;
28: import net.sourceforge.squirrel_sql.client.gui.session.SessionInternalFrame;
29: import net.sourceforge.squirrel_sql.client.gui.session.SQLInternalFrame;
30: import net.sourceforge.squirrel_sql.client.action.SquirrelAction;
31: import net.sourceforge.squirrel_sql.client.session.ISQLPanelAPI;
32: import net.sourceforge.squirrel_sql.client.session.ISession;
33:
34: /**
35: * This <CODE>Action</CODE> allows the user to close all the SQL
36: * result windows for the current session.
37: *
38: * @author <A HREF="mailto:colbell@users.sourceforge.net">Colin Bell</A>
39: */
40: public class CloseAllSQLResultWindowsAction extends SquirrelAction {
41: /**
42: * Ctor.
43: *
44: * @param app Application API.
45: */
46: public CloseAllSQLResultWindowsAction(IApplication app) {
47: super (app);
48: }
49:
50: /**
51: * Perform this action. Uses the <TT>CloseAllSQLResultWindowsCommand</TT>.
52: *
53: * @param evt The current event.
54: */
55: public void actionPerformed(ActionEvent evt) {
56: IApplication app = getApplication();
57: CursorChanger cursorChg = new CursorChanger(app.getMainFrame());
58: cursorChg.show();
59: try {
60: ISession activeSession = getApplication()
61: .getSessionManager().getActiveSession();
62: if (activeSession.getActiveSessionWindow() instanceof SessionInternalFrame
63: || activeSession.getActiveSessionWindow() instanceof SQLInternalFrame) {
64: // Can't work with ISessionAction because if a result window is on top
65: // the session in a ISessionAction is null.
66: new CloseAllSQLResultWindowsCommand(activeSession
67: .getSQLPanelAPIOfActiveSessionWindow())
68: .execute();
69: }
70: } finally {
71: cursorChg.restore();
72: }
73: }
74: }
|