001    /**
002     * Copyright 2005-2012 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     */
016    package org.kuali.rice.krad.uif.widget;
017    
018    import org.apache.commons.lang.StringUtils;
019    import org.kuali.rice.krad.datadictionary.parse.BeanTag;
020    import org.kuali.rice.krad.datadictionary.parse.BeanTagAttribute;
021    
022    import java.util.HashMap;
023    import java.util.Map;
024    
025    /**
026     * BlockUI element is used within the view element for managing element/page blocking attributes
027     *
028     * <p>
029     * Some basic options of the plugin are exposed through this class. Messages can be managed via
030     * Action elements. See the jquery BlockUI plugin for more details.
031     * </p>
032     *
033     * @author Kuali Rice Team (rice.collab@kuali.org)
034     */
035    @BeanTag(name = "blockUI", parent = "Uif-BlockUI")
036    public class BlockUI extends WidgetBase {
037    
038        private String blockingImageSource;
039    
040        public BlockUI() {
041            super();
042        }
043    
044        /**
045         * Override to add property values to the template options
046         *
047         * @see org.kuali.rice.krad.uif.component.Component#getTemplateOptions()
048         */
049        @Override
050        public Map<String, String> getTemplateOptions() {
051            Map<String, String> templateOptions = super.getTemplateOptions();
052    
053            if (templateOptions == null) {
054                templateOptions = new HashMap<String, String>();
055            }
056    
057            if (StringUtils.isNotBlank(blockingImageSource) && !templateOptions.containsKey("blockingImage")) {
058                templateOptions.put("blockingImage", blockingImageSource);
059            }
060    
061            return templateOptions;
062        }
063    
064        /**
065         * Path to an image that will be rendered in the blocking overlay
066         *
067         * <p>
068         * If specified, the image will be picked up and rendered before the blocking message in
069         * the overlay. If not given just the message will be displayed
070         * </p>
071         *
072         * @return String url to the blocking image
073         */
074        @BeanTagAttribute(name="blockingImageSource")
075        public String getBlockingImageSource() {
076            return blockingImageSource;
077        }
078    
079        /**
080         * Setter for the url (source) of the blocking image to use (if any)
081         *
082         * @param blockingImageSource
083         */
084        public void setBlockingImageSource(String blockingImageSource) {
085            this.blockingImageSource = blockingImageSource;
086        }
087    }