raimund@1429: package de.intevation.flys.client.client.ui.chart; raimund@1429: raimund@1429: raimund@1429: import com.google.gwt.core.client.GWT; raimund@1429: raimund@1429: import com.smartgwt.client.widgets.Window; raimund@1429: import com.smartgwt.client.widgets.tab.TabSet; raimund@1429: import com.smartgwt.client.widgets.tab.Tab; raimund@1429: import com.smartgwt.client.widgets.layout.VLayout; raimund@1429: import com.smartgwt.client.widgets.layout.HLayout; raimund@1429: import com.smartgwt.client.widgets.Button; raimund@1431: import com.smartgwt.client.widgets.Label; raimund@1429: import com.smartgwt.client.widgets.form.DynamicForm; raimund@1429: import com.smartgwt.client.widgets.form.fields.FormItem; raimund@1429: import com.smartgwt.client.widgets.form.fields.CheckboxItem; raimund@1431: import com.smartgwt.client.widgets.form.fields.TextItem; raimund@1429: raimund@1429: import com.smartgwt.client.widgets.events.ClickEvent; raimund@1429: import com.smartgwt.client.widgets.events.ClickHandler; raimund@1429: import com.smartgwt.client.types.Alignment; raimund@1429: raimund@1429: import de.intevation.flys.client.client.FLYSConstants; raimund@1429: import de.intevation.flys.client.client.ui.OutputTab; raimund@1429: raimund@1429: /** raimund@1429: * @author Raimund Renkert raimund@1429: */ raimund@1429: public class ChartPropertiesEditor raimund@1429: extends Window raimund@1429: implements ClickHandler raimund@1429: { raimund@1429: /** The interface that provides i18n messages. */ raimund@1429: protected FLYSConstants MSG = GWT.create(FLYSConstants.class); raimund@1429: raimund@1429: /** The tab called the editor window. */ raimund@1429: protected OutputTab tab; raimund@1429: raimund@1429: /** The tabset for chart properties */ raimund@1429: protected TabSet tabs; raimund@1429: raimund@1429: /** raimund@1429: * Setup editor dialog. raimund@1429: * @param callerTab The tab called the editor window. raimund@1429: */ raimund@1429: public ChartPropertiesEditor(OutputTab callerTab) { raimund@1429: this.tab = callerTab; raimund@1429: this.tabs = new TabSet(); raimund@1429: raimund@1429: init(); raimund@1429: } raimund@1429: raimund@1429: /** raimund@1429: * Initialize the editor window and its components. raimund@1429: */ raimund@1429: protected void init() { raimund@1429: setTitle(MSG.properties()); raimund@1429: setCanDragReposition(true); raimund@1429: setCanDragResize(true); raimund@1429: raimund@1429: Tab diagram = new Tab(MSG.diagram()); raimund@1429: Tab axes = new Tab(MSG.axes()); raimund@1429: Tab legend = new Tab(MSG.legend()); raimund@1429: tabs.addTab(diagram); raimund@1429: tabs.addTab(axes); raimund@1429: tabs.addTab(legend); raimund@1429: raimund@1429: Button accept = new Button(MSG.label_ok()); raimund@1429: Button cancel = new Button(MSG.label_cancel()); raimund@1429: cancel.addClickHandler(this); raimund@1429: accept.addClickHandler(new ClickHandler() { raimund@1429: public void onClick(ClickEvent e) { raimund@1429: raimund@1429: } raimund@1429: }); raimund@1429: raimund@1429: HLayout buttons = new HLayout(); raimund@1429: buttons.addMember(accept); raimund@1429: buttons.addMember(cancel); raimund@1429: buttons.setAlign(Alignment.CENTER); raimund@1429: buttons.setHeight(30); raimund@1429: raimund@1431: initChartPropertiesTab(diagram); raimund@1431: initAxesPropertiesTab(axes); raimund@1431: initLegendPropertiesTab(legend); raimund@1431: raimund@1429: addItem(tabs); raimund@1429: addItem(buttons); raimund@1431: setWidth(340); raimund@1431: setHeight(470); raimund@1429: centerInPage(); raimund@1429: } raimund@1429: raimund@1429: /** raimund@1429: * This method is called when the user aborts theming. raimund@1429: * @param event The event. raimund@1429: */ raimund@1429: public void onClick(ClickEvent event) { raimund@1429: this.hide(); raimund@1429: } raimund@1431: raimund@1431: /** raimund@1431: * Initializes the tab for general chart properties. raimund@1431: */ raimund@1431: protected void initChartPropertiesTab(Tab t) { raimund@1431: VLayout properties = new VLayout(); raimund@1431: DynamicForm form = new DynamicForm(); raimund@1431: raimund@1431: TextItem title = new TextItem (); raimund@1431: title.setTitle(MSG.chart_title()); raimund@1431: title.setTitleAlign(Alignment.LEFT); raimund@1431: raimund@1431: TextItem subTitle = new TextItem(); raimund@1431: subTitle.setTitle(MSG.chart_subtitle()); raimund@1431: subTitle.setTitleAlign(Alignment.LEFT); raimund@1431: raimund@1431: CheckboxItem grid = new CheckboxItem("grid", MSG.grid()); raimund@1431: grid.setLabelAsTitle(true); raimund@1431: grid.setTitleStyle("color:#000;"); raimund@1431: grid.setTitleAlign(Alignment.LEFT); raimund@1431: raimund@1431: CheckboxItem antialiasing = new CheckboxItem("antialiasing", raimund@1431: MSG.antialiasing()); raimund@1431: antialiasing.setLabelAsTitle(true); raimund@1431: antialiasing.setTitleStyle("color:#000;"); raimund@1431: antialiasing.setTitleAlign(Alignment.LEFT); raimund@1431: raimund@1431: form.setFields(new FormItem[] {title, subTitle, grid, antialiasing}); raimund@1431: properties.addMember(form); raimund@1431: t.setPane(properties); raimund@1431: } raimund@1431: raimund@1431: /** raimund@1431: * Initializes the tab for axes properties. raimund@1431: */ raimund@1431: protected void initAxesPropertiesTab(Tab t) { raimund@1431: VLayout properties = new VLayout(); raimund@1431: Label scale = new Label(MSG.scale() + " :"); raimund@1431: Label scale1 = new Label(MSG.scale() + " :"); raimund@1431: Label scale2 = new Label(MSG.scale() + " :"); raimund@1431: Label scale3 = new Label(MSG.scale() + " :"); raimund@1431: scale.setHeight(25); raimund@1431: scale1.setHeight(25); raimund@1431: scale2.setHeight(25); raimund@1431: scale3.setHeight(25); raimund@1431: raimund@1431: DynamicForm xform1 = new DynamicForm(); raimund@1431: DynamicForm xform2 = new DynamicForm(); raimund@1431: xform2.setNumCols(6); raimund@1431: raimund@1431: Label x_axis = new Label (MSG.x_axis()); raimund@1431: x_axis.setHeight(30); raimund@1431: HLayout x_scale = new HLayout(); raimund@1431: TextItem xname = new TextItem (); raimund@1431: xname.setTitle(MSG.axis_name()); raimund@1431: xname.setTitleAlign(Alignment.LEFT); raimund@1431: raimund@1431: TextItem xrange1 = new TextItem(); raimund@1431: xrange1.setTitle(MSG.chart_start()); raimund@1431: xrange1.setTitleAlign(Alignment.LEFT); raimund@1431: xrange1.setWidth(50); raimund@1431: raimund@1431: TextItem xrange2 = new TextItem(); raimund@1431: xrange2.setTitle(MSG.chart_end()); raimund@1431: xrange2.setTitleAlign(Alignment.LEFT); raimund@1431: xrange2.setWidth(50); raimund@1431: raimund@1431: CheckboxItem xfix = new CheckboxItem("xfix", "Fix"); raimund@1431: xfix.setLabelAsTitle(true); raimund@1431: xfix.setTitleStyle("color:#000;"); raimund@1431: xfix.setTitleAlign(Alignment.LEFT); raimund@1431: raimund@1431: xform1.setFields(xname); raimund@1431: xform2.setFields(xrange1, xrange2, xfix); raimund@1431: x_scale.addMember(scale); raimund@1431: x_scale.addMember(xform2); raimund@1431: raimund@1431: raimund@1431: DynamicForm y1form1 = new DynamicForm(); raimund@1431: DynamicForm y1form2 = new DynamicForm(); raimund@1431: y1form2.setNumCols(6); raimund@1431: raimund@1431: Label y1_axis = new Label (MSG.y1_axis()); raimund@1431: y1_axis.setHeight(30); raimund@1431: HLayout y1_scale = new HLayout(); raimund@1431: TextItem y1name = new TextItem (); raimund@1431: y1name.setTitle(MSG.axis_name()); raimund@1431: y1name.setTitleAlign(Alignment.LEFT); raimund@1431: raimund@1431: TextItem y1range1 = new TextItem(); raimund@1431: y1range1.setTitle(MSG.chart_start()); raimund@1431: y1range1.setTitleAlign(Alignment.LEFT); raimund@1431: y1range1.setWidth(50); raimund@1431: raimund@1431: TextItem y1range2 = new TextItem(); raimund@1431: y1range2.setTitle(MSG.chart_end()); raimund@1431: y1range2.setTitleAlign(Alignment.LEFT); raimund@1431: y1range2.setWidth(50); raimund@1431: raimund@1431: CheckboxItem y1fix = new CheckboxItem("y1fix", "Fix"); raimund@1431: y1fix.setLabelAsTitle(true); raimund@1431: y1fix.setTitleStyle("color:#000;"); raimund@1431: y1fix.setTitleAlign(Alignment.LEFT); raimund@1431: raimund@1431: y1form1.setFields(y1name); raimund@1431: y1form2.setFields(y1range1, y1range2, y1fix); raimund@1431: y1_scale.addMember(scale1); raimund@1431: y1_scale.addMember(y1form2); raimund@1431: raimund@1431: raimund@1431: DynamicForm y2form1 = new DynamicForm(); raimund@1431: DynamicForm y2form2 = new DynamicForm(); raimund@1431: y2form2.setNumCols(6); raimund@1431: raimund@1431: Label y2_axis = new Label (MSG.y2_axis()); raimund@1431: y2_axis.setHeight(30); raimund@1431: HLayout y2_scale = new HLayout(); raimund@1431: TextItem y2name = new TextItem (); raimund@1431: y2name.setTitle(MSG.axis_name()); raimund@1431: y2name.setTitleAlign(Alignment.LEFT); raimund@1431: raimund@1431: TextItem y2range1 = new TextItem(); raimund@1431: y2range1.setTitle(MSG.chart_start()); raimund@1431: y2range1.setTitleAlign(Alignment.LEFT); raimund@1431: y2range1.setWidth(50); raimund@1431: raimund@1431: TextItem y2range2 = new TextItem(); raimund@1431: y2range2.setTitle(MSG.chart_end()); raimund@1431: y2range2.setTitleAlign(Alignment.LEFT); raimund@1431: y2range2.setWidth(50); raimund@1431: raimund@1431: CheckboxItem y2fix = new CheckboxItem("y2fix", "Fix"); raimund@1431: y2fix.setLabelAsTitle(true); raimund@1431: y2fix.setTitleStyle("color:#000;"); raimund@1431: y2fix.setTitleAlign(Alignment.LEFT); raimund@1431: raimund@1431: y2form1.setFields(y2name); raimund@1431: y2form2.setFields(y2range1, y2range2, y2fix); raimund@1431: y2_scale.addMember(scale2); raimund@1431: y2_scale.addMember(y2form2); raimund@1431: raimund@1431: raimund@1431: DynamicForm y3form1 = new DynamicForm(); raimund@1431: DynamicForm y3form2 = new DynamicForm(); raimund@1431: y3form2.setNumCols(6); raimund@1431: raimund@1431: Label y3_axis = new Label (MSG.y3_axis()); raimund@1431: y3_axis.setHeight(30); raimund@1431: HLayout y3_scale = new HLayout(); raimund@1431: TextItem y3name = new TextItem (); raimund@1431: y3name.setTitle(MSG.axis_name()); raimund@1431: y3name.setTitleAlign(Alignment.LEFT); raimund@1431: raimund@1431: TextItem y3range1 = new TextItem(); raimund@1431: y3range1.setTitle(MSG.chart_start()); raimund@1431: y3range1.setTitleAlign(Alignment.LEFT); raimund@1431: y3range1.setWidth(50); raimund@1431: raimund@1431: TextItem y3range2 = new TextItem(); raimund@1431: y3range2.setTitle(MSG.chart_end()); raimund@1431: y3range2.setTitleAlign(Alignment.LEFT); raimund@1431: y3range2.setWidth(50); raimund@1431: raimund@1431: CheckboxItem y3fix = new CheckboxItem("y3fix", "Fix"); raimund@1431: y3fix.setLabelAsTitle(true); raimund@1431: y3fix.setTitleStyle("color:#000;"); raimund@1431: y3fix.setTitleAlign(Alignment.LEFT); raimund@1431: raimund@1431: y3form1.setFields(y3name); raimund@1431: y3form2.setFields(y3range1, y3range2, y3fix); raimund@1431: y3_scale.addMember(scale3); raimund@1431: y3_scale.addMember(y3form2); raimund@1431: raimund@1431: raimund@1431: properties.addMember(x_axis); raimund@1431: properties.addMember(xform1); raimund@1431: properties.addMember(x_scale); raimund@1431: properties.addMember(y1_axis); raimund@1431: properties.addMember(y1form1); raimund@1431: properties.addMember(y1_scale); raimund@1431: properties.addMember(y2_axis); raimund@1431: properties.addMember(y2form1); raimund@1431: properties.addMember(y2_scale); raimund@1431: properties.addMember(y3_axis); raimund@1431: properties.addMember(y3form1); raimund@1431: properties.addMember(y3_scale); raimund@1431: raimund@1431: t.setPane(properties); raimund@1431: } raimund@1431: raimund@1431: /** raimund@1431: * Initializes the tab for legend properties. raimund@1431: */ raimund@1431: protected void initLegendPropertiesTab(Tab t) { raimund@1431: VLayout properties = new VLayout(); raimund@1431: DynamicForm form = new DynamicForm(); raimund@1431: raimund@1431: TextItem name = new TextItem (); raimund@1431: name.setTitle(MSG.legend_name()); raimund@1431: name.setTitleAlign(Alignment.LEFT); raimund@1431: raimund@1431: CheckboxItem show = new CheckboxItem("show", MSG.show_legend()); raimund@1431: show.setLabelAsTitle(true); raimund@1431: show.setTitleStyle("color:#000;"); raimund@1431: show.setTitleAlign(Alignment.LEFT); raimund@1431: raimund@1431: form.setFields(name, show); raimund@1431: properties.addMember(form); raimund@1431: t.setPane(properties); raimund@1431: } raimund@1431: raimund@1429: }