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