Normand Briere
2018-07-07 09ddd38fd4a8a7100c834a5e976f4796fae53541
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
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);
       }
   }
 
}