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 ); } }