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 :