forked from Coded/SIPRP
git-svn-id: https://svn.coded.pt/svn/SIPRP@894 bb69d46d-e84e-40c8-a05a-06db0d633741
parent
59465d738d
commit
67b3a90097
@ -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();
|
||||
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in new issue