package hep.aida.ref.plotter; import hep.aida.IAxisStyle; import hep.aida.IBoxStyle; import hep.aida.IDataStyle; import hep.aida.IGridStyle; import hep.aida.IInfoStyle; import hep.aida.ILegendBoxStyle; import hep.aida.IPlotterStyle; import hep.aida.IStatisticsBoxStyle; import hep.aida.ITitleStyle; import java.util.List; /** * * @author The AIDA team @ SLAC. * */ public class PlotterStyle extends BaseStyle implements IPlotterStyle { PlotterStyle() { super(); } PlotterStyle( PlotterStyle style ) { super( style ); } public void print(String pref) { System.out.println(pref+"***** PlotterStyle :: "+parameterValue("plotterStyleName")); System.out.println(pref+"\t Parents "); for (int i=0; i<parentList().size(); i++) { String name = ""; Object obj = parentList().get(i); if (obj instanceof IPlotterStyle) name = ((IPlotterStyle) obj).parameterValue("plotterStyleName"); System.out.println(pref+"\t\t"+obj+" "+name); if (obj instanceof PlotterStyle) ((PlotterStyle) obj).print(pref+"\t\t"); } System.out.println(pref+"\t Listeners "); for (int i=0; i<listeners.size(); i++) { String name = ""; Object obj = listeners.get(i); if (obj instanceof IPlotterStyle) name = ((IPlotterStyle) obj).parameterValue("plotterStyleName"); System.out.println(pref+"\t\t"+obj+" "+name); //if (obj instanceof PlotterStyle) ((PlotterStyle) obj).print(pref+"\t\t"); } } protected void initializeBaseStyle() { addParameter( new StringStyleParameter(Style.PLOTTER_STYLE_NAME, null) ); addParameter( new IntegerStyleParameter(Style.PLOTTER_STYLE_INDEX, -1) ); setDataStyle( new DataStyle() ); setInfoStyle( new InfoStyle() ); setTitleStyle( new TitleStyle() ); setAxisStyleX( new AxisStyle() ); AxisStyle yStyle = new AxisStyle(); String[] yAxisValues = {"Y0", "Y1"}; yStyle.addParameter( new StringStyleParameter( "yAxis", yAxisValues[0], yAxisValues ) ); setAxisStyleY( yStyle ); setAxisStyleZ( new AxisStyle() ); setLegendBoxStyle( new LegendBoxStyle() ); setStatisticsBoxStyle( new StatisticsBoxStyle() ); setGridStyle( new GridStyle() ); setRegionBoxStyle( new BoxStyle() ); setDataBoxStyle( new BoxStyle() ); String[] hist2dStyle = {"box", "ellipse", "colorMap"}; addParameter( new StringStyleParameter("hist2DStyle", null, hist2dStyle) ); addParameter( new BooleanStyleParameter("showAsScatterPlot",true ) ); addParameter( new StringStyleParameter("xAxisLowerLimit", null) ); addParameter( new StringStyleParameter("xAxisUpperLimit", null) ); addParameter( new StringStyleParameter("yAxisLowerLimit", null) ); addParameter( new StringStyleParameter("yAxisUpperLimit", null) ); } // Deprecate limit parameters here public boolean setParameter(String pn, String parValue, String[] parAllowedValues) { if (pn.equals("xAxisLowerLimit") || pn.equals("xAxisUpperLimit") || pn.equals("yAxisLowerLimit") || pn.equals("yAxisUpperLimit") ) { System.err.println("Parameter \""+pn+"\" works, but has been deprecated. " + "Please use \""+Style.AXIS_LOWER_LIMIT+"\" or \""+Style.AXIS_UPPER_LIMIT+"\" parameters of the " + "relevant IAxisStyle."); } return super.setParameter(pn, parValue, parAllowedValues); } // IPlotterStyle methods here public IDataStyle dataStyle() { return (IDataStyle) child(Style.PLOTTER_DATA_STYLE); } /** * @deprecated */ public IInfoStyle infoStyle() { return (IInfoStyle) child(Style.PLOTTER_INFO_STYLE); } public ITitleStyle titleStyle() { return (ITitleStyle) child(Style.PLOTTER_TITLE_STYLE); } public IAxisStyle xAxisStyle() { return (IAxisStyle) child(Style.PLOTTER_XAXIS_STYLE); } public IAxisStyle yAxisStyle() { return (IAxisStyle) child(Style.PLOTTER_YAXIS_STYLE); } public IAxisStyle zAxisStyle() { return (IAxisStyle) child(Style.PLOTTER_ZAXIS_STYLE); } public ILegendBoxStyle legendBoxStyle() { return (ILegendBoxStyle) child(Style.PLOTTER_LEGEND_BOX_STYLE); } public IStatisticsBoxStyle statisticsBoxStyle() { return (IStatisticsBoxStyle) child(Style.PLOTTER_STATISTICS_BOX_STYLE); } public IGridStyle gridStyle() { return (IGridStyle) child(Style.PLOTTER_GRID_STYLE); } public IBoxStyle regionBoxStyle() { return (IBoxStyle) child(Style.PLOTTER_REGION_BOX_STYLE); } public IBoxStyle dataBoxStyle() { return (IBoxStyle) child(Style.PLOTTER_DATA_BOX_STYLE); } public boolean setAxisStyleX(IAxisStyle xAxisStyle) { return addBaseStyle( xAxisStyle, Style.PLOTTER_XAXIS_STYLE ); } public boolean setAxisStyleY(IAxisStyle yAxisStyle) { return addBaseStyle( yAxisStyle, Style.PLOTTER_YAXIS_STYLE ); } public boolean setAxisStyleZ(IAxisStyle zAxisStyle) { return addBaseStyle( zAxisStyle, Style.PLOTTER_ZAXIS_STYLE ); } public boolean setDataStyle(IDataStyle dataStyle) { return addBaseStyle( dataStyle, Style.PLOTTER_DATA_STYLE ); } public boolean setInfoStyle(IInfoStyle infoStyle) { return addBaseStyle( infoStyle, Style.PLOTTER_INFO_STYLE ); } public boolean setTitleStyle(ITitleStyle titleStyle) { return addBaseStyle( titleStyle, Style.PLOTTER_TITLE_STYLE ); } public boolean setLegendBoxStyle(ILegendBoxStyle legendBoxStyle) { return addBaseStyle( legendBoxStyle, Style.PLOTTER_LEGEND_BOX_STYLE ); } public boolean setStatisticsBoxStyle(IStatisticsBoxStyle statisticsBoxStyle) { return addBaseStyle( statisticsBoxStyle, Style.PLOTTER_STATISTICS_BOX_STYLE ); } public boolean setGridStyle(IGridStyle gridStyle) { return addBaseStyle( gridStyle, Style.PLOTTER_GRID_STYLE ); } public boolean setRegionBoxStyle(IBoxStyle regionBoxStyle) { return addBaseStyle( regionBoxStyle, Style.PLOTTER_REGION_BOX_STYLE ); } public boolean setDataBoxStyle(IBoxStyle dataBoxStyle) { return addBaseStyle( dataBoxStyle, Style.PLOTTER_DATA_BOX_STYLE ); } }