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.
344 lines
11 KiB
344 lines
11 KiB
package siprp.higiene.relatorio;
|
|
|
|
import static com.evolute.utils.strings.UnicodeLatin1Map.atilde;
|
|
import static com.evolute.utils.strings.UnicodeLatin1Map.ccedil;
|
|
import static com.evolute.utils.strings.UnicodeLatin1Map.eacute;
|
|
import static com.evolute.utils.strings.UnicodeLatin1Map.oacute;
|
|
import static com.evolute.utils.strings.UnicodeLatin1Map.otilde;
|
|
import info.clearthought.layout.TableLayout;
|
|
import info.clearthought.layout.TableLayoutConstraints;
|
|
|
|
import java.awt.Component;
|
|
import java.awt.Dimension;
|
|
import java.awt.event.ActionEvent;
|
|
import java.awt.event.ActionListener;
|
|
import java.util.Date;
|
|
import java.util.EventObject;
|
|
|
|
import javax.swing.BorderFactory;
|
|
import javax.swing.ButtonGroup;
|
|
import javax.swing.JLabel;
|
|
import javax.swing.JPanel;
|
|
import javax.swing.JRadioButton;
|
|
import javax.swing.JTabbedPane;
|
|
import javax.swing.JTextField;
|
|
import javax.swing.event.CaretEvent;
|
|
import javax.swing.event.CaretListener;
|
|
import javax.swing.event.ChangeEvent;
|
|
import javax.swing.event.ChangeListener;
|
|
|
|
import leaf.ui.LeafIconButton;
|
|
import siprp.database.cayenne.objects.HsRelatorio;
|
|
import siprp.database.cayenne.objects.MarcacoesEstabelecimento;
|
|
import siprp.database.cayenne.objects.MarcacoesTecnicosHst;
|
|
import siprp.higiene.gestao.equipamentos.AdicionarEquipamentosPanel;
|
|
|
|
import com.evolute.utils.ui.calendar.JCalendarPanel;
|
|
|
|
public class PanelRelatorio extends JPanel implements CaretListener, ChangeListener, ActionListener
|
|
{
|
|
|
|
private static final long serialVersionUID = 1L;
|
|
|
|
private static final String ICON_NAME_SAVE = "siprp/higiene/gestao/riscos/save.png";
|
|
private static final String ICON_NAME_REVERT = "siprp/higiene/gestao/riscos/revert.png";
|
|
private static final String ICON_NAME_SUBMIT = "siprp/higiene/relatorio/submit.png";
|
|
|
|
private final JCalendarPanel dataRelatorio = new JCalendarPanel( null );
|
|
|
|
private final JRadioButton radioInicial = new JRadioButton( "Inicial" );
|
|
private final JRadioButton radioPeriodica = new JRadioButton( "Peri" + oacute + "dica" );
|
|
|
|
private final JTextField fieldTecnico = new JTextField();
|
|
|
|
private final JPanel panelAcompanhantes = new JPanel();
|
|
|
|
private final JTextField fieldNome1 = new JTextField();
|
|
private final JTextField fieldNome2 = new JTextField();
|
|
private final JTextField fieldNome3 = new JTextField();
|
|
|
|
private final JTextField fieldFuncao1 = new JTextField();
|
|
private final JTextField fieldFuncao2 = new JTextField();
|
|
private final JTextField fieldFuncao3 = new JTextField();
|
|
|
|
private final LeafIconButton buttonSave = LeafIconButton.createButton( ICON_NAME_SAVE );
|
|
private final LeafIconButton buttonRevert = LeafIconButton.createButton( ICON_NAME_REVERT );
|
|
private final LeafIconButton buttonSubmit = LeafIconButton.createButton( "Submeter plano de actua" + ccedil + atilde + "o", ICON_NAME_SUBMIT );
|
|
|
|
private final AdicionarEquipamentosPanel panelEquipamentos = new AdicionarEquipamentosPanel();
|
|
|
|
private final JTabbedPane tabs = new JTabbedPane();
|
|
|
|
private final PlanoActuacaoPanel panelPlano = new PlanoActuacaoPanel();
|
|
|
|
private final RelatorioLegislacoesPanel panelLegislacao = new RelatorioLegislacoesPanel();
|
|
|
|
ButtonGroup bg = new ButtonGroup();
|
|
|
|
private HsRelatorio relatorio = null;
|
|
|
|
public PanelRelatorio()
|
|
{
|
|
setupListeners();
|
|
startupComponents();
|
|
startupLayout();
|
|
placeComponents();
|
|
}
|
|
|
|
private void startupComponents()
|
|
{
|
|
dataRelatorio.setPreferredSize( new Dimension( 150, 0 ) );
|
|
panelEquipamentos.setPreferredSize( new Dimension( 200, 0 ) );
|
|
fieldFuncao1.setPreferredSize( new Dimension( 100, 0 ) );
|
|
bg.add( radioInicial );
|
|
bg.add( radioPeriodica );
|
|
panelAcompanhantes.setBorder( BorderFactory.createTitledBorder( "Pessoas que acompanharam" ) );
|
|
panelEquipamentos.setBorder( BorderFactory.createTitledBorder( "Equipamentos de medi"+ccedil+atilde+"o" ) );
|
|
tabs.addTab( "Plano de actua" + ccedil + atilde + "o", panelPlano );
|
|
tabs.addTab( "Legisla" + ccedil + otilde + "es", panelLegislacao );
|
|
}
|
|
|
|
private void startupLayout()
|
|
{
|
|
TableLayout layout = new TableLayout( new double[] {
|
|
TableLayout.MINIMUM, TableLayout.MINIMUM, TableLayout.MINIMUM, TableLayout.PREFERRED, TableLayout.MINIMUM, TableLayout.MINIMUM, TableLayout.MINIMUM, TableLayout.FILL
|
|
}, new double[] {
|
|
TableLayout.MINIMUM, TableLayout.MINIMUM, TableLayout.MINIMUM, TableLayout.MINIMUM, TableLayout.FILL
|
|
} );
|
|
layout.setVGap( 5 );
|
|
layout.setHGap( 5 );
|
|
setLayout( layout );
|
|
|
|
layout = new TableLayout( new double[] {
|
|
TableLayout.MINIMUM, TableLayout.FILL, TableLayout.MINIMUM, TableLayout.PREFERRED
|
|
}, new double[] {
|
|
TableLayout.MINIMUM, TableLayout.MINIMUM, TableLayout.MINIMUM
|
|
} );
|
|
layout.setVGap( 5 );
|
|
layout.setHGap( 5 );
|
|
panelAcompanhantes.setLayout( layout );
|
|
}
|
|
|
|
private void placeComponents()
|
|
{
|
|
panelAcompanhantes.add( new JLabel( "Nome" ), new TableLayoutConstraints( 0, 0 ) );
|
|
panelAcompanhantes.add( fieldNome1, new TableLayoutConstraints( 1, 0 ) );
|
|
panelAcompanhantes.add( new JLabel( "Fun" + ccedil + atilde + "o" ), new TableLayoutConstraints( 2, 0 ) );
|
|
panelAcompanhantes.add( fieldFuncao1, new TableLayoutConstraints( 3, 0 ) );
|
|
panelAcompanhantes.add( new JLabel( "Nome" ), new TableLayoutConstraints( 0, 1 ) );
|
|
panelAcompanhantes.add( fieldNome2, new TableLayoutConstraints( 1, 1 ) );
|
|
panelAcompanhantes.add( new JLabel( "Fun" + ccedil + atilde + "o" ), new TableLayoutConstraints( 2, 1 ) );
|
|
panelAcompanhantes.add( fieldFuncao2, new TableLayoutConstraints( 3, 1 ) );
|
|
panelAcompanhantes.add( new JLabel( "Nome" ), new TableLayoutConstraints( 0, 2 ) );
|
|
panelAcompanhantes.add( fieldNome3, new TableLayoutConstraints( 1, 2 ) );
|
|
panelAcompanhantes.add( new JLabel( "Fun" + ccedil + atilde + "o" ), new TableLayoutConstraints( 2, 2 ) );
|
|
panelAcompanhantes.add( fieldFuncao3, new TableLayoutConstraints( 3, 2 ) );
|
|
|
|
TableLayout layout = new TableLayout( new double[] {
|
|
TableLayout.MINIMUM, TableLayout.MINIMUM, TableLayout.FILL, TableLayout.MINIMUM
|
|
}, new double[] {
|
|
TableLayout.MINIMUM
|
|
} );
|
|
layout.setVGap( 5 );
|
|
layout.setHGap( 5 );
|
|
JPanel panel = new JPanel();
|
|
panel.setLayout( layout );
|
|
|
|
panel.add( buttonSave, new TableLayoutConstraints( 0, 0 ) );
|
|
panel.add( buttonRevert, new TableLayoutConstraints( 1, 0 ) );
|
|
panel.add( buttonSubmit, new TableLayoutConstraints( 3, 0 ) );
|
|
|
|
add( panel, new TableLayoutConstraints( 0, 0, 7, 0 ) );
|
|
add( new JLabel( "Data do relat" + oacute + "rio" ), new TableLayoutConstraints( 0, 1, 2, 1 ) );
|
|
add( dataRelatorio, new TableLayoutConstraints( 3, 1 ) );
|
|
add( new JLabel( "Avalia" + ccedil + atilde + "o" ), new TableLayoutConstraints( 4, 1 ) );
|
|
add( radioInicial, new TableLayoutConstraints( 5, 1 ) );
|
|
add( radioPeriodica, new TableLayoutConstraints( 6, 1 ) );
|
|
add( new JLabel( "T" + eacute + "cnico de H.S." ), new TableLayoutConstraints( 0, 2, 2, 2 ) );
|
|
add( fieldTecnico, new TableLayoutConstraints( 3, 2, 6, 2 ) );
|
|
add( panelEquipamentos, new TableLayoutConstraints( 7, 1, 7, 3 ) );
|
|
add( panelAcompanhantes, new TableLayoutConstraints( 0, 3, 6, 3 ) );
|
|
add( tabs, new TableLayoutConstraints( 0, 4, 7, 4 ) );
|
|
}
|
|
|
|
private void setupListeners()
|
|
{
|
|
fieldFuncao1.addCaretListener( this );
|
|
fieldFuncao2.addCaretListener( this );
|
|
fieldFuncao3.addCaretListener( this );
|
|
fieldNome1.addCaretListener( this );
|
|
fieldNome2.addCaretListener( this );
|
|
fieldNome3.addCaretListener( this );
|
|
dataRelatorio.addChangeListener( this );
|
|
radioInicial.addActionListener( this );
|
|
radioPeriodica.addActionListener( this );
|
|
buttonSave.addActionListener( new ActionListener()
|
|
{
|
|
@Override
|
|
public void actionPerformed( ActionEvent e )
|
|
{
|
|
save();
|
|
}
|
|
} );
|
|
buttonRevert.addActionListener( new ActionListener()
|
|
{
|
|
@Override
|
|
public void actionPerformed( ActionEvent e )
|
|
{
|
|
revert();
|
|
}
|
|
} );
|
|
buttonSubmit.addActionListener( new ActionListener()
|
|
{
|
|
@Override
|
|
public void actionPerformed( ActionEvent e )
|
|
{
|
|
submit();
|
|
}
|
|
} );
|
|
}
|
|
|
|
private void submit()
|
|
{
|
|
if( relatorio != null )
|
|
{
|
|
relatorio.setIsSubmetido( new Date() );
|
|
relatorio.save();
|
|
refresh();
|
|
}
|
|
}
|
|
|
|
private void save()
|
|
{
|
|
if( relatorio != null )
|
|
{
|
|
relatorio.setData( dataRelatorio.getDate() );
|
|
relatorio.setAvaliacaoInicial( radioInicial.isSelected() );
|
|
// MarcacoesEstabelecimento marcacao = relatorio.getToHsMarcacoesEstabelecimento();
|
|
// if( marcacao != null )
|
|
// {
|
|
// MarcacoesTecnicosHst tecnico = marcacao.getToMarcacoesTecnicosHst();
|
|
// if( tecnico != null )
|
|
// {
|
|
// tecnico.setNome( fieldTecnico.getText() );
|
|
// }
|
|
// }
|
|
}
|
|
relatorio.setAcompanhante1( fieldNome1.getText() );
|
|
relatorio.setAcompanhante2( fieldNome2.getText() );
|
|
relatorio.setAcompanhante3( fieldNome3.getText() );
|
|
|
|
relatorio.setFuncaoAcompanhante1(fieldFuncao1.getText());
|
|
relatorio.setFuncaoAcompanhante2(fieldFuncao2.getText());
|
|
relatorio.setFuncaoAcompanhante3(fieldFuncao3.getText());
|
|
relatorio.save();
|
|
refresh();
|
|
buttonRevert.setEnabled( false );
|
|
buttonSave.setEnabled( false );
|
|
}
|
|
|
|
private void revert()
|
|
{
|
|
refresh();
|
|
buttonRevert.setEnabled( false );
|
|
buttonSave.setEnabled( false );
|
|
}
|
|
|
|
private void refresh()
|
|
{
|
|
dataRelatorio.setDate( relatorio == null ? null : relatorio.getData() );
|
|
if( relatorio == null || relatorio.getAvaliacaoInicial() == null )
|
|
{
|
|
bg.clearSelection();
|
|
}
|
|
else
|
|
{
|
|
radioInicial.setSelected( relatorio.getAvaliacaoInicial() );
|
|
radioPeriodica.setSelected( !relatorio.getAvaliacaoInicial() );
|
|
}
|
|
String tecnicoName = null;
|
|
if(relatorio != null)
|
|
{
|
|
MarcacoesEstabelecimento marcacao = relatorio.getToHsMarcacoesEstabelecimento();
|
|
if( marcacao != null )
|
|
{
|
|
MarcacoesTecnicosHst tecnico = marcacao.getToMarcacoesTecnicosHst();
|
|
if( tecnico != null )
|
|
{
|
|
tecnicoName = tecnico.getNome();
|
|
}
|
|
}
|
|
}
|
|
fieldTecnico.setText( tecnicoName );
|
|
fieldNome1.setText( relatorio == null ? null : relatorio.getAcompanhante1() );
|
|
fieldNome2.setText( relatorio == null ? null : relatorio.getAcompanhante2() );
|
|
fieldNome3.setText( relatorio == null ? null : relatorio.getAcompanhante3() );
|
|
fieldFuncao1.setText( relatorio == null ? null : relatorio.getFuncaoAcompanhante1() );
|
|
fieldFuncao2.setText( relatorio == null ? null : relatorio.getFuncaoAcompanhante2() );
|
|
fieldFuncao3.setText( relatorio == null ? null : relatorio.getFuncaoAcompanhante3() );
|
|
}
|
|
|
|
private void setEnabled()
|
|
{
|
|
boolean enabled = relatorio != null && relatorio.getIsSubmetido() == null;
|
|
dataRelatorio.setEnabled( enabled );
|
|
radioInicial.setEnabled( enabled );;
|
|
radioPeriodica.setEnabled( enabled );
|
|
fieldTecnico.setEnabled( false );
|
|
fieldNome1.setEnabled( enabled );
|
|
fieldNome2.setEnabled( enabled );
|
|
fieldNome3.setEnabled( enabled );
|
|
fieldFuncao1.setEnabled( enabled );
|
|
fieldFuncao2.setEnabled( enabled );
|
|
fieldFuncao3.setEnabled( enabled );
|
|
buttonSubmit.setEnabled( enabled );
|
|
}
|
|
|
|
public void setRelatorio( HsRelatorio relatorio,boolean create )
|
|
{
|
|
this.relatorio = relatorio;
|
|
buttonSave.setEnabled( false );
|
|
buttonRevert.setEnabled( false );
|
|
panelEquipamentos.setRelatorio( relatorio );
|
|
panelPlano.setRelatorio( relatorio );
|
|
if( create )
|
|
{
|
|
panelPlano.revert(false);
|
|
}
|
|
refresh();
|
|
setEnabled();
|
|
}
|
|
|
|
private void updated( EventObject e )
|
|
{
|
|
Object source = e.getSource();
|
|
if( source instanceof Component )
|
|
{
|
|
if( ( (Component) source).isEnabled() )
|
|
{
|
|
buttonSave.setEnabled( true );
|
|
buttonRevert.setEnabled( true );
|
|
}
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void caretUpdate( CaretEvent e )
|
|
{
|
|
updated(e);
|
|
}
|
|
|
|
@Override
|
|
public void stateChanged( ChangeEvent e )
|
|
{
|
|
updated(e);
|
|
}
|
|
|
|
@Override
|
|
public void actionPerformed( ActionEvent e )
|
|
{
|
|
updated(e);
|
|
}
|
|
|
|
}
|