/* ********************************************************************** **
** Copyright notice **
** **
** (c) 2005-2006 RSSOwl Development Team **
** http://www.rssowl.org/ **
** **
** All rights reserved **
** **
** This program and the accompanying materials are made available under **
** the terms of the Eclipse Public License v1.0 which accompanies this **
** distribution, and is available at: **
** http://www.rssowl.org/legal/epl-v10.html **
** **
** A copy is found in the file epl-v10.html and important notices to the **
** license from the team is found in the textfile LICENSE.txt distributed **
** in this package. **
** **
** This copyright notice MUST APPEAR in all copies of the file! **
** **
** Contributors: **
** RSSOwl Development Team - initial API and implementation **
** **
** ********************************************************************** */
package org.rssowl.contrib.podcast;
import org.eclipse.jface.preference.PreferencePage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.DirectoryDialog;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
import org.rssowl.contrib.i18n.Messages;
import org.rssowl.core.Owl;
import org.rssowl.core.persist.pref.IPreferenceScope;
import org.rssowl.core.persist.service.PersistenceException;
import org.rssowl.ui.internal.OwlUI;
import org.rssowl.ui.internal.util.LayoutUtils;
import java.io.File;
/**
* Preferences related to Podcasting. TODO In this implementation, notifications
* are not used. In jPodder, any preference change is updated through a
* notifier. Also values are bound through UI components.
*
* @author bpasero
*/
public class PodcastingPreferencePage extends PreferencePage implements
IWorkbenchPreferencePage {
/* Interval-Scopes in Seconds */
// private static final long DAY_IN_SECONDS = 24 * 60 * 60;
// private static final long HOUR_IN_SECONDS = 60 * 60;
// private static final long MINUTE_IN_SECONDS = 60;
//
// /* Interval-Indeces in Combo */
// private static final int MINUTES_SCOPE = 0;
// private static final int HOURS_SCOPE = 1;
// private static final int DAYS_SCOPE = 2;
//
private IPreferenceScope fGlobalScope;
// private FeedReloadService fReloadService;
// private Button fUpdateCheck;
// private Combo fUpdateScopeCombo;
// private Spinner fUpdateValueSpinner;
// private Button fOpenOnStartupCheck;
// private Button fDeleteNewsByCountCheck;
// private Spinner fDeleteNewsByCountValue;
// private Button fDeleteNewsByAgeCheck;
// private Spinner fDeleteNewsByAgeValue;
// private Button fDeleteReadNewsCheck;
// private Button fReloadOnStartupCheck;
// private Combo fFilterCombo;
// private Combo fGroupCombo;
// private Button fOpenSiteForNewsCheck;
// private Button fOpenSiteForEmptyNewsCheck;
// private Button fMarkReadStateCheck;
// private Spinner fMarkReadAfterSpinner;
// private Button fMarkReadOnMinimize;
// private Button fMarkReadOnChange;
// CB
// Podcasting preferences.
protected Text mDirectoryField;
protected Button mSoundEffectCheckBox;
protected Button mMarkMaxOnlyCheckBox;
protected Button mAutoPreviewCheckBox;
protected Shell mShell;
/** Leave for reflection */
public PodcastingPreferencePage() {
fGlobalScope = Owl.getPreferenceService().getGlobalScope();
// We don't need the reload service I think
// fReloadService = Controller.getDefault().getReloadService();
// mShell = Activator.getDefault().
}
/*
* @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
*/
public void init(IWorkbench workbench) {
}
/*
* @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
*/
@Override
protected Control createContents(Composite parent) {
Composite container = createComposite(parent);
/* General */
createGeneralGroup(container);
/* Reading */
// createReadingGroup(container);
//
// /* Display */
// createDisplayGroup(container);
//
// /* Clean-Up */
// createCleanUpGroup(container);
return container;
}
private void createGeneralGroup(Composite parent) {
Group group = new Group(parent, SWT.NONE);
FormData formData = new FormData();
formData.top = new FormAttachment(0, 5);
formData.left = new FormAttachment(0, 5);
formData.right = new FormAttachment(100, -5);
group.setLayoutData(formData);
group.setText("General");
group.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, false));
group.setLayout(LayoutUtils.createGridLayout(1));
/* Auto-Reload */
Composite autoReloadContainer = new Composite(group, SWT.NONE);
autoReloadContainer.setLayout(LayoutUtils.createGridLayout(3, 0, 0));
autoReloadContainer.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING,
true, true));
// Group lGroup = new Group(autoReloadContainer, SWT.SHADOW_IN);
// FormData formData = new FormData();
// formData.top = new FormAttachment(0, 5);
// formData.left = new FormAttachment(0, 5);
// formData.right = new FormAttachment(100, -5);
// lGroup.setLayoutData(formData);
//
// GridLayout gridLayout = new GridLayout();
// gridLayout.numColumns = 3;
// lGroup.setLayout(gridLayout);
// lGroup.setText(Messages.getString("downloadpanel.folder"));
Label folderLabel = new Label(autoReloadContainer, SWT.NONE);
GridData lFolderData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
lFolderData.widthHint = 300;
lFolderData.horizontalSpan = 3;
folderLabel.setLayoutData(lFolderData);
folderLabel.setText(Messages.getString("downloadpanel.folder.select"));
mDirectoryField = new Text(autoReloadContainer, SWT.SINGLE | SWT.BORDER);
lFolderData.widthHint = 300;
lFolderData.horizontalSpan = 2;
mDirectoryField.setLayoutData(lFolderData);
mDirectoryField.setText(fGlobalScope
.getString(DefaultPreferences.PODCAST_DIRECTORY));
Button folderButton = new Button(autoReloadContainer, SWT.PUSH);
folderButton.setText(Messages.getString("general.browse"));
folderButton.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event event) {
String lPath = mDirectoryField.getText();
Shell lShell = OwlUI.getPrimaryShell();
DirectoryDialog dialog = new DirectoryDialog(lShell, SWT.OPEN);
dialog.setFilterPath(lPath);
dialog.open();
String lFileName = dialog.getFilterPath();
if (!"".equals(lFileName) && !lFileName.equalsIgnoreCase(lPath)) {
File lFile = new File(lFileName);
if (lFile.isDirectory()) {
mDirectoryField.setText(lFile.getPath());
}
}
}
});
// ------------ SOUND EFFECT
// Group lVariousGroup = new Group(group, SWT.SHADOW_IN);
// FormData formData2 = new FormData();
// formData2.top = new FormAttachment(lGroup, 10);
// formData2.left = new FormAttachment(0, 5);
// formData2.right = new FormAttachment(100, -5);
// lVariousGroup.setLayoutData(formData2);
//
// GridLayout lVarGridLayout = new GridLayout();
// lVarGridLayout.numColumns = 1;
// lVariousGroup.setLayout(lVarGridLayout);
// lVariousGroup.setText(Messages.getString("downloadpanel.various"));
//
// mAutoPreviewCheckBox = new Button(lVariousGroup, SWT.CHECK);
// mAutoPreviewCheckBox
// .setText(Messages.getString("downloadpanel.autorefresh"));
// GridData gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
// gridData.grabExcessHorizontalSpace = true;
// mAutoPreviewCheckBox.setLayoutData(gridData);
//
// mSoundEffectCheckBox = new Button(lVariousGroup, SWT.CHECK);
// mSoundEffectCheckBox.setText(Messages.getString("downloadpanel.sound"));
//
// gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
// gridData.grabExcessHorizontalSpace = true;
// mSoundEffectCheckBox.setLayoutData(gridData);
//
// mMarkMaxOnlyCheckBox = new Button(lVariousGroup, SWT.CHECK);
// mMarkMaxOnlyCheckBox
// .setText(Messages.getString("downloadpanel.latest"));
// gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
// gridData.grabExcessHorizontalSpace = true;
// mMarkMaxOnlyCheckBox.setLayoutData(gridData);
// fUpdateCheck = new Button(autoReloadContainer, SWT.CHECK);
// fUpdateCheck.setText("Automatically update the feeds every ");
// fUpdateCheck.setSelection(fGlobalScope.getBoolean(DefaultPreferences.BM_UPDATE_INTERVAL_STATE));
// fUpdateCheck.addSelectionListener(new SelectionAdapter() {
// @Override
// public void widgetSelected(SelectionEvent e) {
// fUpdateValueSpinner.setEnabled(fUpdateCheck.getSelection());
// fUpdateScopeCombo.setEnabled(fUpdateCheck.getSelection());
// }
// });
//
// fUpdateValueSpinner = new Spinner(autoReloadContainer, SWT.BORDER);
// fUpdateValueSpinner.setMinimum(1);
// fUpdateValueSpinner.setMaximum(999);
// fUpdateValueSpinner.setEnabled(fUpdateCheck.getSelection());
//
// long updateInterval =
// fGlobalScope.getLong(DefaultPreferences.BM_UPDATE_INTERVAL);
// int updateScope = getUpdateIntervalScope();
//
// if (updateScope == MINUTES_SCOPE)
// fUpdateValueSpinner.setSelection((int) (updateInterval /
// MINUTE_IN_SECONDS));
// else if (updateScope == HOURS_SCOPE)
// fUpdateValueSpinner.setSelection((int) (updateInterval /
// HOUR_IN_SECONDS));
// else if (updateScope == DAYS_SCOPE)
// fUpdateValueSpinner.setSelection((int) (updateInterval /
// DAY_IN_SECONDS));
//
// fUpdateScopeCombo = new Combo(autoReloadContainer, SWT.READ_ONLY);
// fUpdateScopeCombo.add("Minutes");
// fUpdateScopeCombo.add("Hours");
// fUpdateScopeCombo.add("Days");
// fUpdateScopeCombo.select(updateScope);
// fUpdateScopeCombo.setEnabled(fUpdateCheck.getSelection());
//
// /* Reload Feeds on Startup */
// fReloadOnStartupCheck = new Button(group, SWT.CHECK);
// fReloadOnStartupCheck.setLayoutData(new GridData(SWT.FILL,
// SWT.BEGINNING, true, false));
// fReloadOnStartupCheck.setText("Automatically update the feeds on
// start-up");
// fReloadOnStartupCheck.setSelection(fGlobalScope.getBoolean(DefaultPreferences.BM_RELOAD_ON_STARTUP));
//
// /* Open on Startup */
// fOpenOnStartupCheck = new Button(group, SWT.CHECK);
// fOpenOnStartupCheck.setLayoutData(new GridData(SWT.FILL,
// SWT.BEGINNING, true, false));
// fOpenOnStartupCheck.setText("Display the feeds on start-up");
// fOpenOnStartupCheck.setSelection(fGlobalScope.getBoolean(DefaultPreferences.BM_OPEN_ON_STARTUP));
}
// private void createReadingGroup(Composite parent) {
// Group group = new Group(parent, SWT.NONE);
// group.setText("Reading");
// group.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, false));
// group.setLayout(LayoutUtils.createGridLayout(1));
//
// /* Mark read after millis */
// Composite markReadAfterContainer = new Composite(group, SWT.None);
// markReadAfterContainer.setLayout(LayoutUtils.createGridLayout(3, 0, 0));
//
// /* Mark Read after Millis */
// fMarkReadStateCheck = new Button(markReadAfterContainer, SWT.CHECK);
// fMarkReadStateCheck.setText("Mark news as read after ");
// fMarkReadStateCheck.setSelection(fGlobalScope.getBoolean(DefaultPreferences.MARK_READ_STATE));
// fMarkReadStateCheck.addSelectionListener(new SelectionAdapter() {
// @Override
// public void widgetSelected(SelectionEvent e) {
// fMarkReadAfterSpinner.setEnabled(fMarkReadStateCheck.getSelection());
// }
// });
//
// fMarkReadAfterSpinner = new Spinner(markReadAfterContainer, SWT.BORDER);
// fMarkReadAfterSpinner.setMinimum(0);
// fMarkReadAfterSpinner.setMaximum(100);
// fMarkReadAfterSpinner.setSelection(fGlobalScope.getInteger(DefaultPreferences.MARK_READ_IN_MILLIS)
// / 1000);
// fMarkReadAfterSpinner.setEnabled(fMarkReadStateCheck.getSelection());
//
// Label label = new Label(markReadAfterContainer, SWT.None);
// label.setText(" seconds");
//
// /* Mark Read on Minimize */
// fMarkReadOnMinimize = new Button(group, SWT.CHECK);
// fMarkReadOnMinimize.setText("Mark displayed news as read on minimize");
// fMarkReadOnMinimize.setSelection(fGlobalScope.getBoolean(DefaultPreferences.MARK_READ_ON_MINIMIZE));
//
// /* Mark Read on changing displayed Feed */
// fMarkReadOnChange = new Button(group, SWT.CHECK);
// fMarkReadOnChange.setText("Mark displayed news as read when feed
// changes");
// fMarkReadOnChange.setSelection(fGlobalScope.getBoolean(DefaultPreferences.MARK_FEED_READ_ON_CHANGE));
// }
//
// private void createDisplayGroup(Composite parent) {
// Group group = new Group(parent, SWT.NONE);
// group.setText("Display");
// group.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, false));
// group.setLayout(LayoutUtils.createGridLayout(2));
//
// /* Filter Settings */
// Label filterLabel = new Label(group, SWT.None);
// filterLabel.setText("Filter News: ");
//
// fFilterCombo = new Combo(group, SWT.BORDER | SWT.READ_ONLY);
// fFilterCombo.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, false,
// false));
// fFilterCombo.add("Use Default");
//
// NewsFilter.Type[] filters = NewsFilter.Type.values();
// for (NewsFilter.Type filter : filters)
// fFilterCombo.add(filter.getName());
//
// fFilterCombo.select(fGlobalScope.getInteger(DefaultPreferences.BM_NEWS_FILTERING)
// + 1);
// fFilterCombo.setVisibleItemCount(fFilterCombo.getItemCount());
//
// /* Group Settings */
// Label groupLabel = new Label(group, SWT.None);
// groupLabel.setText("Group News: ");
//
// fGroupCombo = new Combo(group, SWT.BORDER | SWT.READ_ONLY);
// fGroupCombo.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, false,
// false));
// fGroupCombo.add("Use Default");
//
// NewsGrouping.Type[] groups = NewsGrouping.Type.values();
// for (NewsGrouping.Type groupT : groups)
// fGroupCombo.add(groupT.getName());
//
// fGroupCombo.select(fGlobalScope.getInteger(DefaultPreferences.BM_NEWS_GROUPING)
// + 1);
// fGroupCombo.setVisibleItemCount(fGroupCombo.getItemCount());
//
// /* Open Site for News Settings */
// fOpenSiteForNewsCheck = new Button(group, SWT.CHECK);
// fOpenSiteForNewsCheck.setText("When a news is selected, open its link
// directly");
// fOpenSiteForNewsCheck.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING,
// false, false, 2, 1));
// fOpenSiteForNewsCheck.setSelection(fGlobalScope.getBoolean(DefaultPreferences.BM_OPEN_SITE_FOR_NEWS));
//
// /* Open Site for empty News Settings */
// fOpenSiteForEmptyNewsCheck = new Button(group, SWT.CHECK);
// fOpenSiteForEmptyNewsCheck.setText("When a news' summary is empty, open
// its link directly");
// fOpenSiteForEmptyNewsCheck.setLayoutData(new GridData(SWT.FILL,
// SWT.BEGINNING, false, false, 2, 1));
// fOpenSiteForEmptyNewsCheck.setSelection(fGlobalScope.getBoolean(DefaultPreferences.BM_OPEN_SITE_FOR_EMPTY_NEWS));
// }
//
// private void createCleanUpGroup(Composite parent) {
// Group group = new Group(parent, SWT.NONE);
// group.setText("Clean-Up");
// group.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, false));
// group.setLayout(LayoutUtils.createGridLayout(2));
//
// /* Explanation Label */
// Label explanationLabel = new Label(group, SWT.WRAP);
// explanationLabel.setLayoutData(new GridData(SWT.BEGINNING, SWT.BEGINNING,
// false, false, 2, 1));
// explanationLabel.setText("To recover disk space, old news can be
// permanently deleted.");
//
// /* Delete by Count */
// fDeleteNewsByCountCheck = new Button(group, SWT.CHECK);
// fDeleteNewsByCountCheck.setLayoutData(new GridData(SWT.BEGINNING,
// SWT.CENTER, false, false));
// fDeleteNewsByCountCheck.setSelection(fGlobalScope.getBoolean(DefaultPreferences.DEL_NEWS_BY_COUNT_STATE));
// fDeleteNewsByCountCheck.setText("Maximum number of news to keep: ");
// fDeleteNewsByCountCheck.addSelectionListener(new SelectionAdapter() {
// @Override
// public void widgetSelected(SelectionEvent e) {
// fDeleteNewsByCountValue.setEnabled(fDeleteNewsByCountCheck.getSelection());
// }
// });
//
// fDeleteNewsByCountValue = new Spinner(group, SWT.BORDER);
// fDeleteNewsByCountValue.setLayoutData(new GridData(SWT.BEGINNING,
// SWT.CENTER, false, false));
// fDeleteNewsByCountValue.setEnabled(fDeleteNewsByCountCheck.getSelection());
// fDeleteNewsByCountValue.setMinimum(0);
// fDeleteNewsByCountValue.setMaximum(1000);
// fDeleteNewsByCountValue.setSelection(fGlobalScope.getInteger(DefaultPreferences.DEL_NEWS_BY_COUNT_VALUE));
//
// /* Delete by Age */
// fDeleteNewsByAgeCheck = new Button(group, SWT.CHECK);
// fDeleteNewsByAgeCheck.setLayoutData(new GridData(SWT.BEGINNING,
// SWT.CENTER, false, false));
// fDeleteNewsByAgeCheck.setSelection(fGlobalScope.getBoolean(DefaultPreferences.DEL_NEWS_BY_AGE_STATE));
// fDeleteNewsByAgeCheck.setText("Maximum age of news in days: ");
// fDeleteNewsByAgeCheck.addSelectionListener(new SelectionAdapter() {
// @Override
// public void widgetSelected(SelectionEvent e) {
// fDeleteNewsByAgeValue.setEnabled(fDeleteNewsByAgeCheck.getSelection());
// }
// });
//
// fDeleteNewsByAgeValue = new Spinner(group, SWT.BORDER);
// fDeleteNewsByAgeValue.setLayoutData(new GridData(SWT.BEGINNING,
// SWT.CENTER, false, false));
// fDeleteNewsByAgeValue.setEnabled(fDeleteNewsByAgeCheck.getSelection());
// fDeleteNewsByAgeValue.setMinimum(0);
// fDeleteNewsByAgeValue.setMaximum(1000);
// fDeleteNewsByAgeValue.setSelection(fGlobalScope.getInteger(DefaultPreferences.DEL_NEWS_BY_AGE_VALUE));
//
// /* Delete by State */
// fDeleteReadNewsCheck = new Button(group, SWT.CHECK);
// fDeleteReadNewsCheck.setLayoutData(new GridData(SWT.BEGINNING,
// SWT.CENTER, false, false));
// fDeleteReadNewsCheck.setText("Always delete read news");
// fDeleteReadNewsCheck.setSelection(fGlobalScope.getBoolean(DefaultPreferences.DEL_READ_NEWS_STATE));
// }
//
private Composite createComposite(Composite parent) {
Composite composite = new Composite(parent, SWT.NULL);
GridLayout layout = new GridLayout();
layout.marginWidth = 0;
layout.marginHeight = 0;
composite.setLayout(layout);
composite.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_FILL
| GridData.HORIZONTAL_ALIGN_FILL));
composite.setFont(parent.getFont());
return composite;
}
/*
* @see org.eclipse.jface.preference.PreferencePage#performOk()
*/
@Override
public boolean performOk() {
/* Track Changes */
boolean autoUpdateChange = false;
boolean displayChange = false;
boolean runCleanUp = false;
fGlobalScope.putString(DefaultPreferences.PODCAST_DIRECTORY,
mDirectoryField.getText());
/* General */
long lVal;
// int updateScope = fUpdateScopeCombo.getSelectionIndex();
//
// if (updateScope == MINUTES_SCOPE)
// lVal = fUpdateValueSpinner.getSelection() * MINUTE_IN_SECONDS;
// else if (updateScope == HOURS_SCOPE)
// lVal = fUpdateValueSpinner.getSelection() * HOUR_IN_SECONDS;
// else
// lVal = fUpdateValueSpinner.getSelection() * DAY_IN_SECONDS;
//
// if (fGlobalScope
// .getBoolean(DefaultPreferences.BM_UPDATE_INTERVAL_STATE) !=
// fUpdateCheck
// .getSelection()) {
// autoUpdateChange = true;
// fGlobalScope.putBoolean(
// DefaultPreferences.BM_UPDATE_INTERVAL_STATE, fUpdateCheck
// .getSelection());
// }
//
// if (fGlobalScope.getLong(DefaultPreferences.BM_UPDATE_INTERVAL) !=
// lVal) {
// autoUpdateChange = true;
// fGlobalScope.putLong(DefaultPreferences.BM_UPDATE_INTERVAL, lVal);
// }
//
// fGlobalScope.putBoolean(DefaultPreferences.BM_OPEN_ON_STARTUP,
// fOpenOnStartupCheck.getSelection());
// fGlobalScope.putBoolean(DefaultPreferences.BM_RELOAD_ON_STARTUP,
// fReloadOnStartupCheck.getSelection());
//
// /* Reading */
// fGlobalScope.putBoolean(DefaultPreferences.MARK_READ_ON_MINIMIZE,
// fMarkReadOnMinimize.getSelection());
// fGlobalScope.putBoolean(DefaultPreferences.MARK_FEED_READ_ON_CHANGE,
// fMarkReadOnChange.getSelection());
// fGlobalScope.putBoolean(DefaultPreferences.MARK_READ_STATE,
// fMarkReadStateCheck.getSelection());
// fGlobalScope.putInteger(DefaultPreferences.MARK_READ_IN_MILLIS,
// fMarkReadAfterSpinner.getSelection() * 1000);
//
// /* Display */
// if (fGlobalScope.getInteger(DefaultPreferences.BM_NEWS_FILTERING) !=
// (fFilterCombo
// .getSelectionIndex() - 1)) {
// fGlobalScope.putInteger(DefaultPreferences.BM_NEWS_FILTERING,
// fFilterCombo.getSelectionIndex() - 1);
// displayChange = true;
// }
//
// if (fGlobalScope.getInteger(DefaultPreferences.BM_NEWS_GROUPING) !=
// (fGroupCombo
// .getSelectionIndex() - 1)) {
// fGlobalScope.putInteger(DefaultPreferences.BM_NEWS_GROUPING,
// fGroupCombo.getSelectionIndex() - 1);
// displayChange = true;
// }
//
// if (fGlobalScope.getBoolean(DefaultPreferences.BM_OPEN_SITE_FOR_NEWS)
// != (fOpenSiteForNewsCheck
// .getSelection())) {
// fGlobalScope.putBoolean(DefaultPreferences.BM_OPEN_SITE_FOR_NEWS,
// fOpenSiteForNewsCheck.getSelection());
// displayChange = true;
// }
//
// fGlobalScope.putBoolean(DefaultPreferences.BM_OPEN_SITE_FOR_EMPTY_NEWS,
// fOpenSiteForEmptyNewsCheck.getSelection());
//
// /* Clean-Up */
// if
// (fGlobalScope.getBoolean(DefaultPreferences.DEL_NEWS_BY_COUNT_STATE)
// != fDeleteNewsByCountCheck
// .getSelection()) {
// fGlobalScope.putBoolean(DefaultPreferences.DEL_NEWS_BY_COUNT_STATE,
// fDeleteNewsByCountCheck.getSelection());
//
// if (fDeleteNewsByCountCheck.getSelection())
// runCleanUp = true;
// }
//
// if
// (fGlobalScope.getInteger(DefaultPreferences.DEL_NEWS_BY_COUNT_VALUE)
// != fDeleteNewsByCountValue
// .getSelection()) {
// fGlobalScope.putInteger(DefaultPreferences.DEL_NEWS_BY_COUNT_VALUE,
// fDeleteNewsByCountValue.getSelection());
// runCleanUp = true;
// }
//
// if (fGlobalScope.getBoolean(DefaultPreferences.DEL_NEWS_BY_AGE_STATE)
// != fDeleteNewsByAgeCheck
// .getSelection()) {
// fGlobalScope.putBoolean(DefaultPreferences.DEL_NEWS_BY_AGE_STATE,
// fDeleteNewsByAgeCheck.getSelection());
//
// if (fDeleteNewsByAgeCheck.getSelection())
// runCleanUp = true;
// }
//
// if (fGlobalScope.getInteger(DefaultPreferences.DEL_NEWS_BY_AGE_VALUE)
// != fDeleteNewsByAgeValue
// .getSelection()) {
// fGlobalScope.putInteger(DefaultPreferences.DEL_NEWS_BY_AGE_VALUE,
// fDeleteNewsByAgeValue.getSelection());
// runCleanUp = true;
// }
//
// if (fGlobalScope.getBoolean(DefaultPreferences.DEL_READ_NEWS_STATE)
// != fDeleteReadNewsCheck
// .getSelection()) {
// fGlobalScope.putBoolean(DefaultPreferences.DEL_READ_NEWS_STATE,
// fDeleteReadNewsCheck.getSelection());
// runCleanUp = fDeleteReadNewsCheck.getSelection();
// }
//
// /* Run certain tasks now */
finish(autoUpdateChange, displayChange, runCleanUp);
return super.performOk();
}
private void finish(boolean autoUpdateChange, boolean displayChange,
boolean runCleanup) throws PersistenceException {
// final Set<IFolder> rootFolders = Controller.getDefault()
// .getCacheService().getRootFolders();
//
// /* Inform Reload Service about update-change */
// if (autoUpdateChange) {
// for (IFolder rootFolder : rootFolders) {
// updateReloadService(rootFolder);
// }
// }
// CB TODO.
/* Inform open editors about display-change */
// if (displayChange)
// EditorUtils.updateFilterAndGrouping();
//
// /* Peform clean-up on all BookMarks */
// if (runCleanup) {
// Job retentionJob = new Job("Performing clean-up...") {
//
// @Override
// protected IStatus run(IProgressMonitor monitor) {
// try {
// monitor.beginTask("Performing clean-up...", rootFolders
// .size());
//
// for (IFolder rootFolder : rootFolders) {
// RetentionStrategy.process(rootFolder);
// monitor.worked(1);
// }
// } finally {
// monitor.done();
// }
//
// return Status.OK_STATUS;
// }
// };
//
// retentionJob.schedule();
// }
}
// private void updateReloadService(IFolder folder) {
// List<IMark> marks = folder.getMarks();
// for (IMark mark : marks) {
// if (mark instanceof IBookMark)
// fReloadService.sync(((IBookMark) mark));
// }
//
// List<IFolder> childFolders = folder.getFolders();
// for (IFolder childFolder : childFolders) {
// updateReloadService(childFolder);
// }
// }
/*
* @see org.eclipse.jface.preference.PreferencePage#performDefaults()
*/
@Override
protected void performDefaults() {
super.performDefaults();
IPreferenceScope defaultScope = Owl.getPreferenceService()
.getDefaultScope();
String lDefaultDirectory = defaultScope
.getString(DefaultPreferences.PODCAST_DIRECTORY);
mDirectoryField.setText(lDefaultDirectory);
// TODO Set the values for podcasting here.
/* General */
// fUpdateCheck.setSelection(defaultScope.getBoolean(DefaultPreferences.BM_UPDATE_INTERVAL_STATE));
// fUpdateValueSpinner.setEnabled(fUpdateCheck.getSelection());
// fUpdateScopeCombo.setEnabled(fUpdateCheck.getSelection());
//
// long updateInterval =
// defaultScope.getLong(DefaultPreferences.BM_UPDATE_INTERVAL);
// int updateScope = getUpdateIntervalScope();
//
// if (updateScope == MINUTES_SCOPE)
// fUpdateValueSpinner.setSelection((int) (updateInterval /
// MINUTE_IN_SECONDS));
// else if (updateScope == HOURS_SCOPE)
// fUpdateValueSpinner.setSelection((int) (updateInterval /
// HOUR_IN_SECONDS));
// else if (updateScope == DAYS_SCOPE)
// fUpdateValueSpinner.setSelection((int) (updateInterval /
// DAY_IN_SECONDS));
//
// fUpdateScopeCombo.select(updateScope);
// fOpenOnStartupCheck.setSelection(defaultScope.getBoolean(DefaultPreferences.BM_OPEN_ON_STARTUP));
// fReloadOnStartupCheck.setSelection(defaultScope.getBoolean(DefaultPreferences.BM_RELOAD_ON_STARTUP));
//
// /* Reading */
// fMarkReadOnMinimize.setSelection(defaultScope.getBoolean(DefaultPreferences.MARK_READ_ON_MINIMIZE));
// fMarkReadOnChange.setSelection(defaultScope.getBoolean(DefaultPreferences.MARK_FEED_READ_ON_CHANGE));
// fMarkReadStateCheck.setSelection(defaultScope.getBoolean(DefaultPreferences.MARK_READ_STATE));
// fMarkReadAfterSpinner.setSelection(defaultScope.getInteger(DefaultPreferences.MARK_READ_IN_MILLIS)
// / 1000);
// fMarkReadAfterSpinner.setEnabled(fMarkReadStateCheck.getSelection());
//
// /* Display */
// fFilterCombo.select(defaultScope.getInteger(DefaultPreferences.BM_NEWS_FILTERING)
// + 1);
// fGroupCombo.select(defaultScope.getInteger(DefaultPreferences.BM_NEWS_GROUPING)
// + 1);
// fOpenSiteForNewsCheck.setSelection(defaultScope.getBoolean(DefaultPreferences.BM_OPEN_SITE_FOR_NEWS));
// fOpenSiteForEmptyNewsCheck.setSelection(defaultScope.getBoolean(DefaultPreferences.BM_OPEN_SITE_FOR_EMPTY_NEWS));
//
// /* Clean-Up */
// fDeleteNewsByCountCheck.setSelection(defaultScope.getBoolean(DefaultPreferences.DEL_NEWS_BY_COUNT_STATE));
// fDeleteNewsByCountValue.setSelection(defaultScope.getInteger(DefaultPreferences.DEL_NEWS_BY_COUNT_VALUE));
// fDeleteNewsByCountValue.setEnabled(fDeleteNewsByCountCheck.getSelection());
// fDeleteNewsByAgeCheck.setSelection(defaultScope.getBoolean(DefaultPreferences.DEL_NEWS_BY_AGE_STATE));
// fDeleteNewsByAgeValue.setSelection(defaultScope.getInteger(DefaultPreferences.DEL_NEWS_BY_AGE_VALUE));
// fDeleteNewsByAgeValue.setEnabled(fDeleteNewsByAgeCheck.getSelection());
// fDeleteReadNewsCheck.setSelection(defaultScope.getBoolean(DefaultPreferences.DEL_READ_NEWS_STATE));
}
// private int getUpdateIntervalScope() {
// long updateInterval =
// fGlobalScope.getLong(DefaultPreferences.BM_UPDATE_INTERVAL);
// if (updateInterval % DAY_IN_SECONDS == 0)
// return DAYS_SCOPE;
//
// if (updateInterval % HOUR_IN_SECONDS == 0)
// return HOURS_SCOPE;
//
// return MINUTES_SCOPE;
// }
}