Normand Briere
2019-04-22 a9e12f6c508810604c8c91ee15451776b08ce1a1
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
package timeflow.app.actions;
 
import timeflow.model.*;
import timeflow.app.ui.*;
import timeflow.app.*;
import timeflow.data.db.*;
 
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
 
public class DeleteSelectedAction extends TimeflowAction
{
 
        public DeleteSelectedAction(TimeflowApp app)
        {
                super(app, "Delete Selected Items...", null, "Delete the currently visible events");
        }
 
        @Override
        public void actionPerformed(ActionEvent e)
        {
 
                HashSet<Act> keepers = new HashSet<Act>(); // switching between sets and lists
                keepers.addAll(getModel().getDB().all()); // for efficiency. maybe silly?
                ActList selected = getModel().getActs();
                for (Act a : selected)
                {
                        keepers.remove(a);
                }
                ActList keepList = new ActList(getModel().getDB());
                keepList.addAll(keepers);
 
                MassDeletePanel panel = new MassDeletePanel(getModel(), keepList,
                        "Delete all selected items.");
                Object[] options =
                {
                        "Cancel", "Proceed"
                };
                int n = JOptionPane.showOptionDialog(app,
                        panel,
                        "Delete Selected",
                        JOptionPane.YES_NO_CANCEL_OPTION,
                        JOptionPane.PLAIN_MESSAGE,
                        null,
                        options,
                        "Proceed");
                panel.detachFromModel();
                if (n == 1)
                {
                        panel.applyAction();
                        app.clearFilters();
                        getModel().noteSchemaChange(this);
                }
        }
}