blob: 464f282eafbcb6ef8d6cb05052f55fe2ff997fca [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2005, 2012 IBM Corporation 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:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.bpel.ui.preferences;
import java.util.ArrayList;
import org.eclipse.bpel.model.terms.BPELTerms;
import org.eclipse.bpel.ui.BPELUIPlugin;
import org.eclipse.bpel.ui.IBPELUIConstants;
import org.eclipse.bpel.ui.IHelpContextIds;
import org.eclipse.bpel.ui.Messages;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.preference.PreferencePage;
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.swt.widgets.Control;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
import org.eclipse.ui.PlatformUI;
/**
*
* @author Michal Chmielewski (michal.chmielewski@oracle.com)
* @date May 2, 2007
*
*/
@SuppressWarnings("nls")
public class BPELPreferencePage extends PreferencePage implements IWorkbenchPreferencePage {
static String PREFERENCE = "preference";
Button fUseAnimation;
Button fShowFreeFormFlow;
Button fWarnOnLinks;
Button fAutoFlowLayout;
Button fSpecCompliantProcess;
ArrayList<Button> fButtons = new ArrayList<Button>(8);
@Override
protected Control createContents(Composite parent) {
Composite result = new Composite(parent, SWT.NONE);
GridLayout layout = new GridLayout();
layout.numColumns = 3;
layout.verticalSpacing = 10;
result.setLayout(layout);
GridData data = new GridData(GridData.FILL_BOTH);
result.setLayoutData(data);
fUseAnimation = new Button(result, SWT.CHECK);
fUseAnimation.setText(Messages.BPELPreferencePage_0);
fUseAnimation.setToolTipText(Messages.BPELPreferencePage_0TT);
fUseAnimation.setData(PREFERENCE, IBPELUIConstants.PREF_USE_ANIMATION);
data = new GridData(GridData.FILL_HORIZONTAL);
data.horizontalSpan = 3;
fUseAnimation.setLayoutData(data);
fButtons.add(fUseAnimation);
fShowFreeFormFlow = new Button(result, SWT.CHECK);
fShowFreeFormFlow.setText(Messages.BPELPreferencePage_1);
fShowFreeFormFlow.setData(PREFERENCE,IBPELUIConstants.PREF_SHOW_FREEFORM_FLOW);
fShowFreeFormFlow.setToolTipText(Messages.BPELPreferencePage_1TT);
data = new GridData(GridData.FILL_HORIZONTAL);
data.horizontalSpan = 3;
fShowFreeFormFlow.setLayoutData(data);
fButtons.add(fShowFreeFormFlow);
fWarnOnLinks = new Button(result, SWT.CHECK);
fWarnOnLinks.setText(Messages.BPELPreferencePage_2);
fWarnOnLinks.setToolTipText(Messages.BPELPreferencePage_2TT);
fWarnOnLinks.setData(PREFERENCE,IBPELUIConstants.PREF_WARN_LINKS);
data = new GridData(GridData.FILL_HORIZONTAL);
data.horizontalSpan = 3;
fWarnOnLinks.setLayoutData(data);
fButtons.add(fWarnOnLinks);
fAutoFlowLayout = new Button(result, SWT.CHECK);
fAutoFlowLayout.setText(Messages.BPELPreferencePage_3);
fAutoFlowLayout.setToolTipText(Messages.BPELPreferencePage_3TT);
fAutoFlowLayout.setData(PREFERENCE,IBPELUIConstants.PREF_AUTO_FLOW_LAYOUT);
data = new GridData(GridData.FILL_HORIZONTAL);
data.horizontalSpan = 3;
fAutoFlowLayout.setLayoutData(data);
fButtons.add(fAutoFlowLayout);
fSpecCompliantProcess = new Button(result, SWT.CHECK);
fSpecCompliantProcess.setText(Messages.BPELPreferencePage_4);
fSpecCompliantProcess.setToolTipText(Messages.BPELPreferencePage_4TT);
fSpecCompliantProcess.setData(PREFERENCE,IBPELUIConstants.PREF_CREATE_SPEC_COMPLIANT_PROCESS);
data = new GridData(GridData.FILL_HORIZONTAL);
data.horizontalSpan = 3;
fSpecCompliantProcess.setLayoutData(data);
fButtons.add(fSpecCompliantProcess);
initializeValues();
PlatformUI.getWorkbench().getHelpSystem().setHelp(
parent, IHelpContextIds.PREFERENCES_PAGE);
return result;
}
/** (non-Javadoc)
* @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
*/
public void init(IWorkbench workbench) {
}
@Override
protected void performDefaults() {
super.performDefaults();
initializeDefaults();
}
/**
* @see org.eclipse.jface.preference.PreferencePage#performOk()
*/
@Override
public boolean performOk() {
storeValues();
return true;
}
@Override
protected void performApply() {
performOk();
}
/**
* Initializes states of the controls using default values in the preference store.
*/
private void initializeDefaults() {
fUseAnimation.setSelection(BPELUIPlugin.INSTANCE.getPreferenceStore().getDefaultBoolean(IBPELUIConstants.PREF_USE_ANIMATION));
}
/**
* Initializes states of the controls from the preference store.
*/
private void initializeValues() {
IPreferenceStore store = BPELUIPlugin.INSTANCE.getPreferenceStore();
for(Button b : fButtons) {
String pref = (String) b.getData(PREFERENCE);
if (pref != null) {
b.setSelection( store.getBoolean(pref) );
}
}
}
/**
* Stores the values of the controls back to the preference store.
*/
private void storeValues() {
IPreferenceStore store = BPELUIPlugin.INSTANCE.getPreferenceStore();
for(Button b : fButtons) {
String pref = (String) b.getData(PREFERENCE);
if (pref != null) {
store.setValue(pref, b.getSelection() );
}
}
BPELTerms.getDefault().savePluginPreferences();
}
}