Tags:
create new tag
, view all tags
-- PedroRio - 26 Mar 2010

Código Java Associado a um PieChart

Os componentes de gráficos XVW possuem propriedades que são alimentadas por uma Bean e algumas das sua propriedades representam invocações de métodos do lado da Bean que têm de devolver objectos Java que implementem determinadas interfaces. No caso do Pie Chart há a necessidade de pelo menos a propriedade dataSet ser preenchida e, opcionalmente, a propriedade configOptions.

Assumindo uma definição em XML do componente Pie Chart como a seguinte:

<xvw:pieChart
    label="Chart Label"
    dataSet="#{viewBean.dataSet}"
    width="500"
    height="400"
    type="IMG"
    configOptions="#{viewBean.configOptions}"
    >    
</xvw:pieChart>

A bean a utilizar para um pieChart pode ser algo assim (pode estender a XEO Bean que se entender, não é obrigatório estender a XEOEditBean):

public class PieBean extends XEOEditBean
{
    private PieDataSet dataSet;

    private IPieChartConfiguration configOptions;
    
    public PieBean()
    {
        super();
        this.dataSet = new PieDataSetImpl();
        this.configOptions = new IPieChartConfigImpl();
    }
    
    public PieDataSet dataSet()
    {
        return this.dataSet;
    }

    public IPieChartConfiguration configOptions()
    {
        return this.configOptions;
    }
}

A class PieDataSetImpl é uma implementação da interface PieDataSet para este exemplo, assim como a class IPieChartConfigImpl é uma implementação da interface IPieChartConfiguration.

Classe PieDataSetImpl

A definição da classe PieDataSetImpl é muito simples e dado que um PieDataSet é essencialmente um conjunto de pares chave/valor. Os valores podem ser guardados num HashMap<String,Integer> e para motivos de exemplo teremos a preferência (em número) das pessoas entre três estações do ano (Verão, Outono e Inverno), onde respectivamente há 190, 200 e 20 pessoas a preferirem.

public class PieDataSetImpl implements PieDataSet {

    private HashMap<String,Integer> dataSet;
    
    public PieDataSetImpl() //Cria-se o Mapa e preenche-se com valores
    {
        this.dataSet = new HashMap<String, Integer>();
        this.dataSet.put("Summer", 190);
        this.dataSet.put("Fall", 200);
        this.dataSet.put("Winter", 20);
    }
    
    @Override //Devolve um nome para identificar as categorias
    public String getCategoryLabel() 
    {
        return "Seasons";
    }

    @Override
    public Number getValue(Comparable<String> key) //Vai buscar um valor dado a categoria 
    {
        return this.dataSet.get(key);
    }

    @Override
    public String getValueLabel() //Devolve um nome para identificar os valores para as categorias
    {
        return "Values";
    }


    @Override
    public List<String> getCategories() //Devolve a lista de categorias, Summer, Fall, Winter
    {
        return new Vector<String>(dataSet.keySet());
    }

}

Classe IPieChartConfigImpl

A classe IPieChartConfigImpl é uma implementação muito simples da interface das configurações apenas para mostrar a utilização da mesma.

public class IPieChartConfigImpl implements IPieChartConfiguration 
{
    
    public IPieChartConfigImpl()
    {}
    
    
    @Override //Determina a cor de fundo do gráfico.
    public Color getBackgroundColour() 
    {
        return Color.gray;
    }

    @Override //Mapeia as categorias em cores, de tal modo que as fatias da tarte fiquem cada uma com sua cor
    public HashMap<String, Color> getColours() 
    {
        HashMap<String, Color> maps = new HashMap<String, Color>();
        maps.put("Winter", Color.black);
        maps.put("Fall", Color.blue);
        maps.put("Summer", Color.magenta);
        return maps;
    }

    @Override //Se o titulo do gráfico deve ser mostrado ou não
    public boolean showChartTitle() 
    {
        return true;
    }

    @Override //Se as labels do gráfico devem ser mostradas ou não.
    public boolean showLabels() 
    {
        return true;
    }


    @Override //Devolve uma expressão que pode é usada para mostrar as tooltips, pode conter variáveis
//especiais de forma a mostrar valores (consultar a documentação da interface)
    public String getTooltipString() 
    {
        return "$key has value $val which is $percent of total";
    }

}
Edit | Attach | Print version | History: r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r1 - 2010-03-26 - PedroRio
 

No permission to view TWiki.WebTopBar

This site is powered by the TWiki collaboration platform Powered by Perl

No permission to view TWiki.WebBottomBar