01: // The contents of this file are subject to the Mozilla Public License Version
02: // 1.1
03: //(the "License"); you may not use this file except in compliance with the
04: //License. You may obtain a copy of the License at http://www.mozilla.org/MPL/
05: //
06: //Software distributed under the License is distributed on an "AS IS" basis,
07: //WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
08: //for the specific language governing rights and
09: //limitations under the License.
10: //
11: //The Original Code is "The Columba Project"
12: //
13: //The Initial Developers of the Original Code are Frederik Dietz and Timo
14: // Stich.
15: //Portions created by Frederik Dietz and Timo Stich are Copyright (C) 2003.
16: //
17: //All Rights Reserved.
18: package org.columba.chat.ui.action;
19:
20: import org.columba.api.gui.frame.IFrameMediator;
21: import org.columba.chat.MainInterface;
22: import org.columba.chat.conn.api.ConnectionChangedEvent;
23: import org.columba.chat.conn.api.IConnectionChangedListener;
24: import org.columba.chat.conn.api.IConnection.STATUS;
25: import org.columba.core.gui.action.AbstractColumbaAction;
26:
27: public abstract class AbstractConnectionAwareAction extends
28: AbstractColumbaAction implements IConnectionChangedListener {
29:
30: public AbstractConnectionAwareAction(IFrameMediator frameMediator,
31: String name) {
32: super (frameMediator, name);
33:
34: setEnabled(false);
35:
36: MainInterface.connection.addConnectionChangedListener(this );
37: }
38:
39: /**
40: * @see org.columba.chat.conn.api.IConnectionChangedListener#connectionChanged(org.columba.chat.conn.api.ConnectionChangedEvent)
41: */
42: public void connectionChanged(ConnectionChangedEvent object) {
43: STATUS status = object.getStatus();
44:
45: if (status == STATUS.ONLINE)
46: setEnabled(true);
47: else if (status == STATUS.OFFLINE)
48: setEnabled(false);
49: }
50:
51: }
|