package net.sf.jabref.external;
import net.sf.jabref.*;
import net.sf.jabref.gui.FileListEntry;
import net.sf.jabref.gui.FileListEntryEditor;
import net.sf.jabref.gui.FileListTableModel;
import net.sf.jabref.undo.UndoableFieldChange;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/**
* Created by IntelliJ IDEA.
* User: alver
* Date: 5/24/12
* Time: 8:48 PM
* To change this template use File | Settings | File Templates.
*/
public class AttachFileAction extends BaseAction {
BibtexEntry entry = null;
private BasePanel panel;
public AttachFileAction(BasePanel panel) {
this.panel = panel;
}
public void action() {
if (panel.getSelectedEntries().length != 1)
return; // TODO: display error message?
entry = panel.getSelectedEntries()[0];
FileListEntry flEntry = new FileListEntry("", "", null);
FileListEntryEditor editor = new FileListEntryEditor(panel.frame(), flEntry, false, true,
panel.metaData());
editor.setVisible(true, true);
if (editor.okPressed()) {
FileListTableModel model = new FileListTableModel();
String oldVal = entry.getField(GUIGlobals.FILE_FIELD);
if (oldVal != null)
model.setContent(oldVal);
model.addEntry(model.getRowCount(), flEntry);
String newVal = model.getStringRepresentation();
UndoableFieldChange ce = new UndoableFieldChange(entry, GUIGlobals.FILE_FIELD,
oldVal, newVal);
entry.setField(GUIGlobals.FILE_FIELD, newVal);
panel.undoManager.addEdit(ce);
panel.markBaseChanged();
}
}
}