ingo@805: package de.intevation.flys.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:
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:
ingo@805: import de.intevation.flys.client.client.FLYSConstants;
ingo@805: import de.intevation.flys.client.client.event.OnMoveEvent;
ingo@805: import de.intevation.flys.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;
ingo@805: public static final int BUTTON_HEIGHT = 25;
ingo@805: public static final int BUTTON_MARGIN = 5;
ingo@805:
ingo@805:
ingo@805: protected FLYSConstants MSG = GWT.create(FLYSConstants.class);
ingo@805:
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);
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:
ingo@805: layout.addMember(cu);
ingo@805: layout.addMember(u);
ingo@805: layout.addMember(d);
ingo@805: layout.addMember(cd);
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);
ingo@805: b.setHeight(BUTTON_HEIGHT);
ingo@805: b.setWidth(40);
ingo@805: b.setIconHeight(BUTTON_HEIGHT-10);
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);
ingo@805: b.setBackgroundColor("f2f2f2");
ingo@805: b.setBorder("1px solid #A6ABB4");
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 :