/**
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.extchart.editors.properties.axes;
import it.eng.spagobi.studio.extchart.editors.ExtChartEditor;
import it.eng.spagobi.studio.extchart.editors.pages.editorComponent.SeriesPanel;
import it.eng.spagobi.studio.extchart.model.bo.Series;
import it.eng.spagobi.studio.extchart.utils.SWTUtils;
import it.eng.spagobi.studio.extchart.utils.SerieTableItemContent;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.TableItem;
import org.slf4j.LoggerFactory;
public class AxesCategoryProperties extends AxesProperties{
private static org.slf4j.Logger logger = LoggerFactory.getLogger(AxesCategoryProperties.class);
Combo fieldCombo;
Combo positionCombo;
Button gridButton;
public AxesCategoryProperties(ExtChartEditor editor,
Shell comp) {
super(editor, comp);
}
public void drawProperties(){
logger.debug("IN");
Color defaultBackground = Display.getDefault().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND);
toolkit.createLabel(dialog, "");
toolkit.createLabel(dialog, "");
String[] metadatas = editor.getMainChartPage().getLeftPage().getDatasetMetadataTableContent();
if(metadatas == null) metadatas = new String[0];
fieldCombo = SWTUtils.drawCombo(dialog, metadatas, axes != null && axes.getFields() != null ? axes.getFields() : null, "Field: ");
fieldCombo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
super.drawProperties();
Label grid = toolkit.createLabel(dialog, "Grid: ");
grid.setBackground(defaultBackground);
gridButton = SWTUtils.drawCheck(dialog,
axes != null && axes.getGrid() != null ? axes.getGrid() : false
, "");
String[] positions = new String[]{"left", "top", "right", "bottom"};
positionCombo = SWTUtils.drawCombo(dialog, positions, axes != null && axes.getPosition() != null ? axes.getPosition() : null, "Position: ");
positionCombo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
toolkit.createLabel(dialog, "");
toolkit.createLabel(dialog, "");
logger.debug("OUT");
}
public void performOk(){
logger.debug("IN");
// save
super.performOk();
String valueField = null;
axes.setType("Category");
if(fieldCombo.getSelectionIndex() != -1){
valueField = fieldCombo.getItem(fieldCombo.getSelectionIndex());
axes.setFields(valueField);
logger.debug("field " +valueField);
}
else{
logger.debug("no field selected");
}
Boolean track = gridButton.getSelection();
axes.setGrid(track);
logger.debug("grid: "+track);
String value = positionCombo.getItem(positionCombo.getSelectionIndex());
axes.setPosition(value);
logger.debug("psoition: "+value);
// update the xChart in serie table
TableItem[] items = editor.getMainChartPage().getRightPage().getSeriesBuilder().getSeriesTable().getItems();
for (int i = 0; i < items.length; i++) {
TableItem item = items[i];
SerieTableItemContent serieTableItemContent = (SerieTableItemContent)item.getData();
Series serie = serieTableItemContent.getSerie();
item.setText(SeriesPanel.CAT_AXE, valueField);
serie.setxField(valueField);
}
// update the title in XPanel
editor.getMainChartPage().getRightPage().getBottomAxeBuilder().getTitleLabel().setText(titleText.getText());
logger.debug("OUT");
}
//overwrite
public void showPopup(){
logger.debug("IN");
dialogMain.setSize(300, 220);
super.showPopup();
// dialogMain.open ();
// while (!dialogMain.isDisposed()) {
// if (!dialogMain.getDisplay().readAndDispatch()) {
// dialogMain.getDisplay().sleep();
// }
// }
logger.debug("OUT");
}
}