/******************************************************************************* * Copyright (c) 2009 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 * Zend Technologies *******************************************************************************/ package org.eclipse.php.internal.ui.preferences; import org.eclipse.core.runtime.preferences.InstanceScope; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.php.internal.core.PHPCoreConstants; import org.eclipse.php.internal.core.PHPCorePlugin; import org.eclipse.php.internal.ui.Logger; import org.eclipse.php.internal.ui.PHPUIMessages; import org.eclipse.php.internal.ui.PHPUiPlugin; 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.osgi.service.prefs.BackingStoreException; /** * * @author guy.g * */ public class PHPContentAssistOptionsConfigurationBlock extends AbstractPHPContentAssistPreferencePageBlock { protected Button completionInsertRadioButton; protected Button completionOverrideRadioButton; protected Button insertSingleproposalsCheckBox; protected Button autoInsertCommonPrefixCheckbox; protected Button showVariableFromOtherFilesCheckBox; protected Button showVariableFromReferencedFilesCheckBox; protected Button insertFullyQualifiedNameForNamespaceCheckBox; protected Button fInsertParameterNamesRadioButton; protected Button fPrefixGlobalFunctionCallRadioButton; @Override public void setCompositeAddon(Composite parent) { Composite composite = createSubsection(parent, PHPUIMessages.CodeAssistPreferencePage_optionsSectionLabel); Composite radioButtonsComposite = new Composite(composite, SWT.NONE); GridLayout gridLayout = new GridLayout(); gridLayout.marginWidth = 0; gridLayout.numColumns = 2; GridData gridData = new GridData(); gridData.horizontalSpan = 2; radioButtonsComposite.setLayout(gridLayout); radioButtonsComposite.setLayoutData(gridData); completionInsertRadioButton = new Button(radioButtonsComposite, SWT.RADIO | SWT.LEFT); completionInsertRadioButton.setText(PHPUIMessages.CodeAssistPreferencePage_completionInserts); completionInsertRadioButton.setLayoutData(new GridData()); completionInsertRadioButton.setData(PHPCoreConstants.CODEASSIST_INSERT_COMPLETION); add(completionInsertRadioButton); completionOverrideRadioButton = new Button(radioButtonsComposite, SWT.RADIO | SWT.LEFT); completionOverrideRadioButton.setText(PHPUIMessages.CodeAssistPreferencePage_completionOverwrites); completionOverrideRadioButton.setLayoutData(new GridData()); add(completionOverrideRadioButton); insertSingleproposalsCheckBox = addCheckBox(composite, PHPUIMessages.CodeAssistPreferencePage_insertSignleProposals, PHPCoreConstants.CODEASSIST_AUTOINSERT, 0); autoInsertCommonPrefixCheckbox = addCheckBox(composite, PHPUIMessages.CodeAssistPreferencePage_insertCommonPrefix, PHPCoreConstants.CODEASSIST_AUTOINSERT_COMMON_PREFIX, 0); showVariableFromOtherFilesCheckBox = addCheckBox(composite, PHPUIMessages.CodeAssistPreferencePage_showVariablesFromOtherFiles, PHPCoreConstants.CODEASSIST_SHOW_VARIABLES_FROM_OTHER_FILES, 0); showVariableFromOtherFilesCheckBox.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { showVariableFromReferencedFilesCheckBox.setEnabled(!showVariableFromOtherFilesCheckBox.getSelection()); } }); showVariableFromReferencedFilesCheckBox = addCheckBox(composite, PHPUIMessages.CodeAssistPreferencePage_showVariablesFromReferencedFiles, PHPCoreConstants.CODEASSIST_SHOW_VARIABLES_FROM_REFERENCED_FILES, 0); insertFullyQualifiedNameForNamespaceCheckBox = addCheckBox(composite, PHPUIMessages.CodeAssistPreferencePage_insertFullyQualifiedNameForNamespace, PHPCoreConstants.CODEASSIST_INSERT_FULL_QUALIFIED_NAME_FOR_NAMESPACE, 0); fInsertParameterNamesRadioButton = addCheckBox(composite, PHPUIMessages.CodeAssistPreferencePage_fillParameterNamesOnMethodCompletion, PHPCoreConstants.CODEASSIST_FILL_ARGUMENT_NAMES, 0); fPrefixGlobalFunctionCallRadioButton = addCheckBox(composite, PHPUIMessages.CodeAssistPreferencePage_insertGlobalPrefixForFunctionCallInsideNamespace, PHPCoreConstants.CODEASSIST_PREFIX_GLOBAL_FUNCTION_CALL, 0); } @Override protected void initializeValues() { super.initializeValues(); completionOverrideRadioButton.setSelection(!completionInsertRadioButton.getSelection()); if (showVariableFromOtherFilesCheckBox.getSelection()) { showVariableFromReferencedFilesCheckBox.setEnabled(false); } } @Override protected void restoreDefaultButtonValues() { super.restoreDefaultButtonValues(); completionOverrideRadioButton.setSelection(!completionInsertRadioButton.getSelection()); } @Override protected IPreferenceStore getPreferenceStore() { return PHPUiPlugin.getDefault().getCorePreferenceStore(); } @Override protected void storeValues() { super.storeValues(); try { InstanceScope.INSTANCE.getNode(PHPCorePlugin.ID).flush(); } catch (BackingStoreException e) { Logger.logException(e); } } }