-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathJFileButtonContextMenu.java
More file actions
145 lines (80 loc) · 4.12 KB
/
JFileButtonContextMenu.java
File metadata and controls
145 lines (80 loc) · 4.12 KB
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
package components;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import javax.swing.JPopupMenu;
import gui.StaticMainPanel;
import utils.MessageUtil;
import utils.Preferences;
import javax.swing.ImageIcon;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
public class JFileButtonContextMenu extends JPopupMenu {
File associatedFile;
JMenu optionsMenu = new JMenu("Options");
JMenuItem deleteNoteItem = new JMenuItem("delete");
JMenuItem renameFileItem = new JMenuItem("rename");
private ImageIcon optionsIcon = utils.ImageIOUtil.getInstance().getIcon("/resources/images/settings2.png");
private ImageIcon deleteIcon = utils.ImageIOUtil.getInstance().getIcon("/resources/images/bin.png");
private ImageIcon renameIcon = utils.ImageIOUtil.getInstance().getIcon("/resources/images/rename.png");
public JFileButtonContextMenu(File file){
this.optionsMenu.setIcon(this.optionsIcon);
this.deleteNoteItem.setIcon(this.deleteIcon);
this.renameFileItem.setIcon(this.renameIcon);
// --------------- Dark MODE ----------------------------------------
this.setBackground(new Color(97, 102, 109));
this.optionsMenu.setBackground(new Color(97, 102, 109));
this.deleteNoteItem.setBackground(new Color(97, 102, 109));
this.renameFileItem.setBackground(new Color(97, 102, 109));
this.optionsMenu.setForeground(Color.WHITE);
this.deleteNoteItem.setForeground(Color.WHITE);
this.renameFileItem.setForeground(Color.WHITE);
// ------------------------------------------------------------------
this.optionsMenu.add(this.deleteNoteItem);
this.optionsMenu.add(this.renameFileItem);
this.add(this.optionsMenu);
this.associatedFile = file;
this.deleteNoteItem.addActionListener(new DeleteNoteCall());
this.renameFileItem.addActionListener(new noteRenameCall());
}
// -------------------- Listener private class ---------------------------------------
private class DeleteNoteCall implements ActionListener{
private final int YES = 0;
private final int NO = 1;
public DeleteNoteCall() {}
public void actionPerformed(ActionEvent e) {
//int answer = JOptionPane.showConfirmDialog(null, "Are you sure?, this action cannot be undone",
// "Delete the note?", JOptionPane.YES_NO_OPTION);
int answer = utils.MessageUtil.showConfirmMessage("Are you sure", "This action cannot be undone");
if (answer == YES) {
utils.FileIOUtil.deleteFile(associatedFile.getAbsolutePath());
utils.MessageUtil.showMessage("SUCCEEDED", "Note deleted", MessageUtil.ROUNDED_TICK);
StaticMainPanel.getInstance().refreshNotes();
}
}
}
// ------------------------------------------------------------------------------------
// -------------------- Listener private class ---------------------------------------
private class noteRenameCall implements ActionListener{
public noteRenameCall() {}
public void actionPerformed(ActionEvent e) {
String nameToRename = JOptionPane.showInputDialog("Enter the desired name");
if (nameToRename != null) {
if(utils.OSUtil.isUnix()) {
utils.FileIOUtil.renameFile(associatedFile.getAbsolutePath(),
Preferences.NOTES_DIR_PATH + "/" + nameToRename);
utils.MessageUtil.showMessage("SUCCEEDED", "Note renamed", MessageUtil.ROUNDED_TICK);
StaticMainPanel.getInstance().refreshNotes();
}else if(utils.OSUtil.isWindows()) {
utils.FileIOUtil.renameFile(associatedFile.getAbsolutePath(),
Preferences.NOTES_DIR_PATH + "\\" + nameToRename);
utils.MessageUtil.showMessage("SUCCEEDED", "Note renamed!", MessageUtil.ROUNDED_TICK);
StaticMainPanel.getInstance().refreshNotes();
}
}
}
}
// ------------------------------------------------------------------------------------
}