forked from Coded/SIPRP
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
236 lines
6.0 KiB
236 lines
6.0 KiB
package siprp.higiene.relatorio;
|
|
|
|
import static com.evolute.utils.strings.UnicodeLatin1Map.ccedil;
|
|
import static com.evolute.utils.strings.UnicodeLatin1Map.oacute;
|
|
import info.clearthought.layout.TableLayout;
|
|
import info.clearthought.layout.TableLayoutConstraints;
|
|
|
|
import java.awt.Color;
|
|
import java.awt.Container;
|
|
import java.awt.Dimension;
|
|
import java.awt.event.ItemEvent;
|
|
import java.awt.event.ItemListener;
|
|
import java.util.Date;
|
|
import java.util.List;
|
|
|
|
import javax.swing.BorderFactory;
|
|
import javax.swing.JComboBox;
|
|
import javax.swing.JFrame;
|
|
import javax.swing.JLabel;
|
|
import javax.swing.SwingUtilities;
|
|
|
|
import leaf.ui.LeafError;
|
|
import siprp.database.cayenne.objects.Empresas;
|
|
import siprp.database.cayenne.objects.Estabelecimentos;
|
|
import siprp.database.cayenne.objects.HsRelatorio;
|
|
import siprp.database.cayenne.objects.MarcacoesEstabelecimento;
|
|
import siprp.logic.HigieneSegurancaLogic;
|
|
|
|
import com.evolute.utils.tracker.TrackableWindow;
|
|
|
|
public class RelatorioHigieneSegurancaWindow extends JFrame implements TrackableWindow
|
|
{
|
|
private static final long serialVersionUID = 1L;
|
|
|
|
public static final Color COLOR_RISCO_OK = new Color(200,255,200);
|
|
|
|
public static final Color COLOR_RISCO_OK_SEL = new Color(140,240,140);
|
|
|
|
public static final Color COLOR_MEDIDA_OK = new Color(200,230,255);
|
|
|
|
public static final Color COLOR_MEDIDA_OK_SEL = new Color(160,190,255);
|
|
|
|
public static final String TITLE = "Relat" + oacute + "rios de Higiene e Seguran" + ccedil + "a no Trabalho";
|
|
|
|
public static final Dimension SIZE = new Dimension( 1024, 700 );
|
|
|
|
private final JComboBox comboEmpresas = new JComboBox();
|
|
|
|
private final JComboBox comboEstabelecimentos = new JComboBox();
|
|
|
|
private final JComboBox comboVisitas = new JComboBox();
|
|
|
|
private final PanelRelatorio panelRelatorio = new PanelRelatorio();
|
|
|
|
public RelatorioHigieneSegurancaWindow()
|
|
{
|
|
setupListeners();
|
|
startupComponents();
|
|
startupLayout();
|
|
placeComponents();
|
|
setTitle( TITLE );
|
|
setSize( SIZE );
|
|
setLocationRelativeTo( null );
|
|
}
|
|
|
|
private void startupComponents()
|
|
{
|
|
panelRelatorio.setBorder( BorderFactory.createTitledBorder( "Relat" + oacute + "rio" ) );
|
|
for( Empresas empresa : HigieneSegurancaLogic.getAllEmpresas() )
|
|
{
|
|
comboEmpresas.addItem( empresa );
|
|
}
|
|
}
|
|
|
|
private void startupLayout()
|
|
{
|
|
TableLayout layout = new TableLayout(
|
|
new double[]{ TableLayout.MINIMUM, TableLayout.FILL, TableLayout.MINIMUM, TableLayout.FILL },
|
|
new double[]{ TableLayout.MINIMUM, TableLayout.MINIMUM, TableLayout.FILL }
|
|
);
|
|
layout.setVGap( 5 );
|
|
layout.setHGap( 5 );
|
|
getContentPane().setLayout( layout );
|
|
}
|
|
|
|
private void placeComponents()
|
|
{
|
|
Container pane = getContentPane();
|
|
pane.add( new JLabel("Empresa"), new TableLayoutConstraints( 0, 0 ) );
|
|
pane.add( comboEmpresas, new TableLayoutConstraints( 1, 0, 3, 0 ) );
|
|
pane.add( new JLabel("Estabelecimento"), new TableLayoutConstraints( 0, 1 ) );
|
|
pane.add( comboEstabelecimentos, new TableLayoutConstraints( 1, 1 ) );
|
|
pane.add( new JLabel("Visita"), new TableLayoutConstraints( 2, 1 ) );
|
|
pane.add( comboVisitas, new TableLayoutConstraints( 3, 1 ) );
|
|
pane.add( panelRelatorio, new TableLayoutConstraints(0,2,3,2));
|
|
}
|
|
|
|
private void setupListeners()
|
|
{
|
|
comboEmpresas.addItemListener( new ItemListener()
|
|
{
|
|
@Override
|
|
public void itemStateChanged( ItemEvent e )
|
|
{
|
|
if( e.getStateChange() == ItemEvent.SELECTED )
|
|
{
|
|
fillEstabelecimentos( (Empresas) e.getItem() );
|
|
}
|
|
}
|
|
} );
|
|
comboEstabelecimentos.addItemListener( new ItemListener()
|
|
{
|
|
@Override
|
|
public void itemStateChanged( ItemEvent e )
|
|
{
|
|
if( e.getStateChange() == ItemEvent.SELECTED )
|
|
{
|
|
fillVisitas( (Estabelecimentos) e.getItem() );
|
|
}
|
|
}
|
|
} );
|
|
comboVisitas.addItemListener( new ItemListener()
|
|
{
|
|
@Override
|
|
public void itemStateChanged( ItemEvent e )
|
|
{
|
|
if( e.getStateChange() == ItemEvent.SELECTED )
|
|
{
|
|
fillRelatorio( (MarcacoesEstabelecimento) e.getItem() );
|
|
}
|
|
}
|
|
} );
|
|
}
|
|
|
|
private void fillEstabelecimentos( Empresas empresa )
|
|
{
|
|
comboEstabelecimentos.removeAllItems();
|
|
if( empresa != null )
|
|
{
|
|
for( Estabelecimentos estabelecimento : empresa.getEstabelecimentosArray() )
|
|
{
|
|
comboEstabelecimentos.addItem( estabelecimento );
|
|
}
|
|
}
|
|
}
|
|
|
|
private void fillVisitas( Estabelecimentos estabelecimento )
|
|
{
|
|
comboVisitas.removeAllItems();
|
|
if( estabelecimento != null )
|
|
{
|
|
for( MarcacoesEstabelecimento visita : estabelecimento.getMarcacoesEstabelecimentoArray() )
|
|
{
|
|
if( "y".equals( visita.getRealizada() ) )
|
|
{
|
|
comboVisitas.addItem( visita );
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
private void fillRelatorio( MarcacoesEstabelecimento visita )
|
|
{
|
|
try
|
|
{
|
|
boolean carregarDadosEstabelecimento = false;
|
|
panelRelatorio.setRelatorio( null, carregarDadosEstabelecimento );
|
|
if( visita != null )
|
|
{
|
|
HsRelatorio relatorio = null;
|
|
List<HsRelatorio> relatorios = visita.getHsRelatorioArray();
|
|
Date data = null;
|
|
for( HsRelatorio current : relatorios )
|
|
{
|
|
boolean newest = data == null ? true : (data.before( current.getData() ) );
|
|
if( newest )
|
|
{
|
|
data = current.getData();
|
|
relatorio = current;
|
|
}
|
|
}
|
|
if( relatorio == null )
|
|
{
|
|
relatorio = new HsRelatorio();
|
|
relatorio.setData( new Date() );
|
|
relatorio.setToHsMarcacoesEstabelecimento( visita );
|
|
relatorio.save();
|
|
carregarDadosEstabelecimento = true;
|
|
}
|
|
panelRelatorio.setRelatorio( relatorio, carregarDadosEstabelecimento );;
|
|
}
|
|
} catch( Exception e )
|
|
{
|
|
LeafError.error(e);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void open()
|
|
{
|
|
setVisible( true );
|
|
}
|
|
|
|
public void close()
|
|
{
|
|
SwingUtilities.invokeLater( new Runnable()
|
|
{
|
|
public void run()
|
|
{
|
|
setVisible( false );
|
|
dispose();
|
|
}
|
|
} );
|
|
}
|
|
|
|
@Override
|
|
public boolean closeIfPossible()
|
|
{
|
|
close();
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public void refresh()
|
|
{
|
|
|
|
}
|
|
|
|
public static void main( String[] args )
|
|
{
|
|
RelatorioHigieneSegurancaWindow window = new RelatorioHigieneSegurancaWindow();
|
|
window.setVisible( true );
|
|
window.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
|
|
}
|
|
}
|