git-svn-id: https://svn.coded.pt/svn/SIPRP@809 bb69d46d-e84e-40c8-a05a-06db0d633741

0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z
Tiago Simão 17 years ago
parent dd5412e5e4
commit 08b9f2c410

@ -23,6 +23,7 @@ import siprp.database.cayenne.objects.BaseObject;
import siprp.database.cayenne.objects.Empresas;
import siprp.database.cayenne.objects.HsPosto;
import siprp.database.cayenne.objects.HsPostoRisco;
import siprp.database.cayenne.objects.HsRelatorioPosto;
import siprp.database.cayenne.objects.HsRisco;
import siprp.database.cayenne.objects.HsRiscoEmpresa;
import siprp.logic.HigieneSegurancaLogic;
@ -31,6 +32,8 @@ public class AdicionarRiscosPanel extends JPanel
{
private static final long serialVersionUID = 1L;
public static final String SELECTION_CHANGED = "RISCOS_SELECTION_CHANGED";
private final LeafButton buttonAdicionar = new LeafButton("Adicionar");
@ -115,6 +118,12 @@ public class AdicionarRiscosPanel extends JPanel
public void valueChanged( TreeSelectionEvent e )
{
setEnabled();
TreePath path = tree.getSelectionPath();
if( path != null )
{
Object selection = path.getLastPathComponent();
firePropertyChange( SELECTION_CHANGED, null, selection );
}
}
} );
}

@ -0,0 +1,126 @@
package siprp.higiene.relatorio;
import info.clearthought.layout.TableLayout;
import info.clearthought.layout.TableLayoutConstraints;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreePath;
import javax.swing.tree.TreeSelectionModel;
import leaf.ui.LeafButton;
import leaf.ui.TreeTools;
import siprp.database.cayenne.objects.HsRelatorio;
import siprp.database.cayenne.objects.HsRelatorioPosto;
import siprp.logic.HigieneSegurancaLogic;
public class AdicionarAreasRelatorioPanel extends JPanel
{
private static final long serialVersionUID = 1L;
public static final String SELECTION_CHANGED = "SELECTION_CHANGED";
private final LeafButton buttonAdicionar = new LeafButton("Adicionar");
private final LeafButton buttonRemover = new LeafButton("Remover");
private final DefaultMutableTreeNode root = new DefaultMutableTreeNode();
private final DefaultTreeModel model = new DefaultTreeModel( root );
public final JTree tree = new JTree( model );
private final JScrollPane scroll = new JScrollPane( tree );
private HsRelatorio relatorio = null;
public AdicionarAreasRelatorioPanel()
{
startupComponents();
setupLayout();
placeComponents();
startupListeners();
}
private void startupComponents()
{
buttonAdicionar.setEnabled( false );
buttonRemover.setEnabled( false );
tree.setRootVisible( false );
tree.getSelectionModel().setSelectionMode( TreeSelectionModel.SINGLE_TREE_SELECTION );
}
private void setupLayout()
{
TableLayout layout = new TableLayout(
new double[]{ TableLayout.FILL },
new double[]{ TableLayout.MINIMUM, TableLayout.FILL }
);
layout.setHGap( 5 );
layout.setVGap( 5 );
setLayout( layout );
}
private void placeComponents()
{
JPanel panel = new JPanel();
TableLayout layout = new TableLayout(
new double[]{ TableLayout.MINIMUM, TableLayout.FILL, TableLayout.MINIMUM },
new double[]{ TableLayout.MINIMUM }
);
layout.setHGap( 5 );
layout.setVGap( 5 );
panel.setLayout( layout );
panel.add( buttonAdicionar, new TableLayoutConstraints( 0, 0 ) );
panel.add( buttonRemover, new TableLayoutConstraints( 2, 0 ) );
add( panel, new TableLayoutConstraints( 0, 0 ) );
add( scroll, new TableLayoutConstraints( 0, 1 ) );
}
private void startupListeners()
{
tree.getSelectionModel().addTreeSelectionListener( new TreeSelectionListener(){
@Override
public void valueChanged( TreeSelectionEvent e )
{
setEnabled();
TreePath path = tree.getSelectionPath();
Object object = path == null ? null : path.getLastPathComponent();
HsRelatorioPosto posto = object == null ? null : ( (object instanceof PostoRelatorioNode) ? (HsRelatorioPosto) ((PostoRelatorioNode) object).getUserObject() : null);
firePropertyChange( SELECTION_CHANGED, null, posto );
}
} );
}
private void setEnabled()
{
buttonAdicionar.setEnabled( false );
buttonRemover.setEnabled( false );
}
public void refresh()
{
root.removeAllChildren();
if( relatorio != null )
{
TreeTools.merge( root, HigieneSegurancaLogic.getAreasRelatorioTree( relatorio ) );
}
setEnabled();
TreeTools.refreshTree( tree, root );
}
public void setRelatorio( HsRelatorio relatorio )
{
this.relatorio = relatorio;
refresh();
}
}

@ -0,0 +1,148 @@
package siprp.higiene.relatorio;
import info.clearthought.layout.TableLayout;
import info.clearthought.layout.TableLayoutConstraints;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreePath;
import javax.swing.tree.TreeSelectionModel;
import leaf.ui.LeafButton;
import leaf.ui.TreeTools;
import siprp.database.cayenne.objects.HsRelatorioPostoMedida;
import siprp.database.cayenne.objects.HsRelatorioPosto;
import siprp.database.cayenne.objects.HsRelatorioPostoRisco;
public class AdicionarRiscosRelatorioPanel extends JPanel
{
private static final long serialVersionUID = 1L;
public static final String SELECTION_CHANGED = "RISCOS_SELECTION_CHANGED";
private final LeafButton buttonAdicionar = new LeafButton("Adicionar");
private final LeafButton buttonRemover = new LeafButton("Remover");
private final DefaultMutableTreeNode root = new DefaultMutableTreeNode();
private final DefaultTreeModel model = new DefaultTreeModel( root );
public final JTree tree = new JTree( model );
private final JScrollPane scroll = new JScrollPane( tree );
private HsRelatorioPosto posto = null;
public AdicionarRiscosRelatorioPanel()
{
startupComponents();
setupLayout();
placeComponents();
startupListeners();
}
private void startupComponents()
{
buttonAdicionar.setEnabled( false );
buttonRemover.setEnabled( false );
tree.setRootVisible( false );
tree.getSelectionModel().setSelectionMode( TreeSelectionModel.SINGLE_TREE_SELECTION );
}
private void setupLayout()
{
TableLayout layout = new TableLayout(
new double[]{ TableLayout.FILL },
new double[]{ TableLayout.MINIMUM, TableLayout.FILL }
);
layout.setHGap( 5 );
layout.setVGap( 5 );
setLayout( layout );
}
private void placeComponents()
{
JPanel panel = new JPanel();
TableLayout layout = new TableLayout(
new double[]{ TableLayout.MINIMUM, TableLayout.FILL, TableLayout.MINIMUM },
new double[]{ TableLayout.MINIMUM }
);
layout.setHGap( 5 );
layout.setVGap( 5 );
panel.setLayout( layout );
panel.add( buttonAdicionar, new TableLayoutConstraints( 0, 0 ) );
panel.add( buttonRemover, new TableLayoutConstraints( 2, 0 ) );
add( panel, new TableLayoutConstraints( 0, 0 ) );
add( scroll, new TableLayoutConstraints( 0, 1 ) );
}
private void startupListeners()
{
tree.getSelectionModel().addTreeSelectionListener( new TreeSelectionListener(){
@Override
public void valueChanged( TreeSelectionEvent e )
{
setEnabled();
Object object = null;
TreePath path = tree.getSelectionPath();
if( path != null )
{
Object selection = path.getLastPathComponent();
if( selection instanceof RiscoRelatorioNode )
{
object = selection == null ? null : ((RiscoRelatorioNode)selection).getUserObject();
}
else if( selection instanceof MedidaRelatorioNode )
{
object = selection == null ? null : ((MedidaRelatorioNode)selection).getUserObject();
}
}
firePropertyChange( SELECTION_CHANGED, null, object );
}
} );
}
private void setEnabled()
{
}
public void refresh()
{
root.removeAllChildren();
if( posto != null )
{
for( HsRelatorioPostoRisco rel : posto.getHsRelatorioPostoRiscoArray() )
{
RiscoRelatorioNode node = new RiscoRelatorioNode( rel );
if( rel.getToHsRelatorioRisco() != null )
{
for( HsRelatorioPostoMedida medida : posto.getHsRelatorioPostoMedidaArray() )
{
if( rel.getToHsRelatorioPosto().equals( medida.getToHsRelatorioPosto() ) )
{
node.add( new MedidaRelatorioNode(medida) );
}
}
}
root.add( node );
}
}
setEnabled();
TreeTools.refreshTree( tree, root );
}
public void setPosto( HsRelatorioPosto posto )
{
this.posto = posto;
refresh();
}
}

@ -0,0 +1,17 @@
package siprp.higiene.relatorio;
import javax.swing.tree.DefaultMutableTreeNode;
import siprp.database.cayenne.objects.HsRelatorioArea;
public class AreaRelatorioNode extends DefaultMutableTreeNode
{
private static final long serialVersionUID = 1L;
public AreaRelatorioNode( HsRelatorioArea risco )
{
super( risco );
}
}

@ -0,0 +1,263 @@
package siprp.higiene.relatorio;
import static com.evolute.utils.strings.UnicodeLatin1Map.atilde;
import static com.evolute.utils.strings.UnicodeLatin1Map.ccedil;
import info.clearthought.layout.TableLayout;
import info.clearthought.layout.TableLayoutConstraints;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JCheckBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.event.CaretEvent;
import javax.swing.event.CaretListener;
import leaf.ui.LeafButton;
import siprp.database.cayenne.objects.HsRelatorioPostoMedida;
import com.evolute.utils.images.ImageException;
import com.evolute.utils.images.ImageIconLoader;
public class GerirMedidaRelatorioPanel extends JPanel
{
public static final String MEDIDA_CHANGED = "MEDIDA_CHANGED";
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 LeafButton buttonSaveMedida;
private LeafButton buttonRevertMedida;
private LeafButton buttonSaveRequesito;
private LeafButton buttonRevertRequesito;
private final JCheckBox checkPlanoActuacao = new JCheckBox("Plano de actua" + ccedil + atilde + "o");
private final JTextArea fieldTextMedida = new JTextArea();
private final JScrollPane scrollMedida = new JScrollPane(fieldTextMedida);
private final JTextArea fieldTextRequisitosLegais = new JTextArea();
private final JScrollPane scrollRequesitos = new JScrollPane(fieldTextRequisitosLegais);
private HsRelatorioPostoMedida relacao = null;
public GerirMedidaRelatorioPanel()
{
try
{
buttonSaveMedida = new LeafButton( ImageIconLoader.loadImageIcon( ICON_NAME_SAVE ) );
buttonRevertMedida = new LeafButton( ImageIconLoader.loadImageIcon( ICON_NAME_REVERT ) );
buttonSaveRequesito = new LeafButton( ImageIconLoader.loadImageIcon( ICON_NAME_SAVE ) );
buttonRevertRequesito = new LeafButton( ImageIconLoader.loadImageIcon( ICON_NAME_REVERT ) );
} catch( ImageException e )
{
e.printStackTrace();
}
startupComponents();
startupLayout();
placeComponents();
setupListeners();
}
private void startupComponents()
{
fieldTextMedida.setWrapStyleWord( true );
fieldTextMedida.setLineWrap( true );
fieldTextRequisitosLegais.setWrapStyleWord( true );
fieldTextRequisitosLegais.setLineWrap( true );
scrollMedida.setHorizontalScrollBarPolicy( JScrollPane.HORIZONTAL_SCROLLBAR_NEVER );
scrollMedida.setVerticalScrollBarPolicy( JScrollPane.VERTICAL_SCROLLBAR_ALWAYS );
scrollRequesitos.setHorizontalScrollBarPolicy( JScrollPane.HORIZONTAL_SCROLLBAR_NEVER );
scrollRequesitos.setVerticalScrollBarPolicy( JScrollPane.VERTICAL_SCROLLBAR_ALWAYS );
buttonSaveMedida.setMargin( new Insets(0,0,0,0) );
buttonSaveRequesito.setMargin( new Insets(0,0,0,0) );
buttonRevertMedida.setMargin( new Insets(0,0,0,0) );
buttonRevertRequesito.setMargin( new Insets(0,0,0,0) );
}
private void setupListeners()
{
checkPlanoActuacao.addActionListener( new ActionListener()
{
@Override
public void actionPerformed( ActionEvent e )
{
savePlano();
}
} );
fieldTextRequisitosLegais.addCaretListener( new CaretListener()
{
@Override
public void caretUpdate( CaretEvent e )
{
setEnabled();
}
} );
fieldTextMedida.addCaretListener( new CaretListener()
{
@Override
public void caretUpdate( CaretEvent e )
{
setEnabled();
}
} );
buttonSaveMedida.addActionListener( new ActionListener()
{
@Override
public void actionPerformed( ActionEvent e )
{
saveMedida();
}
} );
buttonSaveRequesito.addActionListener( new ActionListener()
{
@Override
public void actionPerformed( ActionEvent e )
{
saveRequesito();
}
} );
buttonRevertMedida.addActionListener( new ActionListener()
{
@Override
public void actionPerformed( ActionEvent e )
{
revertMedida();
}
} );
buttonRevertRequesito.addActionListener( new ActionListener()
{
@Override
public void actionPerformed( ActionEvent e )
{
revertRequesito();
}
} );
}
private void startupLayout()
{
TableLayout layout = new TableLayout(
new double[]{ TableLayout.FILL, TableLayout.MINIMUM, TableLayout.MINIMUM },
new double[]{ TableLayout.MINIMUM, TableLayout.MINIMUM, TableLayout.FILL, TableLayout.MINIMUM, TableLayout.FILL }
);
layout.setHGap( 5 );
layout.setVGap( 5 );
setLayout( layout );
}
private void placeComponents()
{
JPanel panel = new JPanel();
TableLayout layout = new TableLayout(
new double[]{ TableLayout.MINIMUM, TableLayout.FILL },
new double[]{ TableLayout.MINIMUM }
);
layout.setHGap( 5 );
layout.setVGap( 5 );
panel.setLayout( layout );
panel.add( checkPlanoActuacao, new TableLayoutConstraints(0,0) );
add( panel, new TableLayoutConstraints(0,0,2,0) );
add( new JLabel("Requesitos legais"), new TableLayoutConstraints(0,1) );
add( buttonSaveRequesito, new TableLayoutConstraints(1,1) );
add( buttonRevertRequesito, new TableLayoutConstraints(2,1) );
add( scrollRequesitos, new TableLayoutConstraints(0,2,2,2) );
add( new JLabel("Medida"), new TableLayoutConstraints(0,3) );
add( buttonSaveMedida, new TableLayoutConstraints(1,3) );
add( buttonRevertMedida, new TableLayoutConstraints(2,3) );
add( scrollMedida, new TableLayoutConstraints(0,4,2,4) );
}
private void setEnabled()
{
boolean medidaChanged = false;
boolean requesitoChanged = false;
if( relacao != null )
{
medidaChanged = !fieldTextMedida.getText().equals( relacao.getToHsRelatorioMedida().getDescription() );
requesitoChanged = !fieldTextRequisitosLegais.getText().equals( relacao.getToHsRelatorioMedida().getRequesitosLegais() );
}
buttonSaveMedida.setEnabled( medidaChanged );
buttonSaveRequesito.setEnabled( requesitoChanged );
buttonRevertMedida.setEnabled( medidaChanged );
buttonRevertRequesito.setEnabled( requesitoChanged );
}
private void savePlano()
{
if( relacao != null )
{
relacao.setIsPlanoActuacao( checkPlanoActuacao.isSelected() );
relacao.save();
}
}
private void saveMedida()
{
if( relacao != null )
{
relacao.getToHsRelatorioMedida().setDescription( fieldTextMedida.getText() );
relacao.save();
refresh();
}
setEnabled();
}
private void saveRequesito()
{
if( relacao != null )
{
relacao.getToHsRelatorioMedida().setRequesitosLegais(fieldTextRequisitosLegais.getText() );
relacao.save();
refresh();
}
setEnabled();
}
private void revertMedida()
{
if( relacao != null )
{
fieldTextMedida.setText( relacao.getToHsRelatorioMedida().getDescription() );
}
setEnabled();
}
private void revertRequesito()
{
if( relacao != null )
{
fieldTextRequisitosLegais.setText( relacao.getToHsRelatorioMedida().getRequesitosLegais() );
}
setEnabled();
}
private void refresh()
{
firePropertyChange( MEDIDA_CHANGED, null, relacao );
}
public void setMedida( HsRelatorioPostoMedida medida )
{
this.relacao = medida;
fieldTextMedida.setText( medida == null ? null : medida.getToHsRelatorioMedida().getDescription() );
fieldTextRequisitosLegais.setText( medida == null ? null : medida.getToHsRelatorioMedida().getRequesitosLegais() );
checkPlanoActuacao.setSelected( medida == null ? false : ( medida.getIsPlanoActuacao() == null ? false : medida.getIsPlanoActuacao() ) );
setEnabled();
}
}

@ -0,0 +1,275 @@
package siprp.higiene.relatorio;
import info.clearthought.layout.TableLayout;
import info.clearthought.layout.TableLayoutConstraints;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.AbstractButton;
import javax.swing.ButtonGroup;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
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.LeafButton;
import leaf.ui.LeafIconButton;
import siprp.database.cayenne.objects.HsRelatorioPostoRisco;
import siprp.database.cayenne.objects.HsRelatorioRiscoValorQualitativo;
import siprp.logic.HigieneSegurancaLogic;
public class GerirValoresRiscoPanel extends JPanel implements ActionListener, CaretListener
{
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 final JRadioButton radioValorQuantitativo = new JRadioButton();
private final JRadioButton radioValorQualitativo = new JRadioButton();
private final JTextField textSeveridade = new JTextField();
private final JTextField textProbabilidade = new JTextField();
private final JComboBox comboValorQualitativo = new JComboBox();
private final LeafButton buttonSave = LeafIconButton.createButton( ICON_NAME_SAVE );
private final LeafButton buttonRevert = LeafIconButton.createButton( ICON_NAME_REVERT);
private final ButtonGroup bg = new ButtonGroup();
private HsRelatorioPostoRisco valoresRisco = null;
public GerirValoresRiscoPanel()
{
startupListeners();
startupComponents();
startupLayout();
placeComponents();
loadValoresQualitativos();
}
private void startupListeners()
{
radioValorQualitativo.addActionListener( this );
radioValorQuantitativo.addActionListener( this );
comboValorQualitativo.addActionListener( this );
textProbabilidade.addCaretListener( this );
textSeveridade.addCaretListener( this );
buttonSave.addActionListener( new ActionListener()
{
@Override
public void actionPerformed( ActionEvent e )
{
save();
}
} );
buttonRevert.addActionListener( new ActionListener()
{
@Override
public void actionPerformed( ActionEvent e )
{
refresh();
}
} );
}
private void startupComponents()
{
textSeveridade.setPreferredSize( new Dimension( 30, 0 ) );
textProbabilidade.setPreferredSize( new Dimension( 30, 0 ) );
buttonSave.setEnabled( false );
buttonRevert.setEnabled( false );
bg.add( radioValorQualitativo );
bg.add( radioValorQuantitativo );
}
private void startupLayout()
{
TableLayout layout = new TableLayout(
new double[]{ TableLayout.MINIMUM, TableLayout.MINIMUM, TableLayout.PREFERRED, TableLayout.FILL, TableLayout.MINIMUM, TableLayout.PREFERRED, TableLayout.FILL },
new double[]{ TableLayout.MINIMUM, TableLayout.MINIMUM, TableLayout.MINIMUM }
);
layout.setVGap( 5 );
layout.setHGap( 5 );
setLayout( layout );
}
private void placeComponents()
{
TableLayout layout = new TableLayout(
new double[]{ TableLayout.FILL, TableLayout.MINIMUM, TableLayout.MINIMUM },
new double[]{ TableLayout.MINIMUM }
);
layout.setVGap( 5 );
layout.setHGap( 5 );
JPanel panel = new JPanel();
panel.setLayout( layout );
panel.add( buttonSave, new TableLayoutConstraints( 1, 0 ) );
panel.add( buttonRevert, new TableLayoutConstraints( 2, 0 ) );
add( panel, new TableLayoutConstraints(1,0,6,0) );
add( radioValorQuantitativo, new TableLayoutConstraints( 0, 1 ) );
add( new JLabel("Severidade"), new TableLayoutConstraints( 1, 1 ) );
add( textSeveridade, new TableLayoutConstraints( 2, 1 ) );
add( new JLabel("Probabilidade"), new TableLayoutConstraints( 4, 1 ) );
add( textProbabilidade, new TableLayoutConstraints( 5, 1 ) );
add( radioValorQualitativo, new TableLayoutConstraints( 0, 2 ) );
add( comboValorQualitativo, new TableLayoutConstraints( 1, 2, 5, 2 ) );
}
private void loadValoresQualitativos()
{
comboValorQualitativo.removeAllItems();
for( HsRelatorioRiscoValorQualitativo valor : HigieneSegurancaLogic.getAllValoresQualitativos() )
{
comboValorQualitativo.addItem( valor );
}
}
private void refresh()
{
if( valoresRisco != null )
{
boolean qualitativo = valoresRisco.getToHsRelatorioRiscoValorQualitativo() != null;
radioValorQuantitativo.setSelected( !qualitativo );
radioValorQualitativo.setSelected( qualitativo );
String severidade = (valoresRisco.getSeveridade() == null ? null : valoresRisco.getSeveridade() + "");
String probabilidade = (valoresRisco.getProbabilidade() == null ? null : valoresRisco.getProbabilidade() + "");
textSeveridade.setText( severidade );
textProbabilidade.setText( probabilidade );
if( valoresRisco.getToHsRelatorioRiscoValorQualitativo() != null )
{
comboValorQualitativo.setSelectedItem( valoresRisco.getToHsRelatorioRiscoValorQualitativo() );
}
}
else
{
bg.clearSelection();
textSeveridade.setText( null );
textProbabilidade.setText( null );
}
}
private void setEnabled()
{
textProbabilidade.setEnabled( valoresRisco != null && radioValorQuantitativo.isSelected() );
textSeveridade.setEnabled( valoresRisco != null && radioValorQuantitativo.isSelected() );
radioValorQualitativo.setEnabled( valoresRisco != null );
radioValorQuantitativo.setEnabled( valoresRisco != null );
comboValorQualitativo.setEnabled( valoresRisco != null && radioValorQualitativo.isSelected() );
if( valoresRisco != null )
{
boolean changes = false;
boolean wasQual = valoresRisco.getToHsRelatorioRiscoValorQualitativo() != null;
boolean isQual = radioValorQualitativo.isSelected();
if(!isQual)
{
changes = wasQual;
if(!changes)
{
boolean probChanged = false;
boolean sevChanged = false;
String prob = textProbabilidade.getText();
String sev = textSeveridade.getText();
if( prob == null )
{
probChanged = valoresRisco.getProbabilidade() != null;
}
else
{
probChanged = !prob.equals(valoresRisco.getProbabilidade() == null ? "" : valoresRisco.getProbabilidade() + "");
}
if( sev == null )
{
sevChanged = valoresRisco.getSeveridade() != null;
}
else
{
sevChanged = !sev.equals(valoresRisco.getSeveridade() == null ? "" : valoresRisco.getSeveridade() + "" );
}
changes = probChanged || sevChanged;
}
}
else
{
changes = !wasQual;
if(!changes)
{
changes = !comboValorQualitativo.getSelectedItem().equals( valoresRisco.getToHsRelatorioRiscoValorQualitativo() );
}
}
buttonSave.setEnabled( changes );
buttonRevert.setEnabled( changes );
}
}
public void setRelatorioPostoRisco( HsRelatorioPostoRisco rel )
{
this.valoresRisco = rel;
refresh();
setEnabled();
}
private void save()
{
if( valoresRisco != null )
{
if( radioValorQualitativo.isSelected() )
{
valoresRisco.setToHsRelatorioRiscoValorQualitativo( (HsRelatorioRiscoValorQualitativo) comboValorQualitativo.getSelectedItem() );
}
else
{
valoresRisco.setToHsRelatorioRiscoValorQualitativo( null );
Integer probabilidade = 0;
Integer severidade = 0;
try{
probabilidade = new Integer(textProbabilidade.getText() != null ? textProbabilidade.getText() : "0" );
}
catch (NumberFormatException e1)
{
e1.printStackTrace();
}
try{
severidade = new Integer(textSeveridade.getText() != null ? textSeveridade.getText() : "0" );
}
catch (NumberFormatException e2)
{
e2.printStackTrace();
}
valoresRisco.setProbabilidade( probabilidade );
valoresRisco.setSeveridade( severidade );
}
valoresRisco.save();
refresh();
setEnabled();
}
}
@Override
public void caretUpdate( CaretEvent e )
{
setEnabled();
}
@Override
public void actionPerformed( ActionEvent e )
{
setEnabled();
}
}

@ -0,0 +1,16 @@
package siprp.higiene.relatorio;
import javax.swing.tree.DefaultMutableTreeNode;
import siprp.database.cayenne.objects.HsRelatorioPostoMedida;
public class MedidaRelatorioNode extends DefaultMutableTreeNode
{
private static final long serialVersionUID = 1L;
public MedidaRelatorioNode( HsRelatorioPostoMedida medida )
{
super( medida );
}
}

@ -264,6 +264,7 @@ public class PanelRelatorio extends JPanel implements CaretListener, ChangeListe
buttonSave.setEnabled( false );
buttonRevert.setEnabled( false );
panelEquipamentos.setRelatorio( relatorio );
panelPlano.setRelatorio( relatorio );
refresh();
setEnabled();
}
@ -273,7 +274,7 @@ public class PanelRelatorio extends JPanel implements CaretListener, ChangeListe
Object source = e.getSource();
if( source instanceof Component )
{
if(((Component)source).isEnabled())
if( ( (Component) source).isEnabled() )
{
buttonSave.setEnabled( true );
buttonRevert.setEnabled( true );

@ -1,11 +1,52 @@
package siprp.higiene.relatorio;
import static com.evolute.utils.strings.UnicodeLatin1Map.atilde;
import static com.evolute.utils.strings.UnicodeLatin1Map.ccedil;
import info.clearthought.layout.TableLayout;
import info.clearthought.layout.TableLayoutConstraints;
import java.awt.CardLayout;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import javax.swing.BorderFactory;
import javax.swing.JPanel;
import com.evolute.utils.ui.image.ImagePanel;
import leaf.ui.LeafButton;
import siprp.database.cayenne.objects.HsRelatorio;
import siprp.database.cayenne.objects.HsRelatorioMedida;
import siprp.database.cayenne.objects.HsRelatorioPosto;
import siprp.database.cayenne.objects.HsRelatorioPostoMedida;
import siprp.database.cayenne.objects.HsRelatorioPostoRisco;
public class PlanoActuacaoPanel extends JPanel
{
private static final long serialVersionUID = 1L;
private static final String RISCO_PANEL = "RISCO_PANEL";
private static final String MEDIDA_PANEL = "MEDIDA_PANEL";
private static final String EMPTY_PANEL = "EMPTY_PANEL";
private final AdicionarAreasRelatorioPanel areas = new AdicionarAreasRelatorioPanel();
private final AdicionarRiscosRelatorioPanel riscos = new AdicionarRiscosRelatorioPanel();
private final GerirValoresRiscoPanel valoresRisco = new GerirValoresRiscoPanel();
private final GerirMedidaRelatorioPanel valoresMedida = new GerirMedidaRelatorioPanel();
private final JPanel emptyPanel = new JPanel();
private final JPanel valoresPanel = new JPanel();
private final CardLayout cards = new CardLayout();
private final LeafButton submeterButton = new LeafButton( "Submeter plano de actua" + ccedil + atilde + "o" );
public PlanoActuacaoPanel()
{
@ -13,26 +54,86 @@ public class PlanoActuacaoPanel extends JPanel
startupComponents();
startupLayout();
placeComponents();
cards.show( valoresPanel, EMPTY_PANEL );
}
private void startupListeners()
{
areas.addPropertyChangeListener( AdicionarAreasRelatorioPanel.SELECTION_CHANGED, new PropertyChangeListener()
{
@Override
public void propertyChange( PropertyChangeEvent evt )
{
if( evt.getNewValue() instanceof HsRelatorioPosto )
{
riscos.setPosto( (HsRelatorioPosto) evt.getNewValue() );
}
else
{
riscos.setPosto( null );
}
}
} );
riscos.addPropertyChangeListener( AdicionarRiscosRelatorioPanel.SELECTION_CHANGED, new PropertyChangeListener()
{
@Override
public void propertyChange( PropertyChangeEvent evt )
{
if( evt.getNewValue() instanceof HsRelatorioPostoRisco )
{
cards.show( valoresPanel, RISCO_PANEL );
valoresRisco.setRelatorioPostoRisco( (HsRelatorioPostoRisco) evt.getNewValue() );
}
else if( evt.getNewValue() instanceof HsRelatorioPostoMedida )
{
cards.show( valoresPanel, MEDIDA_PANEL );
valoresMedida.setMedida( (HsRelatorioPostoMedida) evt.getNewValue() );
}
else
{
cards.show( valoresPanel, EMPTY_PANEL );
valoresRisco.setRelatorioPostoRisco( null );
valoresMedida.setMedida( null );
}
}
} );
}
private void startupComponents()
{
riscos.setBorder( BorderFactory.createTitledBorder( "Riscos" ) );
areas.setBorder( BorderFactory.createTitledBorder( "Postos de trabalho" ) );
}
private void startupLayout()
{
TableLayout layout = new TableLayout(
new double[]{ TableLayout.FILL, TableLayout.FILL, TableLayout.FILL },
new double[]{ TableLayout.MINIMUM, TableLayout.FILL }
);
layout.setHGap( 5 );
layout.setVGap( 5 );
setLayout( layout );
valoresPanel.setLayout(cards);
}
private void placeComponents()
{
valoresPanel.add( valoresRisco, RISCO_PANEL);
valoresPanel.add( valoresMedida, MEDIDA_PANEL );
valoresPanel.add( emptyPanel, EMPTY_PANEL );
add(areas,new TableLayoutConstraints(0,0,0,1));
add(riscos,new TableLayoutConstraints(1,0,1,1));
add(valoresPanel,new TableLayoutConstraints(2,0,2,1));
}
public void setRelatorio( HsRelatorio relatorio )
{
areas.setRelatorio( relatorio );
riscos.setPosto( null );
valoresRisco.setRelatorioPostoRisco( null );
valoresMedida.setMedida( null );
}
}

@ -0,0 +1,17 @@
package siprp.higiene.relatorio;
import javax.swing.tree.DefaultMutableTreeNode;
import siprp.database.cayenne.objects.HsRelatorioPosto;
public class PostoRelatorioNode extends DefaultMutableTreeNode
{
private static final long serialVersionUID = 1L;
public PostoRelatorioNode( HsRelatorioPosto risco )
{
super( risco );
}
}

@ -9,6 +9,7 @@ import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.peer.PanelPeer;
import java.util.Date;
import java.util.List;
@ -32,7 +33,7 @@ public class RelatorioHigieneSegurancaWindow extends JFrame implements Trackable
public static final String TITLE = "Relat" + oacute + "rios de Higiene e Seguran" + ccedil + "a no Trabalho";
public static final Dimension SIZE = new Dimension( 800, 600 );
public static final Dimension SIZE = new Dimension( 1024, 700 );
private final JComboBox comboEmpresas = new JComboBox();

@ -0,0 +1,16 @@
package siprp.higiene.relatorio;
import javax.swing.tree.DefaultMutableTreeNode;
import siprp.database.cayenne.objects.HsRelatorioPostoRisco;
public class RiscoRelatorioNode extends DefaultMutableTreeNode
{
private static final long serialVersionUID = 1L;
public RiscoRelatorioNode( HsRelatorioPostoRisco risco )
{
super( risco );
}
}

@ -61,7 +61,10 @@ public class V9_9_To_V10_0
"alter table hs_relatorio add column acompanhante2 varchar(256); " +
"alter table hs_relatorio add column funcao_acompanhante2 varchar(128); " +
"alter table hs_relatorio add column acompanhante3 varchar(256); " +
"alter table hs_relatorio add column funcao_acompanhante3 varchar(128);"
"alter table hs_relatorio add column funcao_acompanhante3 varchar(128);" +
"alter table hs_relatorio_area add column relatorio_id int4 REFERENCES hs_relatorio(id) NOT NULL; " +
"alter table hs_posto_medida drop column is_plano_actuacao;" +
"alter table hs_relatorio_posto_medida add column is_plano_actuacao boolean; "
);
executer.executeQuery( update );
}

@ -319,6 +319,7 @@
<db-attribute name="deleted_date" type="TIMESTAMP" length="29"/>
<db-attribute name="description" type="VARCHAR" isMandatory="true" length="256"/>
<db-attribute name="id" type="INTEGER" isPrimaryKey="true" isMandatory="true" length="10"/>
<db-attribute name="relatorio_id" type="INTEGER" length="10"/>
<db-key-generator>
<db-generator-type>ORACLE</db-generator-type>
<db-generator-name>hs_relatorio_area_id_seq</db-generator-name>
@ -361,6 +362,7 @@
</db-key-generator>
</db-entity>
<db-entity name="hs_relatorio_posto_medida" schema="public">
<db-attribute name="is_plano_actuacao" type="BOOLEAN"/>
<db-attribute name="medida_id" type="INTEGER" isPrimaryKey="true" isMandatory="true" length="10"/>
<db-attribute name="posto_id" type="INTEGER" isPrimaryKey="true" isMandatory="true" length="10"/>
</db-entity>
@ -978,6 +980,7 @@
<obj-attribute name="description" type="java.lang.String" db-attribute-path="description"/>
</obj-entity>
<obj-entity name="HsRelatorioPostoMedida" className="siprp.database.cayenne.objects.HsRelatorioPostoMedida" dbEntityName="hs_relatorio_posto_medida" superClassName="siprp.database.cayenne.objects.BaseObject">
<obj-attribute name="isPlanoActuacao" type="java.lang.Boolean" db-attribute-path="is_plano_actuacao"/>
</obj-entity>
<obj-entity name="HsRelatorioPostoRisco" className="siprp.database.cayenne.objects.HsRelatorioPostoRisco" dbEntityName="hs_relatorio_posto_risco" superClassName="siprp.database.cayenne.objects.BaseObject">
<obj-attribute name="probabilidade" type="java.lang.Integer" db-attribute-path="probabilidade"/>
@ -1391,6 +1394,9 @@
<db-relationship name="toHsRisco" source="hs_posto_risco" target="hs_risco" toMany="false">
<db-attribute-pair source="risco_id" target="id"/>
</db-relationship>
<db-relationship name="hsRelatorioArea" source="hs_relatorio" target="hs_relatorio_area" toMany="true">
<db-attribute-pair source="id" target="relatorio_id"/>
</db-relationship>
<db-relationship name="hsRelatorioEquipamentoMedicoArray" source="hs_relatorio" target="hs_relatorio_equipamento_medico" toDependentPK="true" toMany="true">
<db-attribute-pair source="id" target="hs_relatorio_id"/>
</db-relationship>
@ -1409,6 +1415,9 @@
<db-relationship name="hsRelatorioPostoArray" source="hs_relatorio_area" target="hs_relatorio_posto" toMany="true">
<db-attribute-pair source="id" target="area_id"/>
</db-relationship>
<db-relationship name="toHsRelatorio" source="hs_relatorio_area" target="hs_relatorio" toMany="false">
<db-attribute-pair source="relatorio_id" target="id"/>
</db-relationship>
<db-relationship name="toHsEquipamentoMedico" source="hs_relatorio_equipamento_medico" target="hs_equipamento_medico" toMany="false">
<db-attribute-pair source="hs_equipamento_medico_id" target="id"/>
</db-relationship>
@ -1827,12 +1836,14 @@
<obj-relationship name="toHsPosto" source="HsPostoRisco" target="HsPosto" deleteRule="Nullify" db-relationship-path="toHsPosto"/>
<obj-relationship name="toHsRelatorioRiscoValorQualitativo" source="HsPostoRisco" target="HsRelatorioRiscoValorQualitativo" deleteRule="Nullify" db-relationship-path="toHsRelatorioRiscoValorQualitativo"/>
<obj-relationship name="toHsRisco" source="HsPostoRisco" target="HsRisco" deleteRule="Nullify" db-relationship-path="toHsRisco"/>
<obj-relationship name="hsRelatorioArea" source="HsRelatorio" target="HsRelatorioArea" db-relationship-path="hsRelatorioArea"/>
<obj-relationship name="hsRelatorioEquipamentoMedicoArray" source="HsRelatorio" target="HsRelatorioEquipamentoMedico" deleteRule="Cascade" db-relationship-path="hsRelatorioEquipamentoMedicoArray"/>
<obj-relationship name="hsRelatorioLegislacaoArray" source="HsRelatorio" target="HsRelatorioLegislacao" db-relationship-path="hsRelatorioLegislacaoArray"/>
<obj-relationship name="hsRelatorioNormalizacaoArray" source="HsRelatorio" target="HsRelatorioNormalizacao" db-relationship-path="hsRelatorioNormalizacaoArray"/>
<obj-relationship name="hsRelatorioRiscoArray" source="HsRelatorio" target="HsRelatorioRisco" db-relationship-path="hsRelatorioRiscoArray"/>
<obj-relationship name="toHsMarcacoesEstabelecimento" source="HsRelatorio" target="MarcacoesEstabelecimento" db-relationship-path="toHsMarcacoesEstabelecimento"/>
<obj-relationship name="hsRelatorioPostoArray" source="HsRelatorioArea" target="HsRelatorioPosto" db-relationship-path="hsRelatorioPostoArray"/>
<obj-relationship name="toHsRelatorio" source="HsRelatorioArea" target="HsRelatorio" db-relationship-path="toHsRelatorio"/>
<obj-relationship name="toHsEquipamentoMedico" source="HsRelatorioEquipamentoMedico" target="HsEquipamentoMedico" deleteRule="Nullify" db-relationship-path="toHsEquipamentoMedico"/>
<obj-relationship name="toHsRelatorio" source="HsRelatorioEquipamentoMedico" target="HsRelatorio" deleteRule="Nullify" db-relationship-path="toHsRelatorio"/>
<obj-relationship name="toHsRelatorio" source="HsRelatorioLegislacao" target="HsRelatorio" db-relationship-path="toHsRelatorio"/>

@ -4,4 +4,25 @@ import siprp.database.cayenne.objects.auto._HsRelatorioArea;
public class HsRelatorioArea extends _HsRelatorioArea {
private static final long serialVersionUID = 1L;
@Override
public String getDescription()
{
return parseFromUnicode( super.getDescription() );
}
@Override
public void setDescription( String nome )
{
super.setDescription( parseToUnicode( nome ) );
}
@Override
public String toString()
{
return getDescription();
}
}

@ -4,4 +4,7 @@ import siprp.database.cayenne.objects.auto._HsRelatorioLegislacao;
public class HsRelatorioLegislacao extends _HsRelatorioLegislacao {
private static final long serialVersionUID = 1L;
}

@ -4,4 +4,37 @@ import siprp.database.cayenne.objects.auto._HsRelatorioMedida;
public class HsRelatorioMedida extends _HsRelatorioMedida {
private static final long serialVersionUID = 1L;
@Override
public String getDescription()
{
return parseFromUnicode( super.getDescription() );
}
@Override
public void setDescription( String nome )
{
super.setDescription( parseToUnicode( nome ) );
}
@Override
public String getRequesitosLegais()
{
return parseFromUnicode( super.getRequesitosLegais());
}
@Override
public void setRequesitosLegais( String nome )
{
super.setRequesitosLegais( parseToUnicode( nome ) );
}
@Override
public String toString()
{
return getRequesitosLegais();
}
}

@ -4,4 +4,24 @@ import siprp.database.cayenne.objects.auto._HsRelatorioPosto;
public class HsRelatorioPosto extends _HsRelatorioPosto {
private static final long serialVersionUID = 1L;
@Override
public String getDescription()
{
return parseFromUnicode( super.getDescription() );
}
@Override
public void setDescription( String nome )
{
super.setDescription( parseToUnicode( nome ) );
}
@Override
public String toString()
{
return getDescription();
}
}

@ -4,4 +4,12 @@ import siprp.database.cayenne.objects.auto._HsRelatorioPostoMedida;
public class HsRelatorioPostoMedida extends _HsRelatorioPostoMedida {
private static final long serialVersionUID = 1L;
@Override
public String toString()
{
return getToHsRelatorioMedida().toString();
}
}

@ -4,4 +4,11 @@ import siprp.database.cayenne.objects.auto._HsRelatorioPostoRisco;
public class HsRelatorioPostoRisco extends _HsRelatorioPostoRisco {
private static final long serialVersionUID = 1L;
@Override
public String toString()
{
return getToHsRelatorioRisco().getDescription();
}
}

@ -4,4 +4,24 @@ import siprp.database.cayenne.objects.auto._HsRelatorioRisco;
public class HsRelatorioRisco extends _HsRelatorioRisco {
private static final long serialVersionUID = 1L;
@Override
public String getDescription()
{
return parseFromUnicode( super.getDescription() );
}
@Override
public void setDescription( String nome )
{
super.setDescription( parseToUnicode( nome ) );
}
@Override
public String toString()
{
return getDescription();
}
}

@ -4,6 +4,7 @@ import java.util.Date;
import java.util.List;
import siprp.database.cayenne.objects.BaseObject;
import siprp.database.cayenne.objects.HsRelatorioArea;
import siprp.database.cayenne.objects.HsRelatorioEquipamentoMedico;
import siprp.database.cayenne.objects.HsRelatorioLegislacao;
import siprp.database.cayenne.objects.HsRelatorioNormalizacao;
@ -29,6 +30,7 @@ public abstract class _HsRelatorio extends BaseObject {
public static final String FUNCAO_ACOMPANHANTE3_PROPERTY = "funcaoAcompanhante3";
public static final String ID_PROPERTY = "id";
public static final String IS_SUBMETIDO_PROPERTY = "isSubmetido";
public static final String HS_RELATORIO_AREA_PROPERTY = "hsRelatorioArea";
public static final String HS_RELATORIO_EQUIPAMENTO_MEDICO_ARRAY_PROPERTY = "hsRelatorioEquipamentoMedicoArray";
public static final String HS_RELATORIO_LEGISLACAO_ARRAY_PROPERTY = "hsRelatorioLegislacaoArray";
public static final String HS_RELATORIO_NORMALIZACAO_ARRAY_PROPERTY = "hsRelatorioNormalizacaoArray";
@ -114,6 +116,18 @@ public abstract class _HsRelatorio extends BaseObject {
return (Date)readProperty("isSubmetido");
}
public void addToHsRelatorioArea(HsRelatorioArea obj) {
addToManyTarget("hsRelatorioArea", obj, true);
}
public void removeFromHsRelatorioArea(HsRelatorioArea obj) {
removeToManyTarget("hsRelatorioArea", obj, true);
}
@SuppressWarnings("unchecked")
public List<HsRelatorioArea> getHsRelatorioArea() {
return (List<HsRelatorioArea>)readProperty("hsRelatorioArea");
}
public void addToHsRelatorioEquipamentoMedicoArray(HsRelatorioEquipamentoMedico obj) {
addToManyTarget("hsRelatorioEquipamentoMedicoArray", obj, true);
}

@ -4,6 +4,7 @@ import java.util.Date;
import java.util.List;
import siprp.database.cayenne.objects.BaseObject;
import siprp.database.cayenne.objects.HsRelatorio;
import siprp.database.cayenne.objects.HsRelatorioPosto;
/**
@ -17,6 +18,7 @@ public abstract class _HsRelatorioArea extends BaseObject {
public static final String DELETED_DATE_PROPERTY = "deletedDate";
public static final String DESCRIPTION_PROPERTY = "description";
public static final String HS_RELATORIO_POSTO_ARRAY_PROPERTY = "hsRelatorioPostoArray";
public static final String TO_HS_RELATORIO_PROPERTY = "toHsRelatorio";
public static final String ID_PK_COLUMN = "id";
@ -46,4 +48,13 @@ public abstract class _HsRelatorioArea extends BaseObject {
}
public void setToHsRelatorio(HsRelatorio toHsRelatorio) {
setToOneTarget("toHsRelatorio", toHsRelatorio, true);
}
public HsRelatorio getToHsRelatorio() {
return (HsRelatorio)readProperty("toHsRelatorio");
}
}

@ -12,12 +12,20 @@ import siprp.database.cayenne.objects.HsRelatorioPosto;
*/
public abstract class _HsRelatorioPostoMedida extends BaseObject {
public static final String IS_PLANO_ACTUACAO_PROPERTY = "isPlanoActuacao";
public static final String TO_HS_RELATORIO_MEDIDA_PROPERTY = "toHsRelatorioMedida";
public static final String TO_HS_RELATORIO_POSTO_PROPERTY = "toHsRelatorioPosto";
public static final String MEDIDA_ID_PK_COLUMN = "medida_id";
public static final String POSTO_ID_PK_COLUMN = "posto_id";
public void setIsPlanoActuacao(Boolean isPlanoActuacao) {
writeProperty("isPlanoActuacao", isPlanoActuacao);
}
public Boolean getIsPlanoActuacao() {
return (Boolean)readProperty("isPlanoActuacao");
}
public void setToHsRelatorioMedida(HsRelatorioMedida toHsRelatorioMedida) {
setToOneTarget("toHsRelatorioMedida", toHsRelatorioMedida, true);
}

@ -10,6 +10,10 @@ import siprp.database.cayenne.objects.Estabelecimentos;
import siprp.database.cayenne.objects.HsArea;
import siprp.database.cayenne.objects.HsPosto;
import siprp.database.cayenne.objects.HsPostoEstabelecimento;
import siprp.database.cayenne.objects.HsRelatorio;
import siprp.database.cayenne.objects.HsRelatorioArea;
import siprp.database.cayenne.objects.HsRelatorioPosto;
import siprp.database.cayenne.objects.HsRelatorioRiscoValorQualitativo;
import siprp.database.cayenne.objects.HsRisco;
import siprp.database.cayenne.objects.HsRiscoEmpresa;
import siprp.database.cayenne.objects.HsRiscoMedida;
@ -21,6 +25,8 @@ import siprp.higiene.gestao.postos.PostoNode;
import siprp.higiene.gestao.riscos.NodeMedida;
import siprp.higiene.gestao.riscos.NodeRisco;
import siprp.higiene.gestao.riscos.NodeRiscoTema;
import siprp.higiene.relatorio.AreaRelatorioNode;
import siprp.higiene.relatorio.PostoRelatorioNode;
public class HigieneSegurancaLogic
{
@ -128,4 +134,27 @@ public class HigieneSegurancaLogic
{
return medicinaProvider.getAllEmpresas();
}
public static List<HsRelatorioRiscoValorQualitativo> getAllValoresQualitativos()
{
return planoProvider.getAllValoresQualitativos();
}
public static DefaultMutableTreeNode getAreasRelatorioTree( HsRelatorio relatorio )
{
DefaultMutableTreeNode result = new DefaultMutableTreeNode();
if( relatorio != null )
{
for( HsRelatorioArea area : relatorio.getHsRelatorioArea() )
{
AreaRelatorioNode areaNode = new AreaRelatorioNode(area);
for( HsRelatorioPosto posto : area.getHsRelatorioPostoArray() )
{
areaNode.add( new PostoRelatorioNode( posto ) );
}
result.add( areaNode );
}
}
return result;
}
}

Loading…
Cancel
Save