KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > columba > core > scripting > extensions > ToolbarExtensionPoint


1 /*
2   The contents of this file are subject to the Mozilla Public License Version 1.1
3   (the "License"); you may not use this file except in compliance with the
4   License. You may obtain a copy of the License at http://www.mozilla.org/MPL/
5   
6   Software distributed under the License is distributed on an "AS IS" basis,
7   WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
8   for the specific language governing rights and
9   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 JavaDoc;
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 JavaDoc LOG = Logger.getLogger(MenuExtensionPoint.class
33             .getName());
34
35     public static final String JavaDoc 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().getOpenFrames();
58         if (frames.length == 0) {
59             LOG.warning(getClass().getName() + ": Not enough open frames!");
60             return null;
61         }
62         return frames[0];
63     }
64
65     private ExtendableToolBar getToolBar() {
66         // oh oh! casting to a specific implementation here ;-)
67
return (ExtendableToolBar) getFirstContainer().getToolBar();
68     }
69
70 }
71
Popular Tags