package org.rr.jeborker.gui; import javax.swing.JCheckBox; import javax.swing.JFrame; import javax.swing.JTextField; import org.rr.commons.swing.components.JRCheckBox; import org.rr.commons.swing.dialogs.JPreferenceDialog; import org.rr.jeborker.app.preferences.APreferenceStore; import org.rr.jeborker.app.preferences.PreferenceStoreFactory; class PreferenceView extends JPreferenceDialog { static final String AUTO_SCOLL_ITEM_PREFERENCE_NAME = "autoScollItem"; static final String AUTO_SAVE_METADATA_ITEM_PREFERENCE_NAME = "autoSaveMetadataItem"; static final String DELETE_AFTER_IMPORT_PREFERENCE_NAME = "deleteEbookAfterImport"; static final String BASIC_FILE_TYPE_SUPPORT_NAME = "baseFileSupport"; private boolean isInitialized = false; private PreferenceController preferenceController; public PreferenceView(JFrame mainWindow, PreferenceController preferenceController) { super(mainWindow); this.preferenceController = preferenceController; setTitle(Bundle.getString("PreferenceView.title")); this.initialize(); } public void setVisible(boolean visible) { super.setVisible(visible); if(!visible) { preferenceController.close(); } } private void initialize() { if(!isInitialized) { isInitialized = true; final APreferenceStore preferenceStore = PreferenceStoreFactory.getPreferenceStore(PreferenceStoreFactory.DB_STORE); final String generalCategory = Bundle.getString("PreferenceView.tab.general"); { String label = Bundle.getString("PreferenceView.pref.autoscroll"); JCheckBox autoScrollCheckBox = new JRCheckBox(); autoScrollCheckBox.setSelected(preferenceStore.isTreeAutoScrollingEnabled()); PreferenceEntry autoScollItem = new PreferenceEntry(AUTO_SCOLL_ITEM_PREFERENCE_NAME, label, autoScrollCheckBox, generalCategory, new Runnable() { @Override public void run() { boolean isTreeAutoscrollEnabled = getBooleanValue(PreferenceView.AUTO_SCOLL_ITEM_PREFERENCE_NAME); preferenceStore.setTreeAutoScrollingEnabled(isTreeAutoscrollEnabled); } }); addPreferenceEntry(autoScollItem); } { String label = Bundle.getString("PreferenceView.pref.autoSaveMetadata"); JCheckBox autoSaveMetadataCheckBox = new JRCheckBox(); autoSaveMetadataCheckBox.setSelected(preferenceStore.getEntryAsBoolean(PreferenceStoreFactory.PREFERENCE_KEYS.MAIN_TABLE_AUTO_SAVE_METADATA_ENABLED)); PreferenceEntry autoSaveMetadataItem = new PreferenceEntry(AUTO_SAVE_METADATA_ITEM_PREFERENCE_NAME, label, autoSaveMetadataCheckBox, generalCategory, new Runnable() { @Override public void run() { boolean isAutoSaveMetadata = getBooleanValue(PreferenceView.AUTO_SAVE_METADATA_ITEM_PREFERENCE_NAME); preferenceStore.addEntryAsBoolean(PreferenceStoreFactory.PREFERENCE_KEYS.MAIN_TABLE_AUTO_SAVE_METADATA_ENABLED, isAutoSaveMetadata); } }); addPreferenceEntry(autoSaveMetadataItem); } { String label = Bundle.getString("PreferenceView.pref.deleteAfterImport"); JCheckBox deleteAfterImportCheckBox = new JRCheckBox(); deleteAfterImportCheckBox.setSelected(preferenceStore.getEntryAsBoolean(PreferenceStoreFactory.PREFERENCE_KEYS.DELETE_EBOOK_AFTER_IMPORT)); PreferenceEntry deleteEbookAfterImportItem = new PreferenceEntry(DELETE_AFTER_IMPORT_PREFERENCE_NAME, label, deleteAfterImportCheckBox, generalCategory, new Runnable() { @Override public void run() { boolean isEbookDeleteAfterImport = getBooleanValue(PreferenceView.DELETE_AFTER_IMPORT_PREFERENCE_NAME); preferenceStore.addEntryAsBoolean(PreferenceStoreFactory.PREFERENCE_KEYS.DELETE_EBOOK_AFTER_IMPORT, isEbookDeleteAfterImport); } }); addPreferenceEntry(deleteEbookAfterImportItem); } { String label = Bundle.getString("PreferenceView.pref.basicFileSupport"); JTextField basicFileSupport = new JTextField(); basicFileSupport.setText(preferenceStore.getEntryAsString(PreferenceStoreFactory.PREFERENCE_KEYS.BASIC_FILE_TYPES)); PreferenceEntry basicFileSupportItem = new PreferenceEntry(BASIC_FILE_TYPE_SUPPORT_NAME, label, basicFileSupport, generalCategory, new Runnable() { @Override public void run() { String basicSupportedFileTypes = getStringValue(PreferenceView.BASIC_FILE_TYPE_SUPPORT_NAME); preferenceStore.addEntryAsString(PreferenceStoreFactory.PREFERENCE_KEYS.BASIC_FILE_TYPES, basicSupportedFileTypes); } }); addPreferenceEntry(basicFileSupportItem); } } } }