001/**
002 * Copyright 2005-2016 The Kuali Foundation
003 *
004 * Licensed under the Educational Community License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.opensource.org/licenses/ecl2.php
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016package org.kuali.rice.krad.uif.field;
017
018import org.apache.commons.lang.StringUtils;
019
020/**
021 * Encapsulates a text message to be displayed
022 * 
023 * <p>
024 * The <code>MessageField</code> is used to display static text in the user
025 * interface. The message type can be used to group similar messages for styling
026 * </p>
027 * 
028 * @author Kuali Rice Team (rice.collab@kuali.org)
029 */
030public class MessageField extends FieldBase {
031        private static final long serialVersionUID = 4090058533452450395L;
032
033        private String messageText;
034        private String messageType;
035
036        public MessageField() {
037                super();
038        }
039
040        /**
041         * Override to render only if the message text has been given or there is a conditional expression on the
042     * message text
043         *
044         * @see org.kuali.rice.krad.uif.component.ComponentBase#isRender()
045         */
046        @Override
047        public boolean isRender() {
048                boolean render = super.isRender();
049
050        if (render) {
051            render = getPropertyExpressions().containsKey("messageText") || (StringUtils.isNotBlank(messageText)
052                    && !StringUtils.equals(messageText, "&nbsp;"));
053        }
054
055        return render;
056        }
057
058        public MessageField(String messageType) {
059                this.messageType = messageType;
060        }
061
062        public MessageField(String messageText, String messageType) {
063                this.messageText = messageText;
064                this.messageType = messageType;
065        }
066
067        /**
068         * Text that makes up the message that will be displayed
069         * 
070         * @return String message text
071         */
072        public String getMessageText() {
073                return this.messageText;
074        }
075
076        /**
077         * Setter for the message text
078         * 
079         * @param messageText
080         */
081        public void setMessageText(String messageText) {
082                this.messageText = messageText;
083        }
084
085        /**
086         * Type of the field's message, used to suffix the message fields id
087         * 
088         * <p>
089         * Messages that have similar intent can be grouped by this type string. For
090         * messages of the same type, their id will contain the same suffix which
091         * can be used for scripting to apply additional styling or behavior to that
092         * groups of messages (for example show/hide)
093         * </p>
094         * 
095         * @return String message type
096         */
097        public String getMessageType() {
098                return this.messageType;
099        }
100
101        /**
102         * Setter for the message's type
103         * 
104         * @param messageType
105         */
106        public void setMessageType(String messageType) {
107                this.messageType = messageType;
108        }
109
110}