diff --git a/trunk/SIPRPSoft/src/siprp/higiene/gestao/AdicionarPanel.java b/trunk/SIPRPSoft/src/siprp/higiene/gestao/AdicionarPanel.java
new file mode 100644
index 00000000..a1760816
--- /dev/null
+++ b/trunk/SIPRPSoft/src/siprp/higiene/gestao/AdicionarPanel.java
@@ -0,0 +1,128 @@
+package siprp.higiene.gestao;
+
+import info.clearthought.layout.TableLayout;
+import info.clearthought.layout.TableLayoutConstraints;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+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;
+
+public abstract class AdicionarPanel extends JPanel
+{
+
+ private static final long serialVersionUID = 1L;
+
+ public static final String SELECTION_CHANGED = "SELECTION_CHANGED";
+
+ protected final LeafButton buttonAdicionar = new LeafButton( "Adicionar" );
+
+ protected final LeafButton buttonRemover = new LeafButton( "Remover" );
+
+ protected final DefaultMutableTreeNode root = new DefaultMutableTreeNode();
+
+ protected final DefaultTreeModel model = new DefaultTreeModel( root );
+
+ protected final JTree tree = new JTree( model );
+
+ protected final JScrollPane scroll = new JScrollPane( tree );
+
+ public AdicionarPanel()
+ {
+ 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()
+ {
+ buttonAdicionar.addActionListener( new ActionListener()
+ {
+ @Override
+ public void actionPerformed( ActionEvent e )
+ {
+ add();
+ }
+ } );
+ buttonRemover.addActionListener( new ActionListener()
+ {
+ @Override
+ public void actionPerformed( ActionEvent e )
+ {
+ rem();
+ }
+ } );
+ tree.getSelectionModel().addTreeSelectionListener( new TreeSelectionListener()
+ {
+ @Override
+ public void valueChanged( TreeSelectionEvent e )
+ {
+ setEnabled();
+ TreePath path = tree.getSelectionPath();
+ if( path != null )
+ {
+ Object selection = path.getLastPathComponent();
+ firePropertyChange( SELECTION_CHANGED, null, selection );
+ }
+ }
+ } );
+ }
+
+ protected abstract void rem();
+
+ protected abstract void add();
+
+ protected abstract void setEnabled();
+
+ public abstract void refresh();
+
+}
diff --git a/trunk/SIPRPSoft/src/siprp/higiene/gestao/GerirEmpresaPanel.java b/trunk/SIPRPSoft/src/siprp/higiene/gestao/GerirEmpresaPanel.java
index 71202cb3..972e693e 100644
--- a/trunk/SIPRPSoft/src/siprp/higiene/gestao/GerirEmpresaPanel.java
+++ b/trunk/SIPRPSoft/src/siprp/higiene/gestao/GerirEmpresaPanel.java
@@ -10,6 +10,7 @@ import javax.swing.JPanel;
import siprp.database.cayenne.objects.Empresas;
import siprp.higiene.gestao.legislacao.AdicionarLegislacaoPanel;
+import siprp.higiene.gestao.normalizacao.AdicionarNormalizacaoPanel;
import siprp.higiene.gestao.postos.GerirAreasPanel;
import siprp.higiene.gestao.riscos.AdicionarRiscosPanel;
@@ -24,6 +25,7 @@ public class GerirEmpresaPanel extends JPanel
private final AdicionarRiscosPanel panelRiscos = new AdicionarRiscosPanel();
private final AdicionarEmailsPanel panelEmails = new AdicionarEmailsPanel();
private final AdicionarLegislacaoPanel panelLegislacao = new AdicionarLegislacaoPanel();
+ private final AdicionarNormalizacaoPanel panelNormalizacao = new AdicionarNormalizacaoPanel();
public GerirEmpresaPanel()
{
@@ -38,14 +40,15 @@ public class GerirEmpresaPanel extends JPanel
panelAreas.setBorder( BorderFactory.createTitledBorder( "Postos de trabalho" ) );
panelRiscos.setBorder( BorderFactory.createTitledBorder( "Riscos" ) );
panelEmails.setBorder( BorderFactory.createTitledBorder( "Emails" ) );
- panelLegislacao.setBorder( BorderFactory.createTitledBorder( "Legisla" + ccedil + atilde + "o" ) );
+ panelLegislacao.setBorder( BorderFactory.createTitledBorder( "Legisla" + ccedil + otilde + "es" ) );
+ panelNormalizacao.setBorder( BorderFactory.createTitledBorder( "Normaliza" + ccedil + otilde + "es" ) );
panelEmails.setPreferredSize( new Dimension(0,150) );
}
private void setupLayout()
{
double [] cols = new double[]{ TableLayout.FILL, TableLayout.FILL, TableLayout.FILL, };
- double [] rows = new double[]{ TableLayout.FILL, TableLayout.PREFERRED };
+ double [] rows = new double[]{ TableLayout.FILL, TableLayout.FILL, TableLayout.PREFERRED };
TableLayout layout = new TableLayout( cols, rows );
layout.setHGap( 5 );
layout.setVGap( 5 );
@@ -54,10 +57,11 @@ public class GerirEmpresaPanel extends JPanel
private void placeComponents()
{
- this.add( panelAreas, new TableLayoutConstraints( 0, 0, 0, 1 ) );
- this.add( panelRiscos, new TableLayoutConstraints( 1, 0, 1, 1 ) );
+ this.add( panelAreas, new TableLayoutConstraints( 0, 0, 0, 2 ) );
+ this.add( panelRiscos, new TableLayoutConstraints( 1, 0, 1, 2 ) );
this.add( panelLegislacao, new TableLayoutConstraints( 2, 0 ) );
- this.add( panelEmails, new TableLayoutConstraints( 2, 1 ) );
+ this.add( panelNormalizacao, new TableLayoutConstraints( 2, 1 ) );
+ this.add( panelEmails, new TableLayoutConstraints( 2, 2 ) );
}
private void startupListeners()
@@ -71,6 +75,7 @@ public class GerirEmpresaPanel extends JPanel
panelEmails.setEmpresa( empresa );
panelLegislacao.setEmpresa( empresa );
panelRiscos.setEmpresa( empresa );
+ panelNormalizacao.setEmpresa( empresa );
}
}
diff --git a/trunk/SIPRPSoft/src/siprp/higiene/gestao/legislacao/AdicionarLegislacaoPanel.java b/trunk/SIPRPSoft/src/siprp/higiene/gestao/legislacao/AdicionarLegislacaoPanel.java
index 7ff88667..1906ef31 100644
--- a/trunk/SIPRPSoft/src/siprp/higiene/gestao/legislacao/AdicionarLegislacaoPanel.java
+++ b/trunk/SIPRPSoft/src/siprp/higiene/gestao/legislacao/AdicionarLegislacaoPanel.java
@@ -1,5 +1,7 @@
package siprp.higiene.gestao.legislacao;
+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;
@@ -8,82 +10,202 @@ import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
+import javax.swing.tree.TreePath;
import javax.swing.tree.TreeSelectionModel;
import siprp.database.cayenne.objects.Empresas;
+import siprp.database.cayenne.objects.Estabelecimentos;
+import siprp.database.cayenne.objects.HsLegislacao;
+import siprp.database.cayenne.objects.HsLegislacaoEmpresa;
+import siprp.database.cayenne.objects.HsLegislacaoEstabelecimento;
+import siprp.higiene.gestao.AdicionarPanel;
+import siprp.logic.HigieneSegurancaLogic;
import leaf.ui.LeafButton;
+import leaf.ui.LeafError;
+import leaf.ui.TreeInserterDialog;
+import leaf.ui.TreeTools;
-public class AdicionarLegislacaoPanel extends JPanel
+public class AdicionarLegislacaoPanel extends AdicionarPanel
{
- private static final long serialVersionUID = 1L;
+private static final long serialVersionUID = 1L;
- private final LeafButton buttonAdicionar = new LeafButton("Adicionar");
+ private Empresas empresa = null;
- 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 Estabelecimentos estabelecimento = null;
- public AdicionarLegislacaoPanel()
+ public void setEmpresa( Empresas empresa )
{
- startupComponents();
- setupLayout();
- placeComponents();
- startupListeners();
+ this.empresa = empresa;
+ this.estabelecimento = null;
+ refresh();
}
- private void startupComponents()
+ public void setEstabelecimento( Estabelecimentos estabelecimento )
+ {
+ this.empresa = null;
+ this.estabelecimento = estabelecimento;
+ refresh();
+ }
+
+ @Override
+ protected void add()
{
- buttonAdicionar.setEnabled( false );
- buttonRemover.setEnabled( false );
- tree.setRootVisible( false );
- tree.getSelectionModel().setSelectionMode( TreeSelectionModel.SINGLE_TREE_SELECTION );
+ DefaultMutableTreeNode allLegislacao = getAllLegislacao();
+ removeCurrent( allLegislacao );
+ TreeInserterDialog dialog = new TreeInserterDialog( this, "Adicionar Legisla" + ccedil + atilde + "o", allLegislacao );
+ DefaultMutableTreeNode result = dialog.getResult();
+ if( result != null )
+ {
+ addResult( result );
+ refresh();
+ }
+ setEnabled();
}
- private void setupLayout()
+ private DefaultMutableTreeNode getAllLegislacao()
{
- TableLayout layout = new TableLayout(
- new double[]{ TableLayout.FILL },
- new double[]{ TableLayout.MINIMUM, TableLayout.FILL }
- );
- layout.setHGap( 5 );
- layout.setVGap( 5 );
- setLayout( layout );
+ DefaultMutableTreeNode result = new DefaultMutableTreeNode();
+ if( empresa != null )
+ {
+ result = HigieneSegurancaLogic.getLegislacaoTree( null );
+ }
+ else if( estabelecimento != null )
+ {
+ result = HigieneSegurancaLogic.getLegislacaoTree( estabelecimento.getToEmpresas() );
+ }
+ return result;
}
- private void placeComponents()
+ private void removeCurrent( DefaultMutableTreeNode all )
{
- 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 ) );
+// if( all != null && root.getChildCount() == 2 && all.getChildCount() == 2 )
+// {
+// DefaultMutableTreeNode portuguesaAll = (DefaultMutableTreeNode) all.getChildAt( 0 );
+// DefaultMutableTreeNode internacionalAll = (DefaultMutableTreeNode) all.getChildAt( 1 );
+// DefaultMutableTreeNode portuguesaCurrent = (DefaultMutableTreeNode) root.getChildAt( 0 );
+// DefaultMutableTreeNode internacionalCurrent = (DefaultMutableTreeNode) root.getChildAt( 1 );
+// TreeTools.remove( portuguesaAll, portuguesaCurrent );
+// TreeTools.remove( internacionalAll, internacionalCurrent );
+// }
}
- private void startupListeners()
+ private void addResult( DefaultMutableTreeNode root )
{
-
+// try
+// {
+// if( root != null )
+// {
+// Object userObject = root.getUserObject();
+// if( userObject instanceof HsNormalizacao )
+// {
+// if( empresa != null )
+// {
+// HsNormalizacaoEmpresa rel = new HsNormalizacaoEmpresa();
+// rel.setToEmpresa( empresa );
+// rel.setToHsNormalizacao( ((HsNormalizacao) userObject ) );
+// rel.save();
+// }
+// else if( estabelecimento != null )
+// {
+// HsNormalizacaoEstabelecimento rel = new HsNormalizacaoEstabelecimento();
+// rel.setToEstabelecimento( estabelecimento );
+// rel.setToHsNormalizacao( ((HsNormalizacao) userObject ) );
+// rel.save();
+// }
+// }
+// }
+// for( int i = 0; i < root.getChildCount(); ++i )
+// {
+// DefaultMutableTreeNode child = (DefaultMutableTreeNode) root.getChildAt( i );
+// addResult( child );
+// }
+// }
+// catch( Exception e )
+// {
+// LeafError.error( e );
+// }
}
- public void setEmpresa( Empresas empresa )
+ @Override
+ public void refresh()
{
- // TODO Auto-generated method stub
-
+ root.removeAllChildren();
+ if( empresa != null || estabelecimento != null )
+ {
+ TreeTools.merge( root, HigieneSegurancaLogic.getLegislacaoTree( empresa != null ? empresa : estabelecimento.getToEmpresas() ) );
+ }
+ setEnabled();
+ TreeTools.refreshTree( tree, root );
+ }
+
+ @Override
+ protected void setEnabled()
+ {
+ buttonAdicionar.setEnabled( empresa != null || estabelecimento != null );
+ buttonRemover.setEnabled( tree.getSelectionCount() > 0 );
+ }
+
+ @Override
+ protected void rem()
+ {
+ try
+ {
+ TreePath path = tree.getSelectionPath();
+ if( path != null )
+ {
+ DefaultMutableTreeNode node = (DefaultMutableTreeNode) path.getLastPathComponent();
+ Object obj = node.getUserObject();
+ if( obj != null && (obj instanceof HsLegislacao) )
+ {
+ if( empresa != null )
+ {
+ removeFromEmpresa( ((HsLegislacao) obj ) );
+ }
+ else if( estabelecimento != null )
+ {
+ removeFromEstabelecimento( ((HsLegislacao) obj ));
+ }
+ refresh();
+ }
+ }
+ }
+ catch( Exception e )
+ {
+ LeafError.error( e );
+ }
+ }
+
+ private void removeFromEmpresa( HsLegislacao legislacao ) throws Exception
+ {
+ if( legislacao != null && empresa != null )
+ {
+ for( HsLegislacaoEmpresa rel : empresa.getHsLegislacaoEmpresaArray() )
+ {
+ if( legislacao.equals( rel.getToHsLegislacao() ) )
+ {
+ rel.delete();
+ break;
+ }
+ }
+ }
+ }
+
+ private void removeFromEstabelecimento( HsLegislacao legislacao ) throws Exception
+ {
+ if( legislacao != null && estabelecimento != null )
+ {
+ for( HsLegislacaoEstabelecimento rel : estabelecimento.getHsLegislacaoEstabelecimentoArray() )
+ {
+ if( legislacao.equals( rel.getToHsLegislacao() ) )
+ {
+ rel.delete();
+ break;
+ }
+ }
+
+ }
}
}
diff --git a/trunk/SIPRPSoft/src/siprp/higiene/gestao/normalizacao/AdicionarNormalizacaoPanel.java b/trunk/SIPRPSoft/src/siprp/higiene/gestao/normalizacao/AdicionarNormalizacaoPanel.java
new file mode 100644
index 00000000..c21eadd4
--- /dev/null
+++ b/trunk/SIPRPSoft/src/siprp/higiene/gestao/normalizacao/AdicionarNormalizacaoPanel.java
@@ -0,0 +1,202 @@
+package siprp.higiene.gestao.normalizacao;
+
+import static com.evolute.utils.strings.UnicodeLatin1Map.atilde;
+import static com.evolute.utils.strings.UnicodeLatin1Map.ccedil;
+
+import javax.swing.tree.DefaultMutableTreeNode;
+import javax.swing.tree.TreePath;
+
+import leaf.ui.LeafError;
+import leaf.ui.TreeInserterDialog;
+import leaf.ui.TreeTools;
+import siprp.database.cayenne.objects.Empresas;
+import siprp.database.cayenne.objects.Estabelecimentos;
+import siprp.database.cayenne.objects.HsNormalizacao;
+import siprp.database.cayenne.objects.HsNormalizacaoEmpresa;
+import siprp.database.cayenne.objects.HsNormalizacaoEstabelecimento;
+import siprp.higiene.gestao.AdicionarPanel;
+import siprp.logic.HigieneSegurancaLogic;
+
+public class AdicionarNormalizacaoPanel extends AdicionarPanel
+{
+
+ private static final long serialVersionUID = 1L;
+
+ private Empresas empresa = null;
+
+ private Estabelecimentos estabelecimento = null;
+
+ public void setEmpresa( Empresas empresa )
+ {
+ this.empresa = empresa;
+ this.estabelecimento = null;
+ refresh();
+ }
+
+ public void setEstabelecimento( Estabelecimentos estabelecimento )
+ {
+ this.empresa = null;
+ this.estabelecimento = estabelecimento;
+ refresh();
+ }
+
+ @Override
+ protected void add()
+ {
+ DefaultMutableTreeNode allNormalizacao = getAllNormalizacao();
+ removeCurrent( allNormalizacao );
+ TreeInserterDialog dialog = new TreeInserterDialog( this, "Adicionar Normaliza" + ccedil + atilde + "o", allNormalizacao );
+ DefaultMutableTreeNode result = dialog.getResult();
+ if( result != null )
+ {
+ addResult( result );
+ refresh();
+ }
+ setEnabled();
+ }
+
+ private DefaultMutableTreeNode getAllNormalizacao()
+ {
+ DefaultMutableTreeNode result = new DefaultMutableTreeNode();
+ if( empresa != null )
+ {
+ result = HigieneSegurancaLogic.getNormalizacaoTree( null );
+ }
+ else if( estabelecimento != null )
+ {
+ result = HigieneSegurancaLogic.getNormalizacaoTree( estabelecimento.getToEmpresas() );
+ }
+ return result;
+ }
+
+ private void removeCurrent( DefaultMutableTreeNode all )
+ {
+ if( all != null && root.getChildCount() == 2 && all.getChildCount() == 2 )
+ {
+ DefaultMutableTreeNode portuguesaAll = (DefaultMutableTreeNode) all.getChildAt( 0 );
+ DefaultMutableTreeNode internacionalAll = (DefaultMutableTreeNode) all.getChildAt( 1 );
+ DefaultMutableTreeNode portuguesaCurrent = (DefaultMutableTreeNode) root.getChildAt( 0 );
+ DefaultMutableTreeNode internacionalCurrent = (DefaultMutableTreeNode) root.getChildAt( 1 );
+ TreeTools.remove( portuguesaAll, portuguesaCurrent );
+ TreeTools.remove( internacionalAll, internacionalCurrent );
+ }
+ }
+
+ private void addResult( DefaultMutableTreeNode root )
+ {
+ try
+ {
+ if( root != null )
+ {
+ Object userObject = root.getUserObject();
+ if( userObject instanceof HsNormalizacao )
+ {
+ if( empresa != null )
+ {
+ HsNormalizacaoEmpresa rel = new HsNormalizacaoEmpresa();
+ rel.setToEmpresa( empresa );
+ rel.setToHsNormalizacao( ((HsNormalizacao) userObject ) );
+ rel.save();
+ }
+ else if( estabelecimento != null )
+ {
+ HsNormalizacaoEstabelecimento rel = new HsNormalizacaoEstabelecimento();
+ rel.setToEstabelecimento( estabelecimento );
+ rel.setToHsNormalizacao( ((HsNormalizacao) userObject ) );
+ rel.save();
+ }
+ }
+ }
+ for( int i = 0; i < root.getChildCount(); ++i )
+ {
+ DefaultMutableTreeNode child = (DefaultMutableTreeNode) root.getChildAt( i );
+ addResult( child );
+ }
+ }
+ catch( Exception e )
+ {
+ LeafError.error( e );
+ }
+ }
+
+ @Override
+ public void refresh()
+ {
+ root.removeAllChildren();
+ if( empresa != null || estabelecimento != null )
+ {
+ TreeTools.merge( root, HigieneSegurancaLogic.getNormalizacaoTree( empresa != null ? empresa : estabelecimento.getToEmpresas() ) );
+ }
+ setEnabled();
+ TreeTools.refreshTree( tree, root );
+ }
+
+ @Override
+ protected void setEnabled()
+ {
+ buttonAdicionar.setEnabled( empresa != null || estabelecimento != null );
+ buttonRemover.setEnabled( tree.getSelectionCount() > 0 );
+ }
+
+ @Override
+ protected void rem()
+ {
+ try
+ {
+ TreePath path = tree.getSelectionPath();
+ if( path != null )
+ {
+ DefaultMutableTreeNode node = (DefaultMutableTreeNode) path.getLastPathComponent();
+ Object obj = node.getUserObject();
+ if( obj != null && (obj instanceof HsNormalizacao) )
+ {
+ if( empresa != null )
+ {
+ removeFromEmpresa( ((HsNormalizacao) obj ) );
+ }
+ else if( estabelecimento != null )
+ {
+ removeFromEstabelecimento( ((HsNormalizacao) obj ));
+ }
+ refresh();
+ }
+ }
+ }
+ catch( Exception e )
+ {
+ LeafError.error( e );
+ }
+ }
+
+ private void removeFromEmpresa( HsNormalizacao normalizacao ) throws Exception
+ {
+ if( normalizacao != null && empresa != null )
+ {
+ for( HsNormalizacaoEmpresa rel : empresa.getHsNormalizacaoEmpresaArray() )
+ {
+ if( normalizacao.equals( rel.getToHsNormalizacao() ) )
+ {
+ rel.delete();
+ break;
+ }
+ }
+ }
+ }
+
+ private void removeFromEstabelecimento( HsNormalizacao normalizacao ) throws Exception
+ {
+ if( normalizacao != null && estabelecimento != null )
+ {
+ for( HsNormalizacaoEstabelecimento rel : estabelecimento.getHsNormalizacaoEstabelecimentoArray() )
+ {
+ if( normalizacao.equals( rel.getToHsNormalizacao() ) )
+ {
+ rel.delete();
+ break;
+ }
+ }
+
+ }
+ }
+
+}
diff --git a/trunk/SIPRPSoft/src/siprp/higiene/gestao/normalizacao/GerirNormalizacaoPanel.java b/trunk/SIPRPSoft/src/siprp/higiene/gestao/normalizacao/GerirNormalizacaoPanel.java
index cee3d565..e9f39397 100644
--- a/trunk/SIPRPSoft/src/siprp/higiene/gestao/normalizacao/GerirNormalizacaoPanel.java
+++ b/trunk/SIPRPSoft/src/siprp/higiene/gestao/normalizacao/GerirNormalizacaoPanel.java
@@ -461,8 +461,8 @@ public class GerirNormalizacaoPanel extends JPanel
rootPortuguesa.removeAllChildren();
rootInternacional.removeAllChildren();
textCodigo.setText( "" );
- TreeTools.merge( rootPortuguesa, HigieneSegurancaLogic.getNormalizacao( true ) );
- TreeTools.merge( rootInternacional, HigieneSegurancaLogic.getNormalizacao( false ) );
+ TreeTools.merge( rootPortuguesa, HigieneSegurancaLogic.getNormalizacaoTree( true ) );
+ TreeTools.merge( rootInternacional, HigieneSegurancaLogic.getNormalizacaoTree( false ) );
TreeTools.refreshTree( treePortuguesa, rootPortuguesa );
TreeTools.refreshTree( treeInternacional, rootInternacional );
}
diff --git a/trunk/common/src/SIPRPMap.map.xml b/trunk/common/src/SIPRPMap.map.xml
index 98f43a11..ac639e0b 100644
--- a/trunk/common/src/SIPRPMap.map.xml
+++ b/trunk/common/src/SIPRPMap.map.xml
@@ -1247,6 +1247,9 @@
+
+
+
@@ -1283,6 +1286,9 @@
+
+
+
@@ -1364,9 +1370,15 @@
+
+
+
+
+
+
@@ -1820,6 +1832,8 @@
+
+
@@ -1831,6 +1845,8 @@
+
+
@@ -1857,14 +1873,18 @@
+
+
-
-
-
-
+
+
+
+
+
+
diff --git a/trunk/common/src/leaf/ui/TreeTools.java b/trunk/common/src/leaf/ui/TreeTools.java
index 9df30347..cd6572a7 100644
--- a/trunk/common/src/leaf/ui/TreeTools.java
+++ b/trunk/common/src/leaf/ui/TreeTools.java
@@ -85,5 +85,18 @@ public class TreeTools
exists.removeFromParent();
}
}
+
+ public static void remove( DefaultMutableTreeNode from, DefaultMutableTreeNode what )
+ {
+ for( int i = 0; i < what.getChildCount(); ++i )
+ {
+ DefaultMutableTreeNode child = (DefaultMutableTreeNode) what.getChildAt( i );
+ DefaultMutableTreeNode exists = TreeTools.findNodeWithUserObject( child.getUserObject(), from );
+ if( exists != null )
+ {
+ exists.removeFromParent();
+ }
+ }
+ }
}
diff --git a/trunk/common/src/siprp/database/cayenne/objects/auto/_Empresas.java b/trunk/common/src/siprp/database/cayenne/objects/auto/_Empresas.java
index d2157aef..7bc49558 100644
--- a/trunk/common/src/siprp/database/cayenne/objects/auto/_Empresas.java
+++ b/trunk/common/src/siprp/database/cayenne/objects/auto/_Empresas.java
@@ -9,6 +9,8 @@ import siprp.database.cayenne.objects.Contactos;
import siprp.database.cayenne.objects.Estabelecimentos;
import siprp.database.cayenne.objects.HsArea;
import siprp.database.cayenne.objects.HsEmailEmpresa;
+import siprp.database.cayenne.objects.HsLegislacaoEmpresa;
+import siprp.database.cayenne.objects.HsNormalizacaoEmpresa;
import siprp.database.cayenne.objects.HsRiscoEmpresa;
import siprp.database.cayenne.objects.Image;
import siprp.database.cayenne.objects.Lembretes;
@@ -68,6 +70,8 @@ public abstract class _Empresas extends BaseObject {
public static final String ESTABELECIMENTOS_ARRAY_PROPERTY = "estabelecimentosArray";
public static final String HS_AREA_ARRAY_PROPERTY = "hsAreaArray";
public static final String HS_EMAIL_EMPRESA_PROPERTY = "hsEmailEmpresa";
+ public static final String HS_LEGISLACAO_EMPRESA_ARRAY_PROPERTY = "hsLegislacaoEmpresaArray";
+ public static final String HS_NORMALIZACAO_EMPRESA_ARRAY_PROPERTY = "hsNormalizacaoEmpresaArray";
public static final String HS_RISCO_EMPRESA_ARRAY_PROPERTY = "hsRiscoEmpresaArray";
public static final String LEMBRETES_ARRAY_PROPERTY = "lembretesArray";
public static final String MARCACOES_EMPRESA_ARRAY_PROPERTY = "marcacoesEmpresaArray";
@@ -413,6 +417,30 @@ public abstract class _Empresas extends BaseObject {
}
+ public void addToHsLegislacaoEmpresaArray(HsLegislacaoEmpresa obj) {
+ addToManyTarget("hsLegislacaoEmpresaArray", obj, true);
+ }
+ public void removeFromHsLegislacaoEmpresaArray(HsLegislacaoEmpresa obj) {
+ removeToManyTarget("hsLegislacaoEmpresaArray", obj, true);
+ }
+ @SuppressWarnings("unchecked")
+ public List getHsLegislacaoEmpresaArray() {
+ return (List)readProperty("hsLegislacaoEmpresaArray");
+ }
+
+
+ public void addToHsNormalizacaoEmpresaArray(HsNormalizacaoEmpresa obj) {
+ addToManyTarget("hsNormalizacaoEmpresaArray", obj, true);
+ }
+ public void removeFromHsNormalizacaoEmpresaArray(HsNormalizacaoEmpresa obj) {
+ removeToManyTarget("hsNormalizacaoEmpresaArray", obj, true);
+ }
+ @SuppressWarnings("unchecked")
+ public List getHsNormalizacaoEmpresaArray() {
+ return (List)readProperty("hsNormalizacaoEmpresaArray");
+ }
+
+
public void addToHsRiscoEmpresaArray(HsRiscoEmpresa obj) {
addToManyTarget("hsRiscoEmpresaArray", obj, true);
}
diff --git a/trunk/common/src/siprp/database/cayenne/objects/auto/_Estabelecimentos.java b/trunk/common/src/siprp/database/cayenne/objects/auto/_Estabelecimentos.java
index e6f2efd8..7eb0e07f 100644
--- a/trunk/common/src/siprp/database/cayenne/objects/auto/_Estabelecimentos.java
+++ b/trunk/common/src/siprp/database/cayenne/objects/auto/_Estabelecimentos.java
@@ -10,6 +10,8 @@ import siprp.database.cayenne.objects.EmailPlanoDeActuacao;
import siprp.database.cayenne.objects.Empresas;
import siprp.database.cayenne.objects.HistoricoEstabelecimento;
import siprp.database.cayenne.objects.HsEmailEstabelecimento;
+import siprp.database.cayenne.objects.HsLegislacaoEstabelecimento;
+import siprp.database.cayenne.objects.HsNormalizacaoEstabelecimento;
import siprp.database.cayenne.objects.HsPostoEstabelecimento;
import siprp.database.cayenne.objects.Lembretes;
import siprp.database.cayenne.objects.MarcacoesEstabelecimento;
@@ -39,6 +41,8 @@ public abstract class _Estabelecimentos extends BaseObject {
public static final String EMAIL_PLANO_DE_ACTUACAO_ARRAY_PROPERTY = "emailPlanoDeActuacaoArray";
public static final String HISTORICO_ESTABELECIMENTO_ARRAY_PROPERTY = "historicoEstabelecimentoArray";
public static final String HS_EMAIL_ESTABELECIMENTO_PROPERTY = "hsEmailEstabelecimento";
+ public static final String HS_LEGISLACAO_ESTABELECIMENTO_ARRAY_PROPERTY = "hsLegislacaoEstabelecimentoArray";
+ public static final String HS_NORMALIZACAO_ESTABELECIMENTO_ARRAY_PROPERTY = "hsNormalizacaoEstabelecimentoArray";
public static final String HS_POSTO_ESTABELECIMENTO_ARRAY_PROPERTY = "hsPostoEstabelecimentoArray";
public static final String LEMBRETES_ARRAY_PROPERTY = "lembretesArray";
public static final String MARCACOES_ESTABELECIMENTO_ARRAY_PROPERTY = "marcacoesEstabelecimentoArray";
@@ -169,6 +173,30 @@ public abstract class _Estabelecimentos extends BaseObject {
}
+ public void addToHsLegislacaoEstabelecimentoArray(HsLegislacaoEstabelecimento obj) {
+ addToManyTarget("hsLegislacaoEstabelecimentoArray", obj, true);
+ }
+ public void removeFromHsLegislacaoEstabelecimentoArray(HsLegislacaoEstabelecimento obj) {
+ removeToManyTarget("hsLegislacaoEstabelecimentoArray", obj, true);
+ }
+ @SuppressWarnings("unchecked")
+ public List getHsLegislacaoEstabelecimentoArray() {
+ return (List)readProperty("hsLegislacaoEstabelecimentoArray");
+ }
+
+
+ public void addToHsNormalizacaoEstabelecimentoArray(HsNormalizacaoEstabelecimento obj) {
+ addToManyTarget("hsNormalizacaoEstabelecimentoArray", obj, true);
+ }
+ public void removeFromHsNormalizacaoEstabelecimentoArray(HsNormalizacaoEstabelecimento obj) {
+ removeToManyTarget("hsNormalizacaoEstabelecimentoArray", obj, true);
+ }
+ @SuppressWarnings("unchecked")
+ public List getHsNormalizacaoEstabelecimentoArray() {
+ return (List)readProperty("hsNormalizacaoEstabelecimentoArray");
+ }
+
+
public void addToHsPostoEstabelecimentoArray(HsPostoEstabelecimento obj) {
addToManyTarget("hsPostoEstabelecimentoArray", obj, true);
}
diff --git a/trunk/common/src/siprp/database/cayenne/objects/auto/_HsLegislacaoEmpresa.java b/trunk/common/src/siprp/database/cayenne/objects/auto/_HsLegislacaoEmpresa.java
index 4c899306..3953a419 100644
--- a/trunk/common/src/siprp/database/cayenne/objects/auto/_HsLegislacaoEmpresa.java
+++ b/trunk/common/src/siprp/database/cayenne/objects/auto/_HsLegislacaoEmpresa.java
@@ -1,6 +1,7 @@
package siprp.database.cayenne.objects.auto;
import siprp.database.cayenne.objects.BaseObject;
+import siprp.database.cayenne.objects.Empresas;
import siprp.database.cayenne.objects.HsLegislacao;
/**
@@ -11,11 +12,21 @@ import siprp.database.cayenne.objects.HsLegislacao;
*/
public abstract class _HsLegislacaoEmpresa extends BaseObject {
+ public static final String TO_HS_EMPRESA_PROPERTY = "toHsEmpresa";
public static final String TO_HS_LEGISLACAO_PROPERTY = "toHsLegislacao";
public static final String EMPRESA_ID_PK_COLUMN = "empresa_id";
public static final String LEGISLACAO_ID_PK_COLUMN = "legislacao_id";
+ public void setToHsEmpresa(Empresas toHsEmpresa) {
+ setToOneTarget("toHsEmpresa", toHsEmpresa, true);
+ }
+
+ public Empresas getToHsEmpresa() {
+ return (Empresas)readProperty("toHsEmpresa");
+ }
+
+
public void setToHsLegislacao(HsLegislacao toHsLegislacao) {
setToOneTarget("toHsLegislacao", toHsLegislacao, true);
}
diff --git a/trunk/common/src/siprp/database/cayenne/objects/auto/_HsLegislacaoEstabelecimento.java b/trunk/common/src/siprp/database/cayenne/objects/auto/_HsLegislacaoEstabelecimento.java
index 67488659..183205df 100644
--- a/trunk/common/src/siprp/database/cayenne/objects/auto/_HsLegislacaoEstabelecimento.java
+++ b/trunk/common/src/siprp/database/cayenne/objects/auto/_HsLegislacaoEstabelecimento.java
@@ -1,6 +1,7 @@
package siprp.database.cayenne.objects.auto;
import siprp.database.cayenne.objects.BaseObject;
+import siprp.database.cayenne.objects.Estabelecimentos;
import siprp.database.cayenne.objects.HsLegislacao;
/**
@@ -11,11 +12,21 @@ import siprp.database.cayenne.objects.HsLegislacao;
*/
public abstract class _HsLegislacaoEstabelecimento extends BaseObject {
+ public static final String TO_HS_ESTABELECIMENTO_PROPERTY = "toHsEstabelecimento";
public static final String TO_HS_LEGISLACAO_PROPERTY = "toHsLegislacao";
public static final String ESTABELECIMENTO_ID_PK_COLUMN = "estabelecimento_id";
public static final String LEGISLACAO_ID_PK_COLUMN = "legislacao_id";
+ public void setToHsEstabelecimento(Estabelecimentos toHsEstabelecimento) {
+ setToOneTarget("toHsEstabelecimento", toHsEstabelecimento, true);
+ }
+
+ public Estabelecimentos getToHsEstabelecimento() {
+ return (Estabelecimentos)readProperty("toHsEstabelecimento");
+ }
+
+
public void setToHsLegislacao(HsLegislacao toHsLegislacao) {
setToOneTarget("toHsLegislacao", toHsLegislacao, true);
}
diff --git a/trunk/common/src/siprp/database/cayenne/objects/auto/_HsNormalizacao.java b/trunk/common/src/siprp/database/cayenne/objects/auto/_HsNormalizacao.java
index 11bb81f4..607f9958 100644
--- a/trunk/common/src/siprp/database/cayenne/objects/auto/_HsNormalizacao.java
+++ b/trunk/common/src/siprp/database/cayenne/objects/auto/_HsNormalizacao.java
@@ -1,8 +1,11 @@
package siprp.database.cayenne.objects.auto;
import java.util.Date;
+import java.util.List;
import siprp.database.cayenne.objects.BaseObject;
+import siprp.database.cayenne.objects.HsNormalizacaoEmpresa;
+import siprp.database.cayenne.objects.HsNormalizacaoEstabelecimento;
/**
* Class _HsNormalizacao was generated by Cayenne.
@@ -16,6 +19,8 @@ public abstract class _HsNormalizacao extends BaseObject {
public static final String DELETED_DATE_PROPERTY = "deletedDate";
public static final String DESCRICAO_PROPERTY = "descricao";
public static final String PORTUGUESA_PROPERTY = "portuguesa";
+ public static final String HS_NORMALIZACAO_EMPRESA_ARRAY_PROPERTY = "hsNormalizacaoEmpresaArray";
+ public static final String HS_NORMALIZACAO_ESTABELECIMENTO_ARRAY_PROPERTY = "hsNormalizacaoEstabelecimentoArray";
public static final String ID_PK_COLUMN = "id";
@@ -47,4 +52,28 @@ public abstract class _HsNormalizacao extends BaseObject {
return (Boolean)readProperty("portuguesa");
}
+ public void addToHsNormalizacaoEmpresaArray(HsNormalizacaoEmpresa obj) {
+ addToManyTarget("hsNormalizacaoEmpresaArray", obj, true);
+ }
+ public void removeFromHsNormalizacaoEmpresaArray(HsNormalizacaoEmpresa obj) {
+ removeToManyTarget("hsNormalizacaoEmpresaArray", obj, true);
+ }
+ @SuppressWarnings("unchecked")
+ public List getHsNormalizacaoEmpresaArray() {
+ return (List)readProperty("hsNormalizacaoEmpresaArray");
+ }
+
+
+ public void addToHsNormalizacaoEstabelecimentoArray(HsNormalizacaoEstabelecimento obj) {
+ addToManyTarget("hsNormalizacaoEstabelecimentoArray", obj, true);
+ }
+ public void removeFromHsNormalizacaoEstabelecimentoArray(HsNormalizacaoEstabelecimento obj) {
+ removeToManyTarget("hsNormalizacaoEstabelecimentoArray", obj, true);
+ }
+ @SuppressWarnings("unchecked")
+ public List getHsNormalizacaoEstabelecimentoArray() {
+ return (List)readProperty("hsNormalizacaoEstabelecimentoArray");
+ }
+
+
}
diff --git a/trunk/common/src/siprp/database/cayenne/providers/PlanoActuacaoDAO.java b/trunk/common/src/siprp/database/cayenne/providers/PlanoActuacaoDAO.java
index 7afca4f9..a5553858 100644
--- a/trunk/common/src/siprp/database/cayenne/providers/PlanoActuacaoDAO.java
+++ b/trunk/common/src/siprp/database/cayenne/providers/PlanoActuacaoDAO.java
@@ -9,6 +9,7 @@ import org.apache.cayenne.exp.ExpressionFactory;
import org.apache.cayenne.query.SelectQuery;
import siprp.database.cayenne.objects.EmailPlanoDeActuacao;
+import siprp.database.cayenne.objects.Empresas;
import siprp.database.cayenne.objects.Estabelecimentos;
import siprp.database.cayenne.objects.HsLegislacao;
import siprp.database.cayenne.objects.HsLegislacaoCategoria;
diff --git a/trunk/common/src/siprp/logic/HigieneSegurancaLogic.java b/trunk/common/src/siprp/logic/HigieneSegurancaLogic.java
index 88f043dd..f2340000 100644
--- a/trunk/common/src/siprp/logic/HigieneSegurancaLogic.java
+++ b/trunk/common/src/siprp/logic/HigieneSegurancaLogic.java
@@ -12,7 +12,9 @@ import siprp.database.cayenne.objects.Estabelecimentos;
import siprp.database.cayenne.objects.HsArea;
import siprp.database.cayenne.objects.HsLegislacao;
import siprp.database.cayenne.objects.HsLegislacaoCategoria;
+import siprp.database.cayenne.objects.HsLegislacaoEmpresa;
import siprp.database.cayenne.objects.HsNormalizacao;
+import siprp.database.cayenne.objects.HsNormalizacaoEmpresa;
import siprp.database.cayenne.objects.HsPosto;
import siprp.database.cayenne.objects.HsPostoEstabelecimento;
import siprp.database.cayenne.objects.HsPostoRisco;
@@ -38,6 +40,8 @@ import siprp.logic.node.NodeRiscoTema;
import siprp.logic.node.PostoNode;
import siprp.logic.node.PostoRelatorioNode;
+import static com.evolute.utils.strings.UnicodeLatin1Map.*;
+
public class HigieneSegurancaLogic
{
@@ -291,9 +295,9 @@ public class HigieneSegurancaLogic
return result;
}
- public static DefaultMutableTreeNode getNormalizacao( boolean portuguesa )
+ public static DefaultMutableTreeNode getNormalizacaoTree( boolean portuguesa )
{
- DefaultMutableTreeNode result = new DefaultMutableTreeNode();
+ DefaultMutableTreeNode result = new DefaultMutableTreeNode("Normaliza" + ccedil + atilde + "o " + ( portuguesa ? "Portuguesa" : "Internacional" ) );
for( HsNormalizacao normalizacao : planoProvider.getNormalizacao( portuguesa ) )
{
DefaultMutableTreeNode normalizacaoNode = new DefaultMutableTreeNode( normalizacao );
@@ -302,4 +306,101 @@ public class HigieneSegurancaLogic
return result;
}
+ public static DefaultMutableTreeNode getNormalizacaoTree( Empresas empresa )
+ {
+ DefaultMutableTreeNode result = new DefaultMutableTreeNode();
+ DefaultMutableTreeNode portuguesa = new DefaultMutableTreeNode("Normaliza" + ccedil + atilde + "o Portuguesa" );
+ DefaultMutableTreeNode internacional = new DefaultMutableTreeNode("Normaliza" + ccedil + atilde + "o Internacional" );
+ for( HsNormalizacao normalizacao : planoProvider.getNormalizacao( true ) )
+ {
+ if( empresa == null || hasEmpresa( normalizacao, empresa ) )
+ {
+ DefaultMutableTreeNode normalizacaoNode = new DefaultMutableTreeNode( normalizacao );
+ portuguesa.add( normalizacaoNode );
+ }
+ }
+ for( HsNormalizacao normalizacao : planoProvider.getNormalizacao( false ) )
+ {
+ if( empresa == null || hasEmpresa( normalizacao, empresa ) )
+ {
+ DefaultMutableTreeNode normalizacaoNode = new DefaultMutableTreeNode( normalizacao );
+ internacional.add( normalizacaoNode );
+ }
+ }
+ result.add( portuguesa );
+ result.add( internacional );
+ return result;
+ }
+
+ private static boolean hasEmpresa( HsNormalizacao normalizacao, Empresas empresa )
+ {
+ boolean result = false;
+ if( normalizacao != null && empresa != null )
+ {
+ for( HsNormalizacaoEmpresa rel : normalizacao.getHsNormalizacaoEmpresaArray())
+ {
+ result = empresa.equals( rel.getToEmpresa() );
+ if( result )
+ {
+ break;
+ }
+ }
+ }
+ return result;
+ }
+
+ public static DefaultMutableTreeNode getLegislacaoTree( Empresas empresa )
+ {
+ DefaultMutableTreeNode result = new DefaultMutableTreeNode();
+ DefaultMutableTreeNode geral = new DefaultMutableTreeNode( "Legisla" + ccedil + atilde + "o de aplica" + ccedil + atilde + "o geral" );
+ DefaultMutableTreeNode especifica = new DefaultMutableTreeNode( "Legisla" + ccedil + atilde + "o espec" + iacute + "fica" );
+ for( HsLegislacao legislacao : planoProvider.getAllLegislacaoGeral() )
+ {
+ if( empresa == null || hasEmpresa( legislacao, empresa ) )
+ {
+ DefaultMutableTreeNode legislacaoNode = new DefaultMutableTreeNode( legislacao );
+ geral.add( legislacaoNode );
+ }
+ }
+ for( HsLegislacaoCategoria categoria : planoProvider.getAllLegislacaoCategorias( ) )
+ {
+ boolean addCategory = false;
+ DefaultMutableTreeNode categoriaNode = new DefaultMutableTreeNode( categoria );
+ for( HsLegislacao legislacao : categoria.getHsLegislacaoArray() )
+ {
+ if( empresa == null || hasEmpresa( legislacao, empresa ) )
+ {
+ DefaultMutableTreeNode legislacaoNode = new DefaultMutableTreeNode( legislacao );
+ categoriaNode.add( legislacaoNode );
+ addCategory = true;
+ }
+
+ }
+ if( addCategory)
+ {
+ especifica.add( categoriaNode );
+ }
+ }
+ result.add( geral );
+ result.add( especifica );
+ return result;
+ }
+
+ private static boolean hasEmpresa( HsLegislacao legislacao, Empresas empresa )
+ {
+ boolean result = false;
+ if( legislacao != null && empresa != null )
+ {
+ for( HsLegislacaoEmpresa rel : legislacao.getHsLegislacaoEmpresaArray() )
+ {
+ result = empresa.equals( rel.getToHsEmpresa() );
+ if( result )
+ {
+ break;
+ }
+ }
+ }
+ return result;
+ }
+
}
diff --git a/trunk/common/src/siprp/logic/node/AreaNode.java b/trunk/common/src/siprp/logic/node/AreaNode.java
index a8dd39ce..48690656 100644
--- a/trunk/common/src/siprp/logic/node/AreaNode.java
+++ b/trunk/common/src/siprp/logic/node/AreaNode.java
@@ -9,9 +9,9 @@ public class AreaNode extends DefaultMutableTreeNode
private static final long serialVersionUID = 1L;
- public AreaNode( HsArea risco )
+ public AreaNode( HsArea area )
{
- super( risco );
+ super( area );
}
}