/******************************************************************************* * 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(); } }