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: import java.beans.PropertyChangeListener;
25: import java.beans.PropertyChangeEvent;
26:
27: import net.sourceforge.squirrel_sql.fw.gui.CursorChanger;
28:
29: import net.sourceforge.squirrel_sql.client.IApplication;
30: import net.sourceforge.squirrel_sql.client.action.SquirrelAction;
31: import net.sourceforge.squirrel_sql.client.plugin.IPlugin;
32: import net.sourceforge.squirrel_sql.client.session.ISession;
33: import net.sourceforge.squirrel_sql.client.session.properties.SessionProperties;
34:
35: public class RollbackAction extends SquirrelAction implements
36: ISessionAction {
37: private ISession _session;
38: private PropertyChangeListener _propertyListener;
39:
40: public RollbackAction(IApplication app) {
41: super (app);
42:
43: _propertyListener = new PropertyChangeListener() {
44: public void propertyChange(PropertyChangeEvent evt) {
45: if (SessionProperties.IPropertyNames.AUTO_COMMIT
46: .equals(evt.getPropertyName())) {
47: Boolean autoCom = (Boolean) evt.getNewValue();
48: setEnabled(false == autoCom.booleanValue());
49: }
50: }
51: };
52:
53: setEnabled(false);
54:
55: }
56:
57: public void setSession(ISession session) {
58: _session = session;
59:
60: if (null != _session) {
61: _session.getProperties().removePropertyChangeListener(
62: _propertyListener);
63: }
64: _session = session;
65:
66: if (session == null) {
67: setEnabled(false);
68: } else {
69: setEnabled(false == _session.getProperties()
70: .getAutoCommit());
71: _session.getProperties().addPropertyChangeListener(
72: _propertyListener);
73: }
74: }
75:
76: public void actionPerformed(ActionEvent evt) {
77: CursorChanger cursorChg = new CursorChanger(getApplication()
78: .getMainFrame());
79: cursorChg.show();
80: try {
81: IPlugin plugin = _session.getApplication()
82: .getDummyAppPlugin();
83: _session.rollback();
84: } finally {
85: cursorChg.restore();
86: }
87: }
88: }
|