Добавил:
Eatmore
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:написанные программы / информационная система umbrella - сырцы( java + .net ) / Umbrella / src / EditEmployeeForm
.java//
// Created by Grishul Eugeny
//
// Copyright © Grishul Eugeny 2008
//
import java.awt.Toolkit;
import java.awt.Window;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;
import java.io.File;
import java.io.FileInputStream;
import java.sql.Timestamp;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import javax.swing.JComponent;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import javax.swing.SwingUtilities;
import javax.swing.TransferHandler;
public class EditEmployeeForm extends javax.swing.JDialog {
public DbLayer DbLayerInstance;
private DbEmployee _currentEmployee;
private boolean _createEmployeeMode = false;
public EditEmployeeForm( DbLayer dblayerInstance, Window parent, DbEmployee employee ) {
super( parent, ModalityType.DOCUMENT_MODAL );
try {
initComponents();
DbLayerInstance = dblayerInstance;
_photography.setTransferHandler( this.new FileDropHandler() );
_createEmployeeMode = employee == null;
_currentEmployee = employee;
refreshInformation();
} catch( Throwable excpt ) {
JOptionPane.showMessageDialog( this, excpt.getMessage() );
}
setLocationRelativeTo( parent );
}
public void refreshInformation() throws Throwable {
if( _currentEmployee != null ) {
_login.setText( _currentEmployee.Login );
if( !_createEmployeeMode )
_password.setText( _currentEmployee.Password );
_passport.setText( _currentEmployee.Passport );
_name.setText( _currentEmployee.Name );
_surname.setText( _currentEmployee.Surname );
_patronymic.setText( _currentEmployee.Patronymic );
_birthDate.setValue( new Date( _currentEmployee.BirthDate.getTime() ) );
_description.setText( _currentEmployee.Description );
_photography.setBackgroundImage( _currentEmployee.Photography );
_role.setSelectedIndex( _currentEmployee.Role.getValue() );
} else {
_login.setText( "" );
_password.setText( "" );
_name.setText( "" );
_surname.setText( "" );
_patronymic.setText( "" );
_birthDate.setText( "" );
_description.setText( "" );
_photography.setBackgroundImage( null );
_role.setSelectedIndex( 1 );
}
}
private class FileDropHandler extends TransferHandler {
@Override
public boolean canImport( JComponent arg0, DataFlavor[] arg1 ) {
for( int i = 0; i < arg1.length; i++ ) {
DataFlavor flavor = arg1[i];
if( flavor.equals( DataFlavor.javaFileListFlavor ) )
return true;
System.err.println( "Непонятный дроп: " + flavor );
}
return false;
}
@Override
public boolean importData( JComponent comp, Transferable t ) {
try {
DataFlavor[] flavors = t.getTransferDataFlavors();
for( int i = 0; i < flavors.length; i++ ) {
DataFlavor flavor = flavors[i];
if( flavor.equals( DataFlavor.javaFileListFlavor ) ) {
List l = ( List ) t.getTransferData( DataFlavor.javaFileListFlavor );
Iterator iter = l.iterator();
while( iter.hasNext() ) {
File droppedFile = ( File ) iter.next();
FileInputStream droppedFileReader = null;
byte[] droppedFileContents = new byte[( int ) droppedFile.length()];
try {
droppedFileReader = new FileInputStream( droppedFile );
droppedFileReader.read( droppedFileContents );
_photography.setBackgroundImage( droppedFileContents );
} finally {
if( droppedFileReader != null )
droppedFileReader.close();
}
}
return true;
}
}
Toolkit.getDefaultToolkit().beep();
} catch( Throwable excpt ) {
JOptionPane.showMessageDialog( comp, excpt.getMessage() );
}
return false;
}
}
@SuppressWarnings( "unchecked" )
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
_changePhotoMenu = new javax.swing.JPopupMenu();
_findPhoto = new javax.swing.JMenuItem();
_surnameLabel = new javax.swing.JLabel();
_nameLabel = new javax.swing.JLabel();
_patronymicLabel = new javax.swing.JLabel();
_roleLabel = new javax.swing.JLabel();
_birthDateLabel = new javax.swing.JLabel();
_descriptionLabel = new javax.swing.JLabel();
_surname = new javax.swing.JTextField();
_name = new javax.swing.JTextField();
_patronymic = new javax.swing.JTextField();
_login = new javax.swing.JTextField();
_descriptionScroll = new javax.swing.JScrollPane();
_description = new javax.swing.JTextArea();
_ok = new javax.swing.JButton();
_cancel = new javax.swing.JButton();
_passportLabel = new javax.swing.JLabel();
_passport = new javax.swing.JTextField();
_loginLabel = new javax.swing.JLabel();
_passwordLabel = new javax.swing.JLabel();
_role = new javax.swing.JComboBox();
_password = new javax.swing.JTextField();
_birthDate = new javax.swing.JFormattedTextField();
_photography = new ImagePanel();
_findPhoto.setText("найти фотографию");
_findPhoto.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
_findPhotoActionPerformed(evt);
}
});
_changePhotoMenu.add(_findPhoto);
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setTitle("Редактировать сотрудника");
setResizable(false);
_surnameLabel.setText("Фамилия:");
_nameLabel.setText("Имя:");
_patronymicLabel.setText("Отчество:");
_roleLabel.setText("Роль:");
_birthDateLabel.setText("Дата рождения:");
_descriptionLabel.setText("Характеристика:");
_description.setColumns(20);
_description.setFont(new java.awt.Font("Tahoma", 0, 11)); // NOI18N
_description.setRows(5);
_descriptionScroll.setViewportView(_description);
_ok.setText("OK");
_ok.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
_okActionPerformed(evt);
}
});
_cancel.setText("Отмена");
_cancel.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
_cancelActionPerformed(evt);
}
});
_passportLabel.setText("Паспорт:");
_passport.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyReleased(java.awt.event.KeyEvent evt) {
_passportKeyReleased(evt);
}
});
_loginLabel.setText("Логин:");
_passwordLabel.setText("Пароль:");
_role.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Руководитель", "Научный сотрудник", "Тестировщик", "Сотрудник службы безопасности", "Сотрудник технической поддержки" }));
_birthDate.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.DateFormatter()));
_photography.setToolTipText("фотография");
_photography.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
_photographyMouseClicked(evt);
}
});
javax.swing.GroupLayout _photographyLayout = new javax.swing.GroupLayout(_photography);
_photography.setLayout(_photographyLayout);
_photographyLayout.setHorizontalGroup(
_photographyLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 236, Short.MAX_VALUE)
);
_photographyLayout.setVerticalGroup(
_photographyLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 455, Short.MAX_VALUE)
);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(_passportLabel)
.addComponent(_surnameLabel)
.addComponent(_nameLabel)
.addComponent(_patronymicLabel)
.addComponent(_birthDateLabel)
.addComponent(_roleLabel)
.addComponent(_loginLabel)
.addComponent(_passwordLabel)
.addComponent(_descriptionLabel))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(layout.createSequentialGroup()
.addComponent(_ok, javax.swing.GroupLayout.PREFERRED_SIZE, 75, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(_cancel))
.addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
.addGap(45, 45, 45)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(_password, javax.swing.GroupLayout.DEFAULT_SIZE, 274, Short.MAX_VALUE)
.addComponent(_login, javax.swing.GroupLayout.DEFAULT_SIZE, 274, Short.MAX_VALUE)
.addComponent(_descriptionScroll, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 274, Short.MAX_VALUE)))
.addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
.addGap(45, 45, 45)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(_passport, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 274, Short.MAX_VALUE)
.addComponent(_birthDate, javax.swing.GroupLayout.DEFAULT_SIZE, 274, Short.MAX_VALUE)
.addComponent(_surname, javax.swing.GroupLayout.DEFAULT_SIZE, 274, Short.MAX_VALUE)
.addComponent(_name, javax.swing.GroupLayout.DEFAULT_SIZE, 274, Short.MAX_VALUE)
.addComponent(_patronymic, javax.swing.GroupLayout.DEFAULT_SIZE, 274, Short.MAX_VALUE)
.addComponent(_role, javax.swing.GroupLayout.Alignment.TRAILING, 0, 274, Short.MAX_VALUE))))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(_photography, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(_photography, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(_passportLabel)
.addComponent(_passport, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(9, 9, 9)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(_surname, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(_surnameLabel))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(_name, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(_nameLabel))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(_patronymic, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(_patronymicLabel))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(_birthDate, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(_birthDateLabel))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(_roleLabel)
.addComponent(_role, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(_loginLabel)
.addComponent(_login, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(_password, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(_passwordLabel))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(_descriptionScroll, javax.swing.GroupLayout.PREFERRED_SIZE, 215, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(_cancel)
.addComponent(_ok)))
.addComponent(_descriptionLabel))))
.addContainerGap())
);
pack();
}// </editor-fold>//GEN-END:initComponents
private void _passportKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event__passportKeyReleased
try {
if( _createEmployeeMode ) {
_currentEmployee = DbLayerInstance.getEmployeeInfoByPassport( _passport.getText() );
refreshInformation();
}
} catch( Throwable excpt ) {
JOptionPane.showMessageDialog( this, excpt.getMessage() );
}
}//GEN-LAST:event__passportKeyReleased
private void _okActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event__okActionPerformed
try {
if( _createEmployeeMode )
_currentEmployee = new DbEmployee();
_currentEmployee.Login = _login.getText();
_currentEmployee.Password = _password.getText();
_currentEmployee.Passport = _passport.getText();
_currentEmployee.Name = _name.getText();
_currentEmployee.Surname = _surname.getText();
_currentEmployee.Patronymic = _patronymic.getText();
_currentEmployee.BirthDate = new Timestamp( ( ( Date ) _birthDate.getValue() ).getTime() );
_currentEmployee.Description = _description.getText();
_currentEmployee.Role = EnterpriseRole.fromValue( _role.getSelectedIndex() );
_currentEmployee.Photography = _photography.getBackgroundImage();
if( _login.getText().equals( "" ) ) {
JOptionPane.showMessageDialog( this, "Напиши в логине хоть чего-нибудь!" );
_login.requestFocus();
return;
}
if( _password.getText().equals( "" ) ) {
JOptionPane.showMessageDialog( this, "Напиши в пароле хоть чего-нибудь!" );
_password.requestFocus();
return;
}
if( _passport.getText().equals( "" ) ) {
JOptionPane.showMessageDialog( this, "Напиши в паспорте хоть чего-нибудь!" );
_passport.requestFocus();
return;
}
if( _name.getText().equals( "" ) ) {
JOptionPane.showMessageDialog( this, "Напиши в имени хоть чего-нибудь!" );
_name.requestFocus();
return;
}
if( _surname.getText().equals( "" ) ) {
JOptionPane.showMessageDialog( this, "Напиши в фамилии хоть чего-нибудь!" );
_surname.requestFocus();
return;
}
if( _patronymic.getText().equals( "" ) ) {
JOptionPane.showMessageDialog( this, "Напиши в отчестве хоть чего-нибудь!" );
_patronymic.requestFocus();
return;
}
if( _description.getText().equals( "" ) ) {
JOptionPane.showMessageDialog( this, "Напиши в характеристике хоть чего-нибудь!" );
_patronymic.requestFocus();
return;
}
if( _createEmployeeMode )
DbLayerInstance.addEmployee( _currentEmployee );
else
DbLayerInstance.updateEmployeeInfo( _currentEmployee );
dispose();
} catch( Throwable excpt ) {
JOptionPane.showMessageDialog( this, excpt.getMessage() );
}
}//GEN-LAST:event__okActionPerformed
private void _cancelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event__cancelActionPerformed
dispose();
}//GEN-LAST:event__cancelActionPerformed
private void _findPhotoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event__findPhotoActionPerformed
try {
JFileChooser openFileDialog = new JFileChooser();
if( openFileDialog.showOpenDialog( this ) == JFileChooser.APPROVE_OPTION ) {
FileInputStream selectedFileReader = null;
byte[] imageData = new byte[( int ) openFileDialog.getSelectedFile().length()];
try {
selectedFileReader = new FileInputStream( openFileDialog.getSelectedFile() );
selectedFileReader.read( imageData );
_photography.setBackgroundImage( imageData );
} finally {
if( selectedFileReader != null )
selectedFileReader.close();
}
}
} catch( Throwable excpt ) {
JOptionPane.showMessageDialog( this, excpt.getMessage() );
}
}//GEN-LAST:event__findPhotoActionPerformed
private void _photographyMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event__photographyMouseClicked
try {
if( SwingUtilities.isRightMouseButton( evt ) ) {
_changePhotoMenu.show( _photography, evt.getX(), evt.getY() );
}
} catch( Throwable excpt ) {
JOptionPane.showMessageDialog( this, excpt.getMessage() );
}
}//GEN-LAST:event__photographyMouseClicked
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JFormattedTextField _birthDate;
private javax.swing.JLabel _birthDateLabel;
private javax.swing.JButton _cancel;
private javax.swing.JPopupMenu _changePhotoMenu;
private javax.swing.JTextArea _description;
private javax.swing.JLabel _descriptionLabel;
private javax.swing.JScrollPane _descriptionScroll;
private javax.swing.JMenuItem _findPhoto;
private javax.swing.JTextField _login;
private javax.swing.JLabel _loginLabel;
private javax.swing.JTextField _name;
private javax.swing.JLabel _nameLabel;
private javax.swing.JButton _ok;
private javax.swing.JTextField _passport;
private javax.swing.JLabel _passportLabel;
private javax.swing.JTextField _password;
private javax.swing.JLabel _passwordLabel;
private javax.swing.JTextField _patronymic;
private javax.swing.JLabel _patronymicLabel;
private ImagePanel _photography;
private javax.swing.JComboBox _role;
private javax.swing.JLabel _roleLabel;
private javax.swing.JTextField _surname;
private javax.swing.JLabel _surnameLabel;
// End of variables declaration//GEN-END:variables
}
Соседние файлы в папке src