16224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala/* 26224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala * Copyright 2012 AndroidPlot.com 36224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala * 46224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala * Licensed under the Apache License, Version 2.0 (the "License"); 56224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala * you may not use this file except in compliance with the License. 66224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala * You may obtain a copy of the License at 76224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala * 86224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala * http://www.apache.org/licenses/LICENSE-2.0 96224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala * 106224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala * Unless required by applicable law or agreed to in writing, software 116224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala * distributed under the License is distributed on an "AS IS" BASIS, 126224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 136224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala * See the License for the specific language governing permissions and 146224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala * limitations under the License. 156224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala */ 166224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala 176224eda509d436a575f801942337da92a6c18767Eino-Ville Talvalapackage com.androidplot.ui; 186224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala 196224eda509d436a575f801942337da92a6c18767Eino-Ville Talvalaimport android.content.Context; 206224eda509d436a575f801942337da92a6c18767Eino-Ville Talvalaimport com.androidplot.Plot; 216224eda509d436a575f801942337da92a6c18767Eino-Ville Talvalaimport com.androidplot.util.Configurator; 226224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala 236224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala/** 246224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala * Base class of all Formatters. Encapsulates visual elements of a series; line style, color etc. 256224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala * Implementors of this class should include both a default constructor and a one argument 266224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala * constructor in the following form: 276224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala * 286224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala * <pre> 296224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala * {@code 306224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala * // provided as a convenience to users; allows instantiation and 316224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala * // xml configuration in a single line. 326224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala * public MyFormatter(Context ctx, int xmlCfgId) { 336224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala * // prevent configuration of classes derived from this one: 346224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala * if (getClass().equals(MyFormatter.class)) { 356224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala * Configurator.configure(ctx, this, xmlCfgId); 366224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala * } 376224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala * } 386224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala * </pre> 396224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala */ 406224eda509d436a575f801942337da92a6c18767Eino-Ville Talvalapublic abstract class Formatter<PlotType extends Plot> { 416224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala 426224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala public Formatter<PlotType> configure(Context ctx, int xmlCfgId) { 436224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala Configurator.configure(ctx, this, xmlCfgId); 446224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala return this; 456224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala } 466224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala 476224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala 486224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala 496224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala /** 506224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala * 516224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala * @return The Class of SeriesRenderer that should be used. 526224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala */ 536224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala public abstract Class<? extends SeriesRenderer> getRendererClass(); 546224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala 556224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala /** 566224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala * 576224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala * @return An instance of SeriesRenderer that took plot as an argument to its constructor. 586224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala */ 596224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala public abstract SeriesRenderer getRendererInstance(PlotType plot); 606224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala 616224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala} 62