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 }