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 );
|
|
}
|
|
}
|