001 package org.apache.myfaces.tobago.taglib.component; 002 003 /* 004 * Licensed to the Apache Software Foundation (ASF) under one or more 005 * contributor license agreements. See the NOTICE file distributed with 006 * this work for additional information regarding copyright ownership. 007 * The ASF licenses this file to You under the Apache License, Version 2.0 008 * (the "License"); you may not use this file except in compliance with 009 * the License. You may obtain a copy of the License at 010 * 011 * http://www.apache.org/licenses/LICENSE-2.0 012 * 013 * Unless required by applicable law or agreed to in writing, software 014 * distributed under the License is distributed on an "AS IS" BASIS, 015 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 016 * See the License for the specific language governing permissions and 017 * limitations under the License. 018 */ 019 020 import static org.apache.myfaces.tobago.TobagoConstants.ATTR_CONFIRMATION; 021 import static org.apache.myfaces.tobago.TobagoConstants.ATTR_FOR; 022 import static org.apache.myfaces.tobago.TobagoConstants.ATTR_GLOBAL_ONLY; 023 import static org.apache.myfaces.tobago.TobagoConstants.ATTR_MAX_NUMBER; 024 import static org.apache.myfaces.tobago.TobagoConstants.ATTR_MAX_SEVERITY; 025 import static org.apache.myfaces.tobago.TobagoConstants.ATTR_MIN_SEVERITY; 026 import static org.apache.myfaces.tobago.TobagoConstants.ATTR_ORDER_BY; 027 import static org.apache.myfaces.tobago.TobagoConstants.ATTR_SHOW_DETAIL; 028 import static org.apache.myfaces.tobago.TobagoConstants.ATTR_SHOW_SUMMARY; 029 import org.apache.myfaces.tobago.component.ComponentUtil; 030 import org.apache.myfaces.tobago.component.UIMessages; 031 032 import javax.faces.application.FacesMessage; 033 import javax.faces.component.UIComponent; 034 import javax.faces.webapp.UIComponentTag; 035 036 037 public class MessagesTag extends TobagoTag 038 implements MessagesTagDeclaration { 039 040 private String forComponent; 041 private String showSummary; 042 private String showDetail; 043 private String globalOnly; 044 private String minSeverity; 045 private String maxSeverity; 046 private String maxNumber; 047 private String orderBy; 048 private String confirmation; 049 050 public String getComponentType() { 051 return UIMessages.COMPONENT_TYPE; 052 } 053 054 protected void setProperties(UIComponent component) { 055 super.setProperties(component); 056 ComponentUtil.setStringProperty(component, ATTR_FOR, forComponent); 057 ComponentUtil.setBooleanProperty(component, ATTR_GLOBAL_ONLY, globalOnly); 058 ComponentUtil.setBooleanProperty(component, ATTR_SHOW_SUMMARY, showSummary); 059 ComponentUtil.setBooleanProperty(component, ATTR_SHOW_DETAIL, showDetail); 060 setSeverityProperty(component, ATTR_MIN_SEVERITY, minSeverity); 061 setSeverityProperty(component, ATTR_MAX_SEVERITY, maxSeverity); 062 ComponentUtil.setIntegerProperty(component, ATTR_MAX_NUMBER, maxNumber); 063 setOrderByProperty(component, ATTR_ORDER_BY, orderBy); 064 ComponentUtil.setBooleanProperty(component, ATTR_CONFIRMATION, confirmation); 065 } 066 067 private void setSeverityProperty(UIComponent component, String name, String value) { 068 if (value != null) { 069 if (UIComponentTag.isValueReference(value)) { 070 component.setValueBinding(name, ComponentUtil.createValueBinding(value)); 071 } else { 072 component.getAttributes().put(name, FacesMessage.VALUES_MAP.get(value)); 073 } 074 } 075 } 076 077 private void setOrderByProperty(UIComponent component, String name, String value) { 078 if (value != null) { 079 if (UIComponentTag.isValueReference(value)) { 080 component.setValueBinding(name, ComponentUtil.createValueBinding(value)); 081 } else { 082 component.getAttributes().put(name, UIMessages.OrderBy.parse(value)); 083 } 084 } 085 } 086 087 public void release() { 088 super.release(); 089 forComponent = null; 090 showSummary = null; 091 showDetail = null; 092 minSeverity = null; 093 maxSeverity = null; 094 maxNumber = null; 095 orderBy = null; 096 } 097 098 public String getFor() { 099 return forComponent; 100 } 101 102 public void setFor(String forComponent) { 103 this.forComponent = forComponent; 104 } 105 106 public void setGlobalOnly(String globalOnly) { 107 this.globalOnly = globalOnly; 108 } 109 110 public void setShowSummary(String showSummary) { 111 this.showSummary = showSummary; 112 } 113 114 public void setShowDetail(String showDetail) { 115 this.showDetail = showDetail; 116 } 117 118 public void setMinSeverity(String minSeverity) { 119 this.minSeverity = minSeverity; 120 } 121 122 public void setMaxSeverity(String maxSeverity) { 123 this.maxSeverity = maxSeverity; 124 } 125 126 public void setMaxNumber(String maxNumber) { 127 this.maxNumber = maxNumber; 128 } 129 130 public void setOrderBy(String orderBy) { 131 this.orderBy = orderBy; 132 } 133 134 public void setConfirmation(String confirmation) { 135 this.confirmation = confirmation; 136 } 137 }