package org.kalisen.classpathdoctor.gui.actions; import java.awt.event.ActionEvent; import java.awt.event.KeyEvent; import java.util.ResourceBundle; import javax.swing.AbstractAction; import javax.swing.JList; import javax.swing.KeyStroke; import org.kalisen.classpathdoctor.adapter.ClassPathAdapter; @SuppressWarnings("serial") public class RemoveAnEntryAction extends AbstractAction { private static final String REMOVE_AN_ENTRY_LABEL = ResourceBundle .getBundle("UsersMessages").getString( "remove.an.entry.action.label"); private ClassPathAdapter cpAdapter = null; private JList parent = null; public RemoveAnEntryAction(JList parent, ClassPathAdapter adapter) { super(REMOVE_AN_ENTRY_LABEL); putValue(ACCELERATOR_KEY, KeyStroke.getKeyStroke('r')); putValue(MNEMONIC_KEY, Integer.valueOf(KeyEvent.VK_R)); putValue(SHORT_DESCRIPTION, ResourceBundle.getBundle("UsersMessages") .getString("remove.an.entry.action.shortdesc")); setParent(parent); setClassPathAdapter(adapter); } protected ClassPathAdapter getClassPathAdapter() { return this.cpAdapter; } protected void setClassPathAdapter(ClassPathAdapter cpAdapter) { if (cpAdapter == null) { throw new IllegalArgumentException("null is not a valid argument"); } this.cpAdapter = cpAdapter; } protected JList getParent() { return this.parent; } protected void setParent(JList parent) { if (parent == null) { throw new IllegalArgumentException("null is not a valid argument"); } this.parent = parent; } public void actionPerformed(ActionEvent e) { final ClassPathAdapter adapter = this.cpAdapter; Object[] selectedEntries = getParent().getSelectedValues(); for (int i = 0; i < selectedEntries.length; i++) { adapter.removeEntry(selectedEntries[i].toString()); } //clear selection after element has been removed getParent().getSelectionModel().clearSelection(); } }