001: /*
002: * File : $Source: /usr/local/cvs/opencms/src/org/opencms/workplace/explorer/menu/CmsMenuItemVisibilityMode.java,v $
003: * Date : $Date: 2008-02-27 12:05:22 $
004: * Version: $Revision: 1.5 $
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.explorer.menu;
033:
034: import org.opencms.util.A_CmsModeIntEnumeration;
035:
036: /**
037: * The visibility modes of a context menu item in the explorer view.<p>
038: *
039: * @author Andreas Zahner
040: *
041: * @version $Revision: 1.5 $
042: *
043: * @since 6.5.6
044: */
045: public final class CmsMenuItemVisibilityMode extends
046: A_CmsModeIntEnumeration {
047:
048: /** Menu item visibility: active. */
049: public static final CmsMenuItemVisibilityMode VISIBILITY_ACTIVE = new CmsMenuItemVisibilityMode(
050: 1);
051:
052: /** Menu item visibility: inactive. */
053: public static final CmsMenuItemVisibilityMode VISIBILITY_INACTIVE = new CmsMenuItemVisibilityMode(
054: 2);
055:
056: /** Menu item visibility: invisible. */
057: public static final CmsMenuItemVisibilityMode VISIBILITY_INVISIBLE = new CmsMenuItemVisibilityMode(
058: 3);
059:
060: /** Serializable version id. */
061: private static final long serialVersionUID = 2526260041565757791L;
062:
063: /** The name of the message key for the visibility mode. */
064: private String m_messageKey;
065:
066: /**
067: * Private constructor.<p>
068: *
069: * @param mode the menu item visibility mode integer representation
070: */
071: private CmsMenuItemVisibilityMode(int mode) {
072:
073: super (mode);
074: }
075:
076: /**
077: * Returns the menu item visibility mode for the given mode value.<p>
078: *
079: * This is used only for serialization and should not be accessed for other purposes.<p>
080: *
081: * @param type the mode value to get the item visibility mode for
082: *
083: * @return the menu item visibility mode for the given mode value
084: */
085: public static CmsMenuItemVisibilityMode valueOf(int type) {
086:
087: switch (type) {
088: case 1:
089: return VISIBILITY_ACTIVE;
090: case 2:
091: return VISIBILITY_INACTIVE;
092: case 3:
093: return VISIBILITY_INVISIBLE;
094: default:
095: return VISIBILITY_INVISIBLE;
096: }
097: }
098:
099: /**
100: * Adds the name of the message key for the visibility mode.<p>
101: *
102: * @param messageKey the name of the message key for the visibility mode
103: * @return an extended visibility mode containing the message key
104: */
105: public CmsMenuItemVisibilityMode addMessageKey(String messageKey) {
106:
107: CmsMenuItemVisibilityMode mode = (CmsMenuItemVisibilityMode) clone();
108: mode.m_messageKey = messageKey;
109: return mode;
110: }
111:
112: /**
113: * Returns the name of the message key for the visibility mode.<p>
114: *
115: * Is usually used as description for the inactive visibility modes.<p>
116: *
117: * @return the name of the message key for the visibility mode
118: */
119: public String getMessageKey() {
120:
121: return m_messageKey;
122: }
123:
124: /**
125: * Returns if the mode is set to {@link #VISIBILITY_ACTIVE}.<p>
126: *
127: * @return true if the mode is set to {@link #VISIBILITY_ACTIVE}, otherwise false
128: */
129: public boolean isActive() {
130:
131: return getMode() == VISIBILITY_ACTIVE.getMode();
132: }
133:
134: /**
135: * Returns if the mode is set to {@link #VISIBILITY_INACTIVE}.<p>
136: *
137: * @return true if the mode is set to {@link #VISIBILITY_INACTIVE}, otherwise false
138: */
139: public boolean isInActive() {
140:
141: return getMode() == VISIBILITY_INACTIVE.getMode();
142: }
143:
144: /**
145: * Returns if the mode is set to {@link #VISIBILITY_INVISIBLE}.<p>
146: *
147: * @return true if the mode is set to {@link #VISIBILITY_INVISIBLE}, otherwise false
148: */
149: public boolean isInVisible() {
150:
151: return getMode() == VISIBILITY_INVISIBLE.getMode();
152: }
153:
154: /**
155: * @see java.lang.Object#clone()
156: */
157: protected Object clone() {
158:
159: return new CmsMenuItemVisibilityMode(this.getMode());
160: }
161:
162: }
|