001: /*
002: * File : $Source: /usr/local/cvs/opencms/src-modules/org/opencms/workplace/administration/CmsAdminMenuItem.java,v $
003: * Date : $Date: 2008-02-27 12:05:38 $
004: * Version: $Revision: 1.16 $
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.administration;
033:
034: import org.opencms.workplace.CmsWorkplace;
035: import org.opencms.workplace.tools.A_CmsHtmlIconButton;
036: import org.opencms.workplace.tools.CmsHtmlIconButtonStyleEnum;
037: import org.opencms.workplace.tools.CmsToolMacroResolver;
038:
039: /**
040: * Html icon button implementation that generates the
041: * required html code for a menu item.<p>
042: *
043: * @author Michael Moossen
044: *
045: * @version $Revision: 1.16 $
046: *
047: * @since 6.0.0
048: */
049: public class CmsAdminMenuItem {
050:
051: /** Enabled flag. */
052: private boolean m_enabled;
053:
054: /** Help text. */
055: private final String m_helpText;
056:
057: /** Path to the icon. */
058: private final String m_iconPath;
059:
060: /** Dhtml id, from name. */
061: private final String m_id;
062:
063: /** Link to follow when selected. */
064: private final String m_link;
065:
066: /** Display name of the item. */
067: private final String m_name;
068:
069: /** Target frame. */
070: private final String m_target;
071:
072: /**
073: * Default Constructor.<p>
074: *
075: * @param id a unique id
076: * @param name the name of the item
077: * @param iconPath the icon to display
078: * @param link the link to open when selected
079: * @param helpText the help text to display
080: * @param enabled if enabled or not
081: * @param target the target frame to open the link into
082: */
083: public CmsAdminMenuItem(String id, String name, String iconPath,
084: String link, String helpText, boolean enabled, String target) {
085:
086: m_id = id;
087: m_name = name;
088: m_iconPath = iconPath;
089: m_link = link;
090: m_helpText = helpText;
091: m_enabled = enabled;
092: m_target = target;
093: }
094:
095: /**
096: * Returns the help text.<p>
097: *
098: * @return the help text
099: */
100: public String getHelpText() {
101:
102: return m_helpText;
103: }
104:
105: /**
106: * Returns the path to the icon.<p>
107: *
108: * @return the path to the icon
109: */
110: public String getIconPath() {
111:
112: return m_iconPath;
113: }
114:
115: /**
116: * Returns the dhtml unique id.<p>
117: *
118: * @return the dhtml unique id
119: */
120: public String getId() {
121:
122: return m_id;
123: }
124:
125: /**
126: * Returns the link.<p>
127: *
128: * @return the link
129: */
130: public String getLink() {
131:
132: return m_link;
133: }
134:
135: /**
136: * Returns the display name.<p>
137: *
138: * @return the name
139: */
140: public String getName() {
141:
142: return m_name;
143: }
144:
145: /**
146: * Returns the target.<p>
147: *
148: * @return the target
149: */
150: public String getTarget() {
151:
152: return m_target;
153: }
154:
155: /**
156: * Returns if enabled or disabled.<p>
157: *
158: * @return if enabled or disabled
159: */
160: public boolean isEnabled() {
161:
162: return m_enabled;
163: }
164:
165: /**
166: * Returns the necessary html code.<p>
167: *
168: * @param wp the workplace
169: *
170: * @return html code
171: */
172: public String itemHtml(CmsWorkplace wp) {
173:
174: StringBuffer html = new StringBuffer(1024);
175: html
176: .append("<table border='0' cellspacing='0' cellpadding='0' width='100%' class='node' id='");
177: html.append(getId());
178: html.append("'>\n");
179: html.append("\t<tr>\n");
180: html.append("\t\t<td>\n");
181: String onClic = "return openView('" + getId() + "', '" + m_link
182: + "', '" + m_target + "');";
183: html.append(A_CmsHtmlIconButton.defaultButtonHtml(
184: CmsHtmlIconButtonStyleEnum.SMALL_ICON_TEXT, getId(),
185: getName(), getHelpText(), isEnabled(), getIconPath(),
186: null, onClic));
187:
188: html.append("\t\t</td>\n");
189: html.append("\t</tr>\n");
190: html.append("</table>\n");
191: return CmsToolMacroResolver.resolveMacros(html.toString(), wp);
192: }
193:
194: }
|