/*******************************************************************************
* Copyright (c) 2011, 2012 Wind River Systems, Inc. and others. 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.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Wind River Systems - initial API and implementation
*******************************************************************************/
package org.eclipse.tcf.te.ui.preferences;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
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.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.tcf.te.ui.activator.UIPlugin;
import org.eclipse.tcf.te.ui.interfaces.IPreferenceKeys;
import org.eclipse.tcf.te.ui.jface.dialogs.OptionalMessageDialog;
import org.eclipse.tcf.te.ui.nls.Messages;
import org.eclipse.tcf.te.ui.swt.SWTControlUtil;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
/**
* Top preference page implementation.
*/
public class PreferencePage extends org.eclipse.jface.preference.PreferencePage implements IWorkbenchPreferencePage {
private Button resetDoNotShowAgainMarkers;
private Button persistEditors = null;
/* (non-Javadoc)
* @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
*/
@Override
public void init(IWorkbench workbench) {
}
/* (non-Javadoc)
* @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
*/
@Override
protected Control createContents(Composite parent) {
Composite panel = new Composite(parent, SWT.NONE);
panel.setLayout(new GridLayout());
panel.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, false));
Label label = new Label(panel, SWT.HORIZONTAL);
label.setText(Messages.PreferencePage_label);
label.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
Group group = new Group(panel, SWT.NONE);
group.setText(Messages.PreferencePage_sessions_label);
group.setLayout(new GridLayout());
group.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, false));
persistEditors = new Button(group, SWT.CHECK);
persistEditors.setText(Messages.PreferencePage_persistEditors_label);
persistEditors.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
persistEditors.setSelection(UIPlugin.getScopedPreferences().getBoolean(IPreferenceKeys.PREF_PERSIST_EDITORS));
group = new Group(panel, SWT.NONE);
group.setText(Messages.PreferencePage_dialogs_label);
group.setLayout(new GridLayout(2, false));
group.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, false));
label = new Label(group, SWT.NONE);
label.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
label.setText(Messages.PreferencePage_resetDoNotShowAgainMarkers_message);
resetDoNotShowAgainMarkers = new Button(group, SWT.PUSH);
resetDoNotShowAgainMarkers.setText(Messages.PreferencePage_resetDoNotShowAgainMarkers_label);
GridData layoutData = new GridData(GridData.END, GridData.CENTER, false, false);
layoutData.widthHint = SWTControlUtil.convertWidthInCharsToPixels(resetDoNotShowAgainMarkers, resetDoNotShowAgainMarkers.getText().length() + 4);
resetDoNotShowAgainMarkers.setLayoutData(layoutData);
resetDoNotShowAgainMarkers.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
OptionalMessageDialog.clearAllRememberedStates();
MessageDialog.openInformation(getShell(),
Messages.PreferencePage_resetDoNotShowAgainMarkers_dialog_title,
Messages.PreferencePage_resetDoNotShowAgainMarkers_dialog_message);
}
});
return panel;
}
/* (non-Javadoc)
* @see org.eclipse.jface.preference.PreferencePage#performDefaults()
*/
@Override
protected void performDefaults() {
if (persistEditors != null) {
persistEditors.setSelection(UIPlugin.getScopedPreferences().getDefaultBoolean(IPreferenceKeys.PREF_PERSIST_EDITORS));
}
super.performDefaults();
}
/* (non-Javadoc)
* @see org.eclipse.jface.preference.PreferencePage#performOk()
*/
@Override
public boolean performOk() {
if (persistEditors != null) {
UIPlugin.getScopedPreferences().putBoolean(IPreferenceKeys.PREF_PERSIST_EDITORS, persistEditors.getSelection());
}
return super.performOk();
}
}