Package com.sevenrtc.aas.ui

Source Code of com.sevenrtc.aas.ui.RelatorioTableTituloDialog

/**
*
*/
package com.sevenrtc.aas.ui;

import com.sevenrtc.aas.shared.RelatoriosCSV;

import com.jgoodies.forms.layout.CellConstraints;
import com.jgoodies.forms.layout.FormLayout;
import com.jgoodies.looks.plastic.PlasticXPLookAndFeel;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSeparator;
import javax.swing.JTable;
import javax.swing.UIManager;

/**
* Classe de interface para relatórios diversos
*
* @author Anthony Accioly
*
*/
public class RelatorioTableTituloDialog extends JPanel {
  /**
   *
   */
  private static final long serialVersionUID = 6479814357522126962L;

  /**
   * Main method for panel
   */
  public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
      public void run() {
        try {
          UIManager.setLookAndFeel(new PlasticXPLookAndFeel());
          JFrame frame = new JFrame();
          frame.setSize(600, 400);
          frame.setLocation(100, 100);
          frame.getContentPane().add(new RelatorioTableTituloDialog());
          frame.setVisible(true);

          frame.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent evt) {
              System.exit(0);
            }
          });
        } catch (Exception e) {
          e.printStackTrace();
        }

      }
    });

  }

  private int tipoRelatorio;

  private String titulo;

  private String subtitulo;

  private JTable tabelaResultados = new JTable();

  private JSeparator linhaSeparatoria = new JSeparator();

  private JButton botaoExportar = new JButton();

  private JLabel labelTituloRelatorio = new JLabel();

  private JLabel labelSubtitulo = new JLabel();

  /**
   * Construtor padrão da classe
   */
  public RelatorioTableTituloDialog() {
    initializePanel();
  }

  /**
   * Construtor da classe para ser utilizado com parametros de configuração
   *
   * @param titulo
   *            titulo da janela
   * @param subtitulo
   *            subtitulo da janela
   * @param tipoRelatorio
   *            inteiro representando o tipo de relatorio
   */
  public RelatorioTableTituloDialog(String titulo, String subtitulo,
      int tipoRelatorio) {
    this.titulo = titulo;
    this.subtitulo = subtitulo;
    this.tipoRelatorio = tipoRelatorio;
  }

  /**
   * Adds fill components to empty cells in the first row and first column of
   * the grid. This ensures that the grid spacing will be the same as shown in
   * the designer.
   *
   * @param cols
   *            an array of column indices in the first row where fill
   *            components should be added.
   * @param rows
   *            an array of row indices in the first column where fill
   *            components should be added.
   */
  private void addFillComponents(Container panel, int[] cols, int[] rows) {
    Dimension filler = new Dimension(10, 10);

    boolean filled_cell_11 = false;
    CellConstraints cc = new CellConstraints();
    if (cols.length > 0 && rows.length > 0) {
      if (cols[0] == 1 && rows[0] == 1) {
        /** add a rigid area */
        panel.add(Box.createRigidArea(filler), cc.xy(1, 1));
        filled_cell_11 = true;
      }
    }

    for (int index = 0; index < cols.length; index++) {
      if (cols[index] == 1 && filled_cell_11) {
        continue;
      }
      panel.add(Box.createRigidArea(filler), cc.xy(cols[index], 1));
    }

    for (int index = 0; index < rows.length; index++) {
      if (rows[index] == 1 && filled_cell_11) {
        continue;
      }
      panel.add(Box.createRigidArea(filler), cc.xy(1, rows[index]));
    }

  }

  /** Metodo ativado juntamente ao botao exportar */
  private void botaoExportar_actionPerformed() {
    RelatoriosCSV.extraiCSV(tipoRelatorio, tabelaResultados);
  }

  /**
   * Retorna a Frame interna deste Relatório
   *
   * @param titulo
   *            String de titulo da conta atual
   */
  public JInternalFrame createInternalFrame(String titulo) {

    JInternalFrame temp = new JInternalFrame(titulo, true, true, true, true);
    Dimension dskSize = PrincipalFrame.getDesktopSize();
    dskSize.setSize(dskSize.getWidth() * 0.9, dskSize.getHeight() * 0.9);
    temp.setLocation(5, 5);
    temp.setSize(dskSize);

    temp.setDefaultCloseOperation(JInternalFrame.DISPOSE_ON_CLOSE);
    temp.getContentPane().add(createPanel());
    temp.setVisible(true);

    return temp;
  }

  /**
   * Cria o painel interno pertencente à Frame
   *
   * @return painel interno linkado à todos os componentes
   */
  public JPanel createPanel() {
    JPanel jpanel1 = new JPanel();
    FormLayout formlayout1 = new FormLayout(
        "FILL:DEFAULT:NONE,FILL:DEFAULT:GROW(1.0),FILL:80DLU:NONE,FILL:DEFAULT:NONE",
        "CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,FILL:DEFAULT:GROW(1.0),CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,FILL:20DLU:NONE,CENTER:DEFAULT:NONE");
    CellConstraints cc = new CellConstraints();
    jpanel1.setLayout(formlayout1);

    tabelaResultados.setName("tabelaResultados");
    tabelaResultados.setCellSelectionEnabled(true);
    tabelaResultados.setFillsViewportHeight(true);
    JScrollPane jscrollpane1 = new JScrollPane();
    jscrollpane1.setViewportView(tabelaResultados);
    jpanel1.add(jscrollpane1, cc.xywh(2, 6, 2, 1));

    linhaSeparatoria.setName("linhaSeparatoria");
    jpanel1.add(linhaSeparatoria, cc.xywh(2, 8, 2, 1));

    botaoExportar.setMnemonic('x');
    botaoExportar.setText("Exportar CSV");
    botaoExportar.setToolTipText("Exporta um arquivo CSV da tabela atual");
    botaoExportar.addActionListener(new ActionListener() {

      public void actionPerformed(ActionEvent e) {
        botaoExportar_actionPerformed();
      }
    });
    jpanel1.add(botaoExportar, cc.xy(3, 10));

    labelTituloRelatorio.setFont(new Font("Arial", Font.BOLD, 16));
    labelTituloRelatorio.setName("labelTituloRelatorio");
    labelTituloRelatorio.setText(titulo);
    labelTituloRelatorio.setHorizontalAlignment(JLabel.CENTER);
    jpanel1.add(labelTituloRelatorio, cc.xywh(2, 2, 2, 1));

    labelSubtitulo.setFont(new Font("Arial", Font.BOLD, 16));
    labelSubtitulo.setName("labelSubtitulo");
    labelSubtitulo.setText(subtitulo);
    labelSubtitulo.setHorizontalAlignment(JLabel.CENTER);
    jpanel1.add(labelSubtitulo, cc.xywh(2, 4, 2, 1));

    addFillComponents(jpanel1, new int[] { 1, 2, 3, 4 }, new int[] { 1, 2,
        3, 4, 5, 6, 7, 8, 9, 10, 11 });
    return jpanel1;
  }

  /**
   * @return o subtitulo da janela
   */
  public final String getSubtitulo() {
    return subtitulo;
  }

  /**
   * @return a tabela de resultados do relatório
   */
  public JTable getTabelaResultados() {
    return tabelaResultados;
  }

  /**
   * @return um inteiro representando o tipo de relatório
   */
  public final int getTipoRelatorio() {
    return tipoRelatorio;
  }

  /**
   * @return o titulo da janela
   */
  public final String getTitulo() {
    return titulo;
  }

  /**
   * Inicializador da janela para o construtor padrão
   */
  protected void initializePanel() {
    setLayout(new BorderLayout());
    add(createPanel(), BorderLayout.CENTER);
  }

  /**
   * @param subtitulo
   *            subtitulo da janela
   */
  public final void setSubtitulo(String subtitulo) {
    this.subtitulo = subtitulo;
  }

  /**
   * @param tabelaResultados
   *            tabela de resultados do relatório
   */
  public void setTabelaResultados(JTable tabelaResultados) {
    this.tabelaResultados = tabelaResultados;
  }

  /**
   * @param tipoRelatorio
   *            o tipo atual do relatório
   */
  public final void setTipoRelatorio(int tipoRelatorio) {
    this.tipoRelatorio = tipoRelatorio;
  }

  /**
   * @param titulo
   *            o titulo da janela
   */
  public final void setTitulo(String titulo) {
    this.titulo = titulo;
  }

}
TOP

Related Classes of com.sevenrtc.aas.ui.RelatorioTableTituloDialog

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.