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.
		
		
		
		
		
			
		
			
				
					
					
						
							268 lines
						
					
					
						
							7.2 KiB
						
					
					
				
			
		
		
	
	
							268 lines
						
					
					
						
							7.2 KiB
						
					
					
				/*
 | 
						|
 * MedicoEditor.java
 | 
						|
 *
 | 
						|
 * Created on 10 de Abril de 2004, 20:50
 | 
						|
 */
 | 
						|
 | 
						|
package siprp.ficha;
 | 
						|
 | 
						|
import java.awt.*;
 | 
						|
import java.awt.event.*;
 | 
						|
import javax.swing.*;
 | 
						|
import javax.swing.event.*;
 | 
						|
import java.util.*;
 | 
						|
 | 
						|
import com.evolute.utils.*;
 | 
						|
import com.evolute.utils.jdo.*;
 | 
						|
import com.evolute.utils.metadb.*;
 | 
						|
import com.evolute.utils.tables.*;
 | 
						|
import com.evolute.utils.ui.*;
 | 
						|
 | 
						|
import siprp.*;
 | 
						|
import siprp.data.*;
 | 
						|
 | 
						|
/**
 | 
						|
 *
 | 
						|
 * @author  Administrator
 | 
						|
 */
 | 
						|
public class MedicoEditor extends CustomJDialog
 | 
						|
	implements ActionListener, ListSelectionListener
 | 
						|
{
 | 
						|
	static
 | 
						|
	{
 | 
						|
		MedicoData.registerOperationHandlerForClass( DisableDeleteHandler.INSTANCE, MedicoData.class );
 | 
						|
	}
 | 
						|
	private JDOProvider JDO;
 | 
						|
	private FichaDataProvider provider;
 | 
						|
	private BaseTable table;
 | 
						|
	private VectorTableModel model;
 | 
						|
	private JButton okButton;
 | 
						|
	private JButton cancelarButton;
 | 
						|
	private JButton novoButton;
 | 
						|
	private JTextField nomeText;
 | 
						|
	private JTextField numeroText;
 | 
						|
	private Integer id;
 | 
						|
	private boolean isNew = false;
 | 
						|
	
 | 
						|
	/** Creates a new instance of MedicoEditor */
 | 
						|
	public MedicoEditor( JFrame owner )
 | 
						|
		throws Exception
 | 
						|
	{
 | 
						|
		super( owner, true );
 | 
						|
		provider = (FichaDataProvider)FichaDataProvider.getProvider();
 | 
						|
		JDO = ( JDOProvider ) Singleton.getInstance( Singleton.DEFAULT_JDO_PROVIDER );
 | 
						|
		setupComponents();
 | 
						|
	}
 | 
						|
    
 | 
						|
	private void setupComponents()
 | 
						|
		throws Exception
 | 
						|
	{
 | 
						|
		setSize( 600, 300 );
 | 
						|
		setResizable( false );
 | 
						|
		setTitle( "Criar/Editar M\u00e9dico" );
 | 
						|
		centerSuper();
 | 
						|
		
 | 
						|
		model = new VectorTableModel( new String[]{ "Nome", "NC" } );
 | 
						|
		table = new BaseTable( model );
 | 
						|
		table.setSelectionMode( ListSelectionModel.SINGLE_SELECTION );
 | 
						|
		JScrollPane scp = new JScrollPane();
 | 
						|
		scp.setMinimumSize( new Dimension( 300, 200 ) );
 | 
						|
		scp.setMaximumSize( new Dimension( 300, 200 ) );
 | 
						|
		scp.setPreferredSize( new Dimension( 300, 200 ) );
 | 
						|
		scp.setSize( new Dimension( 300, 200 ) );
 | 
						|
		scp.setViewportView( table );
 | 
						|
		scp.setHorizontalScrollBarPolicy( JScrollPane.HORIZONTAL_SCROLLBAR_NEVER );
 | 
						|
		scp.setVerticalScrollBarPolicy( JScrollPane.VERTICAL_SCROLLBAR_ALWAYS );
 | 
						|
		table.fixColumnWidth( 0, 200 );
 | 
						|
		table.setNonResizableNorReordable();
 | 
						|
		table.getSelectionModel().addListSelectionListener( this );
 | 
						|
		Object obj[][] = provider.getAllMedicos();
 | 
						|
		Vector medicos = new Vector();
 | 
						|
		for( int n = 0; n < obj.length; n++ )
 | 
						|
		{
 | 
						|
			medicos.add( new MedicoColumnizedObject( (Integer)obj[n][0],
 | 
						|
														(String)obj[n][1], 
 | 
						|
														(String)obj[n][2] ) );
 | 
						|
		}
 | 
						|
		model.setValues( medicos );
 | 
						|
		
 | 
						|
		okButton = new JButton( "OK" );
 | 
						|
		cancelarButton = new JButton( "Cancelar" );
 | 
						|
		novoButton = new JButton( "Novo" );
 | 
						|
		okButton.addActionListener( this );
 | 
						|
		cancelarButton.addActionListener( this );
 | 
						|
		novoButton.addActionListener( this );
 | 
						|
		
 | 
						|
		nomeText = new JTextField();
 | 
						|
		nomeText.setEnabled( false );
 | 
						|
		numeroText = new JTextField();
 | 
						|
		numeroText.setEnabled( false );
 | 
						|
		
 | 
						|
		GridBagLayout gridbag = new GridBagLayout();
 | 
						|
		getContentPane().setLayout( gridbag );
 | 
						|
		GridBagConstraints constraints = new GridBagConstraints();
 | 
						|
		constraints.insets = new Insets( 1, 1, 1, 1 );
 | 
						|
		constraints.fill = GridBagConstraints.BOTH;
 | 
						|
		constraints.weighty = 1;
 | 
						|
		constraints.weightx = 1;
 | 
						|
		constraints.gridwidth = GridBagConstraints.REMAINDER;
 | 
						|
		constraints.gridheight = 1;
 | 
						|
		
 | 
						|
		JPanel upperPanel = new JPanel();
 | 
						|
		upperPanel.setLayout( new GridLayout( 1, 2 ) );
 | 
						|
		upperPanel.add( scp );
 | 
						|
		JPanel textPanel = new JPanel();
 | 
						|
		upperPanel.add( textPanel );
 | 
						|
		gridbag.setConstraints( upperPanel, constraints );
 | 
						|
		getContentPane().add( upperPanel );
 | 
						|
		
 | 
						|
		constraints.fill = GridBagConstraints.HORIZONTAL;
 | 
						|
		constraints.weighty = 0;
 | 
						|
		constraints.weightx = 0.3;
 | 
						|
		constraints.gridwidth = 1;
 | 
						|
		constraints.gridheight = GridBagConstraints.REMAINDER;;
 | 
						|
		
 | 
						|
		gridbag.setConstraints( novoButton, constraints );
 | 
						|
		getContentPane().add( novoButton );
 | 
						|
		
 | 
						|
		gridbag.setConstraints( okButton, constraints );
 | 
						|
		getContentPane().add( okButton );
 | 
						|
		
 | 
						|
		constraints.gridwidth = GridBagConstraints.REMAINDER;
 | 
						|
		gridbag.setConstraints( cancelarButton, constraints );
 | 
						|
		getContentPane().add( cancelarButton );
 | 
						|
		
 | 
						|
		gridbag = new GridBagLayout();
 | 
						|
		textPanel.setLayout( gridbag );
 | 
						|
		constraints.weighty = 0;
 | 
						|
		constraints.weightx = 1;
 | 
						|
		constraints.gridwidth = GridBagConstraints.REMAINDER;
 | 
						|
		constraints.gridheight = 1;
 | 
						|
		
 | 
						|
		JLabel nomeLabel = new JLabel( "Nome" );
 | 
						|
		gridbag.setConstraints( nomeLabel, constraints );
 | 
						|
		textPanel.add( nomeLabel );
 | 
						|
		
 | 
						|
		gridbag.setConstraints( nomeText, constraints );
 | 
						|
		textPanel.add( nomeText );
 | 
						|
		
 | 
						|
		JLabel numeroLabel = new JLabel( "N\u00famero" );
 | 
						|
		gridbag.setConstraints( numeroLabel, constraints );
 | 
						|
		textPanel.add( numeroLabel );
 | 
						|
		
 | 
						|
		gridbag.setConstraints( numeroText, constraints );
 | 
						|
		textPanel.add( numeroText );
 | 
						|
		
 | 
						|
		constraints.weighty = 1;
 | 
						|
		constraints.gridheight = GridBagConstraints.REMAINDER;;
 | 
						|
		JPanel pad = new JPanel();
 | 
						|
		gridbag.setConstraints( pad, constraints );
 | 
						|
		textPanel.add( pad );
 | 
						|
		
 | 
						|
	}
 | 
						|
	
 | 
						|
	public void actionPerformed( ActionEvent e )
 | 
						|
	{
 | 
						|
		if( e.getSource().equals( okButton ) )
 | 
						|
		{
 | 
						|
			if( save() )
 | 
						|
			{
 | 
						|
				close();
 | 
						|
			}
 | 
						|
		}
 | 
						|
		else if( e.getSource().equals( cancelarButton ) )
 | 
						|
		{
 | 
						|
			close();
 | 
						|
		}
 | 
						|
		if( e.getSource().equals( novoButton ) )
 | 
						|
		{
 | 
						|
			table.getSelectionModel().removeListSelectionListener( this );
 | 
						|
			nomeText.setText( "" );
 | 
						|
			numeroText.setText( "" );
 | 
						|
			nomeText.setEnabled( true );
 | 
						|
			numeroText.setEnabled( true );
 | 
						|
			id = null;
 | 
						|
			isNew = true;
 | 
						|
		}
 | 
						|
	}
 | 
						|
	
 | 
						|
	public void valueChanged(javax.swing.event.ListSelectionEvent listSelectionEvent)
 | 
						|
	{
 | 
						|
		int selected = table.getSelectedRow();
 | 
						|
		if( selected == -1 )
 | 
						|
		{
 | 
						|
			return;
 | 
						|
		}
 | 
						|
		MedicoColumnizedObject row = (MedicoColumnizedObject)model.getRowAt( selected );
 | 
						|
		id = row.getID();
 | 
						|
		String nome = (String) row.getValue( 0 );
 | 
						|
		String numero = (String) row.getValue( 1 );
 | 
						|
		nomeText.setText( nome );
 | 
						|
		numeroText.setText( numero );
 | 
						|
		nomeText.setEnabled( true );
 | 
						|
		numeroText.setEnabled( true );
 | 
						|
	}
 | 
						|
	
 | 
						|
	private void close()
 | 
						|
	{
 | 
						|
		setVisible( false );
 | 
						|
		dispose();
 | 
						|
	}
 | 
						|
	
 | 
						|
	public boolean getIsNew()
 | 
						|
	{
 | 
						|
		return isNew;
 | 
						|
	}
 | 
						|
	
 | 
						|
	public Integer getID()
 | 
						|
	{
 | 
						|
		return id;
 | 
						|
	}
 | 
						|
	
 | 
						|
	private boolean save()
 | 
						|
	{
 | 
						|
		String nome = nomeText.getText().trim();
 | 
						|
		String numero = numeroText.getText().trim();
 | 
						|
		if( nome.length() == 0 )
 | 
						|
		{
 | 
						|
			JOptionPane.showMessageDialog( this, "O Nome n\u00e3o pode ser vazio.", "Erro...", 
 | 
						|
				JOptionPane.ERROR_MESSAGE );
 | 
						|
			return false;
 | 
						|
		}
 | 
						|
		try
 | 
						|
		{
 | 
						|
			MedicoData medico;
 | 
						|
			if( id != null )
 | 
						|
			{
 | 
						|
				medico = ( MedicoData ) JDO.load( MedicoData.class, id );
 | 
						|
//				medico = provider.load( provider.MEDICOS, new DBKey( id ) );
 | 
						|
			}
 | 
						|
			else
 | 
						|
			{
 | 
						|
				medico = new MedicoData();
 | 
						|
//				medico = provider.createObject( provider.MEDICOS );
 | 
						|
			}
 | 
						|
//			medico.setProperty( provider.NOME, nome );
 | 
						|
//			medico.setProperty( provider.NUMERO_CEDULA, numero );
 | 
						|
			medico.set( MedicoData.NOME, nome );
 | 
						|
			medico.set( MedicoData.NUMERO_CEDULA, numero );
 | 
						|
			medico.save();
 | 
						|
			if( id == null )
 | 
						|
			{
 | 
						|
//				DBKey key = medico.getPrimaryKeyValue();
 | 
						|
//				DBField fields[] = provider.MEDICOS.getPrimaryKey();
 | 
						|
//				id = new Integer( ((Number)key.getFieldValue( fields[ 0 ] )).intValue() );
 | 
						|
				id = (Integer)medico.get( MedicoData.ID );
 | 
						|
			}
 | 
						|
		}
 | 
						|
		catch( Exception ex )
 | 
						|
		{
 | 
						|
//			JOptionPane.showMessageDialog( this, "Erro a gravar...", "Erro...", 
 | 
						|
//				JOptionPane.ERROR_MESSAGE );
 | 
						|
			DialogException.showExceptionMessage( ex, "Erro a gravar...", false );
 | 
						|
			return false;
 | 
						|
		}
 | 
						|
		return true;
 | 
						|
	}
 | 
						|
}
 |