001 package org.kuali.student.lum.program.client.widgets; 002 003 import com.google.gwt.event.dom.client.ClickEvent; 004 import com.google.gwt.event.dom.client.ClickHandler; 005 import com.google.gwt.event.shared.HandlerManager; 006 import com.google.gwt.user.client.ui.Composite; 007 import com.google.gwt.user.client.ui.FlowPanel; 008 import org.kuali.student.common.ui.client.widgets.KSButton; 009 import org.kuali.student.common.ui.client.widgets.KSButtonAbstract; 010 import org.kuali.student.common.ui.client.widgets.KSLabel; 011 import org.kuali.student.lum.program.client.events.ChangeViewEvent; 012 import org.kuali.student.lum.program.client.properties.ProgramProperties; 013 014 /** 015 * @author Igor 016 */ 017 public class EditableHeader extends Composite { 018 019 private FlowPanel content = new FlowPanel(); 020 021 private KSLabel sectionTitle; 022 023 private KSButton editButton = new KSButton(ProgramProperties.get().common_edit(), KSButtonAbstract.ButtonStyle.DEFAULT_ANCHOR); 024 025 private Enum<?> viewToken; 026 027 private HandlerManager eventBus; 028 029 public EditableHeader(String title, Enum<?> viewToken, HandlerManager eventBus) { 030 initWidget(content); 031 this.eventBus = eventBus; 032 this.viewToken = viewToken; 033 sectionTitle = new KSLabel(title); 034 buildLayout(); 035 setStyles(); 036 bind(); 037 } 038 039 private void bind() { 040 editButton.addClickHandler(new ClickHandler() { 041 @Override 042 public void onClick(ClickEvent event) { 043 eventBus.fireEvent(new ChangeViewEvent(viewToken)); 044 } 045 }); 046 } 047 048 private void setStyles() { 049 sectionTitle.addStyleName("sectionTitle"); 050 content.addStyleName("editableHeader"); 051 editButton.addStyleName("sectionEditLink"); 052 } 053 054 private void buildLayout() { 055 content.add(sectionTitle); 056 content.add(editButton); 057 } 058 }