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@1344: import com.smartgwt.client.widgets.Canvas; ingo@543: import com.smartgwt.client.widgets.ImgButton; ingo@534: import com.smartgwt.client.widgets.Label; ingo@533: import com.smartgwt.client.widgets.events.ClickEvent; ingo@533: import com.smartgwt.client.widgets.events.ClickHandler; ingo@533: ingo@533: import de.intevation.flys.client.client.FLYSConstants; ingo@1344: import de.intevation.flys.client.client.FLYSImages; ingo@533: import de.intevation.flys.client.client.ui.CollectionView; ingo@1344: import de.intevation.flys.client.client.ui.ImgLink; ingo@1364: import de.intevation.flys.client.client.ui.Toolbar; ingo@533: ingo@533: ingo@533: /** ingo@533: * @author Ingo Weinzierl ingo@533: */ ingo@1364: public class ChartToolbar extends Toolbar { 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@534: protected ChartOutputTab chartTab; ingo@533: ingo@533: ingo@534: protected Button datacage; ingo@534: ingo@1344: protected Canvas downloadPNG; ingo@1344: ingo@1344: protected Canvas downloadPDF; ingo@1344: ingo@1344: protected Canvas downloadSVG; ingo@1344: ingo@534: protected MousePositionPanel position; ingo@534: ingo@540: protected ZoomboxControl zoombox; ingo@540: ingo@543: protected ImgButton zoomToMaxExtent; ingo@543: ingo@1281: protected ImgButton historyBack; ingo@1281: 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@1364: super(chartTab); ingo@533: ingo@538: this.chartTab = chartTab; 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@1281: historyBack = 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@1364: openDatacageWindow((ChartOutputTab) getOutputTab()); ingo@533: } ingo@533: }); ingo@533: ingo@543: String baseUrl = GWT.getHostPageBaseURL(); ingo@1344: ingo@1344: downloadPNG = new ImgLink( raimund@1399: baseUrl + MSG.downloadPNG(), ingo@1344: chartTab.getExportUrl(1280, 1024, "png"), ingo@1344: 20, ingo@1344: 20); ingo@1344: ingo@1344: downloadPDF = new ImgLink( raimund@1399: baseUrl + MSG.downloadPDF(), ingo@1344: chartTab.getExportUrl(1280, 1024, "pdf"), ingo@1344: 20, ingo@1344: 20); ingo@1344: ingo@1344: downloadSVG = new ImgLink( raimund@1399: baseUrl + MSG.downloadSVG(), ingo@1344: chartTab.getExportUrl(1280, 1024, "svg"), ingo@1344: 20, ingo@1344: 20); ingo@1344: 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@1281: getChartOutputTab().zoomOut(10); ingo@1281: } ingo@1281: }); ingo@1281: ingo@1281: historyBack.setSrc(baseUrl + MSG.zoom_back()); ingo@1281: historyBack.setWidth(20); ingo@1281: historyBack.setHeight(20); ingo@1281: historyBack.setShowDown(false); ingo@1281: historyBack.setShowRollOver(false); ingo@1281: historyBack.setShowDisabled(false); ingo@1281: historyBack.setShowDisabledIcon(true); ingo@1281: historyBack.setShowDownIcon(false); ingo@1281: historyBack.setShowFocusedIcon(false); ingo@1281: historyBack.addClickHandler(new ClickHandler() { ingo@1281: public void onClick(ClickEvent event) { ingo@1280: getChartOutputTab().zoomOut(); 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@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@1344: addMember(downloadPNG); ingo@1344: addMember(downloadPDF); ingo@1344: addMember(downloadSVG); ingo@543: addMember(zoomToMaxExtent); ingo@1281: addMember(historyBack); 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: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :