001/**
002 * Copyright 2010-2014 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.common.util.html;
017
018import org.apache.commons.lang3.StringUtils;
019import org.kuali.common.util.Counter;
020
021/**
022 * Utility methods for generating html
023 */
024public 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}