forked from Coded/SIPRP
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
307 lines
7.8 KiB
307 lines
7.8 KiB
/*
|
|
* FichaWindow.java
|
|
*
|
|
* Created on 29 de Março de 2004, 11:50
|
|
*/
|
|
|
|
package siprp.ficha;
|
|
|
|
import siprp.*;
|
|
|
|
import java.awt.*;
|
|
import javax.swing.*;
|
|
|
|
import com.evolute.utils.metadb.*;
|
|
import com.evolute.utils.ui.*;
|
|
import com.evolute.utils.ui.search.*;
|
|
import com.evolute.utils.ui.window.*;
|
|
|
|
/**
|
|
*
|
|
* @author fpalma
|
|
*/
|
|
public class FichaWindow extends TabbedWindow
|
|
{
|
|
private UpperPanel upperPanel;
|
|
private EmpresaPanel empresaPanel;
|
|
private TrabalhadorPanel trabalhadorPanel;
|
|
private ObservacoesPanel observacoesPanel;
|
|
private ExamePanel examePanel;
|
|
|
|
private FichaDataProvider fdpProvider;
|
|
private Integer empresaID;
|
|
private Integer estabelecimentoID;
|
|
private Integer trabalhadorID;
|
|
|
|
private static int permissions[][] =
|
|
new int[][]{ { NEW_INDEX, CANCEL_INDEX, SAVE_INDEX, DELETE_INDEX } };
|
|
|
|
/** Creates a new instance of FichaWindow */
|
|
public FichaWindow()
|
|
throws Exception
|
|
{
|
|
super( new UpperPanel(), new String[]{ "Empresa/Trabalhador", "Exame" },
|
|
createPermissions( permissions ) );
|
|
setEditorManagerFactory( FichaAptidaoEditorManager.getEditorManagerFactory() );
|
|
upperPanel = (UpperPanel) getUpperPanel();
|
|
upperPanel.owner = this;
|
|
fdpProvider = ( FichaDataProvider ) FichaDataProvider.getProvider();
|
|
setupComponents();
|
|
}
|
|
|
|
private void setupComponents()
|
|
throws Exception
|
|
{
|
|
setSize( 700, 570 );
|
|
setResizable( false );
|
|
setTitle( "Ficha de Aptid\u00e3o" );
|
|
|
|
JPanel empresaTrabalhadorPanel = getTab( 0 );
|
|
JPanel exameRecomendacoesPanel = getTab( 1 );
|
|
|
|
GridBagLayout gridbag = new GridBagLayout();
|
|
empresaTrabalhadorPanel.setLayout( gridbag );
|
|
GridBagConstraints constraints = new GridBagConstraints();
|
|
constraints.insets = new Insets( 0, 1, 0, 1 );
|
|
constraints.fill = GridBagConstraints.BOTH;
|
|
constraints.weightx = 1;
|
|
constraints.gridwidth = GridBagConstraints.REMAINDER;
|
|
constraints.gridheight = 1;
|
|
constraints.weighty = 0;
|
|
|
|
empresaPanel = new EmpresaPanel();
|
|
empresaPanel.setEnabled( false );
|
|
gridbag.setConstraints( empresaPanel, constraints );
|
|
empresaTrabalhadorPanel.add( empresaPanel );
|
|
|
|
constraints.weighty = 0;
|
|
trabalhadorPanel = new TrabalhadorPanel();
|
|
gridbag.setConstraints( trabalhadorPanel, constraints );
|
|
empresaTrabalhadorPanel.add( trabalhadorPanel );
|
|
|
|
constraints.weighty = 1;
|
|
observacoesPanel = new ObservacoesPanel();
|
|
gridbag.setConstraints( observacoesPanel, constraints );
|
|
empresaTrabalhadorPanel.add( observacoesPanel );
|
|
|
|
|
|
gridbag = new GridBagLayout();
|
|
exameRecomendacoesPanel.setLayout( gridbag );
|
|
constraints = new GridBagConstraints();
|
|
constraints.insets = new Insets( 0, 1, 0, 1 );
|
|
constraints.fill = GridBagConstraints.BOTH;
|
|
constraints.weightx = 1;
|
|
constraints.gridwidth = GridBagConstraints.REMAINDER;
|
|
constraints.gridheight = 1;
|
|
constraints.weighty = 0;
|
|
|
|
constraints.weighty = 1;
|
|
examePanel = new ExamePanel();
|
|
gridbag.setConstraints( examePanel, constraints );
|
|
exameRecomendacoesPanel.add( examePanel );
|
|
}
|
|
|
|
public boolean save( int index )
|
|
{
|
|
new ProgressDialog( this, "A gravar...",
|
|
new Runnable(){
|
|
public void run()
|
|
{
|
|
|
|
}
|
|
});
|
|
StringBuffer msg = new StringBuffer();
|
|
MetaObject estabelecimento;
|
|
try
|
|
{
|
|
estabelecimento = (MetaObject)empresaPanel.save();
|
|
}
|
|
catch( ValuesException vex )
|
|
{
|
|
msg.append( vex.getMessage() );
|
|
estabelecimento = null;
|
|
}
|
|
MetaObject trabalhador;
|
|
try
|
|
{
|
|
trabalhador = (MetaObject)trabalhadorPanel.save();
|
|
}
|
|
catch( ValuesException vex )
|
|
{
|
|
msg.append( vex.getMessage() );
|
|
trabalhador = null;
|
|
}
|
|
MetaObject exame;
|
|
try
|
|
{
|
|
exame = (MetaObject)examePanel.save();
|
|
}
|
|
catch( ValuesException vex )
|
|
{
|
|
msg.append( vex.getMessage() );
|
|
exame = null;
|
|
}
|
|
if( estabelecimento == null || trabalhador == null || exame == null )
|
|
{
|
|
JOptionPane.showMessageDialog( this, msg.toString(), "Erro...", JOptionPane.ERROR_MESSAGE );
|
|
return false;
|
|
}
|
|
trabalhador.setProperty( fdpProvider.R_TRABALHADOR_ESTABELECIMENTO, estabelecimento );
|
|
trabalhador.setProperty( fdpProvider.OBSERVACOES, observacoesPanel.save() );
|
|
MetaObject medico;
|
|
try
|
|
{
|
|
medico = fdpProvider.load( fdpProvider.MEDICOS, new DBKey( new Integer(1) ) );
|
|
}
|
|
catch( Exception ex )
|
|
{
|
|
ex.printStackTrace();
|
|
return false;
|
|
}
|
|
exame.setProperty( fdpProvider.R_EXAME_MEDICO, medico );
|
|
exame.setProperty( fdpProvider.R_EXAME_TRABALHADOR, trabalhador );
|
|
try
|
|
{
|
|
|
|
exame.save();
|
|
}
|
|
catch( Exception ex )
|
|
{
|
|
DialogException.showExceptionMessage( ex, "Erro a guardar", true );
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
public boolean newItem( int index )
|
|
{
|
|
fdpProvider.setSearch( FichaDataProvider.SEARCH_EMPRESAS );
|
|
SearchDialog search;
|
|
Integer oldID = empresaID;
|
|
// if( empresaID != null )
|
|
// {
|
|
// try
|
|
// {
|
|
// MetaObject empresa = fdpProvider.load( fdpProvider.EMPRESAS, new DBKey( empresaID ) );
|
|
// String designacao = (String) empresa.getProperty( fdpProvider.DESIGNACAO_SOCIAL );
|
|
// search = new SearchDialog( fdpProvider, null, true, new Object[]{ empresaID, designacao }, false );
|
|
// }
|
|
// catch( Exception ex )
|
|
// {
|
|
// search = new SearchDialog( fdpProvider, null, true, null, true );
|
|
// }
|
|
// }
|
|
// else
|
|
// {
|
|
// search = new SearchDialog( fdpProvider, null, true, null, true );
|
|
// }
|
|
search = new SearchDialog( fdpProvider, null, true, null, true );
|
|
empresaID = ( Integer )search.getSelected();
|
|
|
|
if( empresaID == null )
|
|
{
|
|
if( search.getIsNew() )
|
|
{
|
|
estabelecimentoID = null;
|
|
trabalhadorID = null;
|
|
clear( 0 );
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
fdpProvider.setSearch( FichaDataProvider.SEARCH_ESTABELECIMENTOS );
|
|
fdpProvider.setSearchID( FichaDataProvider.SEARCH_EMPRESAS, empresaID.intValue() );
|
|
// if( oldID != null && oldID.equals( empresaID ) && estabelecimentoID != null )
|
|
// {
|
|
// try
|
|
// {
|
|
// MetaObject estabelecimento = fdpProvider.load( fdpProvider.ESTABELECIMENTOS, new DBKey( estabelecimentoID ) );
|
|
// String nome = (String) estabelecimento.getProperty( fdpProvider.NOME );
|
|
// search = new SearchDialog( fdpProvider, null, true, new Object[]{ estabelecimentoID, nome }, false );
|
|
// }
|
|
// catch( Exception ex )
|
|
// {
|
|
// search = new SearchDialog( fdpProvider, null, true, null, true );
|
|
// }
|
|
// }
|
|
// else
|
|
// {
|
|
// search = new SearchDialog( fdpProvider, null, true, null, true );
|
|
// }
|
|
search = new SearchDialog( fdpProvider, null, true, null, true );
|
|
estabelecimentoID = ( Integer )search.getSelected();
|
|
|
|
if( estabelecimentoID == null )
|
|
{
|
|
if( search.getIsNew() )
|
|
{
|
|
trabalhadorID = null;
|
|
reload(0);
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
fdpProvider.setSearch( FichaDataProvider.SEARCH_TRABALHADORES );
|
|
fdpProvider.setSearchID( FichaDataProvider.SEARCH_ESTABELECIMENTOS, estabelecimentoID.intValue() );
|
|
search = new SearchDialog( fdpProvider, null, true, null, true );
|
|
trabalhadorID = ( Integer )search.getSelected();
|
|
|
|
if( trabalhadorID == null )
|
|
{
|
|
if( search.getIsNew() )
|
|
{
|
|
reload(0);
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
reload(0);
|
|
return true;
|
|
}
|
|
|
|
public boolean delete( int index )
|
|
{
|
|
return true;
|
|
}
|
|
|
|
public void reload( int index )
|
|
{
|
|
Integer upperData[] = new Integer[]{ empresaID, estabelecimentoID, trabalhadorID };
|
|
upperPanel.fill( upperData );
|
|
Object empresaData[] = new Object[]{ empresaID, estabelecimentoID };
|
|
empresaPanel.fill( empresaData );
|
|
trabalhadorPanel.fill( trabalhadorID );
|
|
observacoesPanel.fill( trabalhadorID );
|
|
examePanel.fill( null );
|
|
}
|
|
|
|
public void enableComponents( int index, boolean enable )
|
|
{
|
|
upperPanel.setEnabled( enable );
|
|
empresaPanel.setEnabled( enable );
|
|
trabalhadorPanel.setEnabled( enable );
|
|
observacoesPanel.setEnabled( enable );
|
|
examePanel.setEnabled( enable );
|
|
}
|
|
|
|
public void clear( int index )
|
|
{
|
|
upperPanel.clear();
|
|
empresaPanel.clear();
|
|
trabalhadorPanel.clear();
|
|
observacoesPanel.clear();
|
|
examePanel.clear();
|
|
}
|
|
}
|