01: /*
02: The contents of this file are subject to the Mozilla Public License Version 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 Stich.
14: Portions created by Frederik Dietz and Timo Stich are Copyright (C) 2003.
15:
16: All Rights Reserved.
17: */
18: package org.columba.core.scripting.extensions;
19:
20: import java.util.logging.Logger;
21:
22: import org.columba.api.gui.frame.IContainer;
23: import org.columba.core.gui.action.AbstractColumbaAction;
24: import org.columba.core.gui.frame.FrameManager;
25: import org.columba.core.gui.toolbar.ExtendableToolBar;
26:
27: /**
28: * @author Celso Pinto (cpinto@yimports.com)
29: */
30: public class ToolbarExtensionPoint extends AbstractExtensionPoint {
31:
32: private static final Logger LOG = Logger
33: .getLogger(MenuExtensionPoint.class.getName());
34:
35: public static final String EXTENSION_POINT_ID = "main_toolbar";
36:
37: public ToolbarExtensionPoint() {
38: super (EXTENSION_POINT_ID);
39: }
40:
41: /**
42: * Add an action at the end or beginning of the toolbar.
43: *
44: * @param action
45: * Your action
46: * @param position
47: * Use AbstractExtensionPoint.POSITION_BEGINNING or POSITION_END
48: * values
49: */
50: public void addAction(AbstractColumbaAction action) {
51:
52: // add toolbar button between last button and cancel button
53: getToolBar().add(action);
54: }
55:
56: private IContainer getFirstContainer() {
57: IContainer[] frames = FrameManager.getInstance()
58: .getOpenFrames();
59: if (frames.length == 0) {
60: LOG.warning(getClass().getName()
61: + ": Not enough open frames!");
62: return null;
63: }
64: return frames[0];
65: }
66:
67: private ExtendableToolBar getToolBar() {
68: // oh oh! casting to a specific implementation here ;-)
69: return (ExtendableToolBar) getFirstContainer().getToolBar();
70: }
71:
72: }
|