/
WindowFrame.java
156 lines (130 loc) · 4.58 KB
/
WindowFrame.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
public class WindowFrame extends JFrame{
TitleBar title;
ButtonPanel btnPanel;
Pomodoro pomodoro;
List list= new List();
JButton addTask, done, clear, settingButton;
JPanel todoPanel= new JPanel();
WindowFrame(){
this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
this.setTitle("FlowTime App");
this.setPreferredSize(new Dimension(800,650));
// this.setUndecorated(true);
this.setBackground(new Color(54,57,63));
ImageIcon image = new ImageIcon("time.png");
this.setIconImage(image.getImage());
pomodoro=new Pomodoro();
title=new TitleBar();
btnPanel=new ButtonPanel();
todoPanel.setLayout(new BorderLayout());
todoPanel.setSize(750, 400);
todoPanel.setBackground(new Color(54,57,63));
list.setBackground(new Color(54,57,63));
title.setBackground(new Color(115,135,180));
btnPanel.setBackground(new Color(54,57,63));
addTask=btnPanel.getAddTask();
clear= btnPanel.getClear();
settingButton=title.getSettingButton();
addListeners();
JScrollPane scrollTasks=new JScrollPane(list,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
scrollTasks.setBackground(new Color(54,57,63));
scrollTasks.setBorder(BorderFactory.createEmptyBorder());
this.add(title,BorderLayout.NORTH);
todoPanel.add(scrollTasks,BorderLayout.CENTER);
todoPanel.add(btnPanel,BorderLayout.SOUTH);
this.add(todoPanel,BorderLayout.WEST);
this.add(pomodoro,BorderLayout.CENTER);
this.setMinimumSize(new Dimension(800,650));
this.pack();
this.setVisible(true);
}
public void addListeners(){
addWindowListener(new WindowAdapter()
{
//I am overriding the opening window's function to add the tasks from the DB to the task list
public void windowOpened(WindowEvent e)
{
try{
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/TempoBoy","root","");
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery("select * from tasklist");
while(rs.next()){
Task task=new Task(rs.getString(1), rs.getString(2));
list.add(task);
list.updateNumbers();
task.getDone().addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
task.changeState();
}
});
}
rs.close();
stmt.close();
con.close();
revalidate();
}catch(SQLException ex){
System.out.println("Error:"+ex);
}
}
//I am overriding the close button's function to save the data in the DB
public void windowClosing(WindowEvent e)
{
try{
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/TempoBoy","root","");
Statement stmt=con.createStatement();
Component[] listItems= list.getComponents();
stmt.executeUpdate("delete from tasklist");
for(int i=0;i<(listItems.length);i++){
if(listItems[i] instanceof Task){
stmt.executeUpdate("insert into tasklist values('"+((Task)listItems[i]).getTaskName()+"','"+((Task)listItems[i]).getIntStatus()+"')");
// System.out.println(((Task)listItems[i]).getTaskName()+"\t"+((Task)listItems[i]).getIntStatus());
}
}
stmt.close();
con.close();
}catch(SQLException ex){
System.out.println("Error:"+ex);
}
e.getWindow().dispose();
}
});
addTask.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
Task task= new Task();
list.add(task);
list.updateNumbers();
task.getDone().addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
task.changeState();
}
});
revalidate();
}
});
settingButton.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e) {
NewWindow newwindow = new NewWindow();
try{
pomodoro.timeoutTime=newwindow.a;
}catch(Exception ex){
pomodoro.timeoutTime=25;
}
}
});
clear.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent a){
list.removeTask();
list.updateNumbers();
repaint();
}
});
revalidate();
}
public static void main(String[] args) {
new WindowFrame();
}
}