01: /*
02: * Copyright (C) 2006 Methodhead Software LLC. All rights reserved.
03: *
04: * This file is part of TransferCM.
05: *
06: * TransferCM is free software; you can redistribute it and/or modify it under the
07: * terms of the GNU General Public License as published by the Free Software
08: * Foundation; either version 2 of the License, or (at your option) any later
09: * version.
10: *
11: * TransferCM is distributed in the hope that it will be useful, but WITHOUT ANY
12: * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
13: * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
14: * details.
15: *
16: * You should have received a copy of the GNU General Public License along with
17: * TransferCM; if not, write to the Free Software Foundation, Inc., 51 Franklin St,
18: * Fifth Floor, Boston, MA 02110-1301 USA
19: */
20:
21: package com.methodhead.transfer;
22:
23: import com.methodhead.shim.Module;
24: import com.methodhead.util.OperationContext;
25: import com.methodhead.sitecontext.SiteContext;
26: import com.methodhead.tree.FoldingTreeNode;
27: import org.apache.struts.util.MessageResources;
28:
29: /**
30: * An extension to built-in functionality.
31: */
32: public interface Extension {
33:
34: // constants ////////////////////////////////////////////////////////////////
35:
36: // constructors /////////////////////////////////////////////////////////////
37:
38: // methods //////////////////////////////////////////////////////////////////
39:
40: /**
41: * Returns a user-friendly name for the extension.
42: */
43: public String getName();
44:
45: /**
46: * Initializes the extension for <tt>siteContext</tt>.
47: */
48: public void init(SiteContext siteContext);
49:
50: /**
51: * Destroys the extension for <tt>siteContext</tt>.
52: */
53: public void destroy(SiteContext siteContext);
54:
55: /**
56: * Returns the modules provided by this extension (if any).
57: */
58: public Module[] getModules();
59:
60: /**
61: * Adds any menu items for this extension to <tt>menu</tt>.
62: */
63: public void setUpMenu(OperationContext op, FoldingTreeNode menu,
64: MessageResources resources);
65:
66: /**
67: * Adds any menu items for this extension to <tt>menu</tt>, displayed when a
68: * particular page is being viewed in Transfer.
69: */
70: public void setUpEditorMenu(OperationContext op,
71: FoldingTreeNode menu, MessageResources resources);
72: }
|