/* * This library is part of OpenCms - * the Open Source Content Management System * * Copyright (c) Alkacon Software GmbH (http://www.alkacon.com) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * For further information about Alkacon Software, please see the * company website: http://www.alkacon.com * * For further information about OpenCms, please see the * project website: http://www.opencms.org * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ package org.opencms.workplace.editors.directedit; /** * Constants to indicate which direct edit buttons should be displayed for a direct edit resource * if the user has the permissions.<p> * * The actual permission check is done later using {@link CmsDirectEditPermissions}.<p> * * This button selection is used internally to indicate the buttons that <i>may</i> be displayed. * Usually, for an XmlPage only the "edit" button is displayed, while for an XmlContent * there may be an "edit", "delete" or "new" button.<p> * * Currently there are only constants for thouse button combinations that are actually used * in practice. These are {@link #EDIT}, {@link #EDIT_DELETE} and {@link #EDIT_DELETE_NEW}.<p> * * @since 6.2.3 */ public final class CmsDirectEditButtonSelection { /** Constant to indicate "show only the edit button". */ public static final CmsDirectEditButtonSelection EDIT = new CmsDirectEditButtonSelection(true, false, false); /** Constant to indicate "show the edit and the delete button". */ public static final CmsDirectEditButtonSelection EDIT_DELETE = new CmsDirectEditButtonSelection(true, true, false); /** Constant to indicate "show the edit, the delete and the new button". */ public static final CmsDirectEditButtonSelection EDIT_DELETE_NEW = new CmsDirectEditButtonSelection( true, true, true); /** String value that indicates the "delete" button should be displayed. */ public static final String VALUE_DELETE = "delete"; /** String value that indicates the "edit" button should be displayed. */ public static final String VALUE_EDIT = "edit"; /** String value that indicates the "new" button should be displayed. */ public static final String VALUE_NEW = "new"; /** Indicates if the "delete" button should be displayed. */ private boolean m_showDelete; /** Indicates if the "edit" button should be displayed. */ private boolean m_showEdit; /** Indicates if the "new" button should be displayed. */ private boolean m_showNew; /** Pre-calculated String value. */ private String m_stringValue; /** * Hides the public constructor.<p> * * @param showEdit if <code>true</code> then the "edit" button should be displayed * @param showDelete if <code>true</code> then the "delete" button should be displayed * @param showNew if <code>true</code> then the "new" button should be displayed */ private CmsDirectEditButtonSelection(boolean showEdit, boolean showDelete, boolean showNew) { m_showEdit = showEdit; m_showDelete = showDelete; m_showNew = showNew; } /** * Returns <code>true</code> if the "delete" button should be displayed.<p> * * @return <code>true</code> if the "delete" button should be displayed */ public boolean isShowDelete() { return m_showDelete; } /** * Returns <code>true</code> if the "edit" button should be displayed.<p> * * @return <code>true</code> if the "edit" button should be displayed */ public boolean isShowEdit() { return m_showEdit; } /** * Returns <code>true</code> if the "new" button should be displayed.<p> * * @return <code>true</code> if the "new" button should be displayed */ public boolean isShowNew() { return m_showNew; } /** * Returns the selected edit options as a String in the form <code>edit|delete|new</code>.<p> * * @return the selected edit options as a String */ public String toString() { if (m_stringValue == null) { StringBuffer result = new StringBuffer(32); if (m_showEdit) { result.append(VALUE_EDIT); } result.append('|'); if (m_showDelete) { result.append(VALUE_DELETE); } result.append('|'); if (m_showNew) { result.append(VALUE_NEW); } m_stringValue = result.toString(); } return m_stringValue; } }