ingo@75: package de.intevation.flys.client.client.ui; ingo@75: ingo@213: import java.util.Date; ingo@213: ingo@78: import com.google.gwt.core.client.GWT; ingo@78: ingo@75: import com.smartgwt.client.widgets.Canvas; ingo@75: import com.smartgwt.client.widgets.Img; ingo@267: import com.smartgwt.client.widgets.Label; ingo@75: import com.smartgwt.client.widgets.layout.HLayout; ingo@267: import com.smartgwt.client.widgets.layout.VLayout; ingo@75: ingo@75: import de.intevation.flys.client.shared.model.Collection; ingo@75: import de.intevation.flys.client.shared.model.OutputMode; ingo@75: import de.intevation.flys.client.client.Config; ingo@75: ingo@75: ingo@75: /** ingo@75: * @author Ingo Weinzierl ingo@75: */ ingo@75: public class ChartOutputTab extends OutputTab { ingo@75: ingo@267: /** The canvas that wraps the chart toolbar.*/ ingo@267: protected Canvas tbarPanel; ingo@267: ingo@75: /** The canvas that wraps the theme editor.*/ ingo@75: protected Canvas left; ingo@75: ingo@75: /** The canvas that wraps the chart.*/ ingo@75: protected Canvas right; ingo@75: ingo@75: ingo@75: /** ingo@75: * The default constructor to create a new ChartOutputTab. ingo@75: * ingo@75: * @param title The title of this tab. ingo@75: * @param collection The Collection which this chart belongs to. ingo@75: * @param mode The OutputMode. ingo@75: */ ingo@75: public ChartOutputTab(String title, Collection collection, OutputMode mode){ ingo@75: super(title, collection, mode); ingo@75: ingo@267: tbarPanel = new Canvas(); ingo@267: left = new Canvas(); ingo@267: right = new Canvas(); ingo@75: ingo@267: tbarPanel.setBorder("1px solid black"); ingo@267: tbarPanel.setHeight(25); ingo@267: left.setBorder("1px solid black"); ingo@75: left.setWidth("25%"); ingo@75: right.setWidth("*"); ingo@75: ingo@267: VLayout vLayout = new VLayout(); ingo@267: vLayout.setMembersMargin(2); ingo@267: ingo@75: HLayout hLayout = new HLayout(); ingo@75: hLayout.setWidth100(); ingo@75: hLayout.setHeight100(); ingo@75: hLayout.setMembersMargin(10); ingo@75: ingo@75: hLayout.addMember(left); ingo@75: hLayout.addMember(right); ingo@75: ingo@267: right.addChild(createChartPanel()); ingo@267: left.addChild(createThemeControlPanel()); ingo@267: tbarPanel.addChild(createTBarPanel()); ingo@267: ingo@267: vLayout.addMember(tbarPanel); ingo@267: vLayout.addMember(hLayout); ingo@267: ingo@267: setPane(vLayout); ingo@267: } ingo@267: ingo@267: ingo@267: protected Canvas createTBarPanel() { ingo@267: Label label = new Label("Werkzeugleiste"); ingo@267: label.setHeight(25); ingo@267: label.setMargin(5); ingo@267: ingo@267: return label; ingo@267: } ingo@267: ingo@267: ingo@267: protected Canvas createChartPanel() { ingo@75: Img chart = getChartImg(); ingo@78: chart.setWidth100(); ingo@78: chart.setHeight100(); ingo@75: ingo@267: return chart; ingo@267: } ingo@75: ingo@267: ingo@267: protected Canvas createThemeControlPanel() { ingo@267: Label label = new Label("Themensteuerung"); ingo@267: label.setHeight(25); ingo@267: label.setMargin(5); ingo@267: ingo@267: return label; ingo@75: } ingo@75: ingo@75: ingo@75: /** ingo@75: * Builds the chart image and returns it. ingo@75: * ingo@75: * @return the chart image. ingo@75: */ ingo@75: protected Img getChartImg() { ingo@75: return new Img(getImgUrl()); ingo@75: } ingo@75: ingo@75: ingo@75: /** ingo@75: * Builds the URL that points to the chart image. ingo@75: * ingo@75: * @return the URL to the chart image. ingo@75: */ ingo@75: protected String getImgUrl() { ingo@75: Config config = Config.getInstance(); ingo@78: ingo@78: String imgUrl = GWT.getModuleBaseURL(); ingo@78: imgUrl += "chart"; ingo@213: imgUrl += "?uuid=" + collection.identifier(); ingo@213: imgUrl += "&type=" + mode.getName(); ingo@254: imgUrl += "&server=" + config.getServerUrl(); ingo@254: imgUrl += "&locale=" + config.getLocale(); ingo@213: imgUrl += "×tamp=" + new Date().getTime(); ingo@78: ingo@78: return imgUrl; ingo@75: } ingo@75: } ingo@75: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :