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.types.Alignment; ingo@527: import com.smartgwt.client.widgets.Label; ingo@527: import com.smartgwt.client.widgets.Canvas; 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@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@527: public static final int BUTTON_HEIGHT = 20; ingo@527: public static final int BUTTON_MARGIN = 5; ingo@527: ingo@527: 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@527: Canvas cu = createButton("CU", OnMoveEvent.TOP); ingo@527: Canvas u = createButton("U", OnMoveEvent.UP); ingo@527: Canvas d = createButton("D", OnMoveEvent.DOWN); ingo@527: Canvas cd = createButton("CD", 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@527: protected Canvas createButton(final String type, final int moveType) { ingo@527: Label b = new Label(type); ingo@527: b.setBackgroundColor("#BED730"); ingo@527: b.setBorder("1px solid black"); ingo@527: b.setWidth(40); ingo@527: b.setHeight(BUTTON_HEIGHT); ingo@527: b.setAlign(Alignment.CENTER); 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 :