grafix.telas.JanelaGraficos.java Source code

Java tutorial

Introduction

Here is the source code for grafix.telas.JanelaGraficos.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.telas;

import grafix.auxiliar.*;
import grafix.graficos.*;
import grafix.graficos.eixos.*;
import grafix.principal.*;
import javax.swing.*;
import javax.swing.event.*;
import org.jfree.chart.axis.*;

/**
 * Teste
 * @author marcos
 */

public class JanelaGraficos extends JInternalFrame {

    private TelaGrafix tela;
    private Acao acao;
    private ConstrutorGrafico construtorGrafico = new ConstrutorGrafico(this);
    private PanelGraficos panelGraficos;
    private PanelMolduras panelMolduras;
    private JLayeredPane layersPane;
    private ConfiguracoesJanela configuracoes;
    private IntervaloExibicao intervalo;

    public JanelaGraficos(TelaGrafix tela, Acao acao, ConfiguracoesJanela confJanela) {
        try {
            this.setTela(tela);
            this.setConfiguracoesJanela(confJanela);
            this.setAcao(acao);
            this.iniciarIntervaloExibicao();
            this.setPanelGraficos(new PanelGraficos(this, construtorGrafico.criarJFreeChart()));
            this.setPanelMolduras(new PanelMolduras(this));
            configurarJanela();
        } catch (Exception e) {
            System.out.println("Impossivel abrir janela para acao: " + acao.getCodAcao());
            e.printStackTrace();
            Controle.reiniciarModoSeguro();
        }
    }

    // Janelas nova incluida pelo usurio
    public JanelaGraficos(TelaGrafix tela, Acao acao) {
        this(tela, acao, new ConfiguracoesJanela());
    }

    // Janelas criadas a partir de Configuracoes de Janela lidas de arquivos
    public JanelaGraficos(TelaGrafix tela, ConfiguracoesJanela confJanela) {
        this(tela, Controle.getCarteira().getAcao(confJanela.getCodAcao()), confJanela);
    }

    private void configurarJanela() {
        this.setBorder(BorderFactory.createEtchedBorder());
        this.setClosable(true);
        this.setIconifiable(false);
        this.setMaximizable(true);
        this.setResizable(true);
        this.setBounds(0, 0, 500, 500);
        this.setVisible(true);
        this.setTitle(getAcao().getCodAcao() + " - " + getAcao().getNomeAcao());
        this.setFrameIcon(new ImageIcon("resource/icones/grafix4.gif"));
        layersPane = new JLayeredPane();
        layersPane.setLayout(new OverlayLayout(layersPane));
        layersPane.add(getPanelGraficos(), JLayeredPane.FRAME_CONTENT_LAYER);
        layersPane.add(getPanelMolduras(), JLayeredPane.DRAG_LAYER);
        this.add(layersPane);
        this.addInternalFrameListener(new InternalFrameListener() {
            public void internalFrameActivated(InternalFrameEvent evt) {
                janelaAtivada();
            }

            public void internalFrameClosed(InternalFrameEvent evt) {
                janelaFechada();
            }

            public void internalFrameClosing(InternalFrameEvent evt) {
            }

            public void internalFrameDeactivated(InternalFrameEvent evt) {
            }

            public void internalFrameDeiconified(InternalFrameEvent evt) {
            }

            public void internalFrameIconified(InternalFrameEvent evt) {
            }

            public void internalFrameOpened(InternalFrameEvent evt) {
            }
        });
    }

    public void iniciarIntervaloExibicao() {
        this.setIntervaloExibicao(new IntervaloExibicao(this));
    }

    private void janelaAtivada() {
        //        tela.getComboAcoes().setSelectedItem(getAcao());
        tela.getComboAcoes().alterarSelecaoSemDispararTroca(getAcao());
    }

    private void janelaFechada() {
        tela.excluirJanela(this);
        tela.ativarPrimeiraJanela();
    }

    public void atualizarPainel() {
        panelGraficos.setCursorExtendido(Controle.getConfiguracoesUsuario().isCursorExtendido());
        panelGraficos.setChart(construtorGrafico.criarJFreeChart());
        panelMolduras.reiniciarMolduras();
    }

    public void trocarAcao(Acao novaAcao) {
        if (novaAcao.getCodAcao().startsWith("*")) {
            Controle.exibirErro("No existe arquivo de dados deste papel!");
            return;
        }
        salvarAnaliseAcao();
        Acao acaoAntiga = getAcao();
        this.setAcao(novaAcao);
        Controle.apagarRegistros(acaoAntiga);
        this.setTitle(getAcao().getCodAcao() + " - " + getAcao().getNomeAcao());
        getIntervaloExibicao().atualizarIntervaloExibicaoAposTrocaDeAcao();
        this.getPanelMolduras().reiniciarMolduras();
    }

    public TelaGrafix getTela() {
        return tela;
    }

    public void setTela(TelaGrafix tela) {
        this.tela = tela;
    }

    public Acao getAcao() {
        return acao;
    }

    public void setAcao(Acao acao) {
        this.acao = acao;
    }

    public DateAxis getDomainAxis() {
        return getPanelGraficos().getDomainAxis();
    }

    public ValueAxis getValueAxisCandles() {
        return getPanelGraficos().getValueAxisCandles();
    }

    public PanelGraficos getPanelGraficos() {
        return panelGraficos;
    }

    public void setPanelGraficos(PanelGraficos panelGraficos) {
        this.panelGraficos = panelGraficos;
    }

    public void salvarAnaliseAcao() {
        LeitorArquivoAnalise.getInstance().salvar(getAcao().getAnalise());
    }

    public ConfiguracoesJanela getConfiguracoesJanela() {
        return configuracoes;
    }

    public void setConfiguracoesJanela(ConfiguracoesJanela configuracoes) {
        this.configuracoes = configuracoes;
    }

    public PanelMolduras getPanelMolduras() {
        return panelMolduras;
    }

    public void setPanelMolduras(PanelMolduras panelMolduras) {
        this.panelMolduras = panelMolduras;
    }

    public void adicionarEixoExtra(EixoExtra eixoExtra) {
        getConfiguracoesJanela().getEixosExtras().add(eixoExtra);
        atualizarPainel();
    }

    public void removerEixoExtra(EixoExtra eixoExtra) {
        getConfiguracoesJanela().getEixosExtras().remove(eixoExtra);
        atualizarPainel();
    }

    public void apagarTodosOsElementosGraficos() {
        getAcao().getAnalise().apagarObjetosAnalise();
        getTela().atualizarJanelasGraficos();
    }

    public IntervaloExibicao getIntervaloExibicao() {
        return intervalo;
    }

    public void setIntervaloExibicao(IntervaloExibicao intervalo) {
        this.intervalo = intervalo;
    }
}