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();
    }    
}

 

Ads help maintain this website.