/*
* jMemorize - Learning made easy (and fun) - A Leitner flashcards tool
* Copyright(C) 2004-2006 Riad Djemili
*
* 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 1, 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., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
package jmemorize.gui.swing.actions.file;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.charset.Charset;
import javax.swing.filechooser.FileFilter;
import jmemorize.core.Lesson;
import jmemorize.core.Main;
import jmemorize.core.io.CsvBuilder;
import jmemorize.core.io.CsvBuilder.BadHeaderException;
import jmemorize.gui.Localization;
import jmemorize.gui.swing.frames.MainFrame;
import jmemorize.util.ExtensionFileFilter;
/**
* An action for importing Tab-Separated-Values (TSV).
*
* @author djemili
*/
public class ImportTSVAction extends AbstractImportAction
{
public ImportTSVAction()
{
setValues();
}
/* (non-Javadoc)
* @see jmemorize.gui.swing.actions.file.AbstractImportAction
*/
protected void doImport(File file, Lesson lesson) throws IOException
{
FileInputStream in = null;
try
{
in = new FileInputStream(file);
MainFrame frame = Main.getInstance().getFrame();
Charset charset = ImportCSVAction.showCharsetChooser(frame);
if (charset == null)
return;
CsvBuilder.importLesson(in, '\t', charset, lesson);
}
catch (BadHeaderException e)
{
if (in != null)
in.close();
throw new IOException(e.getMessage());
}
}
/* (non-Javadoc)
* @see jmemorize.gui.swing.actions.file.AbstractImportAction
*/
protected FileFilter getFileFilter()
{
return new ExtensionFileFilter("tsv", Localization.get("File.TSV"));
}
private void setValues()
{
setName(Localization.get("File.TSV")); //$NON-NLS-1$
setIcon("/resource/icons/file_saveas.gif"); //$NON-NLS-1$
setMnemonic(1);
}
}