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);
|
}
|
}
|
|
}
|