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 :