1 package org.kuali.student.common.ui.client.widgets.headers; 2 3 import org.kuali.student.common.ui.client.util.PrintUtils; 4 import org.kuali.student.common.ui.client.widgets.ApplicationPanel; 5 import org.kuali.student.common.ui.client.widgets.field.layout.element.SpanPanel; 6 7 import com.google.gwt.core.client.GWT; 8 import com.google.gwt.event.dom.client.ClickEvent; 9 import com.google.gwt.event.dom.client.ClickHandler; 10 import com.google.gwt.uibinder.client.UiBinder; 11 import com.google.gwt.uibinder.client.UiField; 12 import com.google.gwt.user.client.ui.Composite; 13 import com.google.gwt.user.client.ui.HTML; 14 import com.google.gwt.user.client.ui.Image; 15 import com.google.gwt.user.client.ui.Widget; 16 17 public class KSDocumentHeader extends Composite { 18 19 private static KSDocumentHeaderUiBinder uiBinder = GWT 20 .create(KSDocumentHeaderUiBinder.class); 21 22 interface KSDocumentHeaderUiBinder extends 23 UiBinder<Widget, KSDocumentHeader> { 24 } 25 @UiField 26 HTML headerHTML; 27 28 @UiField 29 HTML infoLabel; 30 31 @UiField 32 SpanPanel widgetPanel; 33 34 @UiField 35 Image printImage; 36 37 private boolean hasSeparator = true; 38 public KSDocumentHeader() { 39 initWidget(uiBinder.createAndBindUi(this)); 40 setupPrint(); 41 } 42 43 public KSDocumentHeader(boolean hasContentWidgetSeparator) { 44 this.hasSeparator = hasContentWidgetSeparator; 45 initWidget(uiBinder.createAndBindUi(this)); 46 setupPrint(); 47 } 48 49 private void setupPrint(){ 50 printImage.setVisible(false); 51 printImage.addClickHandler(new ClickHandler(){ 52 53 @Override 54 public void onClick(ClickEvent event) { 55 PrintUtils.print(ApplicationPanel.get().getWidget(0)); 56 } 57 }); 58 } 59 60 public void setTitle(String header){ 61 headerHTML.setHTML("<h2>"+header+"</h2>"); 62 } 63 public void addWidget(Widget w){ 64 if(w != null){ 65 if(hasSeparator){ 66 if(widgetPanel.getElement().hasChildNodes()){ 67 widgetPanel.add(new HTML("<span style='float: left; margin-left: .7em; margin-right: .7em'>|</span>")); 68 } 69 } 70 widgetPanel.add(w); 71 } 72 w.getElement().setAttribute("style", "float: left"); 73 } 74 75 public HTML getInfoLabel(){ 76 return infoLabel; 77 } 78 79 public void showPrint(boolean show){ 80 printImage.setVisible(true); 81 } 82 }