/** SpagoBI, the Open Source Business Intelligence suite Copyright (C) 2012 Engineering Ingegneria Informatica S.p.A. - SpagoBI Competency Center This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. **/ package it.eng.spagobi.studio.highchart.editors.sections; import it.eng.spagobi.studio.highchart.editors.HighChartEditor; import it.eng.spagobi.studio.highchart.model.bo.HighChart; import it.eng.spagobi.studio.highchart.model.bo.SubTitle; import it.eng.spagobi.studio.highchart.model.bo.Title; import it.eng.spagobi.studio.highchart.utils.SWTUtils; import org.eclipse.swt.SWT; import org.eclipse.swt.events.ModifyEvent; import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Combo; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Group; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Spinner; import org.eclipse.swt.widgets.Text; import org.eclipse.ui.forms.widgets.FormToolkit; import org.eclipse.ui.forms.widgets.ScrolledForm; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class GeneralSection extends AbstractSection { private static Logger logger = LoggerFactory.getLogger(GeneralSection.class); Label typeLabel; Label titleLabel; Text titleText; Label subTitleLabel; Text subTitleText; Spinner widthSpinner; Spinner heightSpinner; Composite styleComposite; Group titleGroup; Group subTitleGroup; Combo titleAlignCombo; Button titleFloatingCheck; Spinner titleMarginSpinner; Text titleStyleText; Combo titleVerticalAlignCombo; Spinner titleXSpinner; Spinner titleYSpinner; Combo subTitleAlignCombo; Button subTitleFloatingCheck; Spinner subTitleMarginSpinner; Text subTitleStyleText; Combo subTitleVerticalAlignCombo; Spinner subTitleXSpinner; Spinner subTitleYSpinner; public GeneralSection(HighChart highChart) { super(highChart); } public void addListeners(){ logger.debug("IN"); final Title title = highChart.getTitle(); final SubTitle subTitle = highChart.getSubTitle(); widthSpinner.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent event) { editor.setIsDirty(true); int val = widthSpinner.getSelection(); String valS = Integer.valueOf(val)+"%"; highChart.setWidth(valS); } }); heightSpinner.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent event) { editor.setIsDirty(true); int val = heightSpinner.getSelection(); String valS = Integer.valueOf(val)+"%"; highChart.setHeight(valS); } }); titleAlignCombo.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent event) { editor.setIsDirty(true); String value = titleAlignCombo.getItem(titleAlignCombo.getSelectionIndex()); title.setAlign(value); } }); subTitleAlignCombo.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent event) { editor.setIsDirty(true); String value = subTitleAlignCombo.getItem(subTitleAlignCombo.getSelectionIndex()); subTitle.setAlign(value); } }); titleVerticalAlignCombo.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent event) { editor.setIsDirty(true); String value = titleVerticalAlignCombo.getItem(titleVerticalAlignCombo.getSelectionIndex()); title.setVerticalAlign(value); } }); subTitleVerticalAlignCombo.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent event) { editor.setIsDirty(true); String value = subTitleVerticalAlignCombo.getItem(subTitleVerticalAlignCombo.getSelectionIndex()); subTitle.setVerticalAlign(value); } }); titleMarginSpinner.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent event) { editor.setIsDirty(true); int val = titleMarginSpinner.getSelection(); title.setMargin(val); } }); subTitleMarginSpinner.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent event) { editor.setIsDirty(true); int val = subTitleMarginSpinner.getSelection(); subTitle.setMargin(val); } }); titleXSpinner.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent event) { editor.setIsDirty(true); int val = titleXSpinner.getSelection(); title.setX(val); } }); subTitleXSpinner.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent event) { editor.setIsDirty(true); int val = subTitleXSpinner.getSelection(); subTitle.setX(val); } }); titleYSpinner.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent event) { editor.setIsDirty(true); int val = titleYSpinner.getSelection(); title.setY(val); } }); subTitleYSpinner.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent event) { editor.setIsDirty(true); int val = subTitleYSpinner.getSelection(); subTitle.setY(val); } }); logger.debug("OUT"); } @Override public void drawSection(final FormToolkit toolkit, final ScrolledForm form, int cols) { super.drawSection(toolkit, form, cols); // ++++++++++++++ Chart common settings section ++++++++++++++ logger.debug("IN"); section.setText("Chart information"); section.setDescription("Below you see some chart general informations"); Label tLabel= toolkit.createLabel(composite, "Type"); typeLabel = toolkit.createLabel(composite, highChart.getChart().getDefaultSeriesType()); titleLabel= toolkit.createLabel(composite, "Title:"); titleText = toolkit.createText(composite, highChart.getTitle().getText(), SWT.BORDER); titleText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); titleText.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent event) { editor.setIsDirty(true); String titleValue = titleText.getText(); highChart.getTitle().setText(titleValue); } }); subTitleLabel= toolkit.createLabel(composite, "Subtitle:"); subTitleText = toolkit.createText(composite, highChart.getSubTitle().getText(), SWT.BORDER); subTitleText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); subTitleText.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent event) { editor.setIsDirty(true); String titleValue = subTitleText.getText(); highChart.getSubTitle().setText(titleValue); } }); widthSpinner = SWTUtils.drawSpinner(composite, highChart.getIntegerWidth(), "Width (%):"); heightSpinner = SWTUtils.drawSpinner(composite, highChart.getIntegerHeight(), "Height (%):"); styleComposite = toolkit.createComposite(composite); styleComposite.setLayoutData(SWTUtils.getGridDataSpan(2, GridData.FILL_HORIZONTAL)); GridLayout gla = new GridLayout(); gla.numColumns = 1; styleComposite.setLayout(gla); Title title = highChart.getTitle(); SubTitle subTitle = highChart.getSubTitle(); titleGroup = createNColGroup(styleComposite,"Title Style: ", 14); titleGroup.setBackground(SWTUtils.getColor(titleGroup.getDisplay(), SWTUtils.LIGHT_GRAY)); titleAlignCombo = SWTUtils.drawCombo(titleGroup, new String[]{"", "left", "center","right"},title.getAlign() , "Align: "); titleVerticalAlignCombo = SWTUtils.drawCombo(titleGroup, new String[]{"", "top", "middle", "bottom"},title.getVerticalAlign() , "Vertical Align: "); titleFloatingCheck = SWTUtils.drawCheck(titleGroup, title.isFloating(), "Floating: "); titleStyleText = SWTUtils.drawText(toolkit, titleGroup, title.getStyle(), "Style: "); titleMarginSpinner = SWTUtils.drawSpinner(titleGroup, title.getMargin(), "Margin: "); titleXSpinner = SWTUtils.drawSpinner(titleGroup, title.getX(), "X: "); titleYSpinner = SWTUtils.drawSpinner(titleGroup, title.getY(), "Y: "); subTitleGroup = createNColGroup(styleComposite,"SubTitle style: ", 14); subTitleGroup.setBackground(SWTUtils.getColor(titleGroup.getDisplay(), SWTUtils.LIGHT_GRAY)); subTitleAlignCombo = SWTUtils.drawCombo(subTitleGroup, new String[]{"", "left", "center","right"},subTitle.getAlign() , "Align: "); subTitleVerticalAlignCombo = SWTUtils.drawCombo(subTitleGroup, new String[]{"", "top", "middle", "bottom"},subTitle.getVerticalAlign() , "Vertical Align: "); subTitleFloatingCheck = SWTUtils.drawCheck(subTitleGroup, subTitle.isFloating(), "Floating: "); subTitleStyleText = SWTUtils.drawText(toolkit, subTitleGroup, subTitle.getStyle(), "Style: "); subTitleMarginSpinner = SWTUtils.drawSpinner(subTitleGroup, subTitle.getMargin(), "Margin: "); subTitleXSpinner = SWTUtils.drawSpinner(subTitleGroup, subTitle.getX(), "X: "); subTitleYSpinner = SWTUtils.drawSpinner(subTitleGroup, subTitle.getY(), "Y: "); titleGroup.pack(); subTitleGroup.pack(); addListeners(); section.setClient(composite); // section.pack(); // composite.pack(); logger.debug("OUT"); } public HighChartEditor getEditor() { return editor; } public void setEditor(HighChartEditor editor) { this.editor = editor; } }