/* Copyright (C) 2003-2011 JabRef contributors.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
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"));
}
}