blob: 9d62ffe5b45ba12903000dd690501e385da4855c [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2008 IONA Technologies PLC
* 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:
* IONA Technologies PLC - initial API and implementation
*******************************************************************************/
package org.eclipse.jst.ws.internal.cxf.ui.widgets;
import org.eclipse.jst.ws.internal.cxf.core.CXFCorePlugin;
import org.eclipse.jst.ws.internal.cxf.core.context.Java2WSPersistentContext;
import org.eclipse.jst.ws.internal.cxf.core.model.CXFPackage;
import org.eclipse.jst.ws.internal.cxf.core.utils.CXFModelUtils;
import org.eclipse.jst.ws.internal.cxf.ui.CXFUIMessages;
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.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Link;
import org.eclipse.swt.widgets.TabFolder;
public class Java2WSRuntimePreferencesComposite extends Composite {
private Java2WSPersistentContext context = CXFCorePlugin.getDefault().getJava2WSContext();
private Combo soapBindingCombo;
private Button createXSDImportsButton;
private Button generateClientButton;
private Button generateServerButton;
private Button generateWrapperFaultBeanButton;
private Button generateWSDLButton;
private TabFolder tabFolder;
public Java2WSRuntimePreferencesComposite(Composite parent, int style, TabFolder tabFolder) {
super(parent, style);
this.tabFolder = tabFolder;
}
public void addControls() {
GridLayout preflayout = new GridLayout();
preflayout.numColumns = 2;
preflayout.marginHeight = 10;
this.setLayout(preflayout);
GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, false);
this.setLayoutData(gridData);
// Java2WS Group
Group java2wsGroup = new Group(this, SWT.SHADOW_IN);
java2wsGroup.setText(CXFUIMessages.JAVA2WS_GROUP_LABEL);
GridLayout java2wslayout = new GridLayout();
java2wslayout.numColumns = 3;
java2wslayout.marginHeight = 10;
java2wsGroup.setLayout(java2wslayout);
gridData = new GridData(GridData.FILL_HORIZONTAL);
gridData.horizontalSpan = 2;
java2wsGroup.setLayoutData(gridData);
// Frontend
Java2WSWidgetFactory.createFrontendLabel(java2wsGroup);
Combo frontendCombo = Java2WSWidgetFactory.createFrontendCombo(java2wsGroup, context);
gridData = new GridData(SWT.FILL, SWT.FILL, true, false);
gridData.horizontalSpan = 2;
frontendCombo.setLayoutData(gridData);
// Databinding
Java2WSWidgetFactory.createDatabindingLabel(java2wsGroup);
Combo databindingCombo = Java2WSWidgetFactory.createDatabindingCombo(java2wsGroup, context);
gridData = new GridData(SWT.FILL, SWT.FILL, true, false);
gridData.horizontalSpan = 2;
databindingCombo.setLayoutData(gridData);
// Gen Client
generateClientButton = Java2WSWidgetFactory.createGenerateClientButton(java2wsGroup, context);
// Gen Server
generateServerButton = Java2WSWidgetFactory.createGenerateServerButton(java2wsGroup, context);
// Gen Wrapper and Fault Bean
generateWrapperFaultBeanButton = Java2WSWidgetFactory.createGenerateWrapperFaultBeanButton(
java2wsGroup, context);
// Gen WSDL
generateWSDLButton = Java2WSWidgetFactory.createGenerateWSDLButton(java2wsGroup, context);
generateWSDLButton.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
enableWSDLGroup(generateWSDLButton.getSelection());
}
});
gridData = new GridData(GridData.FILL_HORIZONTAL);
gridData.horizontalSpan = 3;
generateWSDLButton.setLayoutData(gridData);
Group wsdlGroup = new Group(java2wsGroup, SWT.SHADOW_ETCHED_IN);
GridLayout wsdlGroupLayout = new GridLayout(2, false);
wsdlGroup.setLayout(wsdlGroupLayout);
gridData = new GridData(GridData.FILL_HORIZONTAL);
gridData.horizontalSpan = 3;
wsdlGroup.setLayoutData(gridData);
Java2WSWidgetFactory.createSOAPBindingLabel(wsdlGroup);
soapBindingCombo = Java2WSWidgetFactory.createSOAPBingCombo(wsdlGroup, context);
gridData = new GridData(GridData.FILL_HORIZONTAL);
soapBindingCombo.setLayoutData(gridData);
createXSDImportsButton = Java2WSWidgetFactory.createXSDImportsButton(wsdlGroup, context);
gridData = new GridData(GridData.FILL_HORIZONTAL);
gridData.horizontalSpan = 2;
createXSDImportsButton.setLayoutData(gridData);
Link link = new Link(this, SWT.NONE);
link.setText(CXFUIMessages.ANNOTATIONS_PREFERENCES_LINK);
link.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
tabFolder.setSelection(3);
}
});
enableWSDLGroup(context.isGenerateWSDL());
}
protected void enableWSDLGroup(boolean enable) {
soapBindingCombo.setEnabled(enable);
createXSDImportsButton.setEnabled(enable);
}
public void setDefaults() {
if (CXFModelUtils.getDefaultBooleanValue(CXFPackage.JAVA2_WS_CONTEXT,
CXFPackage.JAVA2_WS_CONTEXT__SOAP12_BINDING)) {
soapBindingCombo.setText("SOAP 1.2"); //$NON-NLS-1$
} else {
soapBindingCombo.setText("SOAP 1.1"); //$NON-NLS-1$
}
createXSDImportsButton.setSelection(CXFModelUtils.getDefaultBooleanValue(CXFPackage.JAVA2_WS_CONTEXT,
CXFPackage.JAVA2_WS_CONTEXT__GENERATE_XSD_IMPORTS));
generateClientButton.setSelection(CXFModelUtils.getDefaultBooleanValue(CXFPackage.CXF_CONTEXT,
CXFPackage.CXF_CONTEXT__GENERATE_CLIENT));
generateServerButton.setSelection(CXFModelUtils.getDefaultBooleanValue(CXFPackage.CXF_CONTEXT,
CXFPackage.CXF_CONTEXT__GENERATE_SERVER));
generateWrapperFaultBeanButton.setSelection(CXFModelUtils.getDefaultBooleanValue(
CXFPackage.JAVA2_WS_CONTEXT, CXFPackage.JAVA2_WS_CONTEXT__GENERATE_WRAPPER_FAULT_BEANS));
generateWSDLButton.setSelection(CXFModelUtils.getDefaultBooleanValue(CXFPackage.JAVA2_WS_CONTEXT,
CXFPackage.JAVA2_WS_CONTEXT__GENERATE_WSDL));
}
public void refresh() {
if (context.isSoap12Binding()) {
soapBindingCombo.setText("SOAP 1.2"); //$NON-NLS-1$
} else {
soapBindingCombo.setText("SOAP 1.1"); //$NON-NLS-1$
}
createXSDImportsButton.setSelection(context.isGenerateXSDImports());
generateClientButton.setSelection(context.isGenerateClient());
generateServerButton.setSelection(context.isGenerateServer());
generateWrapperFaultBeanButton.setSelection(context.isGenerateWrapperFaultBeans());
generateWSDLButton.setSelection(context.isGenerateWSDL());
}
public void storeValues() {
if (soapBindingCombo.getText().equals("SOAP 1.2")) {
context.setSoap12Binding(true);
} else {
context.setSoap12Binding(false);
}
context.setGenerateXSDImports(createXSDImportsButton.getSelection());
context.setGenerateClient(generateClientButton.getSelection());
context.setGenerateServer(generateServerButton.getSelection());
context.setGenerateWrapperFaultBeans(generateWrapperFaultBeanButton.getSelection());
context.setGenerateWSDL(generateWSDLButton.getSelection());
}
}