diff --git a/trunk/.classpath b/trunk/.classpath
index df91a543..7c257393 100644
--- a/trunk/.classpath
+++ b/trunk/.classpath
@@ -30,7 +30,7 @@
-
+
diff --git a/trunk/SIPRPSoft/src/siprp/SIPRPTracker.java b/trunk/SIPRPSoft/src/siprp/SIPRPTracker.java
index 55d31f64..2c2fbd7b 100644
--- a/trunk/SIPRPSoft/src/siprp/SIPRPTracker.java
+++ b/trunk/SIPRPSoft/src/siprp/SIPRPTracker.java
@@ -14,7 +14,8 @@ import siprp.clientes.AvisosPanel;
import siprp.clientes.ClientesWindow;
import siprp.estatistica.EstatisticaWindow;
import siprp.ficha.FichaWindow;
-import siprp.higiene.gestao.riscos.GestaoRiscosWindow;
+import siprp.higiene.gestao.GestaoRelatorioWindow;
+import siprp.higiene.gestao.riscos.GerirRiscosPanel;
import siprp.higiene.legislacoes.GestaoLegislacoesWindow;
import siprp.higiene.mapa.MapaHigieneWindow;
import siprp.higiene.marcacoes.MarcacoesHigieneWindow;
@@ -255,12 +256,12 @@ public class SIPRPTracker extends WindowTracker
return new GestaoLegislacoesWindow();
}
} );
- higieneNode.add( new DefaultMutableTreeNode( GestaoRiscosWindow.TITLE) );
- creators.put( GestaoRiscosWindow.TITLE, new WindowCreator() {
+ higieneNode.add( new DefaultMutableTreeNode( GestaoRelatorioWindow.TITLE ) );
+ creators.put( GestaoRelatorioWindow.TITLE, new WindowCreator() {
public TrackableWindow create()
throws Exception
{
- return new GestaoRiscosWindow();
+ return new GestaoRelatorioWindow();
}
} );
rootNode.add( higieneNode );
diff --git a/trunk/SIPRPSoft/src/siprp/higiene/gestao/EmpresaPanel.java b/trunk/SIPRPSoft/src/siprp/higiene/gestao/EmpresaPanel.java
index 74d0ec4b..3abac82c 100644
--- a/trunk/SIPRPSoft/src/siprp/higiene/gestao/EmpresaPanel.java
+++ b/trunk/SIPRPSoft/src/siprp/higiene/gestao/EmpresaPanel.java
@@ -30,10 +30,11 @@ public class EmpresaPanel extends JPanel
public EmpresaPanel()
{
+ startupListeners();
startupComponents();
setupLayout();
placeComponents();
- startupListeners();
+
}
private void startupComponents()
@@ -45,10 +46,6 @@ public class EmpresaPanel extends JPanel
{
comboEmpresa.addItem( empresa );
}
- if( comboEmpresa.getItemCount() > 0 )
- {
- comboEmpresa.setSelectedIndex( 0 );
- }
}
tabs.addTab( "Empresa", panelEmpresa );
tabs.addTab( "Estabelecimentos", panelEstabelecimentos );
@@ -90,12 +87,7 @@ public class EmpresaPanel extends JPanel
panelEstabelecimentos.setEmpresa( (Empresas) item );
}
}
- else if( ItemEvent.DESELECTED == e.getStateChange() )
- {
- panelEmpresa.setEmpresa( null );
- panelEstabelecimentos.setEmpresa( null );
- }
- }
+ }
});
}
diff --git a/trunk/SIPRPSoft/src/siprp/higiene/gestao/GerirEstabelecimentosPanel.java b/trunk/SIPRPSoft/src/siprp/higiene/gestao/GerirEstabelecimentosPanel.java
index 73bbebc7..fa9f18ba 100644
--- a/trunk/SIPRPSoft/src/siprp/higiene/gestao/GerirEstabelecimentosPanel.java
+++ b/trunk/SIPRPSoft/src/siprp/higiene/gestao/GerirEstabelecimentosPanel.java
@@ -8,6 +8,8 @@ import info.clearthought.layout.TableLayoutConstraints;
import java.awt.Dimension;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
import javax.swing.BorderFactory;
import javax.swing.JComboBox;
@@ -15,6 +17,7 @@ import javax.swing.JPanel;
import siprp.database.cayenne.objects.Empresas;
import siprp.database.cayenne.objects.Estabelecimentos;
+import siprp.database.cayenne.objects.HsPosto;
import siprp.higiene.gestao.postos.AdicionarAreasPanel;
import siprp.higiene.gestao.riscos.AdicionarRiscosPanel;
@@ -82,6 +85,22 @@ public class GerirEstabelecimentosPanel extends JPanel
}
}
} );
+ panelAreas.addPropertyChangeListener( AdicionarAreasPanel.SELECTION_CHANGED, new PropertyChangeListener()
+ {
+ @Override
+ public void propertyChange( PropertyChangeEvent evt )
+ {
+ Object obj = evt.getNewValue();
+ if( obj != null && (obj instanceof HsPosto) )
+ {
+ panelRiscos.setPosto( (HsPosto) obj );
+ }
+ else
+ {
+ panelRiscos.setPosto( null );
+ }
+ }
+ } );
}
public void setEmpresa( Empresas empresa )
diff --git a/trunk/SIPRPSoft/src/siprp/higiene/gestao/GestaoRelatorioWindow.java b/trunk/SIPRPSoft/src/siprp/higiene/gestao/GestaoRelatorioWindow.java
index 7f564c21..0f1b3463 100644
--- a/trunk/SIPRPSoft/src/siprp/higiene/gestao/GestaoRelatorioWindow.java
+++ b/trunk/SIPRPSoft/src/siprp/higiene/gestao/GestaoRelatorioWindow.java
@@ -36,6 +36,7 @@ public class GestaoRelatorioWindow extends JFrame implements TrackableWindow
{
this.setTitle( TITLE );
this.setSize( SIZE );
+ this.setLocationRelativeTo( null );
placeComponents();
}
diff --git a/trunk/SIPRPSoft/src/siprp/higiene/gestao/GlobalPanel.java b/trunk/SIPRPSoft/src/siprp/higiene/gestao/GlobalPanel.java
index bb3a820f..19efb880 100644
--- a/trunk/SIPRPSoft/src/siprp/higiene/gestao/GlobalPanel.java
+++ b/trunk/SIPRPSoft/src/siprp/higiene/gestao/GlobalPanel.java
@@ -1,11 +1,15 @@
package siprp.higiene.gestao;
-import javax.swing.JPanel;
+import javax.swing.JTabbedPane;
-public class GlobalPanel extends JPanel
+import siprp.higiene.gestao.riscos.GerirRiscosPanel;
+
+public class GlobalPanel extends JTabbedPane
{
private static final long serialVersionUID = 1L;
+
+ private final GerirRiscosPanel panelRiscos = new GerirRiscosPanel();
public GlobalPanel()
{
@@ -17,7 +21,7 @@ public class GlobalPanel extends JPanel
private void startupComponents()
{
-
+ addTab( "Riscos", panelRiscos );
}
private void setupLayout()
diff --git a/trunk/SIPRPSoft/src/siprp/higiene/gestao/postos/AdicionarAreasPanel.java b/trunk/SIPRPSoft/src/siprp/higiene/gestao/postos/AdicionarAreasPanel.java
index 6382321e..c844b68b 100644
--- a/trunk/SIPRPSoft/src/siprp/higiene/gestao/postos/AdicionarAreasPanel.java
+++ b/trunk/SIPRPSoft/src/siprp/higiene/gestao/postos/AdicionarAreasPanel.java
@@ -3,23 +3,33 @@ package siprp.higiene.gestao.postos;
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;
+import leaf.ui.TreeInserterDialog;
+import leaf.ui.TreeTools;
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.logic.HigieneSegurancaLogic;
public class AdicionarAreasPanel extends JPanel
{
private static final long serialVersionUID = 1L;
+
+ public static final String SELECTION_CHANGED = "SELECTION_CHANGED";
private final LeafButton buttonAdicionar = new LeafButton("Adicionar");
@@ -81,62 +91,118 @@ public class AdicionarAreasPanel extends JPanel
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();
+ HsPosto posto = object == null ? null : ( (object instanceof PostoNode) ? (HsPosto) ((PostoNode) object).getUserObject() : null);
+ firePropertyChange( SELECTION_CHANGED, null, posto );
+ }
+ } );
+ buttonAdicionar.addActionListener( new ActionListener()
+ {
+ @Override
+ public void actionPerformed( ActionEvent e )
+ {
+ add();
+ }
+ } );
+ buttonRemover.addActionListener( new ActionListener()
+ {
+ @Override
+ public void actionPerformed( ActionEvent e )
+ {
+ rem();
+ }
+ } );
}
- private void setEnabled()
+ private void add()
{
- buttonAdicionar.setEnabled( estabelecimento != null );
- buttonRemover.setEnabled( tree.getSelectionCount() > 0 );
+ DefaultMutableTreeNode allPostos = HigieneSegurancaLogic.getAreasTree( estabelecimento.getToEmpresas() );
+ TreeTools.removeAll( allPostos, HigieneSegurancaLogic.getPostosTree( estabelecimento ) );
+ TreeInserterDialog dialog = new TreeInserterDialog("Adicionar Postos de Trabalho", allPostos );
+ save( dialog.getResult() );
+ refresh();
}
- public void refresh()
+ private void save( DefaultMutableTreeNode toadd )
{
- root.removeAllChildren();
- if( estabelecimento != null )
+ Object obj = toadd.getUserObject();
+ if( obj instanceof HsPosto )
{
- for( HsPostoEstabelecimento rel : estabelecimento.getHsPostoEstabelecimentoArray() )
- {
- addPosto( rel.getToHsPosto() );
- }
+ HsPostoEstabelecimento rel = new HsPostoEstabelecimento();
+ rel.setToEstabelecimentos( estabelecimento );
+ rel.setToHsPosto( (HsPosto) obj );
+ rel.save();
}
- setEnabled();
- ((DefaultTreeModel) tree.getModel()).nodeStructureChanged( root );
- for( int i = 0; i < tree.getRowCount(); ++i)
+ else
{
- tree.expandPath( tree.getPathForRow( i ) );
+ for( int i = 0; i < toadd.getChildCount(); ++i )
+ {
+ save( (DefaultMutableTreeNode) toadd.getChildAt( i ) );
+ }
}
}
- private void addPosto( HsPosto posto )
+ private void rem()
{
- if( posto != null )
+ TreePath path = tree.getSelectionPath();
+ if( path != null )
{
- HsArea area = posto.getToHsArea();
- AreaNode areaNode = getAreaNodeWith( area );
- if( areaNode == null )
+ Object object = path.getLastPathComponent();
+ if( object instanceof PostoNode )
+ {
+ HsPosto posto = ((HsPosto)((PostoNode) object).getUserObject());
+ remPosto( posto );
+ }
+ else if( object instanceof AreaNode )
{
- areaNode = new AreaNode( area );
- root.add( areaNode );
+ for( int i = 0; i < ((AreaNode)object).getChildCount(); ++i )
+ {
+ PostoNode postoNode = (PostoNode) ((AreaNode)object).getChildAt( i );
+ remPosto( (HsPosto) postoNode.getUserObject() );
+ }
}
- areaNode.add( new PostoNode( posto ) );
}
+ refresh();
}
- private AreaNode getAreaNodeWith( HsArea area )
+ private void remPosto( HsPosto posto )
{
- AreaNode result = null;
- if( area != null )
+ HsPostoEstabelecimento toDelete = null;
+ for( HsPostoEstabelecimento rel : posto.getHsPostoEstabelecimentoArray() )
{
- for( int i = 0; i < root.getChildCount(); ++i )
+ if( rel.getToEstabelecimentos().equals( estabelecimento ) )
{
- if( area.equals( ( (AreaNode) root.getChildAt( i )).getUserObject() ) )
- {
- result = (AreaNode) root.getChildAt( i );
- }
+ toDelete = rel;
+ break;
}
}
- return result;
+ if( toDelete != null )
+ {
+ toDelete.delete();
+ }
+ }
+
+ private void setEnabled()
+ {
+ buttonAdicionar.setEnabled( estabelecimento != null );
+ buttonRemover.setEnabled( tree.getSelectionCount() > 0 );
+ }
+
+ public void refresh()
+ {
+ root.removeAllChildren();
+ if( estabelecimento != null )
+ {
+ TreeTools.merge( root, HigieneSegurancaLogic.getAreasTree( estabelecimento ) );
+ }
+ setEnabled();
+ TreeTools.refreshTree( tree, root );
}
diff --git a/trunk/SIPRPSoft/src/siprp/higiene/gestao/riscos/AdicionarRiscosPanel.java b/trunk/SIPRPSoft/src/siprp/higiene/gestao/riscos/AdicionarRiscosPanel.java
index 722d7f9c..6dd5427d 100644
--- a/trunk/SIPRPSoft/src/siprp/higiene/gestao/riscos/AdicionarRiscosPanel.java
+++ b/trunk/SIPRPSoft/src/siprp/higiene/gestao/riscos/AdicionarRiscosPanel.java
@@ -5,7 +5,6 @@ import info.clearthought.layout.TableLayoutConstraints;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
-import java.util.List;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
@@ -18,18 +17,15 @@ import javax.swing.tree.TreePath;
import javax.swing.tree.TreeSelectionModel;
import leaf.ui.LeafButton;
+import leaf.ui.TreeInserterDialog;
import leaf.ui.TreeTools;
import siprp.database.cayenne.objects.BaseObject;
import siprp.database.cayenne.objects.Empresas;
-import siprp.database.cayenne.objects.HsMedida;
import siprp.database.cayenne.objects.HsPosto;
import siprp.database.cayenne.objects.HsPostoRisco;
import siprp.database.cayenne.objects.HsRisco;
import siprp.database.cayenne.objects.HsRiscoEmpresa;
-import siprp.database.cayenne.objects.HsRiscoMedida;
-import siprp.database.cayenne.objects.HsRiscoTema;
-import siprp.database.cayenne.providers.PlanoActuacaoDAO;
-import siprp.higiene.gestao.TreeInserterDialog;
+import siprp.logic.HigieneSegurancaLogic;
public class AdicionarRiscosPanel extends JPanel
{
@@ -125,34 +121,53 @@ public class AdicionarRiscosPanel extends JPanel
private void add()
{
- List temas = new PlanoActuacaoDAO().getAllRiscoTemas();
- if( temas != null )
+ DefaultMutableTreeNode allRiscos = getAllRiscos();
+ TreeTools.removeAll( allRiscos, getRiscosTree( ) );
+ TreeInserterDialog dialog = new TreeInserterDialog( "Adicionar Riscos", allRiscos );
+ DefaultMutableTreeNode result = dialog.getResult();
+ if( result != null )
{
- DefaultMutableTreeNode allRiscos = new DefaultMutableTreeNode();
- allRiscos.removeAllChildren();
- for( HsRiscoTema tema : temas )
+ addResult(result);
+ refresh();
+ }
+ setEnabled();
+ }
+
+ private DefaultMutableTreeNode getAllRiscos()
+ {
+ DefaultMutableTreeNode result = new DefaultMutableTreeNode();
+ if( posto == null )
+ {
+ result = HigieneSegurancaLogic.getRiscosTree();
+ }
+ else
+ {
+ result = HigieneSegurancaLogic.getRiscosTree( posto.getToHsArea().getToEmpresas() );
+ }
+ return result;
+ }
+ private DefaultMutableTreeNode getRiscosTree()
+ {
+ DefaultMutableTreeNode result = new DefaultMutableTreeNode();
+ for( int i = 0; i < root.getChildCount(); ++i )
+ {
+ DefaultMutableTreeNode childNode = (DefaultMutableTreeNode) root.getChildAt( i );
+ BaseObject userObject = (BaseObject) childNode.getUserObject();
+ HsRisco risco = null;
+ if( userObject instanceof HsRiscoEmpresa )
{
- NodeRiscoTema temaNode = new NodeRiscoTema( tema );
- for( HsRisco risco : tema.getHsRiscoArray() )
- {
- NodeRisco riscoNode = new NodeRisco( risco );
- for( HsRiscoMedida rel : risco.getHsRiscoMedidaArray() )
- {
- riscoNode.add( new NodeMedida( rel ) );
- }
- temaNode.add( riscoNode );
- }
- allRiscos.add( temaNode );
+ risco = ((HsRiscoEmpresa) userObject).getToHsRisco();
}
- TreeInserterDialog dialog = new TreeInserterDialog("Adicionar Riscos",allRiscos);
- DefaultMutableTreeNode result = dialog.getResult();
- if( result != null )
+ else if( userObject instanceof HsPostoRisco )
{
- addResult(result);
- refresh();
+ risco = ((HsPostoRisco) userObject).getToHsRisco();
+ }
+ if( risco != null )
+ {
+ result.add( new NodeRisco( risco ) );
}
}
- setEnabled();
+ return result;
}
private void addResult( DefaultMutableTreeNode root )
diff --git a/trunk/SIPRPSoft/src/siprp/higiene/gestao/riscos/GerirRiscosPanel.java b/trunk/SIPRPSoft/src/siprp/higiene/gestao/riscos/GerirRiscosPanel.java
new file mode 100644
index 00000000..b94b0ec1
--- /dev/null
+++ b/trunk/SIPRPSoft/src/siprp/higiene/gestao/riscos/GerirRiscosPanel.java
@@ -0,0 +1,578 @@
+package siprp.higiene.gestao.riscos;
+
+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.awt.Dimension;
+import java.awt.GridLayout;
+import java.awt.Insets;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import javax.swing.BorderFactory;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTextArea;
+import javax.swing.JTree;
+import javax.swing.event.CaretEvent;
+import javax.swing.event.CaretListener;
+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.HsMedida;
+import siprp.database.cayenne.objects.HsRisco;
+import siprp.database.cayenne.objects.HsRiscoMedida;
+import siprp.database.cayenne.objects.HsRiscoTema;
+import siprp.logic.HigieneSegurancaLogic;
+
+import com.evolute.utils.images.ImageException;
+import com.evolute.utils.images.ImageIconLoader;
+
+public class GerirRiscosPanel extends JPanel
+{
+
+ private static final long serialVersionUID = 1L;
+
+ private static final String ICON_NAME_SAVE = "siprp/higiene/gestao/riscos/save.png";
+
+ private static final String ICON_NAME_REVERT = "siprp/higiene/gestao/riscos/revert.png";
+
+ private static final String PANEL_TEMA = "PANEL_TEMA";
+
+ private static final String PANEL_RISCO = "PANEL_RISCO";
+
+ private static final String PANEL_MEDIDA = "PANEL_MEDIDA";
+
+ private final JPanel panelButtons = new JPanel();
+
+ private final JPanel panelTree = new JPanel();
+
+ private final JPanel panelData = new JPanel();
+
+ private final JPanel panelDataTema = new JPanel();
+
+ private final JPanel panelDataRisco = new JPanel();
+
+ private final JPanel panelDataMedida = new JPanel();
+
+ private final LeafButton buttonTemaCriar = new LeafButton( "Criar" );
+
+ private final LeafButton buttonTemaRemover = new LeafButton( "Remover" );
+
+ private final LeafButton buttonRiscoCriar = new LeafButton( "Criar" );
+
+ private final LeafButton buttonRiscoRemover = new LeafButton( "Remover" );
+
+ private final LeafButton buttonMedidaCriar = new LeafButton( "Criar" );
+
+ private final LeafButton buttonMedidaRemover = new LeafButton( "Remover" );
+
+ private LeafButton buttonSaveMedida;
+
+ private LeafButton buttonRevertMedida;
+
+ private LeafButton buttonSaveRequesito;
+
+ private LeafButton buttonRevertRequesito;
+
+ 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 final DefaultMutableTreeNode root = new DefaultMutableTreeNode();
+
+ private final DefaultTreeModel model = new DefaultTreeModel( root );
+
+ private final JTree tree = new JTree( model );
+
+ private final JScrollPane scroll = new JScrollPane( tree );
+
+ private final CardLayout cardLayout = new CardLayout();
+
+ public GerirRiscosPanel()
+ {
+ 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();
+ refresh();
+ }
+
+ private void setupListeners()
+ {
+ buttonTemaCriar.addActionListener( new ActionListener()
+ {
+ @Override
+ public void actionPerformed( ActionEvent e )
+ {
+ criarTema();
+ }
+ } );
+ buttonTemaRemover.addActionListener( new ActionListener()
+ {
+ @Override
+ public void actionPerformed( ActionEvent e )
+ {
+ removerTema();
+ }
+ } );
+ buttonRiscoCriar.addActionListener( new ActionListener()
+ {
+ @Override
+ public void actionPerformed( ActionEvent e )
+ {
+ criarRisco();
+ }
+ } );
+ buttonRiscoRemover.addActionListener( new ActionListener()
+ {
+ @Override
+ public void actionPerformed( ActionEvent e )
+ {
+ removerRisco();
+ }
+ } );
+ buttonMedidaCriar.addActionListener( new ActionListener()
+ {
+ @Override
+ public void actionPerformed( ActionEvent e )
+ {
+ criarMedida();
+ }
+ } );
+ buttonMedidaRemover.addActionListener( new ActionListener()
+ {
+ @Override
+ public void actionPerformed( ActionEvent e )
+ {
+ removerMedida();
+ }
+ } );
+ tree.getSelectionModel().addTreeSelectionListener( new TreeSelectionListener(){
+ @Override
+ public void valueChanged( TreeSelectionEvent e )
+ {
+ setEnabled();
+ selectCard();
+ }
+ });
+ fieldTextRequisitosLegais.addCaretListener( new CaretListener()
+ {
+ @Override
+ public void caretUpdate( CaretEvent e )
+ {
+ enableEditButtons();
+ }
+ } );
+ fieldTextMedida.addCaretListener( new CaretListener()
+ {
+ @Override
+ public void caretUpdate( CaretEvent e )
+ {
+ enableEditButtons();
+ }
+ } );
+ 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 saveMedida()
+ {
+ HsRiscoMedida rel = getSelectedMedida();
+ if( rel != null )
+ {
+ rel.getToHsMedida().setDescription( fieldTextMedida.getText() );
+ rel.save();
+ }
+ enableEditButtons();
+ }
+
+ private void saveRequesito()
+ {
+ HsRiscoMedida rel = getSelectedMedida();
+ if( rel != null )
+ {
+ rel.getToHsMedida().setRequesitosLegais(fieldTextRequisitosLegais.getText() );
+ rel.save();
+ }
+ enableEditButtons();
+ }
+
+ private void revertMedida()
+ {
+ HsRiscoMedida rel = getSelectedMedida();
+ if( rel != null )
+ {
+ fieldTextMedida.setText( rel.getToHsMedida().getDescription() );
+ }
+ enableEditButtons();
+ }
+
+ private void revertRequesito()
+ {
+ HsRiscoMedida rel = getSelectedMedida();
+ if( rel != null )
+ {
+ fieldTextRequisitosLegais.setText( rel.getToHsMedida().getRequesitosLegais() );
+ }
+ enableEditButtons();
+ }
+
+ private void criarTema()
+ {
+ String temaString = JOptionPane.showInputDialog( this, "Criar tema", "Descri" + ccedil + atilde + "o", JOptionPane.QUESTION_MESSAGE );
+ if( temaString != null )
+ {
+ HsRiscoTema tema = new HsRiscoTema();
+ tema.setDescription( temaString );
+ tema.save();
+ refresh();
+ }
+ }
+
+ private void removerTema()
+ {
+ HsRiscoTema tema = getSelectedTema();
+ if( tema != null )
+ {
+ tema.delete();
+ refresh();
+ }
+ }
+
+ private void criarRisco()
+ {
+ HsRiscoTema tema = getSelectedTema();
+ if( tema == null )
+ {
+ HsRisco risco = getSelectedRisco();
+ if( risco != null )
+ {
+ tema = risco.getToHsRiscoTema();
+ }
+ else
+ {
+ HsRiscoMedida medida = getSelectedMedida();
+ if( medida != null )
+ {
+ tema = medida.getToHsRisco().getToHsRiscoTema();
+ }
+ }
+ }
+ if( tema != null )
+ {
+ String riscoString = JOptionPane.showInputDialog( this, "Criar risco", "Descri" + ccedil + atilde + "o", JOptionPane.QUESTION_MESSAGE );
+ if( riscoString != null )
+ {
+ HsRisco risco = new HsRisco();
+ risco.setDescription( riscoString );
+ risco.setToHsRiscoTema( tema );
+ tema.save();
+ refresh();
+ }
+ }
+ }
+
+ private void removerRisco()
+ {
+ HsRisco risco = getSelectedRisco();
+ if( risco != null )
+ {
+ risco.delete();
+ refresh();
+ }
+ }
+
+ private void criarMedida()
+ {
+ HsRisco risco = getSelectedRisco();
+ if( risco == null )
+ {
+ HsRiscoMedida medida = getSelectedMedida();
+ if( medida != null )
+ {
+ risco = medida.getToHsRisco();
+ }
+ }
+ if( risco != null )
+ {
+ HsMedida medida = new HsMedida();
+ medida.setDescription( "(medida)" );
+ medida.setRequesitosLegais( "(requesitos legais)" );
+ medida.save();
+ HsRiscoMedida rel = new HsRiscoMedida();
+ rel.setToHsRisco( risco );
+ rel.setToHsMedida( medida );
+ rel.save();
+ refresh();
+ }
+ }
+
+ private void removerMedida()
+ {
+ HsRiscoMedida medida = getSelectedMedida();
+ if( medida != null )
+ {
+ medida.delete();
+ refresh();
+ }
+ }
+
+ private HsRiscoTema getSelectedTema()
+ {
+ Object object = getSelectedObject();
+ return object == null ? null : ((object instanceof HsRiscoTema) ? (HsRiscoTema) object : null);
+ }
+
+ private HsRisco getSelectedRisco()
+ {
+ Object object = getSelectedObject();
+ return object == null ? null : ((object instanceof HsRisco) ? (HsRisco) object : null);
+ }
+
+ private HsRiscoMedida getSelectedMedida()
+ {
+ Object object = getSelectedObject();
+ return object == null ? null : ((object instanceof HsRiscoMedida) ? (HsRiscoMedida) object : null);
+ }
+
+ private Object getSelectedObject()
+ {
+ DefaultMutableTreeNode node = getSelectedNode();
+ return node == null ? null : node.getUserObject();
+ }
+
+ private DefaultMutableTreeNode getSelectedNode()
+ {
+ TreePath path = tree.getSelectionPath();
+ return path == null ? null : (DefaultMutableTreeNode) path.getLastPathComponent();
+ }
+
+ private void startupComponents()
+ {
+ panelButtons.setPreferredSize( new Dimension( 150, 0 ) );
+ panelTree.setPreferredSize( new Dimension( 300, 0 ) );
+ tree.setRootVisible( false );
+ tree.getSelectionModel().setSelectionMode( TreeSelectionModel.SINGLE_TREE_SELECTION );
+ 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 setEnabled()
+ {
+ HsRiscoTema tema = getSelectedTema();
+ HsRisco risco = getSelectedRisco();
+ HsRiscoMedida medida = getSelectedMedida();
+ buttonMedidaCriar.setEnabled( risco != null || medida != null );
+ buttonRiscoCriar.setEnabled( tema != null || risco != null || medida != null );
+ buttonMedidaRemover.setEnabled( medida != null );
+ buttonRiscoRemover.setEnabled( risco != null );
+ buttonTemaRemover.setEnabled( tema != null );
+ enableEditButtons();
+ }
+
+ private void enableEditButtons()
+ {
+ HsRiscoMedida rel = getSelectedMedida();
+ if( rel != null )
+ {
+ boolean medidaChanged = !fieldTextMedida.getText().equals( rel.getToHsMedida().getDescription() );
+ boolean requesitoChanged = !fieldTextRequisitosLegais.getText().equals( rel.getToHsMedida().getRequesitosLegais() );
+ buttonSaveMedida.setEnabled( medidaChanged );
+ buttonSaveRequesito.setEnabled( requesitoChanged );
+ buttonRevertMedida.setEnabled( medidaChanged );
+ buttonRevertRequesito.setEnabled( requesitoChanged );
+ }
+ }
+
+ private void startupLayout()
+ {
+ TableLayout layout = new TableLayout(
+ new double[]{ TableLayout.MINIMUM, TableLayout.PREFERRED, TableLayout.FILL },
+ new double[]{ TableLayout.FILL }
+ );
+ layout.setHGap( 5 );
+ layout.setVGap( 5 );
+ setLayout( layout );
+
+ layout = new TableLayout(
+ new double[]{ TableLayout.MINIMUM },
+ new double[]{ TableLayout.MINIMUM, TableLayout.MINIMUM, TableLayout.MINIMUM, TableLayout.FILL }
+ );
+ layout.setHGap( 5 );
+ layout.setVGap( 5 );
+ panelButtons.setLayout( layout );
+
+ layout = new TableLayout(
+ new double[]{ TableLayout.FILL },
+ new double[]{ TableLayout.FILL }
+ );
+ layout.setHGap( 5 );
+ layout.setVGap( 5 );
+ panelTree.setLayout( layout );
+
+ layout = new TableLayout(
+ new double[]{ TableLayout.FILL },
+ new double[]{ TableLayout.FILL }
+ );
+ layout.setHGap( 5 );
+ layout.setVGap( 5 );
+ panelDataTema.setLayout( layout );
+
+ layout = new TableLayout(
+ new double[]{ TableLayout.FILL },
+ new double[]{ TableLayout.FILL }
+ );
+ layout.setHGap( 5 );
+ layout.setVGap( 5 );
+ panelDataRisco.setLayout( layout );
+
+ layout = new TableLayout(
+ new double[]{ TableLayout.FILL, TableLayout.MINIMUM, TableLayout.MINIMUM },
+ new double[]{ TableLayout.MINIMUM, TableLayout.FILL, TableLayout.MINIMUM, TableLayout.FILL }
+ );
+ layout.setHGap( 5 );
+ layout.setVGap( 5 );
+ panelDataMedida.setLayout( layout );
+
+ panelData.setLayout( cardLayout );
+ }
+
+ private void placeComponents()
+ {
+ JPanel panel = new JPanel();
+ panel.setBorder( BorderFactory.createTitledBorder( "Tema" ) );
+ panel.setLayout( new GridLayout( 2, 1 ) );
+ panel.add( buttonTemaCriar );
+ panel.add( buttonTemaRemover );
+ panelButtons.add( panel, new TableLayoutConstraints( 0, 0 ) );
+ panel = new JPanel();
+ panel.setBorder( BorderFactory.createTitledBorder( "Risco" ) );
+ panel.setLayout( new GridLayout( 2, 1 ) );
+ panel.add( buttonRiscoCriar );
+ panel.add( buttonRiscoRemover );
+ panelButtons.add( panel, new TableLayoutConstraints( 0, 1 ) );
+ panel = new JPanel();
+ panel.setBorder( BorderFactory.createTitledBorder( "Medida" ) );
+ panel.setLayout( new GridLayout( 2, 1 ) );
+ panel.add( buttonMedidaCriar );
+ panel.add( buttonMedidaRemover );
+ panelButtons.add( panel, new TableLayoutConstraints( 0, 2 ) );
+
+ panelTree.add( scroll, new TableLayoutConstraints( 0, 0 ) );
+
+ panelDataMedida.add( new JLabel("Requesitos legais"), new TableLayoutConstraints(0,0) );
+ panelDataMedida.add( buttonSaveRequesito, new TableLayoutConstraints(1,0) );
+ panelDataMedida.add( buttonRevertRequesito, new TableLayoutConstraints(2,0) );
+ panelDataMedida.add( scrollRequesitos, new TableLayoutConstraints(0,1,2,1) );
+ panelDataMedida.add( new JLabel("Medida"), new TableLayoutConstraints(0,2) );
+ panelDataMedida.add( buttonSaveMedida, new TableLayoutConstraints(1,2) );
+ panelDataMedida.add( buttonRevertMedida, new TableLayoutConstraints(2,2) );
+ panelDataMedida.add( scrollMedida, new TableLayoutConstraints(0,3,2,3) );
+
+ panelData.add( panelDataTema, PANEL_TEMA );
+ panelData.add( panelDataRisco, PANEL_RISCO );
+ panelData.add( panelDataMedida, PANEL_MEDIDA );
+
+ add( panelButtons, new TableLayoutConstraints( 0, 0 ) );
+ add( panelTree, new TableLayoutConstraints( 1, 0 ) );
+ add( panelData, new TableLayoutConstraints( 2, 0 ) );
+ }
+
+
+ private void selectCard()
+ {
+ HsRiscoTema tema = getSelectedTema();
+ HsRisco risco = getSelectedRisco();
+ HsRiscoMedida medida = getSelectedMedida();
+ if( tema != null )
+ {
+ cardLayout.show( panelData, PANEL_TEMA );
+ }
+ else if( risco != null )
+ {
+ cardLayout.show( panelData, PANEL_RISCO );
+ }
+ else if( medida != null )
+ {
+ cardLayout.show( panelData, PANEL_MEDIDA );
+ fieldTextMedida.setText( medida.getToHsMedida().getDescription() );
+ fieldTextRequisitosLegais.setText( medida.getToHsMedida().getRequesitosLegais() );
+ }
+ }
+
+
+ private void refresh()
+ {
+ root.removeAllChildren();
+ TreeTools.merge( root, HigieneSegurancaLogic.getRiscosTree() );
+ TreeTools.refreshTree( tree, root );
+ setEnabled();
+ }
+
+}
diff --git a/trunk/SIPRPSoft/src/siprp/higiene/gestao/riscos/GestaoRiscosLogic.java b/trunk/SIPRPSoft/src/siprp/higiene/gestao/riscos/GestaoRiscosLogic.java
deleted file mode 100644
index ce528319..00000000
--- a/trunk/SIPRPSoft/src/siprp/higiene/gestao/riscos/GestaoRiscosLogic.java
+++ /dev/null
@@ -1,120 +0,0 @@
-package siprp.higiene.gestao.riscos;
-
-import java.util.Date;
-
-import javax.swing.tree.DefaultMutableTreeNode;
-
-import leaf.ui.LeafLogic;
-import siprp.database.cayenne.objects.BaseObject;
-import siprp.database.cayenne.objects.HsMedida;
-import siprp.database.cayenne.objects.HsRisco;
-import siprp.database.cayenne.objects.HsRiscoMedida;
-import siprp.database.cayenne.objects.HsRiscoTema;
-import siprp.database.cayenne.providers.PlanoActuacaoDAO;
-
-public class GestaoRiscosLogic extends LeafLogic
-{
-
- @Action(isSave = true)
- public static final String ACTION_SAVE = "ACTION_SAVE";
-
- @Action(isSave = true)
- public static final String ACTION_REMOVE = "ACTION_SAVE";
-
- @Action(isSave = false)
- public static final String ACTION_LOAD = "ACTION_LOAD";
-
- @Action(isSave = false)
- public static final String ACTION_SELECTION = "ACTION_SELECTION";
-
- @Action(isSave = true)
- public static final String ACTION_TEMA_CRIAR = "ACTION_TEMA_CRIAR";
-
- @Action(isSave = true)
- public static final String ACTION_TEMA_REMOVER = "ACTION_TEMA_REMOVER";
-
- @Action(isSave = true)
- public static final String ACTION_RISCO_CRIAR = "ACTION_RISCO_CRIAR";
-
- @Action(isSave = true)
- public static final String ACTION_RISCO_REMOVER = "ACTION_RISCO_REMOVER";
-
- @Action(isSave = true)
- public static final String ACTION_MEDIDA_CRIAR = "ACTION_MEDIDA_CRIAR";
-
- @Action(isSave = true)
- public static final String ACTION_MEDIDA_REMOVER = "ACTION_MEDIDA_REMOVER";
-
- @Action(isSave = false)
- public static final String ACTION_CLEAR_SELECTION = "ACTION_CLEAR_SELECTION";
-
- @Action(isSave = false)
- public static final String ACTION_SELECT_TEMA = "ACTION_SELECT_TEMA";
-
- @Action(isSave = false)
- public static final String ACTION_SELECT_RISCO = "ACTION_SELECT_RISCO";
-
- @Action(isSave = false)
- public static final String ACTION_SELECT_MEDIDA = "ACTION_SELECT_MEDIDA";
-
- public final PlanoActuacaoDAO provider = new PlanoActuacaoDAO();
-
- @LeafLogicActionBinding(actions=ACTION_STARTUP)
- public void load()
- {
- runAction( ACTION_LOAD, provider.getAllRiscoTemas() );
- runActionLater( ACTION_REFRESH );
- }
-
- @LeafLogicActionBinding( actions = ACTION_TEMA_REMOVER )
- public void removeTema( HsRiscoTema tema )
- {
- tema.setDeletedDate( new Date() );
- provider.commit();
- load();
- }
-
- @LeafLogicActionBinding( actions = ACTION_RISCO_REMOVER )
- public void removeRisco( HsRisco risco )
- {
- risco.setDeletedDate( new Date() );
- provider.commit();
- load();
- }
-
- @LeafLogicActionBinding( actions = ACTION_MEDIDA_REMOVER )
- public void removeMedida( HsRiscoMedida rel )
- {
- provider.deleteObject( rel );
- load();
- }
-
- @LeafLogicActionBinding( actions = { ACTION_SAVE, ACTION_TEMA_CRIAR, ACTION_RISCO_CRIAR, ACTION_MEDIDA_CRIAR } )
- public void saveObject( BaseObject object )
- {
- provider.saveObject( object );
- load();
- }
-
- @LeafLogicActionBinding(actions=ACTION_SELECTION)
- public void selectionChanged( DefaultMutableTreeNode object )
- {
- if( object == null )
- {
- runAction( ACTION_CLEAR_SELECTION );
- }
- else if( object instanceof NodeRiscoTema )
- {
- runAction( ACTION_SELECT_TEMA, object );
- }
- else if( object instanceof NodeRisco )
- {
- runAction( ACTION_SELECT_RISCO, object );
- }
- else if( object instanceof NodeMedida )
- {
- runAction( ACTION_SELECT_MEDIDA, object );
- }
- }
-
-}
diff --git a/trunk/SIPRPSoft/src/siprp/higiene/gestao/riscos/GestaoRiscosWindow.java b/trunk/SIPRPSoft/src/siprp/higiene/gestao/riscos/GestaoRiscosWindow.java
deleted file mode 100644
index 14b9ea1b..00000000
--- a/trunk/SIPRPSoft/src/siprp/higiene/gestao/riscos/GestaoRiscosWindow.java
+++ /dev/null
@@ -1,494 +0,0 @@
-package siprp.higiene.gestao.riscos;
-
-import static com.evolute.utils.strings.UnicodeLatin1Map.aacute;
-import static com.evolute.utils.strings.UnicodeLatin1Map.atilde;
-import static com.evolute.utils.strings.UnicodeLatin1Map.ccedil;
-import static leaf.ui.LeafLogic.ACTION_REFRESH;
-import static siprp.higiene.gestao.riscos.GestaoRiscosLogic.ACTION_CLEAR_SELECTION;
-import static siprp.higiene.gestao.riscos.GestaoRiscosLogic.ACTION_LOAD;
-import static siprp.higiene.gestao.riscos.GestaoRiscosLogic.ACTION_MEDIDA_CRIAR;
-import static siprp.higiene.gestao.riscos.GestaoRiscosLogic.ACTION_MEDIDA_REMOVER;
-import static siprp.higiene.gestao.riscos.GestaoRiscosLogic.ACTION_RISCO_CRIAR;
-import static siprp.higiene.gestao.riscos.GestaoRiscosLogic.ACTION_RISCO_REMOVER;
-import static siprp.higiene.gestao.riscos.GestaoRiscosLogic.ACTION_SAVE;
-import static siprp.higiene.gestao.riscos.GestaoRiscosLogic.ACTION_SELECTION;
-import static siprp.higiene.gestao.riscos.GestaoRiscosLogic.ACTION_SELECT_MEDIDA;
-import static siprp.higiene.gestao.riscos.GestaoRiscosLogic.ACTION_SELECT_RISCO;
-import static siprp.higiene.gestao.riscos.GestaoRiscosLogic.ACTION_SELECT_TEMA;
-import static siprp.higiene.gestao.riscos.GestaoRiscosLogic.ACTION_TEMA_CRIAR;
-import static siprp.higiene.gestao.riscos.GestaoRiscosLogic.ACTION_TEMA_REMOVER;
-import info.clearthought.layout.TableLayout;
-import info.clearthought.layout.TableLayoutConstraints;
-
-import java.awt.CardLayout;
-import java.awt.Dimension;
-import java.awt.GridLayout;
-import java.util.List;
-
-import javax.swing.BorderFactory;
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
-import javax.swing.JTextArea;
-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 leaf.data.OrderedMap;
-import leaf.ui.LeafButton;
-import leaf.ui.LeafInputField;
-import leaf.ui.LeafWindow;
-import leaf.ui.LeafLogic.LeafUIActionBinding;
-import siprp.database.cayenne.objects.BaseObject;
-import siprp.database.cayenne.objects.HsMedida;
-import siprp.database.cayenne.objects.HsMedidaClassificacao;
-import siprp.database.cayenne.objects.HsRisco;
-import siprp.database.cayenne.objects.HsRiscoMedida;
-import siprp.database.cayenne.objects.HsRiscoTema;
-
-import com.evolute.utils.tracker.TrackableWindow;
-
-public class GestaoRiscosWindow extends LeafWindow implements TrackableWindow
-{
-
- private static final long serialVersionUID = 1L;
-
- public static final String TITLE = "Gest" + atilde + "o de Riscos";
-
- private static final Dimension SIZE = new Dimension( 700, 500 );
-
- private static final String PANEL_TEMA = "PANEL_TEMA";
-
- private static final String PANEL_RISCO = "PANEL_RISCO";
-
- private static final String PANEL_MEDIDA = "PANEL_MEDIDA";
-
- private final JPanel panelButtons = new JPanel();
-
- private final JPanel panelTree = new JPanel();
-
- private final JPanel panelData = new JPanel();
-
- private final JPanel panelDataTema = new JPanel();
-
- private final JPanel panelDataRisco = new JPanel();
-
- private final JPanel panelDataMedida = new JPanel();
-
- @ActionActivation(onChange="",onSelect=ACTION_TEMA_CRIAR)
- public final LeafButton buttonTemaCriar = new LeafButton( "Criar" );
-
- @ActionActivation(onChange="",onSelect=ACTION_TEMA_REMOVER)
- public final LeafButton buttonTemaRemover = new LeafButton( "Remover" );
-
- @ActionActivation(onChange="",onSelect=ACTION_RISCO_CRIAR)
- public final LeafButton buttonRiscoCriar = new LeafButton( "Criar" );
-
- @ActionActivation(onChange="",onSelect=ACTION_RISCO_REMOVER)
- public final LeafButton buttonRiscoRemover = new LeafButton( "Remover" );
-
- @ActionActivation(onChange="",onSelect=ACTION_MEDIDA_CRIAR)
- public final LeafButton buttonMedidaCriar = new LeafButton( "Criar" );
-
- @ActionActivation(onChange="",onSelect=ACTION_MEDIDA_REMOVER)
- public final LeafButton buttonMedidaRemover = new LeafButton( "Remover" );
-
- public final LeafInputField> fieldMedidaClassificacao = new LeafInputField>();
-
- public final JTextArea fieldTextMedida = new JTextArea();
-
- public final JTextArea fieldTextRequisitosLegais = new JTextArea();
-
- private final DefaultMutableTreeNode root = new DefaultMutableTreeNode();
-
- private final DefaultTreeModel model = new DefaultTreeModel( root );
-
- @ActionActivation(onChange="", onSelect=ACTION_SELECTION)
- public final JTree tree = new JTree( model );
-
- private final JScrollPane scroll = new JScrollPane( tree );
-
- private final CardLayout cardLayout = new CardLayout();
-
- private BaseObject selection = null;
-
- public static void main( String[] args )
- {
- GestaoRiscosWindow window = new GestaoRiscosWindow();
- window.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
- window.open();
- }
-
- public GestaoRiscosWindow()
- {
- super( new GestaoRiscosLogic() );
- this.setTitle( TITLE );
- this.setSize( SIZE );
- startupComponents();
- startupLayout();
- placeComponents();
- completeSetup();
- }
-
- private void startupComponents()
- {
- panelButtons.setPreferredSize( new Dimension( 150, 0 ) );
- panelTree.setPreferredSize( new Dimension( 300, 0 ) );
- buttonMedidaCriar.setEnabled( false );
- buttonMedidaRemover.setEnabled( false );
- buttonRiscoCriar.setEnabled( false );
- buttonRiscoRemover.setEnabled( false );
- buttonTemaRemover.setEnabled( false );
- tree.setRootVisible( false );
- tree.getSelectionModel().setSelectionMode( TreeSelectionModel.SINGLE_TREE_SELECTION );
- }
-
- private void startupLayout()
- {
- TableLayout layout = new TableLayout(
- new double[]{ TableLayout.MINIMUM, TableLayout.PREFERRED, TableLayout.FILL },
- new double[]{ TableLayout.FILL }
- );
- layout.setHGap( 5 );
- layout.setVGap( 5 );
- this.getContentPane().setLayout( layout );
-
- layout = new TableLayout(
- new double[]{ TableLayout.MINIMUM },
- new double[]{ TableLayout.MINIMUM, TableLayout.MINIMUM, TableLayout.MINIMUM, TableLayout.FILL }
- );
- layout.setHGap( 5 );
- layout.setVGap( 5 );
- panelButtons.setLayout( layout );
-
- layout = new TableLayout(
- new double[]{ TableLayout.FILL },
- new double[]{ TableLayout.FILL }
- );
- layout.setHGap( 5 );
- layout.setVGap( 5 );
- panelTree.setLayout( layout );
-
- layout = new TableLayout(
- new double[]{ TableLayout.FILL },
- new double[]{ TableLayout.FILL }
- );
- layout.setHGap( 5 );
- layout.setVGap( 5 );
- panelDataTema.setLayout( layout );
-
- layout = new TableLayout(
- new double[]{ TableLayout.FILL },
- new double[]{ TableLayout.FILL }
- );
- layout.setHGap( 5 );
- layout.setVGap( 5 );
- panelDataRisco.setLayout( layout );
-
- layout = new TableLayout(
- new double[]{ TableLayout.FILL },
- new double[]{ TableLayout.MINIMUM, TableLayout.MINIMUM, TableLayout.MINIMUM, TableLayout.FILL, TableLayout.MINIMUM, TableLayout.FILL }
- );
- layout.setHGap( 5 );
- layout.setVGap( 5 );
- panelDataMedida.setLayout( layout );
-
- panelData.setLayout( cardLayout );
- }
-
- private void placeComponents()
- {
- JPanel panel = new JPanel();
- panel.setBorder( BorderFactory.createTitledBorder( "Tema" ) );
- panel.setLayout( new GridLayout( 2, 1 ) );
- panel.add( buttonTemaCriar );
- panel.add( buttonTemaRemover );
- panelButtons.add( panel, new TableLayoutConstraints( 0, 0 ) );
- panel = new JPanel();
- panel.setBorder( BorderFactory.createTitledBorder( "Risco" ) );
- panel.setLayout( new GridLayout( 2, 1 ) );
- panel.add( buttonRiscoCriar );
- panel.add( buttonRiscoRemover );
- panelButtons.add( panel, new TableLayoutConstraints( 0, 1 ) );
- panel = new JPanel();
- panel.setBorder( BorderFactory.createTitledBorder( "Medida" ) );
- panel.setLayout( new GridLayout( 2, 1 ) );
- panel.add( buttonMedidaCriar );
- panel.add( buttonMedidaRemover );
- panelButtons.add( panel, new TableLayoutConstraints( 0, 2 ) );
-
- panelTree.add( scroll, new TableLayoutConstraints( 0, 0 ) );
-
- panelDataMedida.add( new JLabel("Classifica"+ccedil+atilde+"o"), new TableLayoutConstraints(0,0) );
- panelDataMedida.add( fieldMedidaClassificacao, new TableLayoutConstraints(0,1) );
- panelDataMedida.add( new JLabel("Medida"), new TableLayoutConstraints(0,2) );
- panelDataMedida.add( fieldTextMedida, new TableLayoutConstraints(0,3) );
- panelDataMedida.add( new JLabel("Requisitos legais"), new TableLayoutConstraints(0,4) );
- panelDataMedida.add( fieldTextRequisitosLegais, new TableLayoutConstraints(0,5) );
-
- panelData.add( panelDataTema, PANEL_TEMA );
- panelData.add( panelDataRisco, PANEL_RISCO );
- panelData.add( panelDataMedida, PANEL_MEDIDA );
-
- this.getContentPane().add( panelButtons, new TableLayoutConstraints( 0, 0 ) );
- this.getContentPane().add( panelTree, new TableLayoutConstraints( 1, 0 ) );
- this.getContentPane().add( panelData, new TableLayoutConstraints( 2, 0 ) );
- }
-
- @LeafUIActionBinding(action=ACTION_LOAD)
- public void load( List temas )
- {
- root.removeAllChildren();
- for( HsRiscoTema tema : temas )
- {
- NodeRiscoTema temaNode = new NodeRiscoTema( tema );
- for( HsRisco risco : tema.getHsRiscoArray() )
- {
- NodeRisco riscoNode = new NodeRisco( risco );
- for( HsRiscoMedida rel : risco.getHsRiscoMedidaArray() )
- {
- riscoNode.add( new NodeMedida( rel ) );
- }
- temaNode.add( riscoNode );
- }
- root.add( temaNode );
- }
- }
-
- @LeafUIActionBinding(action=ACTION_REFRESH)
- public void refresh()
- {
- ((DefaultTreeModel) tree.getModel()).nodeStructureChanged( root );
- for( int i = 0; i < tree.getRowCount(); ++i)
- {
- tree.expandPath( tree.getPathForRow( i ) );
- }
- }
-
- @LeafUIActionBinding(action=ACTION_TEMA_CRIAR)
- public HsRiscoTema createTema()
- {
- HsRiscoTema tema = null;
- String nome = JOptionPane.showInputDialog( "Criar tema" );
- if( nome != null )
- {
- if( nome.trim().length() > 0 )
- {
- tema = new HsRiscoTema();
- tema.setDescription( nome.trim() );
- }
- else
- {
- JOptionPane.showMessageDialog( this, "Tema inv" + aacute + "lido" );
- }
- }
- return tema;
- }
-
- @LeafUIActionBinding(action=ACTION_MEDIDA_CRIAR)
- public HsRiscoMedida createMedida()
- {
- HsRiscoMedida rel = null;
- HsRisco risco = getSelectedRisco();
- if( risco != null )
- {
- HsMedida medida = new HsMedida();
- medida.setDescription( " " );
- medida.setRequesitosLegais( " " );
- runAction( ACTION_SAVE, medida );
- rel = new HsRiscoMedida();
- rel.setToHsMedida( medida );
- rel.setToHsRisco( risco );
- }
- return rel;
- }
-
- private HsRiscoTema getSelectedTema()
- {
- HsRiscoTema result = null;
- if( selection != null )
- {
- if( selection instanceof HsRiscoTema )
- {
- result = ( (HsRiscoTema) selection );
- }
- else if( selection instanceof HsRisco )
- {
- result = ( (HsRisco) selection ).getToHsRiscoTema();
- }
- else if( selection instanceof HsMedida )
- {
- result = ( (HsRiscoMedida) selection ).getToHsRisco().getToHsRiscoTema();
- }
- }
- return result;
- }
-
- private HsRisco getSelectedRisco()
- {
- HsRisco result = null;
- if( selection != null )
- {
- if( selection instanceof HsRisco )
- {
- result = (HsRisco) selection;
- }
- else if( selection instanceof HsRiscoMedida )
- {
- result = ( (HsRiscoMedida) selection ).getToHsRisco();
- }
- }
- return result;
- }
-
- @LeafUIActionBinding(action=ACTION_RISCO_CRIAR)
- public HsRisco createRisco()
- {
- HsRisco risco = null;
- HsRiscoTema tema = getSelectedTema();
- if( tema != null )
- {
- String nome = JOptionPane.showInputDialog( "Criar risco" );
- if( nome != null )
- {
-
- if( nome.trim().length() > 0 && tema != null )
- {
- risco = new HsRisco();
- risco.setDescription( nome.trim() );
- risco.setToHsRiscoTema( tema );
- }
- else
- {
- JOptionPane.showMessageDialog( this, "Nome inv" + aacute + "lido" );
- }
- }
- }
- return risco;
- }
-
- @LeafUIActionBinding(action=ACTION_TEMA_REMOVER)
- public HsRiscoTema removerTema()
- {
- HsRiscoTema tema = null;
- if( selection != null )
- {
- if( selection instanceof HsRiscoTema )
- {
- tema = (HsRiscoTema) selection;
- }
- }
- return tema;
- }
-
- @LeafUIActionBinding(action=ACTION_RISCO_REMOVER)
- public HsRisco removerRisco()
- {
- HsRisco risco = null;
- if( selection != null )
- {
- if( selection instanceof HsRisco )
- {
- risco = (HsRisco) selection;
- }
- }
- return risco;
- }
-
- @LeafUIActionBinding(action=ACTION_MEDIDA_REMOVER)
- public HsRiscoMedida removerMedida()
- {
- HsRiscoMedida medida = null;
- if( selection != null )
- {
- if( selection instanceof HsRiscoMedida )
- {
- medida = (HsRiscoMedida) selection;
- }
- }
- return medida;
- }
-
- @LeafUIActionBinding(action=ACTION_SELECTION)
- public BaseObject selectionChanged()
- {
- BaseObject result = null;
- TreePath selection = tree.getSelectionPath();
- if( selection != null )
- {
- DefaultMutableTreeNode node = (DefaultMutableTreeNode) selection.getLastPathComponent();
- result = (BaseObject) node.getUserObject();
- }
- this.selection = result;
- updateCardLayout();
- return result;
- }
-
- private void updateCardLayout()
- {
- if( selection != null )
- {
- if( selection instanceof HsRiscoTema )
- {
- cardLayout.show( panelData, PANEL_TEMA );
- }
- else if( selection instanceof HsRisco )
- {
- cardLayout.show( panelData, PANEL_RISCO );
- }
- else if( selection instanceof HsRiscoMedida )
- {
- cardLayout.show( panelData, PANEL_MEDIDA );
- }
- }
- }
-
- @LeafUIActionBinding(action=ACTION_CLEAR_SELECTION)
- public void clear()
- {
- buttonMedidaCriar.setEnabled( false );
- buttonMedidaRemover.setEnabled( false );
- buttonRiscoCriar.setEnabled( false );
- buttonRiscoRemover.setEnabled( false );
- buttonTemaCriar.setEnabled( true );
- buttonTemaRemover.setEnabled( false );
- }
-
- @LeafUIActionBinding(action=ACTION_SELECT_TEMA)
- public void selectTema()
- {
- buttonMedidaCriar.setEnabled( false );
- buttonMedidaRemover.setEnabled( false );
- buttonRiscoCriar.setEnabled( true );
- buttonRiscoRemover.setEnabled( false );
- buttonTemaCriar.setEnabled( true );
- buttonTemaRemover.setEnabled( true );
- }
-
- @LeafUIActionBinding(action=ACTION_SELECT_RISCO)
- public void selectRisco()
- {
- buttonMedidaCriar.setEnabled( true );
- buttonMedidaRemover.setEnabled( false );
- buttonRiscoCriar.setEnabled( false );
- buttonRiscoRemover.setEnabled( true );
- buttonTemaCriar.setEnabled( true );
- buttonTemaRemover.setEnabled( false );
- }
-
- @LeafUIActionBinding(action=ACTION_SELECT_MEDIDA)
- public void selectMedida()
- {
- buttonMedidaCriar.setEnabled( false );
- buttonMedidaRemover.setEnabled( true );
- buttonRiscoCriar.setEnabled( false );
- buttonRiscoRemover.setEnabled( false );
- buttonTemaCriar.setEnabled( true );
- buttonTemaRemover.setEnabled( false );
- }
-
-}
diff --git a/trunk/SIPRPSoft/src/siprp/higiene/gestao/riscos/revert.png b/trunk/SIPRPSoft/src/siprp/higiene/gestao/riscos/revert.png
new file mode 100644
index 00000000..bd1d011a
Binary files /dev/null and b/trunk/SIPRPSoft/src/siprp/higiene/gestao/riscos/revert.png differ
diff --git a/trunk/SIPRPSoft/src/siprp/higiene/gestao/riscos/save.png b/trunk/SIPRPSoft/src/siprp/higiene/gestao/riscos/save.png
new file mode 100644
index 00000000..d2d0d6e1
Binary files /dev/null and b/trunk/SIPRPSoft/src/siprp/higiene/gestao/riscos/save.png differ
diff --git a/trunk/common/src/leaf/ui/LeafButton.java b/trunk/common/src/leaf/ui/LeafButton.java
index ab6667f0..980c2ee4 100644
--- a/trunk/common/src/leaf/ui/LeafButton.java
+++ b/trunk/common/src/leaf/ui/LeafButton.java
@@ -6,17 +6,27 @@ import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
+import javax.swing.ImageIcon;
import javax.swing.JButton;
public class LeafButton extends JButton
{
private static final long serialVersionUID = 1L;
+
+ private ImageIcon icon = null;
public LeafButton(String text)
{
super( text );
setOpaque( false );
}
+
+ public LeafButton( ImageIcon icon )
+ {
+ super( icon );
+ this.icon = icon;
+ setOpaque( false );
+ }
protected void paintComponent( Graphics g )
{
@@ -57,6 +67,9 @@ public class LeafButton extends JButton
y -= 1;
g2.setColor( textColor );
g2.drawString( getText(), x, y );
- // super.paintComponent( g );
+ if( icon != null )
+ {
+ super.paintComponent( g );
+ }
}
}
\ No newline at end of file
diff --git a/trunk/SIPRPSoft/src/siprp/higiene/gestao/TreeInserterDialog.java b/trunk/common/src/leaf/ui/TreeInserterDialog.java
similarity index 89%
rename from trunk/SIPRPSoft/src/siprp/higiene/gestao/TreeInserterDialog.java
rename to trunk/common/src/leaf/ui/TreeInserterDialog.java
index 20b1644d..e713dfa0 100644
--- a/trunk/SIPRPSoft/src/siprp/higiene/gestao/TreeInserterDialog.java
+++ b/trunk/common/src/leaf/ui/TreeInserterDialog.java
@@ -1,9 +1,10 @@
-package siprp.higiene.gestao;
+package leaf.ui;
import info.clearthought.layout.TableLayout;
import info.clearthought.layout.TableLayoutConstraints;
import java.awt.Dimension;
+import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
@@ -18,8 +19,9 @@ import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreePath;
import javax.swing.tree.TreeSelectionModel;
-import leaf.ui.LeafButton;
-import leaf.ui.TreeTools;
+import com.evolute.utils.images.ImageException;
+import com.evolute.utils.images.ImageIconLoader;
+
public class TreeInserterDialog extends JDialog
@@ -31,6 +33,10 @@ public class TreeInserterDialog extends JDialog
private static final Dimension newDimension = new Dimension(300,400);
+ private static final String ICON_NAME_ADD = "leaf/ui/icons/add.png";
+
+ private static final String ICON_NAME_REM = "leaf/ui/icons/rem.png";
+
private final DefaultMutableTreeNode newRoot = new DefaultMutableTreeNode();
private final DefaultTreeModel newModel = new DefaultTreeModel( newRoot );
@@ -47,9 +53,9 @@ public class TreeInserterDialog extends JDialog
private final JScrollPane allScroll;
- private final LeafButton buttonAdd = new LeafButton( "->" );
+ private LeafButton buttonAdd = null;
- private final LeafButton buttonRemove = new LeafButton( "<-" );
+ private LeafButton buttonRemove = null;
private final LeafButton buttonOK = new LeafButton( "OK" );
@@ -62,6 +68,14 @@ public class TreeInserterDialog extends JDialog
this.allTree = new JTree(allModel);
this.allScroll = new JScrollPane( allTree );
this.setTitle( title );
+ try
+ {
+ buttonAdd = new LeafButton( ImageIconLoader.loadImageIcon( ICON_NAME_ADD ) );
+ buttonRemove = new LeafButton( ImageIconLoader.loadImageIcon( ICON_NAME_REM ) );
+ } catch( ImageException e )
+ {
+ e.printStackTrace();
+ }
startupComponents();
setupLayout();
placeComponents();
@@ -86,6 +100,10 @@ public class TreeInserterDialog extends JDialog
newScroll.setHorizontalScrollBarPolicy( JScrollPane.HORIZONTAL_SCROLLBAR_NEVER );
allScroll.setPreferredSize( allDimension );
newScroll.setPreferredSize( newDimension );
+ buttonAdd.setToolTipText( "Adicionar" );
+ buttonRemove.setToolTipText( "Remover" );
+ buttonAdd.setMargin( new Insets(4,4,4,4) );
+ buttonRemove.setMargin( new Insets(4,4,4,4) );
}
private void setupLayout()
@@ -181,7 +199,7 @@ public class TreeInserterDialog extends JDialog
}
else
{
- merge( exists, node );
+ TreeTools.merge( exists, node );
}
}
}
@@ -191,23 +209,6 @@ public class TreeInserterDialog extends JDialog
TreeTools.refreshTree( to, toRoot );
}
- private void merge( DefaultMutableTreeNode with, DefaultMutableTreeNode what )
- {
- for( int i = 0; i < what.getChildCount(); ++i )
- {
- DefaultMutableTreeNode child = (DefaultMutableTreeNode) what.getChildAt( i );
- DefaultMutableTreeNode exists = TreeTools.findNodeWithUserObject( child.getUserObject(), with );
- if( exists == null )
- {
- with.add( TreeTools.cloneFullNode( child ) );
- }
- else
- {
- merge( exists, child );
- }
- }
- }
-
private void removeNode( DefaultMutableTreeNode node, DefaultMutableTreeNode root )
{
DefaultMutableTreeNode parent = (DefaultMutableTreeNode) node.getParent();
diff --git a/trunk/common/src/leaf/ui/TreeTools.java b/trunk/common/src/leaf/ui/TreeTools.java
index 48f8c33b..9df30347 100644
--- a/trunk/common/src/leaf/ui/TreeTools.java
+++ b/trunk/common/src/leaf/ui/TreeTools.java
@@ -7,7 +7,6 @@ import javax.swing.tree.DefaultTreeModel;
public class TreeTools
{
-
public static void refreshTree( JTree tree, DefaultMutableTreeNode node )
{
((DefaultTreeModel) tree.getModel()).nodeStructureChanged( node );
@@ -17,7 +16,6 @@ public class TreeTools
}
}
-
public static boolean userObjectExistsOn( Object object, DefaultMutableTreeNode on )
{
boolean result = false;
@@ -32,7 +30,6 @@ public class TreeTools
return result;
}
-
public static DefaultMutableTreeNode findNodeWithUserObject( Object object, DefaultMutableTreeNode on )
{
DefaultMutableTreeNode result = null;
@@ -47,7 +44,6 @@ public class TreeTools
return result;
}
-
public static DefaultMutableTreeNode cloneFullNode( DefaultMutableTreeNode node )
{
DefaultMutableTreeNode result = (DefaultMutableTreeNode) node.clone();
@@ -59,4 +55,35 @@ public class TreeTools
return result;
}
+ public static void merge( DefaultMutableTreeNode with, DefaultMutableTreeNode what )
+ {
+ for( int i = 0; i < what.getChildCount(); ++i )
+ {
+ DefaultMutableTreeNode child = (DefaultMutableTreeNode) what.getChildAt( i );
+ DefaultMutableTreeNode exists = TreeTools.findNodeWithUserObject( child.getUserObject(), with );
+ if( exists == null )
+ {
+ with.add( TreeTools.cloneFullNode( child ) );
+ }
+ else
+ {
+ merge( exists, child );
+ }
+ }
+ }
+
+ public static void removeAll( DefaultMutableTreeNode from, DefaultMutableTreeNode what )
+ {
+ for( int i = 0; i < what.getChildCount(); ++i )
+ {
+ DefaultMutableTreeNode child = (DefaultMutableTreeNode) what.getChildAt( i );
+ removeAll( from, child );
+ }
+ DefaultMutableTreeNode exists = TreeTools.findNodeWithUserObject( what.getUserObject(), from );
+ if( exists != null )
+ {
+ exists.removeFromParent();
+ }
+ }
+
}
diff --git a/trunk/common/src/leaf/ui/icons/add.png b/trunk/common/src/leaf/ui/icons/add.png
new file mode 100644
index 00000000..c44a03ff
Binary files /dev/null and b/trunk/common/src/leaf/ui/icons/add.png differ