package org.ourproject.massmob.client.ui; import org.ourproject.massmob.client.CustomConstants; import org.ourproject.massmob.client.StateManager; import com.google.gwt.core.client.GWT; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.MouseOutEvent; import com.google.gwt.event.dom.client.MouseOverEvent; import com.google.gwt.event.dom.client.MouseUpEvent; import com.google.gwt.resources.client.CssResource; import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiField; import com.google.gwt.uibinder.client.UiHandler; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.Widget; import cc.kune.common.client.notify.NotifyUser; public class AssistanceHeader extends Composite { interface AssistanceHeaderUiBinder extends UiBinder<Widget, AssistanceHeader> { } interface RPStyle extends CssResource { String click(); String out(); String over(); } private static final String DEF_TITLE = "will you assist? click to answer"; private static AssistanceHeaderUiBinder uiBinder = GWT.create(AssistanceHeaderUiBinder.class); @UiField Label maybel; @UiField Label nol; private final StateManager stateManager; @UiField RPStyle style; @UiField Label yesl; public AssistanceHeader(final StateManager statemanager) { this.stateManager = statemanager; initWidget(uiBinder.createAndBindUi(this)); yesl.setTitle(DEF_TITLE); nol.setTitle(DEF_TITLE); maybel.setTitle(DEF_TITLE); } private void enableStyle(final Label label, final String style, final boolean enabled) { if (enabled) { label.addStyleName(style); } else { label.removeStyleName(style); } } @UiHandler("maybel") void onClickM(final ClickEvent e) { setStyle(maybel, style.click()); stateManager.setAnswer(CustomConstants.MAYBE); NotifyUser.info("Updated"); } @UiHandler("nol") void onClickN(final ClickEvent e) { setStyle(nol, style.click()); stateManager.setAnswer(CustomConstants.NO); NotifyUser.info("Updated"); } @UiHandler("yesl") void onClickY(final ClickEvent e) { setStyle(yesl, style.click()); stateManager.setAnswer(CustomConstants.YES); NotifyUser.info("Updated"); } @UiHandler("maybel") void onMouseOutM(final MouseOutEvent event) { setStyle(maybel, style.out()); } @UiHandler("nol") void onMouseOutN(final MouseOutEvent event) { setStyle(nol, style.out()); } @UiHandler("yesl") void onMouseOutY(final MouseOutEvent event) { setStyle(yesl, style.out()); } @UiHandler("maybel") void onMouseOverM(final MouseOverEvent event) { setStyle(maybel, style.over()); } @UiHandler("nol") void onMouseOverN(final MouseOverEvent event) { setStyle(nol, style.over()); } @UiHandler("yesl") void onMouseOverY(final MouseOverEvent event) { setStyle(yesl, style.over()); } @UiHandler("maybel") void onMouseUpM(final MouseUpEvent event) { setStyle(maybel, style.over()); } @UiHandler("nol") void onMouseUpN(final MouseUpEvent event) { setStyle(nol, style.over()); } @UiHandler("yesl") void onMouseUpY(final MouseUpEvent event) { setStyle(yesl, style.over()); } private void setStyle(final Label label, final String styleName) { enableStyle(label, style.click(), styleName.equals(style.click())); enableStyle(label, style.over(), styleName.equals(style.over())); enableStyle(label, style.out(), styleName.equals(style.out())); } }