001: /*
002: * File : $Source: /usr/local/cvs/opencms/src/org/opencms/workplace/tools/I_CmsToolHandler.java,v $
003: * Date : $Date: 2008-02-27 12:05:31 $
004: * Version: $Revision: 1.21 $
005: *
006: * This library is part of OpenCms -
007: * the Open Source Content Management System
008: *
009: * Copyright (c) 2002 - 2008 Alkacon Software GmbH (http://www.alkacon.com)
010: *
011: * This library is free software; you can redistribute it and/or
012: * modify it under the terms of the GNU Lesser General Public
013: * License as published by the Free Software Foundation; either
014: * version 2.1 of the License, or (at your option) any later version.
015: *
016: * This library is distributed in the hope that it will be useful,
017: * but WITHOUT ANY WARRANTY; without even the implied warranty of
018: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
019: * Lesser General Public License for more details.
020: *
021: * For further information about Alkacon Software GmbH, please see the
022: * company website: http://www.alkacon.com
023: *
024: * For further information about OpenCms, please see the
025: * project website: http://www.opencms.org
026: *
027: * You should have received a copy of the GNU Lesser General Public
028: * License along with this library; if not, write to the Free Software
029: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
030: */
031:
032: package org.opencms.workplace.tools;
033:
034: import org.opencms.file.CmsObject;
035: import org.opencms.workplace.CmsWorkplace;
036:
037: import java.util.Map;
038:
039: /**
040: * Interface for an admin tool handler.<p>
041: *
042: * These handlers are created and managed by the
043: * <code>{@link org.opencms.workplace.tools.CmsToolManager}</code>.<p>
044: *
045: * @author Michael Moossen
046: *
047: * @version $Revision: 1.21 $
048: *
049: * @since 6.0.0
050: */
051: public interface I_CmsToolHandler {
052:
053: /**
054: * Returns the help text if disabled.<p>
055: *
056: * @return the help text if disabled
057: */
058: String getDisabledHelpText();
059:
060: /**
061: * Returns the group.<p>
062: *
063: * @return the group
064: */
065: String getGroup();
066:
067: /**
068: * Returns the help text.<p>
069: *
070: * @return the help text
071: */
072: String getHelpText();
073:
074: /**
075: * Returns the path to the icon.<p>
076: *
077: * @return the path to the icon
078: */
079: String getIconPath();
080:
081: /**
082: * Returns the link to the tool.<p>
083: *
084: * @return the link
085: */
086: String getLink();
087:
088: /**
089: * Returns the displayed name.<p>
090: *
091: * @return the name
092: */
093: String getName();
094:
095: /**
096: * Returns the evaluated map of parameters.<p>
097: *
098: * @param wp the workplace context
099: *
100: * @return the parameters map
101: */
102: Map getParameters(CmsWorkplace wp);
103:
104: /**
105: * Returns the tool path to install the tool in.<p>
106: *
107: * @return the path
108: */
109: String getPath();
110:
111: /**
112: * Returns the relative position in the group.<p>
113: *
114: * @return the position
115: */
116: float getPosition();
117:
118: /**
119: * Returns the name for the menu or navbar.<p>
120: *
121: * @return the short name
122: */
123: String getShortName();
124:
125: /**
126: * Returns an optional confirmation message, displayed in a js confirm dialog.<p>
127: *
128: * @return the confirmation message
129: */
130: String getConfirmationMessage();
131:
132: /**
133: * Returns the path to an optional small(16x16) icon.<p>
134: *
135: * @return the path to an optional small(16x16) icon
136: */
137: String getSmallIconPath();
138:
139: /**
140: * Returns the state of the admin tool for a given cms context.<p>
141: *
142: * @param cms the cms context
143: *
144: * @return <code>true</code> if enabled
145: */
146: boolean isEnabled(CmsObject cms);
147:
148: /**
149: * Returns the visibility flag for a given cms context.<p>
150: *
151: * @param cms the cms context
152: *
153: * @return <code>true</code> if visible
154: */
155: boolean isVisible(CmsObject cms);
156:
157: /**
158: * Returns the state of the admin tool for a given workplace context.<p>
159: *
160: * @param wp the workplace context
161: *
162: * @return <code>true</code> if enabled
163: */
164: boolean isEnabled(CmsWorkplace wp);
165:
166: /**
167: * Returns the visibility flag for a given workplace context.<p>
168: *
169: * @param wp the workplace context
170: *
171: * @return <code>true</code> if visible
172: */
173: boolean isVisible(CmsWorkplace wp);
174:
175: /**
176: * Main method that somehow setups the admin tool handler.<p>
177: *
178: * @param cms the admin context (at opencms-workplace (re-)initialization time)
179: * @param root the root context
180: * @param resourcePath the resource path of the file/folder to use as admin tool
181: *
182: * @return <code>false</code> if something goes wrong
183: */
184: boolean setup(CmsObject cms, CmsToolRootHandler root,
185: String resourcePath);
186: }
|