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