/* ListSelectInvertAction.java created 2008-03-05
*
*/
package org.signalml.app.action.util;
import static org.signalml.app.util.i18n.SvarogI18n._;
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.JList;
/** ListSelectInvertAction
*
*
* @author Michal Dobaczewski © 2007-2008 CC Otwarte Systemy Komputerowe Sp. z o.o.
*/
public class ListSelectInvertAction extends AbstractAction {
private static final long serialVersionUID = 1L;
private JList list;
public ListSelectInvertAction(JList list) {
super(_("Invert"));
this.list = list;
}
@Override
public void actionPerformed(ActionEvent e) {
int count = list.getModel().getSize();
boolean[] selected = new boolean[count];
int i;
for (i=0; i<count; i++) {
selected[i] = ! list.isSelectedIndex(i);
}
list.clearSelection();
for (i=0; i<count; i++) {
if (selected[i]) {
list.addSelectionInterval(i, i);
}
}
}
}