-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathListMouseListener.java
More file actions
61 lines (50 loc) · 1.58 KB
/
Copy pathListMouseListener.java
File metadata and controls
61 lines (50 loc) · 1.58 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
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.DefaultListModel;
import javax.swing.JList;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
public class ListMouseListener extends MouseAdapter {
class PopupActionListener implements ActionListener {
public void actionPerformed(ActionEvent actionEvent) {
if (actionEvent.getActionCommand().equals("Löschen")) {
// löschen
DefaultListModel<Notiz> model = (DefaultListModel<Notiz>) list.getModel();
// - HD
NotizUtils.deleteFile(NotizUtils.idToFilename(model.getElementAt(list.getSelectedIndex()).getId()));
// - Speicher
int selectedIndex = list.getSelectedIndex();
if (selectedIndex != -1) {
model.remove(selectedIndex);
}
}
}
}
private JList<Notiz> list;
public ListMouseListener(JList<Notiz> list) {
this.list = list;
}
@Override
public void mousePressed(MouseEvent e) {
showPopup(e);
}
@Override
public void mouseReleased(MouseEvent e) {
showPopup(e);
}
private void showPopup(MouseEvent e) {
if (!e.isPopupTrigger())
return;
int clicked = list.locationToIndex(e.getPoint());
if (clicked != -1 && list.getCellBounds(clicked, clicked).contains(e.getPoint())) {
list.setSelectedIndex(clicked);
JPopupMenu menu = new JPopupMenu();
JMenuItem loeschenMenuItem = new JMenuItem("Löschen");
loeschenMenuItem.addActionListener(new PopupActionListener());
menu.add(loeschenMenuItem);
menu.show(list, e.getX(), e.getY());
}
}
}