package edu.harvard.wcfia.yoshikoder; import java.awt.FileDialog; import java.awt.event.ActionEvent; import java.io.File; import edu.harvard.wcfia.yoshikoder.concordance.Concordance; import edu.harvard.wcfia.yoshikoder.util.DialogUtil; import edu.harvard.wcfia.yoshikoder.util.ExportUtil; import edu.harvard.wcfia.yoshikoder.util.FileUtil; import edu.harvard.wcfia.yoshikoder.util.TaskWorker; public class SaveConcordanceAction extends YoshikoderAction { protected FileDialog concordanceSaver; public SaveConcordanceAction(Yoshikoder yk) { super(yk, SaveConcordanceAction.class.getName()); } public void actionPerformed(ActionEvent e) { final Concordance concordance = yoshikoder.getConcordance(); if ((concordance==null) || (concordance.size()==0)) return; if (concordanceSaver==null) concordanceSaver = DialogUtil.makeFileDialog(yoshikoder, "Save Concordance", FileDialog.SAVE, null); concordanceSaver.setFile(null); concordanceSaver.show(); String fname = concordanceSaver.getFile(); if (fname == null) return; final File file = new File(concordanceSaver.getDirectory(), FileUtil.suffix(fname, "ykc")); tworker = new TaskWorker(yoshikoder){ protected void doWork() throws Exception { ExportUtil.exportAsXML(concordance, file); } protected void onError() { DialogUtil.yelp(yoshikoder, "Could not save concordance", e); } }; tworker.start(); } }