-
Notifications
You must be signed in to change notification settings - Fork 0
/
Editor.java
129 lines (111 loc) · 4.11 KB
/
Editor.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
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import java.awt.*;
import javax.swing.*;
@SuppressWarnings("serial")
public class Editor extends JPanel implements ActionListener {
File file;
JButton save = new JButton("Save");
JButton savec = new JButton("Save and Close");
JButton back = new JButton("Back");
JButton exit = new JButton("Exit");
JTextArea text = new JTextArea(50,60);
JScrollPane scrollPane = new JScrollPane(text);
String[] fontSizes = {"12","14", "16","18","20","22","24","26", "28", "30"};
JComboBox<String> fontSizeDropdown = new JComboBox<>(fontSizes);
public Editor(String s) throws IOException {
file = new File(s);
save.addActionListener(this);
savec.addActionListener(this);
back.addActionListener(this);
exit.addActionListener(this);
fontSizeDropdown.addActionListener(this);
if(file.exists()) {
try {
BufferedReader input = new BufferedReader(new FileReader(file));
String line= input.readLine();
while(line != null) {
text.append(line+"\n");
line=input.readLine();
}
input.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
JPanel panel = new JPanel(new GridLayout(1,5));
panel.add(fontSizeDropdown);
panel.add(save);
panel.add(savec);
panel.add(back);
panel.add(exit);
setLayout(new BorderLayout());
add(panel, BorderLayout.NORTH);
add(scrollPane, BorderLayout.CENTER);
System.out.println("Editor is Executed Successfully");
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource() == fontSizeDropdown) {
int size = Integer.parseInt((String) fontSizeDropdown.getSelectedItem());
text.setFont(new Font(text.getFont().getName(), text.getFont().getStyle(), size));
System.out.println("Font size changed to: " + size);
}
try {
if(e.getSource() == savec || e.getSource() == save) {
FileWriter out = new FileWriter(file);
out.write(text.getText());
out.close();
if(e.getSource() == savec) {
FileBrowser FBrowser = (FileBrowser) getParent();
FBrowser.cl.show(FBrowser, "fileList");
System.out.println("Editor filewriter and save and close is Executed Successfully");
}
System.out.println("Editor Save is Executed Successfully");
}
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
if(e.getSource() == back) {
FileBrowser FBrowser = (FileBrowser) getParent();
FBrowser.cl.show(FBrowser, "fileList");
System.out.println("Back is Executed Succesfully");
}
if(e.getSource() == exit) {
int option = JOptionPane.showConfirmDialog(this, "Do you want to save changes before exiting?", "Exit", JOptionPane.YES_NO_CANCEL_OPTION);
if (option == JOptionPane.YES_OPTION) {
try {
FileWriter out = new FileWriter(file);
out.write(text.getText());
out.close();
FileBrowser FBrowser = (FileBrowser) getParent();
FBrowser.cl.show(FBrowser, "fileList");
System.out.println("YES OPTION WORKING");
} catch (IOException e1) {
e1.printStackTrace();
}
} else if (option == JOptionPane.NO_OPTION) {
FileBrowser FBrowser = (FileBrowser) getParent();
FBrowser.cl.show(FBrowser, "fileList");
System.out.println("NO OPTION WORKING");
} else if(option == JOptionPane.CANCEL_OPTION) {
System.out.println("CANCEL WORKING");
}
System.out.println("Exit is Executed Successfully ");
}
}
}