grafix.graficos.indices.Indice.java Source code

Java tutorial

Introduction

Here is the source code for grafix.graficos.indices.Indice.java

Source

/*
  Copyright (C) 2001-2012, Joao Medeiros, Paulo Vilela (grafix2.com)
      
  Este arquivo  parte do programa Grafix2.com
      
  Grafix2.com  um software livre; voc pode redistribui-lo e/ou 
  modifica-lo dentro dos termos da Licena Pblica Geral GNU como 
  publicada pela Fundao do Software Livre (FSF); na verso 2 da 
  Licena.
    
  Este programa  distribuido na esperana que possa ser til, 
  mas SEM NENHUMA GARANTIA; sem uma garantia implicita de ADEQUAO a qualquer
  MERCADO ou APLICAO EM PARTICULAR. Veja a
  Licena Pblica Geral GNU para maiores detalhes.
    
  Voc deve ter recebido uma cpia da Licena Pblica Geral GNU
  junto com este programa, se no, veja uma cpia em
  <http://www.gnu.org/licenses/>
      
 */

package grafix.graficos.indices;

import grafix.graficos.IndiceToolTipGenerator;
import grafix.principal.Acao;
import grafix.telas.JanelaGraficos;
import java.awt.*;
import javax.swing.JOptionPane;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.*;
import org.jfree.data.xy.XYDataset;
import org.jfree.util.ShapeUtilities;

public abstract class Indice {

    private int id;

    protected String abrevIndice;
    private String nomeIndice;
    private Color cor;
    private int espessura;
    private boolean tracoContinuo = true;
    private ValoresIndice valores;
    private String fileLua;

    private String nomeFlag = null;
    private boolean flag;
    private String nomeParam1 = null;
    private int param1;
    private String nomeParam2 = null;
    private int param2;
    private String nomeParam3 = null;
    private int param3;

    public Indice(int id, String abrev, Color cor, int espessura, boolean f, int p1, int p2, int p3) {
        this.setId(id);
        if (cor != null) {
            this.cor = cor;
        } else {
            this.cor = getCorInicial();
        }
        this.setEspessura(espessura);
        this.setAbrevIndice(abrev);
        this.configurarIndice();
    }

    abstract protected void calcularValoresIndice(Acao acao);

    abstract protected void configurarIndice();

    @Override
    public String toString() {
        return getAbrevIndice() + "  -  " + this.getNomeIndice();
    }

    public ResumoIndice gerarResumo() {
        ResumoIndice resultado = new ResumoIndice(this);
        return resultado;
    }

    protected XYDataset getDataSet(JanelaGraficos janela) {
        if (valoresEstaoDesatualizados(janela)) {
            calcularValoresIndice(janela.getAcao());
        }
        if (getValores() == null) {
            setValores(
                    new ValoresIndice(this, janela.getAcao(), new double[janela.getAcao().getNumeroRegistros()]));
            JOptionPane.showMessageDialog(null, "ndice " + this.getNomeIndice() + " no retorna dados!");
        }
        return getValores().getDataSet(janela);
    }

    public void plotar(final XYPlot plot, final JanelaGraficos janela, final int contador) {
        XYLineAndShapeRenderer indicesRenderer = new XYLineAndShapeRenderer();
        indicesRenderer.setSeriesLinesVisible(0, isTracoContinuo());
        indicesRenderer.setSeriesShapesVisible(0, !isTracoContinuo());
        indicesRenderer.setSeriesShape(0, ShapeUtilities.createDiamond(1.5f));
        indicesRenderer.setStroke(new BasicStroke(getEspessura() * 0.5f));
        indicesRenderer.setToolTipGenerator(new IndiceToolTipGenerator(this));
        indicesRenderer.setPaint(getCor());
        plot.setRenderer(contador, indicesRenderer);
        plot.setDataset(contador, getDataSet(janela));
    }

    protected Color getCorInicial() {
        return new Color((float) Math.pow(Math.random(), 2), (float) Math.pow(Math.random(), 2),
                (float) Math.pow(Math.random(), 2));
        //return Color.BLACK;
    }

    public ValoresIndice getValores() {
        return valores;
    }

    public void setValores(ValoresIndice valores) {
        this.valores = valores;
    }

    private boolean valoresEstaoDesatualizados(JanelaGraficos janela) {
        if (getValores() == null) {
            return true;
        }
        return !getValores().isAtualizado(janela);
    }

    public String getTagIndice() {
        if (param2 != 0) {
            return getAbrevIndice() + "-" + param1 + "/" + param2;
        } else if (param1 != 0) {
            return getAbrevIndice() + "-" + param1;
        } else {
            return getAbrevIndice();
        }
    }

    protected static double[] dadosZerados(int tam) {
        double[] resultado = new double[tam];
        for (int i = 0; i < resultado.length; i++) {
            resultado[i] = ValoresIndice.SEM_VALOR;
        }
        return resultado;
    }

    public String getNomeIndice() {
        return nomeIndice;
    }

    public void setNomeIndice(String nomeIndice) {
        this.nomeIndice = nomeIndice;
    }

    public Color getCor() {
        return cor;
    }

    public void setCor(Color cor) {
        this.cor = cor;
    }

    public boolean isTracoContinuo() {
        return tracoContinuo;
    }

    public void setTracoContinuo(boolean tracoContinuo) {
        this.tracoContinuo = tracoContinuo;
    }

    public String getFileLua() {
        return fileLua;
    }

    public void setFileLua(String fileLua) {
        this.fileLua = fileLua;
    }

    //    abstract public String definirAbrevIndice();

    public String getAbrevIndice() {
        //        if(abrevIndice == null) {
        //            abrevIndice = definirAbrevIndice();
        //        }
        return abrevIndice;
    }

    public void setAbrevIndice(String abrevIndice) {
        this.abrevIndice = abrevIndice;
    }

    // PARAMETROS --------------------------------------------------------------------------

    protected void criarFlag(String nome, boolean f) {
        setNomeFlag(nome);
        setFlag(f);
    }

    protected void criarParam1(String nome, int p) {
        setNomeParam1(nome);
        setParam1(p);
    }

    protected void criarParam2(String nome, int p) {
        setNomeParam2(nome);
        setParam2(p);
    }

    protected void criarParam3(String nome, int p) {
        setNomeParam3(nome);
        setParam3(p);
    }

    public String getNomeFlag() {
        return nomeFlag;
    }

    public void setNomeFlag(String nomeFlag) {
        this.nomeFlag = nomeFlag;
    }

    public boolean isFlag() {
        return flag;
    }

    public boolean getFlag() {
        return flag;
    }

    public void setFlag(boolean flag) {
        this.flag = flag;
    }

    public String getNomeParam1() {
        return nomeParam1;
    }

    public void setNomeParam1(String nomeParam1) {
        this.nomeParam1 = nomeParam1;
    }

    public int getParam1() {
        return param1;
    }

    public void setParam1(int param1) {
        this.param1 = param1;
    }

    public String getNomeParam2() {
        return nomeParam2;
    }

    public void setNomeParam2(String nomeParam2) {
        this.nomeParam2 = nomeParam2;
    }

    public int getParam2() {
        return param2;
    }

    public void setParam2(int param2) {
        this.param2 = param2;
    }

    public String getNomeParam3() {
        return nomeParam3;
    }

    public void setNomeParam3(String nomeParam3) {
        this.nomeParam3 = nomeParam3;
    }

    public int getParam3() {
        return param3;
    }

    public void setParam3(int param3) {
        this.param3 = param3;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public int getEspessura() {
        return espessura;
    }

    public void setEspessura(int espessura) {
        this.espessura = espessura;
    }

}