1 31 32 package org.opencms.jsp.decorator; 33 34 import org.opencms.util.CmsMacroResolver; 35 36 import java.util.Locale ; 37 38 50 public class CmsDecorationObject { 51 52 53 public static final String MACRO_DECORATION = "decoration"; 54 55 56 public static final String MACRO_DECORATIONKEY = "decorationkey"; 57 58 59 public static final String MACRO_LOCALE = "locale"; 60 61 62 private String m_decoration; 63 64 65 private CmsDecorationDefintion m_decorationDefinition; 66 67 68 private String m_decorationKey; 69 70 71 private Locale m_locale; 72 73 76 public CmsDecorationObject() { 77 78 m_decorationDefinition = new CmsDecorationDefintion(); 79 } 80 81 89 public CmsDecorationObject(String decorationKey, String decoration, CmsDecorationDefintion decDef, Locale locale) { 90 91 m_decorationKey = decorationKey; 92 m_decoration = decoration; 93 m_decorationDefinition = decDef; 94 m_locale = locale; 95 } 96 97 103 public String getContentDecoration(CmsDecoratorConfiguration config) { 104 105 StringBuffer content = new StringBuffer (); 106 108 if (!config.hasUsed(m_decorationKey) && m_decorationDefinition.isMarkFirst()) { 110 content.append(m_decorationDefinition.getPreTextFirst()); 111 } else { 112 content.append(m_decorationDefinition.getPreText()); 113 } 114 content.append(m_decorationKey); 116 117 if (!config.hasUsed(m_decorationKey) && m_decorationDefinition.isMarkFirst()) { 119 content.append(m_decorationDefinition.getPostTextFirst()); 120 config.markAsUsed(m_decorationKey); 121 } else { 122 content.append(m_decorationDefinition.getPostText()); 123 } 124 125 return replaceMacros(content.toString()); 127 } 128 129 134 public String getDecoration() { 135 136 return m_decoration; 137 } 138 139 144 public CmsDecorationDefintion getDecorationDefinition() { 145 146 return m_decorationDefinition; 147 } 148 149 154 public String getDecorationKey() { 155 156 return m_decorationKey; 157 } 158 159 162 public String toString() { 163 164 StringBuffer buf = new StringBuffer (); 165 buf.append(this.getClass().getName()); 166 buf.append(" [name = '"); 167 buf.append(m_decorationKey); 168 buf.append("', decoration = '"); 169 buf.append(m_decoration); 170 buf.append("', locale = '"); 171 buf.append(m_locale); 172 buf.append("' decorationDefinition ='"); 173 buf.append(m_decorationDefinition); 174 buf.append("']"); 175 return buf.toString(); 176 } 177 178 185 private String replaceMacros(String msg) { 186 187 CmsMacroResolver resolver = CmsMacroResolver.newInstance(); 188 resolver.addMacro(MACRO_DECORATION, m_decoration); 189 resolver.addMacro(MACRO_DECORATIONKEY, m_decorationKey); 190 if (m_locale != null) { 191 resolver.addMacro(MACRO_LOCALE, m_locale.toString()); 192 } 193 return resolver.resolveMacros(msg); 194 } 195 196 } 197 | Popular Tags |