001 /** 002 * Copyright 2010 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 016 package org.kuali.student.common.ui.client.configurable.mvc; 017 018 import com.google.gwt.dom.client.Element; 019 import com.google.gwt.user.client.DOM; 020 import com.google.gwt.user.client.ui.ComplexPanel; 021 import com.google.gwt.user.client.ui.Widget; 022 023 /** 024 * This class provides static methods for generating H1-H6 elements with the passed in text 025 * 026 * @author Kuali Student Team (kuali-student@googlegroups.com) 027 * 028 */ 029 public class SectionTitle extends ComplexPanel { 030 031 private String reportText; 032 033 private SectionTitle(Element e) { 034 this.setElement(e); 035 } 036 037 public static SectionTitle generateEmptyTitle() { 038 return generateTitle(DOM.createSpan(), null); 039 } 040 041 public static SectionTitle generateH1Title(String titletext) { 042 043 Element headerElement = DOM.createElement("H1"); 044 headerElement.setInnerText(titletext); 045 return generateTitle(headerElement, "KS-H1-Section-Title"); 046 } 047 048 public static SectionTitle generateH2Title(String titletext) { 049 050 Element headerElement = DOM.createElement("H2"); 051 headerElement.setInnerText(titletext); 052 return generateTitle(headerElement, "KS-H2-Section-Title"); 053 } 054 055 public static SectionTitle generateH3Title(String titletext) { 056 057 Element headerElement = DOM.createElement("H3"); 058 headerElement.setInnerText(titletext); 059 return generateTitle(headerElement, "KS-H3-Section-Title"); 060 } 061 062 public static SectionTitle generateH4Title(String titletext) { 063 064 Element headerElement = DOM.createElement("H4"); 065 headerElement.setInnerText(titletext); 066 return generateTitle(headerElement, "KS-H4-Section-Title"); 067 } 068 069 public static SectionTitle generateH5Title(String titletext) { 070 071 Element headerElement = DOM.createElement("H5"); 072 headerElement.setInnerText(titletext); 073 return generateTitle(headerElement, "KS-H5-Section-Title"); 074 } 075 076 public static SectionTitle generateH6Title(String titletext) { 077 078 Element headerElement = DOM.createElement("H6"); 079 headerElement.setInnerText(titletext); 080 return generateTitle(headerElement, "KS-H6-Section-Title"); 081 } 082 083 private static SectionTitle generateTitle(Element header, String styleName) { 084 SectionTitle thisTitle = new SectionTitle(header); 085 thisTitle.addStyleName("KS-Section-Title"); 086 if(styleName != null){ 087 thisTitle.addStyleName(styleName); 088 } 089 return thisTitle; 090 } 091 092 public void setText(String text){ 093 this.getElement().setInnerText(text); 094 this.reportText = text; 095 } 096 097 public void setHTML(String html){ 098 this.getElement().setInnerHTML(html); 099 this.reportText = html; 100 } 101 102 /** 103 * Adds a new child widget to the panel. 104 * 105 * @param w the widget to be added 106 */ 107 @Override 108 public void add(Widget w) { 109 add(w, getElement()); 110 } 111 112 /** 113 * Returns a text value of the title for the export report. 114 * 115 * @return 116 */ 117 public String getExportFieldValue() { 118 if ((this.reportText != null) && (this.reportText.length() > 0)){ 119 return this.reportText; 120 } 121 return this.getElement().getInnerText(); 122 } 123 } 124 125