package de.tud.kom.socom.web.client.administration.itemadministration; import com.google.gwt.core.client.GWT; import com.google.gwt.dom.client.Style.FontWeight; import com.google.gwt.event.dom.client.ClickEvent; 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.Anchor; import com.google.gwt.user.client.ui.Button; 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 de.tud.kom.socom.web.client.administration.itemadministration.ItemAdministration.ChangeVisibilityButtonCallback; import de.tud.kom.socom.web.client.util.Visibility; public class VisibilityPopup extends Composite { private static VisibilityPopupUiBinder uiBinder = GWT .create(VisibilityPopupUiBinder.class); interface VisibilityPopupUiBinder extends UiBinder<Widget, VisibilityPopup> { } @UiField Button buttonClose; @UiField Anchor publicLink; @UiField Anchor friendLink; @UiField Anchor privateLink; @UiField Label publicImage; @UiField Label friendImage; @UiField Label privateImage; @UiField Label socomImage; @UiField Anchor socomLink; private ChangeVisibilityButtonCallback callback; public VisibilityPopup() { initWidget(uiBinder.createAndBindUi(this)); } @UiHandler("buttonClose") public void onClose(ClickEvent e) { this.addStyleName("hidden"); } public void setCallback(ChangeVisibilityButtonCallback callback) { this.callback = callback; } @UiHandler(value={"publicLink", "publicImage"}) public void onPublicVisibilityClicked(ClickEvent e) { onVisibilityChange(Visibility.PUBLIC); } @UiHandler(value={"privateLink", "privateImage"}) public void onPrivateVisibilityClicked(ClickEvent e) { onVisibilityChange(Visibility.PRIVATE); } @UiHandler(value={"friendLink", "friendImage"}) public void onFriendVisibilityClicked(ClickEvent e) { onVisibilityChange(Visibility.FRIENDS); } @UiHandler(value={"socomLink", "socomImage"}) public void onSocomVisibilityClicked(ClickEvent e) { onVisibilityChange(Visibility.SOCOM_INTERN); } private void onVisibilityChange(int newV) { callback.onClicked(newV); this.addStyleName("hidden"); } public void setCurrent(int visibility) { publicLink.getElement().getStyle().setFontWeight(FontWeight.NORMAL); friendLink.getElement().getStyle().setFontWeight(FontWeight.NORMAL); privateLink.getElement().getStyle().setFontWeight(FontWeight.NORMAL); socomLink.getElement().getStyle().setFontWeight(FontWeight.NORMAL); switch(visibility){ case Visibility.PUBLIC : publicLink.getElement().getStyle().setFontWeight(FontWeight.BOLD);break; case Visibility.PRIVATE : privateLink.getElement().getStyle().setFontWeight(FontWeight.BOLD);break; case Visibility.FRIENDS : friendLink.getElement().getStyle().setFontWeight(FontWeight.BOLD);break; case Visibility.SOCOM_INTERN : socomLink.getElement().getStyle().setFontWeight(FontWeight.BOLD);break; } } }