blob: 0d1471d0b210d57c4d6d6fd7bb307f670d873ee4 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2007 WSO2 Inc. 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:
* WSO2 Inc. - initial API and implementation
* yyyymmdd bug Email and other contact information
* -------- -------- -----------------------------------------------------------
* 20070230 168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2
* runtime to the framework for 168762
* 20070426 183046 sandakith@wso2.com - Lahiru Sandakith
* 20070601 190505 pmoogk@ca.ibm.com - Peter Moogk
*******************************************************************************/
package org.eclipse.jst.ws.internal.axis2.consumption.ui.wsrt;
import org.eclipse.jst.ws.axis2.consumption.core.command.Axis2ClientDefaultingCommand;
import org.eclipse.jst.ws.axis2.consumption.core.data.DataModel;
import org.eclipse.jst.ws.internal.axis2.consumption.ui.widgets.Axis2ProxyWidget;
import org.eclipse.jst.ws.internal.axis2.consumption.ui.wizard.client.WebServiceClientAxis2Type;
import org.eclipse.wst.command.internal.env.core.data.DataMappingRegistry;
import org.eclipse.wst.command.internal.env.ui.widgets.INamedWidgetContributor;
import org.eclipse.wst.command.internal.env.ui.widgets.INamedWidgetContributorFactory;
import org.eclipse.wst.command.internal.env.ui.widgets.WidgetBindingToWidgetFactoryAdapter;
public class Axis2ClientConfigWidgetFactory implements INamedWidgetContributorFactory{
private INamedWidgetContributor proxyConfigWidget;
private INamedWidgetContributor mappingsWidget;
private Axis2ProxyWidget proxyWidget;
private WidgetBindingToWidgetFactoryAdapter adapter;
private DataModel model;
private WebServiceClientAxis2Type wsClientAxis2Type;
private DataMappingRegistry dataRegistry;
public Axis2ClientConfigWidgetFactory(){
}
public INamedWidgetContributor getFirstNamedWidget() {
init();
//wsClientAxis2Type.setWebServiceDataModel(model);
return proxyConfigWidget;
}
public INamedWidgetContributor getNextNamedWidget( INamedWidgetContributor widgetContributor) {
return widgetContributor == proxyConfigWidget && proxyWidget.isGenProxy()
? mappingsWidget
: null;
}
public void registerDataMappings(DataMappingRegistry dataRegistry) {
this.dataRegistry=dataRegistry;
// Map the data model from the defaulting command to this widget factory.
// The framework will actually to the call to getWebServiceDataModel in
// the ExampleDefaultingCommand class and then call the setWebServiceDataModel
// method in this class.
dataRegistry.addMapping( Axis2ClientDefaultingCommand.class,
"WebServiceDataModel", //$NON-NLS-1$
Axis2ClientConfigWidgetFactory.class );
}
public void setWebServiceDataModel( DataModel model ){
this.model = model;
}
private void init(){
wsClientAxis2Type = new WebServiceClientAxis2Type(model);
adapter = new WidgetBindingToWidgetFactoryAdapter(wsClientAxis2Type );
proxyConfigWidget = adapter.getWidget( "AxisClientStart" ); //$NON-NLS-1$
proxyWidget = (Axis2ProxyWidget)proxyConfigWidget
.getWidgetContributorFactory().create();
mappingsWidget = adapter.getWidget( "AxisClientBeanMapping" ); //$NON-NLS-1$
adapter.registerDataMappings( dataRegistry );
}
}