package net.sf.jabref;
import net.sf.jabref.undo.NamedCompound;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/**
*
*/
public class MarkEntriesAction extends AbstractWorker implements ActionListener {
private JabRefFrame frame;
final int level;
private JMenuItem menuItem;
private int besLength = 0;
public MarkEntriesAction(JabRefFrame frame, int level) {
this.frame = frame;
this.level = level;
//menuItem = new JMenuItem(Globals.menuTitle("Mark entries").replaceAll("&",""));
menuItem = new JMenuItem(" ");
menuItem.setMnemonic(String.valueOf(level+1).charAt(0));
menuItem.setBackground(Globals.prefs.getColor("markedEntryBackground"+this.level));
menuItem.setOpaque(true);
menuItem.addActionListener(this);
}
public JMenuItem getMenuItem() {
return menuItem;
}
public void actionPerformed(ActionEvent actionEvent) {
try {
this.init();
getWorker().run();
getCallBack().update();
} catch (Throwable t) {
t.printStackTrace();
}
}
public void run() {
BasePanel panel = frame.basePanel();
NamedCompound ce = new NamedCompound(Globals.lang("Mark entries"));
BibtexEntry[] bes = panel.getSelectedEntries();
besLength = bes.length;
for (int i=0; i<bes.length; i++) {
Util.markEntry(bes[i], level+1, false, ce);
}
ce.end();
panel.undoManager.addEdit(ce);
}
@Override
public void update() {
frame.basePanel().markBaseChanged();
frame.output(Globals.lang("Marked selected")+" "+Globals.lang(besLength>0?"entry":"entries"));
}
}