ingo@533: package de.intevation.flys.client.client.ui.chart; ingo@533: ingo@533: import com.google.gwt.core.client.GWT; ingo@533: ingo@533: import com.smartgwt.client.widgets.Button; ingo@543: import com.smartgwt.client.widgets.ImgButton; ingo@534: import com.smartgwt.client.widgets.Label; ingo@533: import com.smartgwt.client.widgets.layout.HLayout; ingo@533: import com.smartgwt.client.widgets.events.ClickEvent; ingo@533: import com.smartgwt.client.widgets.events.ClickHandler; ingo@533: import com.smartgwt.client.widgets.events.CloseClickHandler; ingo@533: import com.smartgwt.client.widgets.events.CloseClientEvent; ingo@533: ingo@533: import de.intevation.flys.client.shared.model.Artifact; ingo@533: ingo@533: import de.intevation.flys.client.client.FLYSConstants; ingo@533: import de.intevation.flys.client.client.ui.CollectionView; ingo@533: import de.intevation.flys.client.client.ui.DatacageWindow; ingo@533: ingo@533: ingo@533: /** ingo@533: * @author Ingo Weinzierl ingo@533: */ ingo@533: public class ChartToolbar extends HLayout { ingo@533: ingo@533: protected static FLYSConstants MSG = GWT.create(FLYSConstants.class); ingo@533: ingo@533: ingo@533: public static final int PANEL_HEIGHT = 30; ingo@533: ingo@533: ingo@533: protected CollectionView view; ingo@533: ingo@534: protected ChartOutputTab chartTab; ingo@533: ingo@533: ingo@534: protected Button datacage; ingo@534: ingo@534: protected MousePositionPanel position; ingo@534: ingo@540: protected ZoomboxControl zoombox; ingo@540: ingo@543: protected ImgButton zoomToMaxExtent; ingo@543: ingo@544: protected ImgButton zoomOut; ingo@544: ingo@552: protected PanControl panControl; ingo@552: ingo@534: ingo@534: ingo@534: public ChartToolbar(CollectionView view, ChartOutputTab chartTab) { ingo@533: super(); ingo@533: ingo@538: this.view = view; ingo@538: this.chartTab = chartTab; ingo@533: ingo@543: datacage = new Button(MSG.databasket()); ingo@543: position = new MousePositionPanel(chartTab); ingo@543: zoombox = new ZoomboxControl(chartTab, MSG.zoom_in()); ingo@543: zoomToMaxExtent = new ImgButton(); ingo@544: zoomOut = new ImgButton(); ingo@552: panControl = new PanControl(chartTab, MSG.pan()); ingo@538: ingo@533: datacage.addClickHandler(new ClickHandler() { ingo@533: public void onClick(ClickEvent event) { ingo@533: GWT.log("Clicked 'datacage' button."); ingo@533: openDatacageWindow(getArtifact()); ingo@533: } ingo@533: }); ingo@533: ingo@543: String baseUrl = GWT.getHostPageBaseURL(); ingo@543: zoomToMaxExtent.setSrc(baseUrl + MSG.zoom_all()); ingo@543: zoomToMaxExtent.setWidth(20); ingo@543: zoomToMaxExtent.setHeight(20); ingo@543: zoomToMaxExtent.setShowDown(false); ingo@543: zoomToMaxExtent.setShowRollOver(false); ingo@543: zoomToMaxExtent.setShowDisabled(false); ingo@543: zoomToMaxExtent.setShowDisabledIcon(true); ingo@543: zoomToMaxExtent.setShowDownIcon(false); ingo@543: zoomToMaxExtent.setShowFocusedIcon(false); ingo@543: zoomToMaxExtent.addClickHandler(new ClickHandler() { ingo@543: public void onClick(ClickEvent event) { ingo@543: getChartOutputTab().resetRanges(); ingo@543: } ingo@543: }); ingo@543: ingo@544: zoomOut.setSrc(baseUrl + MSG.zoom_out()); ingo@544: zoomOut.setWidth(20); ingo@544: zoomOut.setHeight(20); ingo@544: zoomOut.setShowDown(false); ingo@544: zoomOut.setShowRollOver(false); ingo@544: zoomOut.setShowDisabled(false); ingo@544: zoomOut.setShowDisabledIcon(true); ingo@544: zoomOut.setShowDownIcon(false); ingo@544: zoomOut.setShowFocusedIcon(false); ingo@544: zoomOut.addClickHandler(new ClickHandler() { ingo@544: public void onClick(ClickEvent event) { ingo@544: getChartOutputTab().zoomOut(10); ingo@544: } ingo@544: }); ingo@544: ingo@541: zoombox.addZoomHandler(chartTab); ingo@552: zoombox.addClickHandler(new ClickHandler() { ingo@552: public void onClick(ClickEvent event) { ingo@552: panControl.deselect(); ingo@552: } ingo@552: }); ingo@552: ingo@552: panControl.addPanHandler(chartTab); ingo@552: panControl.addClickHandler(new ClickHandler() { ingo@552: public void onClick(ClickEvent event) { ingo@552: zoombox.deselect(); ingo@552: } ingo@552: }); ingo@541: ingo@533: initLayout(); ingo@533: } ingo@533: ingo@533: ingo@533: public Artifact getArtifact() { ingo@533: return view.getArtifact(); ingo@533: } ingo@533: ingo@533: ingo@543: public ChartOutputTab getChartOutputTab() { ingo@543: return chartTab; ingo@543: } ingo@543: ingo@543: ingo@533: protected void initLayout() { ingo@533: setWidth100(); ingo@533: setHeight(PANEL_HEIGHT); ingo@533: setMembersMargin(10); ingo@533: setPadding(5); ingo@533: setBorder("1px solid black"); ingo@533: ingo@534: Label spacer = new Label(); ingo@539: spacer.setWidth("*"); ingo@534: datacage.setWidth("95px"); ingo@538: position.setWidth("200px"); ingo@534: ingo@533: addMember(datacage); ingo@543: addMember(zoomToMaxExtent); ingo@544: addMember(zoomOut); ingo@540: addMember(zoombox); ingo@552: addMember(panControl); ingo@534: addMember(spacer); ingo@534: addMember(position); ingo@533: } ingo@533: ingo@533: ingo@533: protected void openDatacageWindow(Artifact artifact) { ingo@533: final DatacageWindow dc = new DatacageWindow(artifact); ingo@533: dc.addCloseClickHandler(new CloseClickHandler() { ingo@533: public void onCloseClick(CloseClientEvent event) { ingo@533: dc.destroy(); ingo@533: } ingo@533: }); ingo@533: dc.show(); ingo@533: } ingo@533: } ingo@533: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :