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.
		
		
		
		
		
			
		
			
				
					
					
						
							233 lines
						
					
					
						
							5.6 KiB
						
					
					
				
			
		
		
	
	
							233 lines
						
					
					
						
							5.6 KiB
						
					
					
				| /*
 | |
|  * UserPanel.java
 | |
|  *
 | |
|  * Created on 8 de Novembro de 2004, 17:03
 | |
|  */
 | |
| 
 | |
| package siprp.clientes;
 | |
| 
 | |
| import java.awt.*;
 | |
| import java.awt.event.*;
 | |
| import javax.swing.*;
 | |
| import javax.swing.event.*;
 | |
| 
 | |
| import com.evolute.utils.ui.*;
 | |
| import com.evolute.utils.ui.text.*;
 | |
| /**
 | |
|  *
 | |
|  * @author  fpalma
 | |
|  */
 | |
| public class UserPanel extends JPanel
 | |
| 	implements DocumentListener, FocusListener, ActionListener
 | |
| {
 | |
| 	private UserDataProvider provider;
 | |
| 	
 | |
| 	private JTextField userNameText;
 | |
| 	private JTextField passwordText;
 | |
| 	private JButton applyButton;
 | |
| 	private JButton cancelButton;
 | |
| 	
 | |
| 	private boolean passwordEdited = false;
 | |
| 	private boolean hasPassword = false;
 | |
| 	private boolean error = false;
 | |
| 	private Integer empresaID;
 | |
| 	
 | |
| //	public static void main( String args[] )
 | |
| //	{
 | |
| //		JFrame frame = new JFrame();
 | |
| //		frame.setSize( 300, 200 );
 | |
| //		frame.getContentPane().setLayout( new GridLayout( 1, 1 ) );
 | |
| //		frame.getContentPane().add( new UserPanel() );
 | |
| //		frame.show();
 | |
| //	}
 | |
| 	
 | |
| 	/** Creates a new instance of UserPanel */
 | |
| 	public UserPanel()
 | |
| 		throws Exception
 | |
| 	{
 | |
| 		provider = ( UserDataProvider ) UserDataProvider.getProvider();
 | |
| 		setupComponents();
 | |
| 	}
 | |
| 	
 | |
| 	private void setupComponents()
 | |
| 	{
 | |
| 		JLabel userNameLabel = new JLabel( "Utilizador" );
 | |
| 		userNameText = new JTextField();
 | |
| 		JLabel passwordLabel = new JLabel( "Senha" );
 | |
| 		passwordText = new JTextField();
 | |
| 		applyButton = new JButton( "Actualizar" );
 | |
| 		cancelButton = new JButton( "Cancelar" );
 | |
| 		
 | |
| 		userNameText.setPreferredSize( new Dimension( 200, 20 ) );
 | |
| 		passwordText.setPreferredSize( new Dimension( 200, 20 ) );
 | |
| 		passwordText.setText( "<N\u00e3o Definida>" );
 | |
| 		
 | |
| 		GridBagLayout gridbag = new GridBagLayout();
 | |
| 		setLayout( gridbag );
 | |
| 		GridBagConstraints constraints = new GridBagConstraints();
 | |
| 		constraints.insets = new Insets( 1, 1, 1, 1 );
 | |
| 		constraints.fill = GridBagConstraints.HORIZONTAL;
 | |
| 		constraints.weighty = 0;
 | |
| 		constraints.gridheight = 1;
 | |
| 		
 | |
| 		constraints.weightx = 1;
 | |
| 		constraints.gridwidth = GridBagConstraints.REMAINDER;
 | |
| 		gridbag.setConstraints( userNameLabel, constraints );
 | |
| 		gridbag.setConstraints( passwordLabel, constraints );
 | |
| 		gridbag.setConstraints( userNameText, constraints );
 | |
| 		gridbag.setConstraints( passwordText, constraints );
 | |
| 		JPanel buttonPanel = new JPanel();
 | |
| 		gridbag.setConstraints( buttonPanel, constraints );
 | |
| 		
 | |
| 		add( userNameLabel );
 | |
| 		add( userNameText );
 | |
| 		add( passwordLabel );
 | |
| 		add( passwordText );
 | |
| 		add( buttonPanel );
 | |
| 		
 | |
| 		buttonPanel.setLayout( new FlowLayout( FlowLayout.RIGHT ) );
 | |
| 		buttonPanel.add( applyButton );
 | |
| 		buttonPanel.add( cancelButton );
 | |
| 		
 | |
| 		passwordText.addFocusListener( this );
 | |
| 		passwordText.getDocument().addDocumentListener( this );
 | |
| 		
 | |
| 		applyButton.addActionListener( this );
 | |
| 		cancelButton.addActionListener( this );
 | |
| 		
 | |
| 		new CopyPasteHandler( userNameText );
 | |
| 		new CopyPasteHandler( passwordText );
 | |
| 	}
 | |
| 	
 | |
| 	public void changedUpdate(javax.swing.event.DocumentEvent documentEvent)
 | |
| 	{
 | |
| 		passwordEdited = true;
 | |
| 	}
 | |
| 	
 | |
| 	public void insertUpdate(javax.swing.event.DocumentEvent documentEvent)
 | |
| 	{
 | |
| 		passwordEdited = true;
 | |
| 	}
 | |
| 	
 | |
| 	public void removeUpdate(javax.swing.event.DocumentEvent documentEvent)
 | |
| 	{
 | |
| 		passwordEdited = true;
 | |
| 	}
 | |
| 	
 | |
| 	public void focusGained(java.awt.event.FocusEvent focusEvent)
 | |
| 	{
 | |
| 		if( !passwordEdited )
 | |
| 		{
 | |
| 			passwordText.getDocument().removeDocumentListener( this );
 | |
| 			passwordText.setText( "" );
 | |
| 			passwordText.getDocument().addDocumentListener( this );
 | |
| 		}
 | |
| 	}
 | |
| 	
 | |
| 	public void focusLost(java.awt.event.FocusEvent focusEvent)
 | |
| 	{
 | |
| 	}
 | |
| 	
 | |
| 	public void actionPerformed(java.awt.event.ActionEvent actionEvent)
 | |
| 	{
 | |
| 		try
 | |
| 		{
 | |
| 			Object source = actionEvent.getSource();
 | |
| 			if( applyButton.equals( source ) )
 | |
| 			{
 | |
| 				if( save() )
 | |
| 				{
 | |
| 					hasPassword = true;
 | |
| 				}
 | |
| 				refresh();
 | |
| 			}
 | |
| 			else if( cancelButton.equals( source ) )
 | |
| 			{
 | |
| 				reload();
 | |
| 				refresh();
 | |
| 			}
 | |
| 		}
 | |
| 		catch( Exception ex )
 | |
| 		{
 | |
| 			DialogException.showExceptionMessage( ex, "Erro na liga\u00e7\u00e3o \u00e0 Base de Dados WEB", true );
 | |
| 		}
 | |
| 	}
 | |
| 	
 | |
| 	private void refresh()
 | |
| 	{
 | |
| 		passwordText.getDocument().removeDocumentListener( this );
 | |
| 		if( !passwordEdited )
 | |
| 		{
 | |
| 			if( hasPassword )
 | |
| 			{
 | |
| 				passwordText.setText( "<Definida>" );
 | |
| 			}
 | |
| 			else
 | |
| 			{
 | |
| 				passwordText.setText( "<N\u00e3o Definida>" );
 | |
| 			}
 | |
| 		}
 | |
| 		passwordText.getDocument().addDocumentListener( this );
 | |
| 	}
 | |
| 	
 | |
| 	public void setEmpresaID( Integer empresaID )
 | |
| 	{
 | |
| 		try
 | |
| 		{
 | |
| 			userNameText.setText( "" );
 | |
| 			passwordText.setText( "" );
 | |
| 			passwordEdited = false;
 | |
| 			hasPassword = false;
 | |
| 			this.empresaID = empresaID;
 | |
| //			if( empresaID == null )
 | |
| //			{
 | |
| //				return;
 | |
| //			}
 | |
| 			reload();
 | |
| 			refresh();
 | |
| 			error = false;
 | |
| 		}
 | |
| 		catch( Exception ex )
 | |
| 		{
 | |
| 			DialogException.showExceptionMessage( ex, "Erro na liga\u00e7\u00e3o \u00e0 Base de Dados WEB", true );
 | |
| 			userNameText.setText( "Erro na liga\u00e7\u00e3o" );
 | |
| 			setEnabled( false );
 | |
| 			error = true;
 | |
| 		}
 | |
| 	}
 | |
| 	
 | |
| 	private boolean save()
 | |
| 		throws Exception
 | |
| 	{
 | |
| 		if( !provider.checkNewName( userNameText.getText(), empresaID ) )
 | |
| 		{
 | |
| 			JOptionPane.showMessageDialog( null, "O Utilizador " + userNameText.getText() + " j\u00e1 est\u00e1 em uso por outra entidade." );
 | |
| 			return false;
 | |
| 		}
 | |
| 		provider.saveUser( userNameText.getText(), passwordText.getText(), empresaID, !hasPassword );
 | |
| 		passwordEdited = false;
 | |
| 		return true;
 | |
| 	}
 | |
| 	
 | |
| 	private boolean reload()
 | |
| 		throws Exception
 | |
| 	{
 | |
| 		String userName = provider.getUserName( empresaID );
 | |
| 		if( userName != null )
 | |
| 		{
 | |
| 			userNameText.setText( userName );
 | |
| 			hasPassword = true;
 | |
| 		}
 | |
| 		passwordEdited = false;
 | |
| 		return true;
 | |
| 	}
 | |
| 	
 | |
| 	public void setEnabled( boolean enable )
 | |
| 	{
 | |
| 		userNameText.setEnabled( enable && !error );
 | |
| 		passwordText.setEnabled( enable && !error );
 | |
| 		applyButton.setEnabled( enable && !error );
 | |
| 		cancelButton.setEnabled( enable && !error );
 | |
| 	}
 | |
| }
 |