package org.lodder.subtools.multisubdownloader.util; import javax.swing.*; import org.lodder.subtools.multisubdownloader.lib.xml.XMLExclude; import org.lodder.subtools.multisubdownloader.settings.SettingsControl; import org.lodder.subtools.sublibrary.xml.XMLMappingTvdbScene; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.File; /** * Created by IntelliJ IDEA. User: lodder Date: 4/20/11 Time: 7:53 AM To change this template use * File | Settings | File Templates. */ public class Import { private final SettingsControl settingsControl; private final JFrame frame; private static final Logger LOGGER = LoggerFactory.getLogger(Import.class); public enum ImportListType { EXCLUDE, TRANSLATE, PREFERENCES } public Import(JFrame frame, SettingsControl settingsControl) { this.frame = frame; this.settingsControl = settingsControl; } public void exclude(File file) { doImport(ImportListType.EXCLUDE, file); } public void translate(File file) { doImport(ImportListType.TRANSLATE, file); } public void preferences(File file) { doImport(ImportListType.PREFERENCES, file); } public void doImport(ImportListType listType, File file) { try { if (listType == ImportListType.PREFERENCES) { settingsControl.importPreferences(file); } else if (listType == ImportListType.TRANSLATE && settingsControl.getSettings().getMappingSettings().getMappingList().size() == 0) { settingsControl.getSettings().getMappingSettings() .setMappingList(XMLMappingTvdbScene.read(file)); } else if (listType == ImportListType.EXCLUDE && settingsControl.getSettings().getExcludeList().size() == 0) { settingsControl.getSettings().setExcludeList(XMLExclude.read(file)); } else { final int response = JOptionPane.showConfirmDialog(frame, "Do you want to add the imported list to the existing list?", "Confirm", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); if (response == JOptionPane.YES_OPTION) { if (listType == ImportListType.EXCLUDE) { settingsControl.getSettings().getExcludeList().addAll(XMLExclude.read(file)); } else if (listType == ImportListType.TRANSLATE) { settingsControl.getSettings().getMappingSettings().getMappingList() .addAll(XMLMappingTvdbScene.read(file)); } } } } catch (final Throwable e) { LOGGER.error("doImport", e); } } }