/*******************************************************************************
* Copyright (c) 2010 SAP AG.
* 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:
* Emil Simeonov - initial API and implementation.
* Dimitar Donchev - initial API and implementation.
* Dimitar Tenev - initial API and implementation.
* Nevena Manova - initial API and implementation.
* Georgi Konstantinov - initial API and implementation.
*******************************************************************************/
package org.eclipse.wst.sse.sieditor.ui.v2.propertyeditor;
import java.util.Iterator;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.eclipse.wst.sse.sieditor.model.wsdl.api.IFault;
import org.eclipse.wst.sse.sieditor.model.wsdl.api.IParameter;
import org.eclipse.wst.sse.sieditor.model.xsd.api.IType;
import org.eclipse.wst.sse.sieditor.ui.v2.dt.ITypeDisplayer;
import org.eclipse.wst.sse.sieditor.ui.v2.newtypedialog.FaultTypeDialogStrategy;
import org.eclipse.wst.sse.sieditor.ui.v2.newtypedialog.ITypeDialogStrategy;
import org.eclipse.wst.sse.sieditor.ui.v2.wsdl.controller.SIFormPageController;
public class FaultTypeEditor extends ParameterTypeEditor {
public FaultTypeEditor(final SIFormPageController controller, final ITypeDisplayer typeDisplayer) {
super(controller, typeDisplayer);
}
@Override
public Control createControl(final FormToolkit toolkit, final Composite parent) {
final Control control = super.createControl(toolkit, parent);
typeCombo.setEnabled(false);
typeCombo.setEditable(false);
return control;
}
@Override
protected IType getType() {
final Object modelObject = getInput().getModelObject();
if (modelObject instanceof IFault) {
final Iterator<IParameter> faultParamsIterator = ((IFault) modelObject).getParameters().iterator();
if(!faultParamsIterator.hasNext()){
return null;
}
final IParameter faultParameter = faultParamsIterator.next();
if (faultParameter != null) {
return faultParameter.getType();
}
}
return null;
}
@Override
public void update() {
super.update();
typeCombo.setEnabled(false);
typeCombo.setEditable(false);
}
@Override
public ITypeDialogStrategy createNewTypeDialogStrategy() {
final FaultTypeDialogStrategy strategy = new FaultTypeDialogStrategy();
strategy.setInput(getInput().getModelObject());
strategy.setController(getSiFormPageController());
return strategy;
}
}