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:
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:
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;
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 :