teichmann@5835: package org.dive4elements.river.client.client.ui; ingo@805: ingo@805: import java.util.ArrayList; ingo@805: import java.util.List; ingo@805: ingo@805: import com.google.gwt.core.client.GWT; ingo@805: bjoern@4641: import com.smartgwt.client.types.Alignment; bjoern@4641: import com.smartgwt.client.types.VerticalAlignment; ingo@805: import com.smartgwt.client.widgets.Canvas; ingo@805: import com.smartgwt.client.widgets.ImgButton; ingo@805: import com.smartgwt.client.widgets.events.ClickEvent; ingo@805: import com.smartgwt.client.widgets.events.ClickHandler; ingo@805: import com.smartgwt.client.widgets.layout.HLayout; ingo@805: teichmann@5835: import org.dive4elements.river.client.client.FLYSConstants; teichmann@5835: import org.dive4elements.river.client.client.event.OnMoveEvent; teichmann@5835: import org.dive4elements.river.client.client.event.OnMoveHandler; ingo@805: ingo@805: ingo@805: /** ingo@805: * @author Ingo Weinzierl ingo@805: */ ingo@805: public class ThemeNavigationPanel extends Canvas { ingo@805: ingo@805: public static final int PANEL_MARGIN = 5; bjoern@4641: public static final int BUTTON_HEIGHT = 20; ingo@805: public static final int BUTTON_MARGIN = 5; bjoern@4641: private static final int BOTTON_WIDTH = 20; ingo@805: ingo@805: protected FLYSConstants MSG = GWT.create(FLYSConstants.class); ingo@805: ingo@805: protected List handlers; ingo@805: ingo@805: ingo@805: public ThemeNavigationPanel() { ingo@805: this.handlers = new ArrayList(); ingo@805: ingo@805: setWidth100(); ingo@805: setHeight(BUTTON_HEIGHT); ingo@805: setMargin(PANEL_MARGIN); ingo@805: ingo@805: HLayout layout = new HLayout(); ingo@805: layout.setWidth100(); ingo@805: layout.setHeight(BUTTON_HEIGHT); ingo@805: layout.setMembersMargin(BUTTON_MARGIN); bjoern@4641: layout.setDefaultLayoutAlign(VerticalAlignment.CENTER); bjoern@4641: layout.setDefaultLayoutAlign(Alignment.CENTER); ingo@805: ingo@805: Canvas cu = createButton(MSG.theme_top(), OnMoveEvent.TOP); ingo@805: Canvas u = createButton(MSG.theme_up(), OnMoveEvent.UP); ingo@805: Canvas d = createButton(MSG.theme_down(), OnMoveEvent.DOWN); ingo@805: Canvas cd = createButton(MSG.theme_bottom(), OnMoveEvent.BOTTOM); ingo@805: bjoern@4641: HLayout left = new HLayout(); bjoern@4641: left.setMembersMargin(BUTTON_MARGIN); bjoern@4641: left.setLayoutAlign(Alignment.LEFT); bjoern@4641: left.setDefaultLayoutAlign(Alignment.LEFT); bjoern@4641: left.setAlign(Alignment.LEFT); bjoern@4641: left.addMember(cu); bjoern@4641: left.addMember(u); bjoern@4641: bjoern@4641: HLayout right = new HLayout(); bjoern@4641: right.setMembersMargin(BUTTON_MARGIN); bjoern@4641: right.setLayoutAlign(Alignment.RIGHT); bjoern@4641: right.setDefaultLayoutAlign(Alignment.RIGHT); bjoern@4641: right.setAlign(Alignment.RIGHT); bjoern@4641: right.addMember(d); bjoern@4641: right.addMember(cd); bjoern@4641: bjoern@4641: layout.addMember(left); bjoern@4641: layout.addMember(right); ingo@805: ingo@805: addChild(layout); ingo@805: } ingo@805: ingo@805: ingo@805: protected Canvas createButton(final String title, final int moveType) { ingo@805: String url = GWT.getHostPageBaseURL() + title; ingo@805: ingo@805: ImgButton b = new ImgButton(); ingo@805: b.setSrc(url); bjoern@4641: b.setWidth(BOTTON_WIDTH); ingo@805: b.setHeight(BUTTON_HEIGHT); bjoern@4641: b.setIconHeight(BUTTON_HEIGHT); bjoern@4641: b.setIconWidth(BOTTON_WIDTH); ingo@805: b.setShowDown(false); ingo@805: b.setShowRollOver(false); ingo@805: b.setShowDisabled(false); ingo@805: b.setShowDisabledIcon(true); ingo@805: b.setShowDownIcon(false); ingo@805: b.setShowFocusedIcon(false); bjoern@4641: b.setValign(VerticalAlignment.CENTER); ingo@805: ingo@805: b.addClickHandler(new ClickHandler() { ingo@805: public void onClick(ClickEvent event) { ingo@805: fireOnMoveEvent(moveType); ingo@805: } ingo@805: }); ingo@805: ingo@805: return b; ingo@805: } ingo@805: ingo@805: ingo@805: protected void addOnMoveHandler(OnMoveHandler handler) { ingo@805: if (handler != null) { ingo@805: handlers.add(handler); ingo@805: } ingo@805: } ingo@805: ingo@805: ingo@805: protected void fireOnMoveEvent(int type) { ingo@805: OnMoveEvent event = new OnMoveEvent(type); ingo@805: ingo@805: for (OnMoveHandler handler: handlers) { ingo@805: handler.onMove(event); ingo@805: } ingo@805: } ingo@805: } ingo@805: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :