package hep.aida.ref.plotter;

import hep.aida.ILineStyle;
import hep.aida.ref.plotter.BrushStyle;
import hep.aida.ref.plotter.Style;

/**
 *
 * @author The FreeHEP team @ SLAC.
 *
 */
public class LineStyle extends BrushStyle implements ILineStyle {
    
    private static String lineTypePar = Style.LINE_TYPE;
    private static String lineThicknessPar = Style.LINE_THICKNESS;
    static String[] lineTypes = { "solid", "dotted", "dashed", "dotdash", "0", "1", "2", "3" };

    protected void initializeBrushStyle() {
        addParameter(lineTypePar, lineTypes, lineTypes[0]);
        addParameter(lineThicknessPar,"1");        
    }
    
    public String[] availableLineTypes() {
        return availableParameterOptions( lineTypePar );
    }
    
    public String lineType() {
        return parameterValue( lineTypePar );
    }
    
    public boolean setLineType(String lineType) {
        return setParameter( lineTypePar, lineType );
    }
    
    public boolean setThickness(int lineThickness) {
        if ( lineThickness < 0 ) return setParameter( lineThicknessPar );
        return setParameter( lineThicknessPar, String.valueOf( lineThickness ) );
    }
    
    public int thickness() {
        String thicknessStr = parameterValue( lineThicknessPar );
        if ( thicknessStr == null ) thicknessStr = parameterDefaultValue( lineThicknessPar );
        return Integer.parseInt( thicknessStr );
    }
}
