001 /**
002 * Copyright 2010-2013 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.common.util.html;
017
018 import org.apache.commons.lang3.StringUtils;
019 import org.kuali.common.util.Counter;
020
021 /**
022 * Utility methods for generating html
023 */
024 public class HtmlUtils {
025
026 public static String getIndentedContent(String content, Counter indent) {
027 return getIndent(indent) + content;
028 }
029
030 public static String getIndent(Counter indent) {
031 return StringUtils.repeat(" ", indent.getValue());
032 }
033
034 /**
035 * Return an HTML ahref tag
036 */
037 public static String getHref(String dest, String show, Counter indent) {
038 return getIndent(indent) + "<a href=\"" + dest + "\">" + show + "</a>";
039 }
040
041 /**
042 * Return an HTML img tag
043 */
044 public static String getImage(String image, Counter indent) {
045 return getIndent(indent) + "<img src=\"" + image + "\">";
046 }
047
048 public static String openTag(Tag tag, Counter indent) {
049 StringBuffer sb = new StringBuffer();
050 sb.append(getIndent(indent));
051 indent.increment();
052 sb.append("<" + tag.getName());
053 if (tag.getId() != null) {
054 sb.append(" id=\"" + tag.getId() + '"');
055 }
056 if (tag.getClazz() != null) {
057 sb.append(" class=\"" + tag.getClazz() + '"');
058 }
059 sb.append(">\n");
060 return sb.toString();
061 }
062
063 public static String closeTag(Tag tag, Counter indent) {
064 indent.decrement();
065 return getIndent(indent) + "</" + tag.getName() + ">\n";
066 }
067
068 public static String getTag(Tag tag, String content, Counter indent) {
069 StringBuffer sb = new StringBuffer();
070 sb.append(openTag(tag, indent));
071 sb.append(getIndent(indent));
072 sb.append(content);
073 sb.append("\n");
074 sb.append(closeTag(tag, indent));
075 return sb.toString();
076 }
077 }