001/* 002 * This library is part of OpenCms - 003 * the Open Source Content Management System 004 * 005 * Copyright (c) Alkacon Software GmbH & Co. KG (http://www.alkacon.com) 006 * 007 * This library is free software; you can redistribute it and/or 008 * modify it under the terms of the GNU Lesser General Public 009 * License as published by the Free Software Foundation; either 010 * version 2.1 of the License, or (at your option) any later version. 011 * 012 * This library is distributed in the hope that it will be useful, 013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 015 * Lesser General Public License for more details. 016 * 017 * For further information about Alkacon Software, please see the 018 * company website: http://www.alkacon.com 019 * 020 * For further information about OpenCms, please see the 021 * project website: http://www.opencms.org 022 * 023 * You should have received a copy of the GNU Lesser General Public 024 * License along with this library; if not, write to the Free Software 025 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 026 */ 027 028package org.opencms.jsp; 029 030import org.opencms.util.CmsStringUtil; 031 032import javax.servlet.jsp.JspException; 033import javax.servlet.jsp.JspTagException; 034import javax.servlet.jsp.tagext.Tag; 035import javax.servlet.jsp.tagext.TagSupport; 036 037/** 038 * The tag 'displayFormatter' can be used to add a formatter resource type pairing to the surrounding 'display' tag.<p> 039 */ 040public class CmsJspTagDisplayFormatter extends TagSupport { 041 042 /** The serial version id. */ 043 private static final long serialVersionUID = -7268191204617852330L; 044 045 /** The resource type name. */ 046 private String m_type; 047 048 /** The path to the formatter configuration file. */ 049 private String m_path; 050 051 /** 052 * @see javax.servlet.jsp.tagext.TagSupport#doStartTag() 053 */ 054 @Override 055 public int doStartTag() throws JspException { 056 057 Tag t = findAncestorWithClass(this, CmsJspTagDisplay.class); 058 if (t == null) { 059 throw new JspTagException(Messages.get().getBundle(pageContext.getRequest().getLocale()).key( 060 Messages.ERR_PARENTLESS_TAG_1, 061 new Object[] {"displayFormatter"})); 062 } 063 if (CmsStringUtil.isNotEmptyOrWhitespaceOnly(m_type) && CmsStringUtil.isNotEmptyOrWhitespaceOnly(m_path)) { 064 // only act if type and path are set 065 ((CmsJspTagDisplay)t).addDisplayFormatter(m_type, m_path); 066 } 067 068 return EVAL_PAGE; 069 } 070 071 /** 072 * Sets the path to the formatter configuration file.<p> 073 * 074 * @param path the path to set 075 */ 076 public void setPath(String path) { 077 078 m_path = path; 079 } 080 081 /** 082 * Sets the type.<p> 083 * 084 * @param type the type to set 085 */ 086 public void setType(String type) { 087 088 m_type = type; 089 } 090 091}