package hep.aida.ref.plotter;
import hep.aida.IDataStyle;
import hep.aida.IFillStyle;
import hep.aida.ILineStyle;
import hep.aida.IMarkerStyle;
import hep.aida.ref.AidaUtils;
/**
*
* @author The AIDA team @ SLAC.
*
*/
public class DataStyle extends BaseStyle implements IDataStyle {
protected void initializeBaseStyle() {
setMarkerStyle(new MarkerStyle());
setLineStyle(new LineStyle());
setFillStyle(new FillStyle());
setErrorBarStyle(new LineStyle());
setOutlineStyle(new LineStyle());
addParameter( new StringStyleParameter("customOverlay", null) );
addParameter( new StringStyleParameter("timeZone", null) );
addParameter( new StringStyleParameter(Style.DATA_MODEL, null) );
String[] normalization = {"none","Entries", "Area", "MaxBin"};
addParameter( new StringStyleParameter(Style.DATA_NORMALIZATION, normalization[0], normalization) );
String[] profileErrors = {"spread","errorOnMean"};
addParameter( new StringStyleParameter("profileErrors",profileErrors[0], profileErrors) );
addParameter( new BooleanStyleParameter( Style.SHOW_DATA_IN_STATISTICS_BOX, true) );
addParameter( new BooleanStyleParameter( Style.SHOW_DATA_IN_LEGEND_BOX, true) );
// set the defaults:
((BaseStyle)outlineStyle()).setParameterDefault(Style.IS_VISIBLE,"false");
((BaseStyle)markerStyle()).setParameterDefault(Style.IS_VISIBLE,"false");
}
public IFillStyle fillStyle() {
return (IFillStyle) child(Style.DATA_FILL_STYLE);
}
public ILineStyle lineStyle() {
return (ILineStyle) child(Style.DATA_LINE_STYLE);
}
public IMarkerStyle markerStyle() {
return (IMarkerStyle) child(Style.DATA_MARKER_STYLE);
}
public ILineStyle errorBarStyle() {
return (ILineStyle) child(Style.DATA_ERRORBAR_STYLE);
}
public ILineStyle outlineStyle() {
return (ILineStyle) child(Style.DATA_OUTLINE_STYLE);
}
public boolean setFillStyle(IFillStyle fillStyle) {
return addBaseStyle( fillStyle, Style.DATA_FILL_STYLE );
}
public boolean setLineStyle(ILineStyle lineStyle) {
return addBaseStyle( lineStyle, Style.DATA_LINE_STYLE );
}
public boolean setMarkerStyle(IMarkerStyle markerStyle) {
return addBaseStyle( markerStyle, Style.DATA_MARKER_STYLE );
}
public boolean setErrorBarStyle(ILineStyle errorBarStyle) {
int index = AidaUtils.findInArray(Style.ERRORBAR_DECORATION, errorBarStyle.availableParameters());
if (index < 0 && errorBarStyle instanceof LineStyle)
((LineStyle) errorBarStyle).addParameter( new DoubleStyleParameter( Style.ERRORBAR_DECORATION, -1) );
return addBaseStyle( errorBarStyle, Style.DATA_ERRORBAR_STYLE );
}
public boolean setOutlineStyle(ILineStyle outlineStyle) {
return addBaseStyle( outlineStyle, Style.DATA_OUTLINE_STYLE );
}
/**
* Set the model accorting to which the data is represented.
*
*/
public boolean setModel(String model) {
return ( (StringStyleParameter) parameter(Style.DATA_MODEL) ).setValue(model);
}
public String model() {
return ( (StringStyleParameter) deepestSetParameter(Style.DATA_MODEL) ).value();
}
/**
* Set if this data is to be represented in the statistics box.
*
*/
public void showInStatisticsBox(boolean showInStatisticsBox) {
( (BooleanStyleParameter) parameter(Style.SHOW_DATA_IN_STATISTICS_BOX) ).setValue(showInStatisticsBox);
}
public boolean isShownInStatisticsBox() {
return ( (BooleanStyleParameter) deepestSetParameter(Style.SHOW_DATA_IN_STATISTICS_BOX) ).value();
}
/**
* Set if this data is to be represented in the legend box.
*
*/
public void showInLegendBox(boolean showInLegendBox) {
( (BooleanStyleParameter) parameter(Style.SHOW_DATA_IN_LEGEND_BOX) ).setValue(showInLegendBox);
}
public boolean isShownInLegendBox() {
return ( (BooleanStyleParameter) deepestSetParameter(Style.SHOW_DATA_IN_LEGEND_BOX) ).value();
}
}