package windowsform;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableModel;
import javax.swing.JLabel;
import java.awt.Color;
import java.awt.Font;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Vector;
import javax.swing.JInternalFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JButton;
import javax.swing.WindowConstants;
import core.business.KeyValue;
import core.datechooser.JDateChooser;
import connect.sqlite.ConnectData;
import javax.swing.JComboBox;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
public class AssignTaskForm extends JInternalFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
private JPanel contentPane;
private static JTextField txt_ID;
private static JTextField txt_taskID;
private static JTextField txt_emp;
private static JTable table;
//private static JTextField txt_Date;
private static core.datechooser.JDateChooser txt_Date;
private static JComboBox cb_task;
private static JComboBox cb_emp;
/**
* Launch the application.
*/
public static void showCombo(){
ConnectData ds=new ConnectData();
ds.connect();
String newSQL="SELECT taskID,taskName FROM Task";
String newSQL1="SELECT empID,empName FROM Employee";
try {
ResultSet rs =ds.ExcuteQuery(newSQL);
if (rs != null) while (rs.next()){
cb_task.addItem(new KeyValue(rs.getString("taskID"),rs.getString("taskName")));
}
rs.close();
ResultSet rs1 =ds.ExcuteQuery(newSQL1);
if (rs1 != null) while (rs1.next()){
//cb_roomStatusID.addItem((String)rs.getString("roomStatusName"));
cb_emp.addItem(new KeyValue(rs1.getString("empID"),rs1.getString("empName")));
}
rs1.close();
ds.dispose();
} catch(Exception ex){System.out.println("Error : " + ex);}
}
//
public static void showTable() {
Vector<String> rowHeader = new Vector<String> ();
rowHeader.add ("assignTaskID");
rowHeader.add ("taskID");
rowHeader.add ("empID");
rowHeader.add ("assignTaskDate");
rowHeader.add ("taskName");
rowHeader.add ("empName");
DefaultTableModel model = new DefaultTableModel(rowHeader,0);
table.setModel(model);
ConnectData ds=new ConnectData();
ds.connect();
String newSQL="SELECT at.assignTaskID, at.taskID, at.empID, at.assignTaskDate, t.taskName, e.empName FROM AssignTask at join Task t on at.taskID = t.taskID join Employee e on e.empID = at.empID";
try {
ResultSet rs =ds.ExcuteQuery(newSQL);
Vector<String> rowData;
if (rs != null) while (rs.next()){
rowData = new Vector<String>() ;
rowData.add (rs.getString("assignTaskID"));
rowData.add (rs.getString("taskID"));
rowData.add (rs.getString("empID"));
rowData.add (rs.getString("assignTaskDate"));
rowData.add (rs.getString("taskName"));
rowData.add (rs.getString("empName"));
model.addRow(rowData);
}
rs.close(); ds.dispose();
} catch(Exception ex){System.out.println("Error : "+ex);}
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
AssignTaskForm frame = new AssignTaskForm();
frame.setVisible(true);
showTable();
showCombo();
table.selectAll();
updateField();
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public AssignTaskForm() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 443);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JLabel lblAssignTaskManagement = new JLabel("Assign Task Management");
lblAssignTaskManagement.setFont(new Font("Tahoma", Font.BOLD, 16));
lblAssignTaskManagement.setBackground(Color.DARK_GRAY);
lblAssignTaskManagement.setBounds(127, 0, 234, 29);
contentPane.add(lblAssignTaskManagement);
JLabel lblNewLabel = new JLabel("ID");
lblNewLabel.setBounds(28, 43, 46, 14);
contentPane.add(lblNewLabel);
JLabel lblMamager = new JLabel("Task");
lblMamager.setBounds(28, 81, 74, 14);
contentPane.add(lblMamager);
JLabel lblAssign = new JLabel("Employeer");
lblAssign.setBounds(28, 117, 74, 14);
contentPane.add(lblAssign);
txt_ID = new JTextField();
txt_ID.setEditable(false);
txt_ID.setBounds(112, 40, 89, 20);
contentPane.add(txt_ID);
txt_ID.setColumns(10);
txt_ID.setVisible(false);
txt_taskID = new JTextField();
txt_taskID.setEditable(false);
txt_taskID.setText("");
txt_taskID.setBounds(112, 78, 89, 20);
contentPane.add(txt_taskID);
txt_taskID.setColumns(10);
txt_taskID.setVisible(false);
txt_emp = new JTextField();
txt_emp.setEditable(false);
txt_emp.setBounds(112, 114, 89, 20);
contentPane.add(txt_emp);
txt_emp.setVisible(false);
txt_emp.setColumns(10);
JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(23, 181, 409, 161);
contentPane.add(scrollPane);
table = new JTable();
scrollPane.setColumnHeaderView(table);
table.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent arg0) {
updateField();
}
});
table.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
updateField();
}
});
JButton btnNew = new JButton("New");
btnNew.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
txt_ID.setText("");
txt_taskID.setText("");
txt_emp.setText("");
//txt_Date.setText("");
txt_Date.setDate(null);
}
});
btnNew.setBounds(22, 364, 89, 23);
contentPane.add(btnNew);
JButton btnAdd = new JButton("Add");
btnAdd.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
addEmp();
showTable();
}
});
btnAdd.setBounds(127, 364, 89, 23);
contentPane.add(btnAdd);
JButton btnUpdate = new JButton("Update");
btnUpdate.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
update();
showTable();
}
});
btnUpdate.setBounds(239, 364, 89, 23);
contentPane.add(btnUpdate);
JButton btnDelete = new JButton("Delete");
btnDelete.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
delete();
showTable();
}
});
btnDelete.setBounds(343, 364, 89, 23);
contentPane.add(btnDelete);
cb_task = new JComboBox();
cb_task.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String statusID = ((KeyValue) cb_task.getSelectedItem()).getKey();
txt_taskID.setText(statusID.toString());
}
});
cb_task.setBounds(211, 78, 221, 20);
contentPane.add(cb_task);
cb_emp = new JComboBox();
cb_emp.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String statusID = ((KeyValue) cb_emp.getSelectedItem()).getKey();
txt_emp.setText(statusID.toString());
}
});
cb_emp.setBounds(211, 114, 221, 20);
contentPane.add(cb_emp);
JLabel lblDate = new JLabel("Date");
lblDate.setBounds(28, 156, 46, 14);
contentPane.add(lblDate);
//txt_Date = new JTextField();
txt_Date = new JDateChooser();
txt_Date.setBounds(112, 153, 109, 20);
contentPane.add(txt_Date);
//txt_Date.setColumns(10);
this.setClosable(true);
this.setMaximizable(true);
this.setVisible(true);
this.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
this.setResizable(true);
showTable();
showCombo();
table.selectAll();
updateField();
}
public boolean addEmp() {
// TODO Auto-generated method stub
ConnectData ds=new ConnectData();
ds.connect();
String task=txt_taskID.getText();
String emp = txt_emp.getText();
//String date = txt_Date.getText();
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date = dateFormat.format(txt_Date.getDate());
//String date = txt_Date.getDate().toString();
String sql_insert="insert into AssignTask values("+ null +",'"+task+ "','"+emp+"','"+date+"')";
if(ds.queryExcuteUpdate(sql_insert))
{
JOptionPane.showMessageDialog(null,"Successfull");
showTable();
}
else
JOptionPane.showMessageDialog(null,"fail");
try {
ds.dispose();
return true;
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
return false;
}
public boolean update() {
// TODO Auto-generated method stub
ConnectData ds=new ConnectData();
ds.connect();
int id= Integer.parseInt(txt_ID.getText());
String task=txt_taskID.getText();
String emp = txt_emp.getText();
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date = dateFormat.format(txt_Date.getDate());
//String date = txt_Date.getDate().toString();
String sql_insert="Update AssignTask Set assignTaskID="+id+",taskID='"+task+"',empID='"+emp+"',assignTaskDate='"+date+ "' where assignTaskID='" + id +"'" ;
if(ds.queryExcuteUpdate(sql_insert))
{
JOptionPane.showMessageDialog(null,"Successfull");
showTable();
}
else
JOptionPane.showMessageDialog(null,"fail");
try {
ds.dispose();
return true;
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
return false;
}
public ResultSet find(int ID) {
// TODO Auto-generated method stub
return null;
}
public boolean delete() {
ConnectData ds=new ConnectData();
ds.connect();
String ID=txt_ID.getText();
String sql_insert="delete from AssignTask where assignTaskID='"+ID+"'";
if(ds.queryExcuteUpdate(sql_insert)){
JOptionPane.showMessageDialog(null,"delete Successfull");
showTable();}
else
JOptionPane.showMessageDialog(null,"delete fail");
try {
ds.dispose();
return true;
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
return false;
}
private static void updateField() {
int row = table.getSelectedRow();
txt_ID.setText((String) table.getValueAt(row, 0));
txt_taskID.setText((String) table.getValueAt(row, 1));
txt_emp.setText((String) table.getValueAt(row, 2));
//txt_Date.setText((String) table.getValueAt(row, 3));
String dStrCheckin = (String) table.getValueAt(row, 3);
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//MM/dd/yyyy HH:mm:ss
try {
Date dayCheckin = df.parse(dStrCheckin);
txt_Date.setDate(dayCheckin);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ConnectData ds=new ConnectData();
ds.connect();
String value = null;
String ID = (String) table.getValueAt(row,1);
String newSQL="SELECT taskName FROM Task where taskID='" + ID +"'";
String value1 = null;
String empID = (String) table.getValueAt(row,2);
String newSQL1="SELECT empName FROM Employee where empID='" + empID +"'";
try {
ResultSet rs1 =ds.ExcuteQuery(newSQL1);
if (rs1 != null) {
value1 = (String)rs1.getString("empName");
}
rs1.close();
//ds.dispose();
} catch(Exception ex){System.out.println("Error : " + ex);}
int b=0;
for (int i=0; i<cb_emp.getItemCount(); i++){
if(((KeyValue)cb_emp.getItemAt(i)).getValue().equals(value1))
{
b=i;
break;
}
}
cb_emp.setSelectedIndex(b);
try {
ResultSet rs =ds.ExcuteQuery(newSQL);
if (rs != null) {
value = (String)rs.getString("taskName");
}
rs.close(); ds.dispose();
} catch(Exception ex){System.out.println("Error : " + ex);}
int a=0;
for (int i=0; i<cb_task.getItemCount(); i++){
if(((KeyValue)cb_task.getItemAt(i)).getValue().equals(value))
{
a=i;
break;
}
}
cb_task.setSelectedIndex(a);
// cb_emp
}
}