ingo@533: package de.intevation.flys.client.client.ui.chart; ingo@533: ingo@533: import com.google.gwt.core.client.GWT; ingo@533: ingo@534: import com.smartgwt.client.core.Rectangle; ingo@533: import com.smartgwt.client.widgets.Button; 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@534: ingo@534: ingo@534: public ChartToolbar(CollectionView view, ChartOutputTab chartTab) { ingo@533: super(); ingo@533: ingo@534: this.view = view; ingo@534: this.chartTab = chartTab; ingo@533: ingo@533: datacage = new Button(MSG.databasket()); 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@534: // TODO determine the correct viewport of the chart! ingo@534: position = new MousePositionPanel( ingo@534: chartTab.getChartPanel(), ingo@534: new Rectangle(65, 35, 50, 70)); ingo@534: chartTab.getChartPanel().addMouseMoveHandler(position); ingo@534: chartTab.getChartPanel().addResizedHandler(position); ingo@534: 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@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: // TODO do this dynamic ingo@534: Label spacer = new Label(); ingo@534: spacer.setWidth("450px"); ingo@534: datacage.setWidth("95px"); ingo@534: position.setWidth("150px"); ingo@534: ingo@533: addMember(datacage); 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 :