/*
* JBoss, Home of Professional Open Source.
*
* See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing.
*
* See the AUTHORS.txt file distributed with this work for a full listing of individual contributors.
*/
package org.teiid.designer.runtime.ui.preferences;
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
import org.eclipse.swt.SWT;
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.ui.IWorkbench;
import org.osgi.service.prefs.BackingStoreException;
import org.teiid.datatools.connectivity.ui.Activator;
import org.teiid.datatools.connectivity.ui.Messages;
import org.teiid.datatools.connectivity.ui.PreferenceConstants;
import org.teiid.designer.ui.UiConstants;
import org.teiid.designer.ui.common.util.WidgetFactory;
import org.teiid.designer.ui.preferences.IGeneralPreferencePageContributor;
/**
* @since 8.0
*/
public class EnableQueryPlanPreferenceContributor implements IGeneralPreferencePageContributor, UiConstants {
private static final String PREFIX = "EnableQueryPlanPreferenceContributor."; //$NON-NLS-1$
private Button chkEnabled;
/**
* @see org.teiid.designer.ui.preferences.IGeneralPreferencePageContributor#createPreferenceEditor(org.eclipse.swt.widgets.Composite)
* @since 5.0
*/
@Override
public void createPreferenceEditor( Composite theParent ) {
Composite pnl = new Composite(theParent, SWT.NONE);
pnl.setLayout(new GridLayout());
pnl.setLayoutData(new GridData());
this.chkEnabled = WidgetFactory.createCheckBox(pnl, getName());
this.chkEnabled.setLayoutData(new GridData());
this.chkEnabled.setToolTipText(getToolTip());
// initialize state
refresh();
}
/**
* @see org.teiid.designer.ui.preferences.IGeneralPreferencePageContributor#getName()
* @since 5.0
*/
@Override
public String getName() {
return Messages.getString(PREFIX + "name"); //$NON-NLS-1$
}
/**
* Obtains the <code>IEclipsePreferences</code> where this preference is being persisted.
*
* @return the preferences
*/
private IEclipsePreferences getPreferences() {
return Activator.getDefault().getPreferences();
}
/**
* @see org.teiid.designer.ui.preferences.IGeneralPreferencePageContributor#getToolTip()
* @since 5.0
*/
@Override
public String getToolTip() {
return Messages.getString(PREFIX + "toolTip"); //$NON-NLS-1$
}
/**
* @see org.teiid.designer.ui.preferences.IGeneralPreferencePageContributor#performCancel()
* @since 5.0
*/
@Override
public boolean performCancel() {
return true;
}
/**
* @see org.teiid.designer.ui.preferences.IGeneralPreferencePageContributor#performDefaults()
* @since 5.0
*/
@Override
public boolean performDefaults() {
this.chkEnabled.setSelection(PreferenceConstants.TEIID_QUERYPLANS_ENABLED_DEFAULT);
// save
try {
getPreferences().flush();
return true;
} catch (BackingStoreException e) {
return false;
}
}
/**
* @see org.teiid.designer.ui.preferences.IGeneralPreferencePageContributor#performOk()
* @since 5.0
*/
@Override
public boolean performOk() {
IEclipsePreferences prefs = getPreferences();
prefs.putBoolean(PreferenceConstants.TEIID_QUERYPLANS_ENABLED, this.chkEnabled.getSelection());
// save
try {
prefs.flush();
return true;
} catch (BackingStoreException e) {
return false;
}
}
/**
* @see org.teiid.designer.ui.preferences.IGeneralPreferencePageContributor#refresh()
* @since 5.0
*/
@Override
public void refresh() {
IEclipsePreferences prefs = getPreferences();
boolean enable = prefs.getBoolean(PreferenceConstants.TEIID_QUERYPLANS_ENABLED, PreferenceConstants.TEIID_QUERYPLANS_ENABLED_DEFAULT);
this.chkEnabled.setSelection(enable);
}
/**
* @see org.teiid.designer.ui.preferences.IGeneralPreferencePageContributor#setWorkbench(org.eclipse.ui.IWorkbench)
* @since 5.0
*/
@Override
public void setWorkbench( IWorkbench theWorkbench ) {
}
}