| /******************************************************************************* |
| * Copyright (c) 2001, 2010 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.wst.wsdl.ui.internal; |
| |
| import org.eclipse.jface.preference.BooleanFieldEditor; |
| import org.eclipse.jface.preference.FieldEditorPreferencePage; |
| import org.eclipse.jface.preference.StringFieldEditor; |
| import org.eclipse.jface.util.PropertyChangeEvent; |
| import org.eclipse.swt.SWT; |
| import org.eclipse.swt.layout.GridData; |
| import org.eclipse.swt.layout.GridLayout; |
| 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.ui.IWorkbench; |
| import org.eclipse.ui.IWorkbenchPreferencePage; |
| import org.eclipse.ui.PlatformUI; |
| import org.eclipse.wst.wsdl.ui.internal.asd.ASDEditorCSHelpIds; |
| |
| public class WSDLPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage { |
| |
| private Composite interfacePreferencesComposite; |
| private BooleanFieldEditor generateSeparateIntfFieldEditor; |
| |
| public WSDLPreferencePage() |
| { |
| super(FieldEditorPreferencePage.FLAT); |
| setPreferenceStore(WSDLEditorPlugin.getInstance().getPreferenceStore()); |
| } |
| |
| public void init(IWorkbench workbench) |
| { |
| } |
| |
| protected void createFieldEditors() |
| { |
| Composite parent = getFieldEditorParent(); |
| GridLayout parentLayout = new GridLayout(); |
| parentLayout.marginWidth = 0; |
| parent.setLayout(parentLayout); |
| |
| // WorkbenchHelp.setHelp(getControl(), some context id here); |
| |
| Group group = new Group(parent, SWT.NULL); |
| GridLayout layout = new GridLayout(); |
| layout.marginWidth = 0; |
| layout.numColumns = 2; |
| group.setLayout(layout); |
| group.setText(Messages._UI_PREF_PAGE_CREATING_FILES); |
| |
| GridData data = new GridData(); |
| data.verticalAlignment = GridData.FILL; |
| data.horizontalAlignment = GridData.FILL; |
| data.grabExcessHorizontalSpace = true; |
| group.setLayoutData(data); |
| |
| Composite composite = new Composite(group, SWT.NULL); |
| GridData data1 = new GridData(); |
| data1.verticalAlignment = GridData.FILL; |
| data1.horizontalAlignment = GridData.FILL; |
| data1.grabExcessHorizontalSpace = true; |
| composite.setLayoutData(data1); |
| |
| GridLayout compositeLayout = new GridLayout(); |
| compositeLayout.marginWidth = 5; // Default value |
| compositeLayout.numColumns = 2; |
| composite.setLayout(compositeLayout); |
| |
| String prefixLabel = Messages._UI_PREF_PAGE_DEFAULT_PREFIX; |
| StringFieldEditor prefix = new StringFieldEditor(WSDLEditorPlugin.DEFAULT_TARGET_NAMESPACE_PREFIX_PREFERENCE_ID, prefixLabel, composite); |
| addField(prefix); |
| |
| String namespaceLabel = Messages._UI_PREF_PAGE_DEFAULT_TARGET_NAMESPACE; |
| StringFieldEditor targetNamespace = new StringFieldEditor(WSDLEditorPlugin.DEFAULT_TARGET_NAMESPACE_ID, namespaceLabel, composite); |
| addField(targetNamespace); |
| PlatformUI.getWorkbench().getHelpSystem().setHelp(targetNamespace.getTextControl(composite), ASDEditorCSHelpIds.WSDL_PREF_DEFAULT_TNS); |
| |
| Label separator = new Label(composite, SWT.SEPARATOR | SWT.HORIZONTAL); |
| GridData gridData= new GridData(GridData.FILL_HORIZONTAL); |
| gridData.horizontalSpan = 2; |
| gridData.verticalIndent = 5; |
| separator.setLayoutData(gridData); |
| |
| String generateSeparateIntfLabel = Messages._UI_PREF_GENERATE_SEPARATE_INTERFACE; |
| Composite oneColumnComposite = new Composite(composite, SWT.None); |
| oneColumnComposite.setLayout(new GridLayout()); |
| GridData intfGridData = new GridData(GridData.FILL_BOTH); |
| intfGridData.horizontalSpan = 2; |
| intfGridData.horizontalIndent = 0; |
| intfGridData.verticalIndent = 0; |
| oneColumnComposite.setLayoutData(intfGridData); |
| generateSeparateIntfFieldEditor = new BooleanFieldEditor(WSDLEditorPlugin.GENERATE_SEPARATE_INTERFACE_PREFERENCE_ID, generateSeparateIntfLabel, oneColumnComposite); |
| addField(generateSeparateIntfFieldEditor); |
| |
| interfacePreferencesComposite = new Composite(composite, SWT.None); |
| layout = new GridLayout(); |
| layout.numColumns = 2; |
| interfacePreferencesComposite.setLayout(layout); |
| GridData compositeGridData = new GridData(GridData.FILL_BOTH); |
| compositeGridData.horizontalSpan = 2; |
| compositeGridData.horizontalIndent = 15; |
| compositeGridData.verticalIndent = 0; |
| interfacePreferencesComposite.setLayoutData(compositeGridData); |
| |
| String interfacePrefixLabel = Messages._UI_PREF_PAGE_INTERFACE_DEFAULT_PREFIX; |
| StringFieldEditor interfacePrefix = new StringFieldEditor(WSDLEditorPlugin.INTERFACE_PREFIX_PREFERENCE_ID, interfacePrefixLabel, interfacePreferencesComposite); |
| addField(interfacePrefix); |
| |
| String interfaceNamespaceLabel = Messages._UI_PREF_PAGE_INTERFACE_DEFAULT_TARGET_NAMESPACE; |
| StringFieldEditor interfaceNamespace = new StringFieldEditor(WSDLEditorPlugin.INTERFACE_DEFAULT_TARGET_NAMESPACE_PREFERENCE_ID, interfaceNamespaceLabel, interfacePreferencesComposite); |
| addField(interfaceNamespace); |
| |
| String portTypeFilenameSuffixLabel = Messages._UI_PREF_PAGE_INTERFACE_FILE_SUFFIX; |
| StringFieldEditor interfaceSuffix = new StringFieldEditor(WSDLEditorPlugin.INTERFACE_FILE_SUFFIX_PREFERENCE_ID, portTypeFilenameSuffixLabel, interfacePreferencesComposite); |
| addField(interfaceSuffix); |
| |
| String generateLabel = Messages._UI_PREF_PAGE_AUTO_REGENERATE_BINDING; |
| BooleanFieldEditor generateBindingOnSave = new BooleanFieldEditor(WSDLEditorPlugin.AUTO_REGENERATE_BINDING_ON_SAVE_ID, generateLabel, parent); |
| addField(generateBindingOnSave); |
| |
| String showGenerateDialogLabel = Messages._UI_PREF_PAGE_PROMPT_REGEN_BINDING_ON_SAVE; |
| BooleanFieldEditor showGenerateDialog = new BooleanFieldEditor(WSDLEditorPlugin.PROMPT_REGEN_BINDING_ON_SAVE_ID, showGenerateDialogLabel, parent); |
| addField(showGenerateDialog); |
| |
| String unusedImportLabel = Messages._UI_PREF_PAGE_ENABLE_AUTO_IMPORT_CLEANUP; |
| BooleanFieldEditor removeUnusedImports = new BooleanFieldEditor(WSDLEditorPlugin.AUTO_IMPORT_CLEANUP_ID, unusedImportLabel, parent); |
| addField(removeUnusedImports); |
| |
| String openImportDialogLabel = Messages._UI_PREF_PAGE_ENABLE_AUTO_OPEN_IMPORT_DIALOG; |
| BooleanFieldEditor openImportDialog = new BooleanFieldEditor(WSDLEditorPlugin.AUTO_OPEN_IMPORT_DIALOG_ID, openImportDialogLabel, parent); |
| addField(openImportDialog); |
| |
| boolean enabled = WSDLEditorPlugin.getInstance().getPreferenceStore().getBoolean(WSDLEditorPlugin.GENERATE_SEPARATE_INTERFACE_PREFERENCE_ID); |
| setChildrenEnabled(interfacePreferencesComposite, enabled); |
| applyDialogFont(parent); |
| |
| } |
| |
| public void propertyChange(PropertyChangeEvent event) { |
| super.propertyChange(event); |
| boolean enabled = generateSeparateIntfFieldEditor.getBooleanValue(); |
| setChildrenEnabled(interfacePreferencesComposite, enabled); |
| } |
| |
| private void setChildrenEnabled(Composite composite, boolean enabled) { |
| Control[] children = composite.getChildren(); |
| for (int i = 0; i < children.length; i++) |
| children[i].setEnabled(enabled); |
| } |
| |
| protected void performDefaults() { |
| super.performDefaults(); |
| boolean enabled = generateSeparateIntfFieldEditor.getBooleanValue(); |
| setChildrenEnabled(interfacePreferencesComposite, enabled); |
| } |
| } |