package gui;
import hibernateSwingApi.component.TablePanel;
import hibernateSwingApi.hibernate.HibernateManager;
import java.awt.Color;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPopupMenu;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.WindowConstants;
import javax.swing.border.LineBorder;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import pojos.Personel;
import service.AutoClosingMessageDialog;
import service.PSAUtil;
public class PSAPersonelEkrani extends JFrame {
private static final long serialVersionUID = 1L;
private static PSAPersonelEkrani instance;
private JPopupMenu pMenu;
private JMenuItem menuItem;
private JMenuItem menuItem2;
private JMenuItem menuItem3;
private JButton JButtonPersonelEkle;
private JButton JButtonPersonelGuncelle;
private JButton JButtonPersonelSil;
private TablePanel cTablePanelPersonel;
private JLabel cLabelPersonelListesi;
private Personel personel;
private JButton jButtonPersonelPrim;
public static PSAPersonelEkrani getInstance(int state) {
if (state == 0) {
instance = new PSAPersonelEkrani();
}
return instance;
}
public PSAPersonelEkrani() {
initialize();
}
private void initialize() {
setTitle("PSA MERKEZ PERSONEL EKRANI");
setBounds(0, 0, 1250, 485);
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
setIconImage(PSAUtil.getImageIconViaRelativePath("picture/psaIcon.png")
.getImage());
pMenu = new JPopupMenu();
menuItem = new JMenuItem("Sil");
pMenu.add(menuItem);
menuItem2 = new JMenuItem("Güncelle");
pMenu.add(menuItem2);
menuItem3 = new JMenuItem("PrimBilgisi");
pMenu.add(menuItem3);
GridBagLayout gridBagLayout = new GridBagLayout();
gridBagLayout.columnWidths = new int[] { 30, 918, 300, 15, 0 };
gridBagLayout.rowHeights = new int[] { 0, 50, 100, 100, 100, 100, 15, 0 };
gridBagLayout.columnWeights = new double[] { 0.0, 1.0, 1.0, 0.0,
Double.MIN_VALUE };
gridBagLayout.rowWeights = new double[] { 0.0, 0.0, 1.0, 1.0, 1.0, 1.0,
0.0, Double.MIN_VALUE };
getContentPane().setLayout(gridBagLayout);
cLabelPersonelListesi = new JLabel();
cLabelPersonelListesi.setText("PERSONEL LİSTESİ");
cLabelPersonelListesi.setFont(new Font("Tahoma", Font.BOLD, 16));
GridBagConstraints gbc_cLabelPersonelListesi = new GridBagConstraints();
gbc_cLabelPersonelListesi.fill = GridBagConstraints.BOTH;
gbc_cLabelPersonelListesi.insets = new Insets(0, 0, 5, 5);
gbc_cLabelPersonelListesi.gridx = 1;
gbc_cLabelPersonelListesi.gridy = 1;
getContentPane().add(cLabelPersonelListesi, gbc_cLabelPersonelListesi);
cTablePanelPersonel = new TablePanel(null, Personel.class, true, true);
cTablePanelPersonel.getTable().setAutoResizeMode(
JTable.AUTO_RESIZE_ALL_COLUMNS);
cTablePanelPersonel.setBorder(new LineBorder(new Color(0, 0, 0), 2));
GridBagConstraints gbc_cTablePanelPersonel = new GridBagConstraints();
gbc_cTablePanelPersonel.fill = GridBagConstraints.BOTH;
gbc_cTablePanelPersonel.insets = new Insets(0, 0, 5, 5);
gbc_cTablePanelPersonel.gridheight = 4;
gbc_cTablePanelPersonel.gridx = 1;
gbc_cTablePanelPersonel.gridy = 2;
getContentPane().add(cTablePanelPersonel, gbc_cTablePanelPersonel);
JButtonPersonelEkle = new JButton();
JButtonPersonelEkle.setIcon(PSAUtil
.getImageIconViaRelativePath("picture/kullaniciEkle.png"));
JButtonPersonelEkle.setText("PERSONEL EKLE");
JButtonPersonelEkle.setFont(new Font("Tahoma", Font.BOLD, 14));
GridBagConstraints gbc_JButtonPersonelEkle = new GridBagConstraints();
gbc_JButtonPersonelEkle.fill = GridBagConstraints.BOTH;
gbc_JButtonPersonelEkle.insets = new Insets(0, 0, 5, 5);
gbc_JButtonPersonelEkle.gridx = 2;
gbc_JButtonPersonelEkle.gridy = 2;
getContentPane().add(JButtonPersonelEkle, gbc_JButtonPersonelEkle);
JButtonPersonelGuncelle = new JButton();
JButtonPersonelGuncelle.setIcon(PSAUtil
.getImageIconViaRelativePath("picture/personelGuncelle.png"));
JButtonPersonelGuncelle.setText("PERSONEL BİLGİSİ GÜNCELLE");
JButtonPersonelGuncelle.setFont(new Font("Tahoma", Font.BOLD, 13));
JButtonPersonelGuncelle.setEnabled(false);
GridBagConstraints gbc_JButtonPersonelGuncelle = new GridBagConstraints();
gbc_JButtonPersonelGuncelle.fill = GridBagConstraints.BOTH;
gbc_JButtonPersonelGuncelle.insets = new Insets(0, 0, 5, 5);
gbc_JButtonPersonelGuncelle.gridx = 2;
gbc_JButtonPersonelGuncelle.gridy = 3;
getContentPane().add(JButtonPersonelGuncelle,
gbc_JButtonPersonelGuncelle);
JButtonPersonelSil = new JButton();
JButtonPersonelSil.setIcon(PSAUtil
.getImageIconViaRelativePath("picture/kullaniciKaldir.png"));
JButtonPersonelSil.setText("PERSONEL SİL");
JButtonPersonelSil.setFont(new Font("Tahoma", Font.BOLD, 14));
JButtonPersonelSil.setEnabled(false);
GridBagConstraints gbc_JButtonPersonelSil = new GridBagConstraints();
gbc_JButtonPersonelSil.fill = GridBagConstraints.BOTH;
gbc_JButtonPersonelSil.insets = new Insets(0, 0, 5, 5);
gbc_JButtonPersonelSil.gridx = 2;
gbc_JButtonPersonelSil.gridy = 4;
getContentPane().add(JButtonPersonelSil, gbc_JButtonPersonelSil);
jButtonPersonelPrim = new JButton();
jButtonPersonelPrim.setIcon(PSAUtil
.getImageIconViaRelativePath("picture/perIstatistik.png"));
jButtonPersonelPrim.setEnabled(false);
jButtonPersonelPrim.setText("PERSONEL PRİM BİLGİSİ");
jButtonPersonelPrim.setFont(new Font("Tahoma", Font.BOLD, 14));
GridBagConstraints gbc_jButtonPersonelPrim = new GridBagConstraints();
gbc_jButtonPersonelPrim.insets = new Insets(0, 0, 5, 5);
gbc_jButtonPersonelPrim.fill = GridBagConstraints.BOTH;
gbc_jButtonPersonelPrim.gridx = 2;
gbc_jButtonPersonelPrim.gridy = 5;
getContentPane().add(jButtonPersonelPrim, gbc_jButtonPersonelPrim);
initListeners();
refreshTable();
}
private void refreshTable() {
cTablePanelPersonel.refresh();
}
private void initListeners() {
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
anaEkranSetEnable();
}
});
cTablePanelPersonel.getTable().getSelectionModel()
.addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
if (e.getValueIsAdjusting())
return;
personel = (Personel) cTablePanelPersonel
.getSelectedObject();
if (personel == null) {
JButtonPersonelGuncelle.setEnabled(false);
JButtonPersonelSil.setEnabled(false);
jButtonPersonelPrim.setEnabled(false);
} else {
JButtonPersonelGuncelle.setEnabled(true);
JButtonPersonelSil.setEnabled(true);
jButtonPersonelPrim.setEnabled(true);
}
}
});
cTablePanelPersonel.getTable().addMouseListener(new MouseAdapter() {
@Override
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) {
personelTablePopupMenu(e);
}
}
@Override
public void mousePressed(MouseEvent e) {
if (e.isPopupTrigger()) {
personelTablePopupMenu(e);
}
}
@Override
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2) {
personelGuncelleClicked();
}
}
});
menuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
personelSilClicked();
}
});
menuItem2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
personelGuncelleClicked();
}
});
menuItem3.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
personelPrimBilgi();
}
});
JButtonPersonelEkle.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
personelEkleClicked();
}
});
JButtonPersonelGuncelle.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
personelGuncelleClicked();
}
});
JButtonPersonelSil.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
personelSilClicked();
}
});
jButtonPersonelPrim.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
personelPrimBilgi();
}
});
}
protected void personelEkleClicked() {
PSAPersonelEklemeEkrani.getInstance(0).setVisible(true);
setEnabled(false);
}
protected void personelPrimBilgi() {
PSAPersonelPrim.getInstance(personel).setVisible(true);
instance.setEnabled(false);
}
protected void anaEkranSetEnable() {
PSAAnaEkran.getInstance(null).setEnabled(true);
instance.dispose();
}
protected void personelTablePopupMenu(MouseEvent e) {
Point p = e.getPoint();
int rowNumber = cTablePanelPersonel.getTable().rowAtPoint(p);
ListSelectionModel model = cTablePanelPersonel.getTable()
.getSelectionModel();
model.setSelectionInterval(rowNumber, rowNumber);
pMenu.show(e.getComponent(), e.getX(), e.getY());
}
protected void personelGuncelleClicked() {
PSAPersonelGuncellemeEkrani.getInstance(personel).setVisible(true);
setEnabled(false);
}
protected void personelSilClicked() {
int selectedOption = JOptionPane.showOptionDialog(null,
"Personeli silmek istediğinizden emin misiniz?",
"SİSTEM UYARISI", JOptionPane.OK_CANCEL_OPTION,
JOptionPane.INFORMATION_MESSAGE, null, new String[] { "EVET",
"HAYIR" }, "default");
if (selectedOption == JOptionPane.OK_OPTION) {
boolean delete = HibernateManager.getInstance().delete(personel);
if (!delete) {
return;
}
cTablePanelPersonel.getTable().clearSelection();
AutoClosingMessageDialog.showAutoClosingMessageDialog(
"Personel sistemden başarı ile silinmiştir.", 2);
}
}
}