001 /**
002 * Copyright 2012 The Kuali Foundation Licensed under the
003 * Educational Community License, Version 2.0 (the "License"); you may
004 * not use this file except in compliance with the License. You may
005 * obtain a copy of the License at
006 *
007 * http://www.osedu.org/licenses/ECL-2.0
008 *
009 * Unless required by applicable law or agreed to in writing,
010 * software distributed under the License is distributed on an "AS IS"
011 * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
012 * or implied. See the License for the specific language governing
013 * permissions and limitations under the License.
014 *
015 * Created by bobhurt on 8/23/12
016 */
017 package org.kuali.student.common.ui.krad.uif.element;
018
019 import org.apache.commons.lang.StringUtils;
020 import org.kuali.rice.krad.uif.component.Component;
021 import org.kuali.rice.krad.uif.element.Action;
022 import org.kuali.rice.krad.uif.element.Image;
023 import org.kuali.rice.krad.uif.view.View;
024
025 import java.text.MessageFormat;
026
027 /**
028 * Field in the form of an image-only button that presents an action that
029 * can be taken on the UI such as submitting the form or invoking a script
030 *
031 * @author Kuali Student Team
032 */
033 public class ActionImageButton extends Action {
034
035 private String imageSource;
036 private String imageSourceOnHover;
037
038 @Override
039 public void performFinalize(View view, Object model, Component parent) {
040 super.performFinalize(view, model, parent);
041
042 Image img = this.getActionImage();
043 if (null == img) { // Spring config should always include "actionImage" property
044 throw new RuntimeException("Implementation of "+ this.getClass() +" did not instantiate \"actionImage\" property.");
045 }
046
047 if (StringUtils.isBlank(img.getSource()) && StringUtils.isNotBlank(this.imageSource)) {
048 img.setSource(this.imageSource);
049 }
050
051 if (StringUtils.isNotBlank(this.imageSourceOnHover)) {
052 String script = MessageFormat.format("ksButtonImageChanger(this,\"{0}\");", this.imageSourceOnHover);
053 if (StringUtils.isNotBlank(this.getOnMouseOverScript())) {
054 script += this.getOnMouseOverScript();
055 }
056 this.setOnMouseOverScript(script);
057
058 script = MessageFormat.format("ksButtonImageChanger(this,\"{0}\");", img.getSource());
059 if (StringUtils.isNotBlank(this.getOnMouseOutScript())) {
060 script += this.getOnMouseOutScript();
061 }
062 this.setOnMouseOutScript(script);
063 }
064 }
065
066 public String getImageSource() {
067 return imageSource;
068 }
069 public void setImageSource(String imageSource) {
070 this.imageSource = imageSource;
071 }
072
073 public String getImageSourceOnHover() {
074 return imageSourceOnHover;
075 }
076 public void setImageSourceOnHover(String imageSourceOnHover) {
077 this.imageSourceOnHover = imageSourceOnHover;
078 }
079
080 }