ingo@527: package de.intevation.flys.client.client.ui.chart; ingo@527: ingo@527: import java.util.ArrayList; ingo@527: import java.util.List; ingo@527: ingo@527: import com.google.gwt.core.client.GWT; ingo@527: ingo@527: import com.smartgwt.client.widgets.Canvas; ingo@532: import com.smartgwt.client.widgets.ImgButton; ingo@527: import com.smartgwt.client.widgets.events.ClickEvent; ingo@527: import com.smartgwt.client.widgets.events.ClickHandler; ingo@527: import com.smartgwt.client.widgets.layout.HLayout; ingo@527: ingo@532: import de.intevation.flys.client.client.FLYSConstants; ingo@527: import de.intevation.flys.client.client.event.OnMoveEvent; ingo@527: import de.intevation.flys.client.client.event.OnMoveHandler; ingo@527: ingo@527: ingo@527: /** ingo@527: * @author Ingo Weinzierl ingo@527: */ ingo@527: public class ThemeNavigationPanel extends Canvas { ingo@527: ingo@527: public static final int PANEL_MARGIN = 5; ingo@532: public static final int BUTTON_HEIGHT = 25; ingo@527: public static final int BUTTON_MARGIN = 5; ingo@527: ingo@527: ingo@532: protected FLYSConstants MSG = GWT.create(FLYSConstants.class); ingo@532: ingo@532: ingo@527: protected List handlers; ingo@527: ingo@527: ingo@527: public ThemeNavigationPanel() { ingo@527: this.handlers = new ArrayList(); ingo@527: ingo@527: setWidth100(); ingo@527: setHeight(BUTTON_HEIGHT); ingo@527: setMargin(PANEL_MARGIN); ingo@527: ingo@527: HLayout layout = new HLayout(); ingo@527: layout.setWidth100(); ingo@527: layout.setHeight(BUTTON_HEIGHT); ingo@527: layout.setMembersMargin(BUTTON_MARGIN); ingo@527: ingo@532: Canvas cu = createButton(MSG.theme_top(), OnMoveEvent.TOP); ingo@532: Canvas u = createButton(MSG.theme_up(), OnMoveEvent.UP); ingo@532: Canvas d = createButton(MSG.theme_down(), OnMoveEvent.DOWN); ingo@532: Canvas cd = createButton(MSG.theme_bottom(), OnMoveEvent.BOTTOM); ingo@527: ingo@527: layout.addMember(cu); ingo@527: layout.addMember(u); ingo@527: layout.addMember(d); ingo@527: layout.addMember(cd); ingo@527: ingo@527: addChild(layout); ingo@527: } ingo@527: ingo@527: ingo@532: protected Canvas createButton(final String title, final int moveType) { ingo@532: String url = GWT.getHostPageBaseURL() + title; ingo@532: ingo@532: ImgButton b = new ImgButton(); ingo@532: b.setSrc(url); ingo@532: b.setHeight(BUTTON_HEIGHT); ingo@527: b.setWidth(40); ingo@532: b.setIconHeight(BUTTON_HEIGHT-10); ingo@532: b.setShowDown(false); ingo@532: b.setShowRollOver(false); ingo@532: b.setShowDisabled(false); ingo@532: b.setShowDisabledIcon(true); ingo@532: b.setShowDownIcon(false); ingo@532: b.setShowFocusedIcon(false); ingo@532: b.setBackgroundColor("f2f2f2"); ingo@532: b.setBorder("1px solid #A6ABB4"); ingo@527: ingo@527: b.addClickHandler(new ClickHandler() { ingo@527: public void onClick(ClickEvent event) { ingo@527: fireOnMoveEvent(moveType); ingo@527: } ingo@527: }); ingo@527: ingo@527: return b; ingo@527: } ingo@527: ingo@527: ingo@527: protected void addOnMoveHandler(OnMoveHandler handler) { ingo@527: if (handler != null) { ingo@527: handlers.add(handler); ingo@527: } ingo@527: } ingo@527: ingo@527: ingo@527: protected void fireOnMoveEvent(int type) { ingo@527: OnMoveEvent event = new OnMoveEvent(type); ingo@527: ingo@527: for (OnMoveHandler handler: handlers) { ingo@527: handler.onMove(event); ingo@527: } ingo@527: } ingo@527: } ingo@527: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :