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 keepers = new HashSet(); // 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); } } }