This commit was manufactured by cvs2svn to create tag 'R1_0_2'.
diff --git a/bundles/org.eclipse.jst.ws.axis.consumption.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.jst.ws.axis.consumption.core/META-INF/MANIFEST.MF
index f2e58bf..4e118de 100644
--- a/bundles/org.eclipse.jst.ws.axis.consumption.core/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.jst.ws.axis.consumption.core/META-INF/MANIFEST.MF
@@ -2,20 +2,18 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %PLUGIN_NAME
 Bundle-SymbolicName: org.eclipse.jst.ws.axis.consumption.core; singleton:=true
-Bundle-Version: 1.0.101.qualifier
+Bundle-Version: 1.0.1.qualifier
 Bundle-Activator: org.eclipse.jst.ws.internal.axis.consumption.core.plugin.WebServiceAxisConsumptionCorePlugin
 Bundle-Vendor: %PLUGIN_PROVIDER
 Bundle-Localization: plugin
-Export-Package: org.eclipse.jst.ws.internal.axis.consumption.core;x-internal:=true,
- org.eclipse.jst.ws.internal.axis.consumption.core.command;x-internal:=true,
- org.eclipse.jst.ws.internal.axis.consumption.core.common;x-internal:=true,
- org.eclipse.jst.ws.internal.axis.consumption.core.plugin;x-internal:=true
+Export-Package: org.eclipse.jst.ws.internal.axis.consumption.core,
+ org.eclipse.jst.ws.internal.axis.consumption.core.command,
+ org.eclipse.jst.ws.internal.axis.consumption.core.common,
+ org.eclipse.jst.ws.internal.axis.consumption.core.plugin
 Require-Bundle: org.apache.ant,
  org.eclipse.core.resources,
  org.eclipse.core.runtime,
- org.eclipse.jdt.core,
  org.eclipse.wst.command.env.core,
- org.eclipse.wst.ws,
  org.eclipse.jst.ws,
  org.eclipse.jst.ws.consumption,
  org.eclipse.jst.j2ee.web,
@@ -25,5 +23,4 @@
  org.eclipse.core.commands,
  org.eclipse.wst.common.environment,
  org.eclipse.wst.command.env
-Eclipse-LazyStart: true
-
+Eclipse-AutoStart: true
diff --git a/bundles/org.eclipse.jst.ws.axis.consumption.core/build.properties b/bundles/org.eclipse.jst.ws.axis.consumption.core/build.properties
index c772b64..5da3122 100644
--- a/bundles/org.eclipse.jst.ws.axis.consumption.core/build.properties
+++ b/bundles/org.eclipse.jst.ws.axis.consumption.core/build.properties
@@ -2,5 +2,6 @@
 bin.includes = .,\
                plugin.properties,\
                plugin.xml,\
+               readme.html,\
                META-INF/,\
                about.html
diff --git a/bundles/org.eclipse.jst.ws.axis.consumption.core/plugin.properties b/bundles/org.eclipse.jst.ws.axis.consumption.core/plugin.properties
index 5735482..5e9ff7c 100644
--- a/bundles/org.eclipse.jst.ws.axis.consumption.core/plugin.properties
+++ b/bundles/org.eclipse.jst.ws.axis.consumption.core/plugin.properties
@@ -14,9 +14,3 @@
 #
 PLUGIN_NAME=Web service Axis Consumption Core
 PLUGIN_PROVIDER=Eclipse.org
-
-xpWSDDContentType = Axis Web Service Deployment Descriptor
-
-X_WEB_SERVICE_LOCATOR_AXIS=Apache Axis Web Service Locator
-X_WEB_SERVICE_LOCATOR_CATEGORY_AXIS=Apache Axis Components
-
diff --git a/bundles/org.eclipse.jst.ws.axis.consumption.core/plugin.xml b/bundles/org.eclipse.jst.ws.axis.consumption.core/plugin.xml
index 599cd19..c911fbf 100644
--- a/bundles/org.eclipse.jst.ws.axis.consumption.core/plugin.xml
+++ b/bundles/org.eclipse.jst.ws.axis.consumption.core/plugin.xml
@@ -3,7 +3,7 @@
 
 <plugin>
 
-   <extension point="org.eclipse.jst.ws.consumption.wsfinder">
+     <extension point="org.eclipse.jst.ws.consumption.wsfinder">
       <wsfinder
             id="org.eclipse.jst.ws.internal.axis.consumption.core.wsfinder.WSFinderAxis"
             name="org.eclipse.jst.ws.internal.axis.consumption.core.wsfinder.WSFinderAxis"
@@ -12,40 +12,4 @@
       </wsfinder>
    </extension>
 
-   <!-- Extension providing workspace WSDL discovery -->   
-   <extension point="org.eclipse.wst.ws.locator">
-
-      <webServiceLocatorCategory
-            id="org.eclipse.jst.ws.internal.axis.consumption.core.locator.category.axis"
-            label="%X_WEB_SERVICE_LOCATOR_CATEGORY_AXIS"/>
-
-      <webServiceLocator
-            class="org.eclipse.jst.ws.internal.axis.consumption.core.locator.AxisWebServiceLocator"
-            id="org.eclipse.jst.ws.internal.axis.consumption.core.locator.axis"
-            category="org.eclipse.jst.ws.internal.axis.consumption.core.locator.category.axis"
-            label="%X_WEB_SERVICE_LOCATOR_AXIS">
-      </webServiceLocator>
-
-   </extension>
-
-
-   <!-- define a wsdd file type for Axis Web Service Deployment Descriptors -->
-   <extension point="org.eclipse.team.core.fileTypes">
-      <fileTypes
-            type="text"
-            extension="wsdd">
-      </fileTypes>
-   </extension>
-   
-   <!-- define a wsdd content type for Axis Web Service Deployment Descriptors -->
-   <extension point="org.eclipse.core.runtime.contentTypes">
-      <content-type
-            priority="high"
-            name="%xpWSDDContentType"
-            id="wsddsource"
-            base-type="org.eclipse.core.runtime.xml"
-            default-charset="UTF-8"
-            file-extensions="wsdd" />
-   </extension>
-
 </plugin>
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.ws.axis.consumption.core/src/org/eclipse/jst/ws/internal/axis/consumption/core/command/Java2WSDLCommand.java b/bundles/org.eclipse.jst.ws.axis.consumption.core/src/org/eclipse/jst/ws/internal/axis/consumption/core/command/Java2WSDLCommand.java
index ae62c04..650f9dd 100644
--- a/bundles/org.eclipse.jst.ws.axis.consumption.core/src/org/eclipse/jst/ws/internal/axis/consumption/core/command/Java2WSDLCommand.java
+++ b/bundles/org.eclipse.jst.ws.axis.consumption.core/src/org/eclipse/jst/ws/internal/axis/consumption/core/command/Java2WSDLCommand.java
@@ -6,10 +6,7 @@
  * http://www.eclipse.org/legal/epl-v10.html
  * 
  * Contributors:
- * IBM Corporation - initial API and implementation
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060106   121199 jesper@selskabet.org - Jesper Møller
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jst.ws.internal.axis.consumption.core.command;
 
diff --git a/bundles/org.eclipse.jst.ws.axis.consumption.core/src/org/eclipse/jst/ws/internal/axis/consumption/core/locator/AxisWebServiceLocator.java b/bundles/org.eclipse.jst.ws.axis.consumption.core/src/org/eclipse/jst/ws/internal/axis/consumption/core/locator/AxisWebServiceLocator.java
deleted file mode 100644
index 79c9a9d..0000000
--- a/bundles/org.eclipse.jst.ws.axis.consumption.core/src/org/eclipse/jst/ws/internal/axis/consumption/core/locator/AxisWebServiceLocator.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060317   127456 cbrealey@ca.ibm.com - Chris Brealey
- *******************************************************************************/
-
-package org.eclipse.jst.ws.internal.axis.consumption.core.locator;
-
-import java.util.LinkedList;
-import java.util.List;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jdt.core.IJavaModel;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.core.ITypeHierarchy;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.wst.ws.internal.wsfinder.AbstractWebServiceLocator;
-import org.eclipse.wst.ws.internal.wsrt.WebServiceClientInfo;
-
-/**
- * @author cbrealey
- * The Axis Web service locator plugs itself into the
- * Web Services Finder framework and does the job of
- * locating Axis clients and services.
- */
-public class AxisWebServiceLocator extends AbstractWebServiceLocator
-{
-	private String AXIS_STUB = "org.apache.axis.client.Stub";
-	
-	/**
-	 * Searches the workspace for Axis clients as
-	 * identified by non-stub classes that implement
-	 * SEIs that are implemented by stubs that implement
-	 * org.apache.axis.client.Stub.
-	 * @param monitor A progress monitor, possibly null.
-	 * @return A possibly empty list of WebServiceClientInfo objects.
-	 */
-	public List getWebServiceClients (IProgressMonitor monitor)
-	{
-		List list = new LinkedList();
-		IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-		IJavaModel javaModel = JavaCore.create(root);
-		try
-		{
-			javaModel.open(monitor);
-			IJavaProject[] javaProjects = javaModel.getJavaProjects();
-			for (int i=0; i<javaProjects.length; i++)
-			{
-				// We're only interested in Java projects within which
-				// the Axis runtime's client "Stub" class is loadable:
-				IType axisStub = javaProjects[i].findType(AXIS_STUB);
-				if (axisStub != null)
-				{
-					// Find "Proxy" classes in the project and add to the list.
-					addAxisProxies(javaProjects[i],axisStub,list,monitor);
-				}
-			}
-			javaModel.close();
-		}
-		catch (Exception e)
-		{
-			// Fall thru and return an empty list.
-		}
-		return list;
-	}
-	
-	/**
-	 * Tries to find Axis "Proxy" classes related the given Stub.
-	 * @param axisStub The Axis client "Stub" from which to search.
-	 * @param list A list to which we'll add and WebServiceClientInfo
-	 * objects for "Proxy" classes we find in the search. 
-	 */
-	private void addAxisProxies (IJavaProject javaProject, IType axisStub, List list, IProgressMonitor monitor)
-	{
-		try
-		{
-			// Compute a hierarchy to help us find all the
-			// generated Stub subclasses of the Axis "Stub"
-			// class across the entire workspace:
-			ITypeHierarchy axisStubHierarchy = axisStub.newTypeHierarchy(javaProject,monitor);
-			IType[] stubs = axisStubHierarchy.getSubtypes(axisStub);
-			for (int s=0; s<stubs.length; s++)
-			{
-				// For each stub, find all its super-interfaces of which
-				// there should be one, namely the generated SEI:
-				IType seis[] = axisStubHierarchy.getSuperInterfaces(stubs[s]);
-				for (int i=0; i<seis.length; i++)
-				{
-					try
-					{
-						// Compute a hierarchy to help us find all the
-						// generated classes that implement the SEI
-						// confined to the current project:
-						ITypeHierarchy seiHierarchy = seis[i].newTypeHierarchy(javaProject,monitor);
-						IType[] proxies = seiHierarchy.getSubtypes(seis[i]);
-						for (int p=0; p<proxies.length; p++)
-						{
-							// Under normal circumstances we should find two subclasses:
-							// 1. The generated stub that got us here (two loops above).
-							// 2. The generated "Proxy" that we're looking for.
-							// Skip #1 and capture #2:
-							if (!proxies[p].getFullyQualifiedName().equals(stubs[s].getFullyQualifiedName()))
-							{
-								WebServiceClientInfo wscInfo = newWebServiceClientInfo(proxies[p]);
-								if (wscInfo != null)
-								{
-									list.add(wscInfo);
-								}
-							}
-						}
-					}
-					catch (Exception e)
-					{
-						// We'll land here if the JDT was unable to compute
-						// a type hierarchy for the current SEI.
-						// This should never happen, but if it does,
-						// there's not much we can do except bypass the SEI
-						// and loop on to the next one.
-					}
-				}
-			}
-		}
-		catch (Exception e)
-		{
-			// We'll land here if JDT was unable to compute
-			// a type hierarchy for the Axis client "Stub" class.
-			// This should never happen, but if it does,
-			// there's not much we can do except bail out, having
-			// added nothing to the list.
-		}
-	}
-	
-	/**
-	 * Creates a new WebServiceClientInfo object for a
-	 * JDT IType object representing a generated Proxy.
-	 * @param axisProxy The IType of the generated Proxy.
-	 * @return A new WebServiceClientInfo object describing the Proxy,
-	 * or null if the IType does not appear to describe a normal Proxy. 
-	 */
-	private WebServiceClientInfo newWebServiceClientInfo (IType axisProxy)
-	{
-		WebServiceClientInfo wscInfo = null;
-		try
-		{
-			IResource resource = axisProxy.getUnderlyingResource();
-			if (resource != null)
-			{
-				IPath proxyPath = resource.getLocation();
-				if (proxyPath != null)
-				{
-					String proxyURL = proxyPath.toFile().toURL().toString();
-					wscInfo = new WebServiceClientInfo();
-					wscInfo.setImplURL(proxyURL);
-				}
-			}
-		}
-		catch (Exception e)
-		{
-			// We'll land here if we could not convert the IType
-			// into an IResource, or if we could not compute a URL
-			// from that resource. Either way, it definitely isn't
-			// a normal generated Proxy, so get out and return null.
-		}
-		return wscInfo;		
-	}
-
-	/**
-	 * Searches the workspace for Axis services as
-	 * identified by deploy.wsdd <service> elements
-	 * in projects with an Axis servlet registered
-	 * in the web.xml descriptor.
-	 * @param monitor A progress monitor, possibly null.
-	 * @return A possibly empty list of WebServiceInfo objects.
-	 */
-	public List getWebServices (IProgressMonitor monitor)
-	{
-		return super.getWebServices(monitor);
-	}
-}
diff --git a/bundles/org.eclipse.jst.ws.axis.consumption.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.jst.ws.axis.consumption.ui/META-INF/MANIFEST.MF
index 7b2cace..0c9b929 100644
--- a/bundles/org.eclipse.jst.ws.axis.consumption.ui/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.jst.ws.axis.consumption.ui/META-INF/MANIFEST.MF
@@ -2,18 +2,18 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %PLUGIN_NAME
 Bundle-SymbolicName: org.eclipse.jst.ws.axis.consumption.ui; singleton:=true
-Bundle-Version: 1.0.101.qualifier
+Bundle-Version: 1.0.1.qualifier
 Bundle-Activator: org.eclipse.jst.ws.internal.axis.consumption.ui.plugin.WebServiceAxisConsumptionUIPlugin
 Bundle-Vendor: %PLUGIN_PROVIDER
 Bundle-Localization: plugin
-Export-Package: org.eclipse.jst.ws.internal.axis.consumption.ui;x-internal:=true,
- org.eclipse.jst.ws.internal.axis.consumption.ui.command;x-internal:=true,
- org.eclipse.jst.ws.internal.axis.consumption.ui.plugin;x-internal:=true,
- org.eclipse.jst.ws.internal.axis.consumption.ui.task;x-internal:=true,
- org.eclipse.jst.ws.internal.axis.consumption.ui.util;x-internal:=true,
- org.eclipse.jst.ws.internal.axis.consumption.ui.widgets;x-internal:=true,
- org.eclipse.jst.ws.internal.axis.consumption.ui.wizard.client;x-internal:=true,
- org.eclipse.jst.ws.internal.axis.consumption.ui.wsrt;x-internal:=true
+Export-Package: org.eclipse.jst.ws.internal.axis.consumption.ui,
+ org.eclipse.jst.ws.internal.axis.consumption.ui.command,
+ org.eclipse.jst.ws.internal.axis.consumption.ui.plugin,
+ org.eclipse.jst.ws.internal.axis.consumption.ui.task,
+ org.eclipse.jst.ws.internal.axis.consumption.ui.util,
+ org.eclipse.jst.ws.internal.axis.consumption.ui.widgets,
+ org.eclipse.jst.ws.internal.axis.consumption.ui.wizard.client,
+ org.eclipse.jst.ws.internal.axis.consumption.ui.wsrt
 Require-Bundle: org.eclipse.ui,
  org.eclipse.core.resources,
  org.eclipse.emf.common,
@@ -41,7 +41,6 @@
  org.wsdl4j,
  org.apache.axis,
  org.eclipse.wst.common.frameworks,
- org.eclipse.wst.common.environment,
- com.ibm.icu
-Eclipse-LazyStart: true
+ org.eclipse.wst.common.environment
+Eclipse-AutoStart: true
 Plugin-Class: org.eclipse.jst.ws.internal.axis.consumption.ui.plugin.WebServiceAxisConsumptionUIPlugin
diff --git a/bundles/org.eclipse.jst.ws.axis.consumption.ui/src/org/eclipse/jst/ws/internal/axis/consumption/ui/AxisConsumptionUI.properties b/bundles/org.eclipse.jst.ws.axis.consumption.ui/src/org/eclipse/jst/ws/internal/axis/consumption/ui/AxisConsumptionUI.properties
index 83cab3b..0e6925d 100644
--- a/bundles/org.eclipse.jst.ws.axis.consumption.ui/src/org/eclipse/jst/ws/internal/axis/consumption/ui/AxisConsumptionUI.properties
+++ b/bundles/org.eclipse.jst.ws.axis.consumption.ui/src/org/eclipse/jst/ws/internal/axis/consumption/ui/AxisConsumptionUI.properties
@@ -1,15 +1,12 @@
 ###############################################################################
-# Copyright (c) 2004, 2006 IBM Corporation and others.
+# Copyright (c) 2004 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
-# yyyymmdd bug      Email and other contact information
-# -------- -------- -----------------------------------------------------------
-# 20060216   126989 pmoogk@ca.ibm.com - Peter Moogk
+#     IBM Corporation - initial API and implementation
 ###############################################################################
 
 #
@@ -64,8 +61,8 @@
 #
 # Messages for WebSerivceAxisMappingsPage
 #
-PAGE_TITLE_WS_BEAN2XML=Web Service Package to Namespace Mapping
-PAGE_TITLE_WS_XML2PROXY=Web Service Client Namespace to Package Mapping
+PAGE_TITLE_WS_BEAN2XML=Web Service package to namespace mapping
+PAGE_TITLE_WS_XML2PROXY=Web Service Client namespace to package mapping
 PAGE_DESC_P2N_MAPPINGS=Define custom mapping for package to namespace.
 
 
diff --git a/bundles/org.eclipse.jst.ws.axis.consumption.ui/src/org/eclipse/jst/ws/internal/axis/consumption/ui/command/DefaultsForClientJavaWSDLCommand.java b/bundles/org.eclipse.jst.ws.axis.consumption.ui/src/org/eclipse/jst/ws/internal/axis/consumption/ui/command/DefaultsForClientJavaWSDLCommand.java
index 7881c7e..93d3f54 100644
--- a/bundles/org.eclipse.jst.ws.axis.consumption.ui/src/org/eclipse/jst/ws/internal/axis/consumption/ui/command/DefaultsForClientJavaWSDLCommand.java
+++ b/bundles/org.eclipse.jst.ws.axis.consumption.ui/src/org/eclipse/jst/ws/internal/axis/consumption/ui/command/DefaultsForClientJavaWSDLCommand.java
@@ -1,18 +1,16 @@
 /*******************************************************************************
- * Copyright (c) 2003, 2006 IBM Corporation and others.
+ * Copyright (c) 2003, 2004 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060216   115144 pmoogk@ca.ibm.com - Peter Moogk
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jst.ws.internal.axis.consumption.ui.command;
 
+
 import org.eclipse.core.resources.IFolder;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IResource;
@@ -20,7 +18,6 @@
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.jdt.core.IJavaProject;
 import org.eclipse.jdt.core.JavaCore;
@@ -34,153 +31,127 @@
 import org.eclipse.wst.common.environment.IEnvironment;
 import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelOperation;
 
-public class DefaultsForClientJavaWSDLCommand extends AbstractDataModelOperation
-{
-	private JavaWSDLParameter	javaWSDLParam_;
-	private IProject					proxyProject_;
-	private String						WSDLServiceURL_;
-	private String						WSDLServicePathname_;
-	private String						outputFolder_;
 
-	public DefaultsForClientJavaWSDLCommand()
-	{
+public class DefaultsForClientJavaWSDLCommand extends AbstractDataModelOperation {
+
+	private JavaWSDLParameter javaWSDLParam_;
+	private IProject proxyProject_;
+	private String WSDLServiceURL_;
+	private String WSDLServicePathname_;
+	
+	public DefaultsForClientJavaWSDLCommand( ) {
 	}
-
-	public IStatus execute(IProgressMonitor monitor, IAdaptable adaptable)
+	
+	public IStatus execute( IProgressMonitor monitor, IAdaptable adaptable ) 
 	{
 		IEnvironment environment = getEnvironment();
 		IStatus status;
-		
-		if( outputFolder_ == null )
-		{
-			IPath[] paths = ResourceUtils.getAllJavaSourceLocations(proxyProject_);
-			outputFolder_ = paths[0].toString();
-		}
-		
-		if (javaWSDLParam_ == null)
-		{
-			status = StatusUtils
-					.errorStatus(AxisConsumptionCoreMessages.MSG_ERROR_JAVA_WSDL_PARAM_NOT_SET);
+		if (javaWSDLParam_ == null) {
+			status = StatusUtils.errorStatus(
+					AxisConsumptionCoreMessages.MSG_ERROR_JAVA_WSDL_PARAM_NOT_SET);
 			environment.getStatusHandler().reportError(status);
 			return status;
 		}
+
 		javaWSDLParam_.setMetaInfOnly(false);
 		javaWSDLParam_.setServerSide(JavaWSDLParameter.SERVER_SIDE_NONE);
-		ModuleCoreNature mn = ModuleCoreNature.getModuleCoreNature(proxyProject_);
-		if (mn != null)
-		{
-			IPath webModuleServerRoot = ResourceUtils.getJavaSourceLocation(proxyProject_);
-			// String output = PlatformUtils.getPlatformURL(webModuleServerRoot);
-			String output = ResourceUtils.findResource(webModuleServerRoot).getLocation().toString();
-			// String output =
-			// ResourceUtils.getWorkspaceRoot().getFolder(webModuleServerRoot).getLocation().toString();
-			IPath javaOutput = ResourceUtils.findResource( new Path( outputFolder_ )).getLocation();
-			javaWSDLParam_.setJavaOutput(javaOutput.toString());
-			
+		
+	    ModuleCoreNature mn = ModuleCoreNature.getModuleCoreNature(proxyProject_);
+	    if (mn!=null)
+	    {
+			IPath webModuleServerRoot = ResourceUtils.getJavaSourceLocation(proxyProject_ );
+			//String output = PlatformUtils.getPlatformURL(webModuleServerRoot);
+			String output =	ResourceUtils.findResource(webModuleServerRoot).getLocation().toString();
+//			String output = ResourceUtils.getWorkspaceRoot().getFolder(webModuleServerRoot).getLocation().toString();
+			javaWSDLParam_.setJavaOutput(output);
+
+
 			IFolder webModuleContainer = ResourceUtils.getWebComponentServerRoot(proxyProject_);
-			if (webModuleContainer != null)
+			if (webModuleContainer !=null)
 			{
-				IPath webModulePath = webModuleContainer.getFullPath();
-				// output = PlatformUtils.getPlatformURL(webModulePath);
-				IResource res = ResourceUtils.findResource(webModulePath);
-				if (res != null)
-				{
-					output = res.getLocation().toString();
-				}
+			  IPath webModulePath = webModuleContainer.getFullPath();
+			  //output =  PlatformUtils.getPlatformURL(webModulePath);
+			  IResource res = ResourceUtils.findResource(webModulePath);
+			  if (res!=null){
+				  output = res.getLocation().toString();
+			  } 
+			  javaWSDLParam_.setOutput(output);
+			}	
+	    }
+	    else
+	    {
+	    	//Check if it's a plain old Java project
+	    	IJavaProject javaProject = null;
+	  
+	 		 javaProject = JavaCore.create(proxyProject_);    
+	 		 if (javaProject != null)
+	 		 {
+	 			IPath webModuleServerRoot = ResourceUtils.getJavaSourceLocation(proxyProject_);
+				String output =	ResourceUtils.findResource(webModuleServerRoot).getLocation().toString();
+				javaWSDLParam_.setJavaOutput(output);
 				javaWSDLParam_.setOutput(output);
-			}
-		}
-		else
-		{
-			// Check if it's a plain old Java project
-			IJavaProject javaProject = null;
-			javaProject = JavaCore.create(proxyProject_);
-			if (javaProject != null)
-			{
-				IPath output = ResourceUtils.findResource( new Path( outputFolder_ )).getLocation();
-				javaWSDLParam_.setJavaOutput(output.toString());
-				javaWSDLParam_.setOutput(output.toString());
-			}
-			else
-			{
-				// Not familiar with this kind of project
-				status = StatusUtils.errorStatus(AxisConsumptionUIMessages.MSG_WARN_NO_JAVA_NATURE);
+	 		 }
+	 		 else
+	 		 {
+	 			 //Not familiar with this kind of project
+	 	 		 status = StatusUtils.errorStatus( AxisConsumptionUIMessages.MSG_WARN_NO_JAVA_NATURE);	
+	 	 		 environment.getStatusHandler().reportError(status);
+	 	 		 return status;
+	 			 
+	 		 }
+	    }
+
+
+
+		if (WSDLServicePathname_ == null) {
+			
+			if (WSDLServiceURL_ == null) {
+				status = StatusUtils.errorStatus(
+						AxisConsumptionUIMessages.MSG_ERROR_WSDL_LOCATION_NOT_SET);
 				environment.getStatusHandler().reportError(status);
 				return status;
 			}
-		}
-		if (WSDLServicePathname_ == null)
-		{
-			if (WSDLServiceURL_ == null)
-			{
-				status = StatusUtils.errorStatus(AxisConsumptionUIMessages.MSG_ERROR_WSDL_LOCATION_NOT_SET);
-				environment.getStatusHandler().reportError(status);
-				return status;
-			}
-		}
-		else
-		{
+		} else {
 			WSDLServiceURL_ = PlatformUtils.getFileFromPlatform(WSDLServicePathname_);
 		}
+
 		javaWSDLParam_.setInputWsdlLocation(WSDLServiceURL_);
+
 		return Status.OK_STATUS;
 	}
 
 	/**
 	 * Returns the javaWSDLParam.
-	 * 
 	 * @return JavaWSDLParameter
 	 */
-	public JavaWSDLParameter getJavaWSDLParam()
-	{
+	public JavaWSDLParameter getJavaWSDLParam() {
 		return javaWSDLParam_;
 	}
 
 	/**
 	 * Sets the javaWSDLParam.
-	 * 
-	 * @param javaWSDLParam
-	 *          The javaWSDLParam to set
+	 * @param javaWSDLParam The javaWSDLParam to set
 	 */
-	public void setJavaWSDLParam(JavaWSDLParameter javaWSDLParam)
-	{
+	public void setJavaWSDLParam(JavaWSDLParameter javaWSDLParam) {
 		this.javaWSDLParam_ = javaWSDLParam;
 	}
 
 	/**
-	 * @param proxyProject_
-	 *          The proxyProject_ to set.
+	 * @param proxyProject_ The proxyProject_ to set.
 	 */
-	public void setProxyProject(IProject proxyProject)
-	{
+	public void setProxyProject(IProject proxyProject) {
 		this.proxyProject_ = proxyProject;
 	}
-
 	/**
-	 * @param serviceURL_
-	 *          The wSDLServiceURL_ to set.
+	 * @param serviceURL_ The wSDLServiceURL_ to set.
 	 */
-	public void setWSDLServiceURL(String serviceURL)
-	{
+	public void setWSDLServiceURL(String serviceURL) {
 		WSDLServiceURL_ = serviceURL;
 	}
-
 	/**
-	 * @param servicePathname_
-	 *          The wSDLServicePathname_ to set.
+	 * @param servicePathname_ The wSDLServicePathname_ to set.
 	 */
-	public void setWSDLServicePathname(String servicePathname)
-	{
+	public void setWSDLServicePathname(String servicePathname) {
 		WSDLServicePathname_ = servicePathname;
 	}
-
-	public String getOutputFolder()
-	{
-	  return outputFolder_;	
-	}
-	
-	public void setOutputFolder(String outputFolder)
-	{
-		outputFolder_ = outputFolder;
-	}
 }
diff --git a/bundles/org.eclipse.jst.ws.axis.consumption.ui/src/org/eclipse/jst/ws/internal/axis/consumption/ui/task/Stub2BeanCommand.java b/bundles/org.eclipse.jst.ws.axis.consumption.ui/src/org/eclipse/jst/ws/internal/axis/consumption/ui/task/Stub2BeanCommand.java
index 955e06d..68b9a78 100644
--- a/bundles/org.eclipse.jst.ws.axis.consumption.ui/src/org/eclipse/jst/ws/internal/axis/consumption/ui/task/Stub2BeanCommand.java
+++ b/bundles/org.eclipse.jst.ws.axis.consumption.ui/src/org/eclipse/jst/ws/internal/axis/consumption/ui/task/Stub2BeanCommand.java
@@ -1,15 +1,12 @@
 /*******************************************************************************
- * Copyright (c) 2003, 2006 IBM Corporation and others.
+ * Copyright (c) 2003, 2004 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060216   115144 pmoogk@ca.ibm.com - Peter Moogk
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 
 package org.eclipse.jst.ws.internal.axis.consumption.ui.task;
@@ -21,12 +18,14 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Vector;
+
 import javax.wsdl.Definition;
 import javax.wsdl.Port;
 import javax.wsdl.PortType;
 import javax.wsdl.Service;
 import javax.wsdl.extensions.soap.SOAPAddress;
 import javax.xml.namespace.QName;
+
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IAdaptable;
@@ -52,7 +51,6 @@
   private String discoveredWsdlPortElementName;
   private Vector portTypes_;
   private String proxyBean_;
-  private String outputFolder_;
   
   private IProject clientProject_;
   
@@ -152,7 +150,6 @@
             portTypes_.add(portTypeID.toString());
             Stub2BeanInfo stub2BeanInfo = new Stub2BeanInfo();
             stub2BeanInfo.setClientProject(clientProject_);
-            stub2BeanInfo.setOutputFolder( outputFolder_ );
             String portTypePkgName = NameMappingUtils.getPackageName(portType.getQName().getNamespaceURI(), pkg2nsMapping);
             String portTypeClassName = computeClassName(portTypeQName.getLocalPart());
             stub2BeanInfo.setPackage(portTypePkgName);
@@ -240,9 +237,4 @@
 	public String getProxyBean() {
 		return proxyBean_;
 	}	
-	
-	public void setOutputFolder( String outputFolder )
-	{
-		outputFolder_ = outputFolder;
-	}
 }
diff --git a/bundles/org.eclipse.jst.ws.axis.consumption.ui/src/org/eclipse/jst/ws/internal/axis/consumption/ui/task/Stub2BeanInfo.java b/bundles/org.eclipse.jst.ws.axis.consumption.ui/src/org/eclipse/jst/ws/internal/axis/consumption/ui/task/Stub2BeanInfo.java
index 8561175..a48da86 100644
--- a/bundles/org.eclipse.jst.ws.axis.consumption.ui/src/org/eclipse/jst/ws/internal/axis/consumption/ui/task/Stub2BeanInfo.java
+++ b/bundles/org.eclipse.jst.ws.axis.consumption.ui/src/org/eclipse/jst/ws/internal/axis/consumption/ui/task/Stub2BeanInfo.java
@@ -1,16 +1,12 @@
 /*******************************************************************************
- * Copyright (c) 2003, 2006 IBM Corporation and others.
+ * Copyright (c) 2003, 2004 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060216   115144 pmoogk@ca.ibm.com - Peter Moogk
- * 20060216   127138 pmoogk@ca.ibm.com - Peter Moogk
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 
 package org.eclipse.jst.ws.internal.axis.consumption.ui.task;
@@ -21,22 +17,28 @@
 import java.io.Writer;
 import java.util.Iterator;
 import java.util.List;
+import java.util.StringTokenizer;
 import java.util.Vector;
+
+import org.eclipse.core.resources.IFolder;
 import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.Path;
+import org.eclipse.jdt.core.JavaCore;
 import org.eclipse.jem.java.JavaClass;
 import org.eclipse.jem.java.JavaHelpers;
 import org.eclipse.jem.java.JavaParameter;
 import org.eclipse.jem.java.JavaVisibilityKind;
 import org.eclipse.jem.java.Method;
 import org.eclipse.jst.ws.internal.common.JavaMOFUtils;
+import org.eclipse.jst.ws.internal.common.ResourceUtils;
 import org.eclipse.jst.ws.internal.plugin.WebServicePlugin;
 import org.eclipse.wst.command.internal.env.common.FileResourceUtils;
+import org.eclipse.wst.common.componentcore.ModuleCoreNature;
 import org.eclipse.wst.common.environment.IStatusHandler;
-import com.ibm.icu.util.StringTokenizer;
 
 public class Stub2BeanInfo
 {
@@ -54,7 +56,6 @@
   private Vector usedNames;
   
   private IProject clientProject_;
-  private String   outputFolder_;
   
   public Stub2BeanInfo()
   {
@@ -73,11 +74,6 @@
   	this.clientProject_ =  clientProject;
   }
   
-  public void setOutputFolder( String outputFolder )
-  {
-  	outputFolder_ = outputFolder;
-  }
-  
   public void setPackage(String pkgName)
   {
 	  package_ = pkgName;
@@ -173,10 +169,35 @@
     sb.append(".java");
 
     ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
-    
-    IPath newFilePath = new Path(outputFolder_).append( sb.toString() );
-    
-    FileResourceUtils.createFile(WebServicePlugin.getInstance().getResourceContext(), newFilePath, bais, progressMonitor, statusMonitor);
+    IPath sourceFolderPath = null;
+    IPath filePath = null;
+    ModuleCoreNature mn = ModuleCoreNature.getModuleCoreNature(clientProject_);
+    if (mn!=null)
+    {
+    	sourceFolderPath = ResourceUtils.getJavaSourceLocation(clientProject_);
+        IFolder sourceFolder = (IFolder)ResourceUtils.findResource(sourceFolderPath);
+        filePath = sourceFolder.getFile(new Path(sb.toString())).getFullPath();    	
+    }
+    else
+    {
+        // It's a plain old Java project
+    	JavaCore.create(clientProject_);
+
+		sourceFolderPath = ResourceUtils.getJavaSourceLocation(clientProject_);
+		IResource sourceFolderResource = ResourceUtils.findResource(sourceFolderPath);
+		if (sourceFolderResource instanceof IFolder) 
+		{
+				IFolder sourceFolder = (IFolder) sourceFolderResource;
+				filePath = sourceFolder.getFile(new Path(sb.toString())).getFullPath();
+		} else 
+		{
+			// The source must be going directly in the project
+			filePath = clientProject_.getFile(new Path(sb.toString())).getFullPath();
+		}
+		
+    }
+
+    FileResourceUtils.createFile(WebServicePlugin.getInstance().getResourceContext(), filePath, bais, progressMonitor, statusMonitor);
   }
 
   private void writePackage(Writer w) throws IOException
diff --git a/bundles/org.eclipse.jst.ws.axis.consumption.ui/src/org/eclipse/jst/ws/internal/axis/consumption/ui/util/WSDLUtils.java b/bundles/org.eclipse.jst.ws.axis.consumption.ui/src/org/eclipse/jst/ws/internal/axis/consumption/ui/util/WSDLUtils.java
index 3cb3670..8f1a0da 100644
--- a/bundles/org.eclipse.jst.ws.axis.consumption.ui/src/org/eclipse/jst/ws/internal/axis/consumption/ui/util/WSDLUtils.java
+++ b/bundles/org.eclipse.jst.ws.axis.consumption.ui/src/org/eclipse/jst/ws/internal/axis/consumption/ui/util/WSDLUtils.java
@@ -1,23 +1,22 @@
 /*******************************************************************************
- * Copyright (c) 2003, 2006 IBM Corporation and others.
+ * Copyright (c) 2003, 2004 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060216   127138 pmoogk@ca.ibm.com - Peter Moogk
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 
 package org.eclipse.jst.ws.internal.axis.consumption.ui.util;
 
+import java.text.Collator;
 import java.util.Arrays;
 import java.util.Iterator;
 import java.util.Locale;
 import java.util.Map;
+import java.util.StringTokenizer;
 import javax.wsdl.Binding;
 import javax.wsdl.Definition;
 import javax.wsdl.Port;
@@ -29,8 +28,6 @@
 import javax.xml.namespace.QName;
 import org.apache.axis.wsdl.toJava.Utils;
 import org.eclipse.wst.wsdl.internal.impl.wsdl4j.WSDLFactoryImpl;
-import com.ibm.icu.text.Collator;
-import com.ibm.icu.util.StringTokenizer;
 
 public class WSDLUtils {
 
diff --git a/bundles/org.eclipse.jst.ws.axis.consumption.ui/src/org/eclipse/jst/ws/internal/axis/consumption/ui/widgets/AxisProxyWidget.java b/bundles/org.eclipse.jst.ws.axis.consumption.ui/src/org/eclipse/jst/ws/internal/axis/consumption/ui/widgets/AxisProxyWidget.java
index bc08bf1..fd7e076 100644
--- a/bundles/org.eclipse.jst.ws.axis.consumption.ui/src/org/eclipse/jst/ws/internal/axis/consumption/ui/widgets/AxisProxyWidget.java
+++ b/bundles/org.eclipse.jst.ws.axis.consumption.ui/src/org/eclipse/jst/ws/internal/axis/consumption/ui/widgets/AxisProxyWidget.java
@@ -1,30 +1,24 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
+ * Copyright (c) 2004 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060216   115144 pmoogk@ca.ibm.com - Peter Moogk
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jst.ws.internal.axis.consumption.ui.widgets;
 
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IPath;
 import org.eclipse.jst.ws.internal.axis.consumption.ui.AxisConsumptionUIMessages;
-import org.eclipse.jst.ws.internal.common.ResourceUtils;
 import org.eclipse.jst.ws.internal.ui.common.UIUtils;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Text;
 import org.eclipse.ui.PlatformUI;
 import org.eclipse.wst.command.internal.env.ui.widgets.SimpleWidgetDataContributor;
 import org.eclipse.wst.command.internal.env.ui.widgets.WidgetDataEvents;
@@ -37,7 +31,7 @@
   /*CONTEXT_ID PWJB0001 for the WSDL to Java Bindings Page*/
   private final String INFOPOP_PWJB_PAGE = "PWJB0001";	//$NON-NLS-1$
 		
-  private Combo outputFolderCombo_;
+  private Text folderText_;
   /*CONTEXT_ID PWJB0003 for the Folder field of the WSDL to Java Bindings Page*/
   private final String INFOPOP_PWJB_TEXT_FOLDER = "PWJB0003";	//$NON-NLS-1$
 
@@ -60,6 +54,7 @@
     											AxisConsumptionUIMessages.TOOLTIP_PWJB_CHECKBOX_GENPROXY,
                                                 INFOPOP_PWJB_CHECKBOX_GENPROXY );
     genProxyCheckbox_.addListener( SWT.Selection, statusListener );
+    
     genProxyCheckbox_.addSelectionListener( new SelectionAdapter()
                                             {
                                               public void widgetSelected( SelectionEvent evt )
@@ -70,10 +65,11 @@
     
     Composite textGroup = uiUtils.createComposite( parent, 2, 5, 0 );
     
-    outputFolderCombo_ = uiUtils.createCombo( textGroup, AxisConsumptionUIMessages.LABEL_FOLDER_NAME,
+    folderText_ = uiUtils.createText( textGroup, AxisConsumptionUIMessages.LABEL_FOLDER_NAME,
     									AxisConsumptionUIMessages.TOOLTIP_PWJB_TEXT_FOLDER,
     									INFOPOP_PWJB_TEXT_FOLDER,
     									SWT.SINGLE | SWT.BORDER | SWT.READ_ONLY );
+    folderText_.addListener( SWT.Modify, statusListener );
     
     showMappingsCheckbox_ = uiUtils.createCheckbox( parent, AxisConsumptionUIMessages.LABEL_EXPLORE_MAPPINGS_XML2BEAN,
     									AxisConsumptionUIMessages.TOOLTIP_N2P_SHOW_MAPPINGS,
@@ -89,30 +85,20 @@
   {
     boolean enabled = genProxyCheckbox_.getSelection();
     
-    outputFolderCombo_.setEnabled( enabled );
+    folderText_.setEnabled( enabled );
     showMappingsCheckbox_.setEnabled( enabled );
   }
   
-  public void setClientProject(IProject clientProject)
-  {  	
-    IPath[] paths = ResourceUtils.getAllJavaSourceLocations(clientProject);
-    
-    for (int i = 0; i < paths.length ; i++)
-    {
-      outputFolderCombo_.add(paths[i].toString());
-    }
-    
-    if( paths.length > 0 )
-    {
-    	outputFolderCombo_.select(0);
-    }
+  public void setProxyFolder( String proxyFolder )
+  {
+    folderText_.setText( proxyFolder );  
   }
   
-  public String getOutputFolder()
+  public String getProxyFolder()
   {
-  	return outputFolderCombo_.getText();
+     return folderText_.getText();  
   }
-        
+  
   public void setGenerateProxy( Boolean genProxy )
   {
     genProxyCheckbox_.setSelection( genProxy.booleanValue() );
diff --git a/bundles/org.eclipse.jst.ws.axis.consumption.ui/src/org/eclipse/jst/ws/internal/axis/consumption/ui/wizard/client/WebServiceClientAxisType.java b/bundles/org.eclipse.jst.ws.axis.consumption.ui/src/org/eclipse/jst/ws/internal/axis/consumption/ui/wizard/client/WebServiceClientAxisType.java
index 311064c..9d85018 100644
--- a/bundles/org.eclipse.jst.ws.axis.consumption.ui/src/org/eclipse/jst/ws/internal/axis/consumption/ui/wizard/client/WebServiceClientAxisType.java
+++ b/bundles/org.eclipse.jst.ws.axis.consumption.ui/src/org/eclipse/jst/ws/internal/axis/consumption/ui/wizard/client/WebServiceClientAxisType.java
@@ -1,15 +1,12 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
+ * Copyright (c) 2004 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060216   115144 pmoogk@ca.ibm.com - Peter Moogk
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jst.ws.internal.axis.consumption.ui.wizard.client;
 
@@ -52,12 +49,10 @@
     dataRegistry.addMapping( AxisClientDefaultingCommand.class, "ProxyProjectFolder", AxisProxyWidget.class, "ProxyFolder", null );
     dataRegistry.addMapping( AxisClientDefaultingCommand.class, "GenerateProxy", AxisProxyWidget.class);    
     dataRegistry.addMapping( AxisClientDefaultingCommand.class, "IsClientScenario", AxisProxyWidget.class);    
-    dataRegistry.addMapping( AxisClientDefaultingCommand.class, "ClientProject", AxisProxyWidget.class );
     dataRegistry.addMapping( AxisClientDefaultingCommand.class, "JavaWSDLParam", AxisMappingsWidget.class, "JavaParameter", null);
     
     // AxisProxyWidget
     dataRegistry.addMapping( AxisProxyWidget.class, "GenerateProxy", ClientExtensionOutputCommand.class );
-    dataRegistry.addMapping( AxisProxyWidget.class, "OutputFolder", DefaultsForClientJavaWSDLCommand.class );
     
     //AxisMappingsWidget
 	dataRegistry.addMapping(AxisMappingsWidget.class, "JavaParameter", DefaultsForHTTPBasicAuthCommand.class, "JavaWSDLParam", null); //OK
diff --git a/bundles/org.eclipse.jst.ws.axis.consumption.ui/src/org/eclipse/jst/ws/internal/axis/consumption/ui/wsrt/AxisWebServiceClient.java b/bundles/org.eclipse.jst.ws.axis.consumption.ui/src/org/eclipse/jst/ws/internal/axis/consumption/ui/wsrt/AxisWebServiceClient.java
index 370160d..1970bcd 100644
--- a/bundles/org.eclipse.jst.ws.axis.consumption.ui/src/org/eclipse/jst/ws/internal/axis/consumption/ui/wsrt/AxisWebServiceClient.java
+++ b/bundles/org.eclipse.jst.ws.axis.consumption.ui/src/org/eclipse/jst/ws/internal/axis/consumption/ui/wsrt/AxisWebServiceClient.java
@@ -1,15 +1,12 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
+ * Copyright (c) 2000, 2005 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060216   115144 pmoogk@ca.ibm.com - Peter Moogk
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 
 package org.eclipse.jst.ws.internal.axis.consumption.ui.wsrt;
@@ -146,7 +143,6 @@
 		registry.addMapping(AxisClientDefaultingCommand.class, "JavaWSDLParam", Stub2BeanCommand.class);
 		registry.addMapping(AxisClientDefaultingCommand.class, "WebServicesParser", Stub2BeanCommand.class);
 		registry.addMapping(AxisClientDefaultingCommand.class, "ClientProject", Stub2BeanCommand.class);
-		registry.addMapping(DefaultsForClientJavaWSDLCommand.class, "OutputFolder", Stub2BeanCommand.class );
 		// BuildProjectCommand()
 		registry.addMapping(AxisClientDefaultingCommand.class, "ClientProject", BuildProjectCommand.class, "Project", null);
 		registry.addMapping(AxisClientDefaultingCommand.class, "ForceBuild", BuildProjectCommand.class);
diff --git a/bundles/org.eclipse.jst.ws.axis.creation.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.jst.ws.axis.creation.ui/META-INF/MANIFEST.MF
index ce82d5c..8bf019e 100644
--- a/bundles/org.eclipse.jst.ws.axis.creation.ui/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.jst.ws.axis.creation.ui/META-INF/MANIFEST.MF
@@ -2,19 +2,19 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %PLUGIN_NAME
 Bundle-SymbolicName: org.eclipse.jst.ws.axis.creation.ui; singleton:=true
-Bundle-Version: 1.0.101.qualifier
+Bundle-Version: 1.0.1.qualifier
 Bundle-Activator: org.eclipse.jst.ws.internal.axis.creation.ui.plugin.WebServiceAxisCreationUIPlugin
 Bundle-Vendor: %PLUGIN_PROVIDER
 Bundle-Localization: plugin
-Export-Package: org.eclipse.jst.ws.internal.axis.creation.ui;x-internal:=true,
- org.eclipse.jst.ws.internal.axis.creation.ui.command;x-internal:=true,
- org.eclipse.jst.ws.internal.axis.creation.ui.plugin;x-internal:=true,
- org.eclipse.jst.ws.internal.axis.creation.ui.task;x-internal:=true,
- org.eclipse.jst.ws.internal.axis.creation.ui.widgets.bean;x-internal:=true,
- org.eclipse.jst.ws.internal.axis.creation.ui.widgets.skeleton;x-internal:=true,
- org.eclipse.jst.ws.internal.axis.creation.ui.wizard.beans;x-internal:=true,
- org.eclipse.jst.ws.internal.axis.creation.ui.wizard.wsdl;x-internal:=true,
- org.eclipse.jst.ws.internal.axis.creation.ui.wsrt;x-internal:=true
+Export-Package: org.eclipse.jst.ws.internal.axis.creation.ui,
+ org.eclipse.jst.ws.internal.axis.creation.ui.command,
+ org.eclipse.jst.ws.internal.axis.creation.ui.plugin,
+ org.eclipse.jst.ws.internal.axis.creation.ui.task,
+ org.eclipse.jst.ws.internal.axis.creation.ui.widgets.bean,
+ org.eclipse.jst.ws.internal.axis.creation.ui.widgets.skeleton,
+ org.eclipse.jst.ws.internal.axis.creation.ui.wizard.beans,
+ org.eclipse.jst.ws.internal.axis.creation.ui.wizard.wsdl,
+ org.eclipse.jst.ws.internal.axis.creation.ui.wsrt
 Require-Bundle: org.eclipse.ui,
  org.eclipse.core.resources,
  org.eclipse.emf.ecore,
@@ -44,5 +44,5 @@
  org.eclipse.wst.common.environment,
  org.eclipse.debug.core,
  org.eclipse.jdt.core
-Eclipse-LazyStart: true
+Eclipse-AutoStart: true
 Plugin-Class: org.eclipse.jst.ws.internal.axis.creation.ui.plugin.WebServiceAxisCreationUIPlugin
diff --git a/bundles/org.eclipse.jst.ws.axis.creation.ui/plugin.xml b/bundles/org.eclipse.jst.ws.axis.creation.ui/plugin.xml
index 679562b..cc90895 100644
--- a/bundles/org.eclipse.jst.ws.axis.creation.ui/plugin.xml
+++ b/bundles/org.eclipse.jst.ws.axis.creation.ui/plugin.xml
@@ -44,8 +44,7 @@
     <extension point="org.eclipse.jst.ws.consumption.ui.runtimes">
       <runtime
         id="org.eclipse.jst.ws.axis.creation.axisWebServiceRT"
-        label="%LABEL_RUNTIME_AXIS_11"
-        serverRequired="false"/>
+        label="%LABEL_RUNTIME_AXIS_11"/>
     </extension>
 
     <!-- define support for Axis Java bean bottom up and top-down support in web projects -->
diff --git a/bundles/org.eclipse.jst.ws.axis.creation.ui/src/org/eclipse/jst/ws/internal/axis/creation/ui/AxisCreationUI.properties b/bundles/org.eclipse.jst.ws.axis.creation.ui/src/org/eclipse/jst/ws/internal/axis/creation/ui/AxisCreationUI.properties
index d6d3b83..6193c0e 100644
--- a/bundles/org.eclipse.jst.ws.axis.creation.ui/src/org/eclipse/jst/ws/internal/axis/creation/ui/AxisCreationUI.properties
+++ b/bundles/org.eclipse.jst.ws.axis.creation.ui/src/org/eclipse/jst/ws/internal/axis/creation/ui/AxisCreationUI.properties
@@ -1,15 +1,12 @@
 ###############################################################################
-# Copyright (c) 2004, 2006 IBM Corporation and others.
+# Copyright (c) 2004 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
-# yyyymmdd bug      Email and other contact information
-# -------- -------- -----------------------------------------------------------
-# 20060216   126989 pmoogk@ca.ibm.com - Peter Moogk
+#     IBM Corporation - initial API and implementation
 ###############################################################################
 
 #
@@ -56,8 +53,8 @@
 TOOLTIP_PBCF_TEXT_WSDL_FOLDER=The folder of the WSDL file.
 TOOLTIP_PBCF_TEXT_WSDL_FILE=The name of the WSDL file.
 LABEL_URI=Web service URI:
-LABEL_OUTPUT_FOLDER_NAME=WSDL folder:
-LABEL_OUTPUT_FILE_NAME=WSDL file:
+LABEL_OUTPUT_FOLDER_NAME=WSDL Folder:
+LABEL_OUTPUT_FILE_NAME=WSDL File:
 
 #
 #WebServiceAxisBeanClassPage
@@ -74,10 +71,10 @@
 TOOLTIP_PBME_TREE_METHODS=Java bean methods to include.
 PAGE_TITLE_WSBEAN_CONFIG=Web Service Java Bean Identity
 PAGE_DESC_WSBEAN_CONFIG=Configure the Java bean as a Web service.
-LABEL_STYLE_USE=Style and use
-STYLE_RPC_LITERAL=document/literal
-STYLE_DOC_LITERAL=document/literal (wrapped)
-STYLE_RPC_ENCODED=RPC/encoded
+LABEL_STYLE_USE=Style and Use
+STYLE_RPC_LITERAL=Document/ Literal
+STYLE_DOC_LITERAL=Document/ Literal (Wrapped)
+STYLE_RPC_ENCODED=RPC/ Encoded
 
 #
 # AxisCheckCompilerLevelCommand
diff --git a/bundles/org.eclipse.jst.ws.axis.creation.ui/src/org/eclipse/jst/ws/internal/axis/creation/ui/task/DefaultsForServerJavaWSDLCommand.java b/bundles/org.eclipse.jst.ws.axis.creation.ui/src/org/eclipse/jst/ws/internal/axis/creation/ui/task/DefaultsForServerJavaWSDLCommand.java
index 0072362..c3afaf9 100644
--- a/bundles/org.eclipse.jst.ws.axis.creation.ui/src/org/eclipse/jst/ws/internal/axis/creation/ui/task/DefaultsForServerJavaWSDLCommand.java
+++ b/bundles/org.eclipse.jst.ws.axis.creation.ui/src/org/eclipse/jst/ws/internal/axis/creation/ui/task/DefaultsForServerJavaWSDLCommand.java
@@ -1,15 +1,12 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060221   119111 rsinha@ca.ibm.com - Rupam Kuehner
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jst.ws.internal.axis.creation.ui.task;
 
@@ -37,7 +34,6 @@
 import org.eclipse.jst.ws.internal.common.ResourceUtils;
 import org.eclipse.jst.ws.internal.common.ServerUtils;
 import org.eclipse.jst.ws.internal.consumption.ui.wsil.Utils;
-import org.eclipse.osgi.util.NLS;
 import org.eclipse.wst.command.internal.env.core.common.StatusUtils;
 import org.eclipse.wst.common.environment.IEnvironment;
 import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelOperation;
@@ -113,11 +109,21 @@
 		IPath modulePath = serviceProject_.getFullPath();
 		IPath webinfPath = serviceProject_.getFullPath();
 		try {
-			if (J2EEUtils.isWebComponent(serviceProject_)){
+			//if ( ResourceUtils.isWebProject(serviceProject_)) {
+      if (J2EEUtils.isWebComponent(serviceProject_)){
 				moduleServerRoot = ResourceUtils.getJavaSourceLocation(serviceProject_);
+
+				// should use ModuleCore.getSourceContainers();
+//				IContainer container = ResourceUtils.getWebModuleServerRoot(serviceProject_);
+//				if (container!=null) {
+//					moduleServerRoot = container.getFullPath();
+//				}
+				
 				modulePath = J2EEUtils.getWebContentPath(serviceProject_);
-				webinfPath = J2EEUtils.getWebInfPath( serviceProject_ );				
+				webinfPath = J2EEUtils.getWebInfPath( serviceProject_ );
+				
 			}
+
 		} catch (Exception e) {
 			status =  StatusUtils.errorStatus( AxisConsumptionUIMessages.MSG_ERROR_DEFAULT_BEAN, e );
 			environment.getStatusHandler().reportError(status);
@@ -164,18 +170,9 @@
 		javaWSDLParam_.setStyle(JavaWSDLParameter.STYLE_WRAPPED);
 		javaWSDLParam_.setUse(JavaWSDLParameter.USE_LITERAL);
 
-        String projectURL = null;
-        if (serviceServerTypeID_ != null && serviceServerTypeID_.length()>0)
-        {
-		  projectURL = ServerUtils.getEncodedWebComponentURL(serviceProject_, serviceServerTypeID_);          
-        }
-        else
-        {
-          projectURL = "http://tempuri.org/";          
-        }
-        
+		String projectURL = ServerUtils.getEncodedWebComponentURL(serviceProject_, serviceServerTypeID_);
 		if (projectURL == null) {
-			status = StatusUtils.errorStatus(NLS.bind(AxisCreationUIMessages.MSG_ERROR_PROJECT_URL, new String[] {serviceProject_.getName()}));
+			status = StatusUtils.errorStatus( AxisCreationUIMessages.MSG_ERROR_PROJECT_URL);
 			environment.getStatusHandler().reportError(status);
 			return status;
 		}
@@ -184,8 +181,11 @@
 		javaWSDLParam_.setUrlLocation(serviceURL);
 		
 		javaWSDLParam_.setMetaInfOnly(true);
+		//		String javaOutput = PlatformUtils.getPlatformURL(moduleServerRoot);
+		//		String output = PlatformUtils.getPlatformURL(modulePath);
 
 		String javaOutput =	ResourceUtils.findResource(moduleServerRoot).getLocation().toString();
+//		String javaOutput = ResourceUtils.getWorkspaceRoot().getFolder(moduleServerRoot).getLocation().toString();
 	
 		String serviceName = javaWSDLParam_.getServiceName();
 		IPath outputPath =	ResourceUtils.findResource(webinfPath).getLocation();
@@ -215,6 +215,13 @@
 		this.javaWSDLParam_ = javaWSDLParam;
 	}
 
+	// rm
+	/*
+	public void setModel(Model model) {
+		this.model_ = model;
+	}
+	*/
+	
 	public void setServiceProject(IProject serviceProject) {
 		this.serviceProject_ = serviceProject;
 	}
diff --git a/bundles/org.eclipse.jst.ws.axis.creation.ui/src/org/eclipse/jst/ws/internal/axis/creation/ui/task/Skeleton2WSDLCommand.java b/bundles/org.eclipse.jst.ws.axis.creation.ui/src/org/eclipse/jst/ws/internal/axis/creation/ui/task/Skeleton2WSDLCommand.java
index 8c63031..020dafb 100644
--- a/bundles/org.eclipse.jst.ws.axis.creation.ui/src/org/eclipse/jst/ws/internal/axis/creation/ui/task/Skeleton2WSDLCommand.java
+++ b/bundles/org.eclipse.jst.ws.axis.creation.ui/src/org/eclipse/jst/ws/internal/axis/creation/ui/task/Skeleton2WSDLCommand.java
@@ -1,15 +1,12 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
+ * Copyright (c) 2000, 2005 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060221   119111 rsinha@ca.ibm.com - Rupam Kuehner
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jst.ws.internal.axis.creation.ui.task;
 
@@ -205,17 +202,8 @@
     }
     if (soapAddress != null)
     {
-      
-      String projectURL = null;
-      if (serviceServerTypeID_ != null && serviceServerTypeID_.length()>0)
-      {
-	    projectURL = ServerUtils.getEncodedWebComponentURL(serverProject, serviceServerTypeID_);
-      }
-      else
-      {
-        projectURL = "http://tempuri.org/";
-      }
-      
+//      String projectURL = ResourceUtils.getEncodedWebProjectURL(serverProject);
+	  String projectURL = ServerUtils.getEncodedWebComponentURL(serverProject, serviceServerTypeID_);
       if (projectURL == null)
         return StatusUtils.errorStatus( NLS.bind(AxisCreationUIMessages.MSG_ERROR_PROJECT_URL, new String[] {serverProject.toString()}));
       StringBuffer serviceURL = new StringBuffer(projectURL);
diff --git a/bundles/org.eclipse.jst.ws.axis.creation.ui/src/org/eclipse/jst/ws/internal/axis/creation/ui/task/UpdateAxisWSDDFileTask.java b/bundles/org.eclipse.jst.ws.axis.creation.ui/src/org/eclipse/jst/ws/internal/axis/creation/ui/task/UpdateAxisWSDDFileTask.java
index c0625d5..8d97532 100644
--- a/bundles/org.eclipse.jst.ws.axis.creation.ui/src/org/eclipse/jst/ws/internal/axis/creation/ui/task/UpdateAxisWSDDFileTask.java
+++ b/bundles/org.eclipse.jst.ws.axis.creation.ui/src/org/eclipse/jst/ws/internal/axis/creation/ui/task/UpdateAxisWSDDFileTask.java
@@ -1,15 +1,12 @@
 /*******************************************************************************
- * Copyright (c) 2003, 2006 IBM Corporation and others.
+ * Copyright (c) 2003, 2004 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060221   119111 rsinha@ca.ibm.com - Rupam Kuehner
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jst.ws.internal.axis.creation.ui.task;
 
@@ -75,17 +72,8 @@
 		}
 
 		IProject project = serviceProject_;
-        
-        String projectURL = null;
-        if (serviceServerTypeID_ != null && serviceServerTypeID_.length()>0)
-        {
-		  projectURL = ServerUtils.getEncodedWebComponentURL(project, serviceServerTypeID_);
-        }
-        else
-        {
-          projectURL = "http://tempuri.org/";          
-        }
-        
+		//String projectURL = ResourceUtils.getEncodedWebProjectURL(project);
+		String projectURL = ServerUtils.getEncodedWebComponentURL(project, serviceServerTypeID_);
 		if (projectURL == null) {
 		    status = StatusUtils.errorStatus(NLS.bind(AxisCreationUIMessages.MSG_ERROR_PROJECT_URL,new String[] {project.toString()}));
 		    environment.getStatusHandler().reportError(status);
diff --git a/bundles/org.eclipse.jst.ws.axis.creation.ui/src/org/eclipse/jst/ws/internal/axis/creation/ui/widgets/bean/BeanClassWidget.java b/bundles/org.eclipse.jst.ws.axis.creation.ui/src/org/eclipse/jst/ws/internal/axis/creation/ui/widgets/bean/BeanClassWidget.java
new file mode 100644
index 0000000..9758e70
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis.creation.ui/src/org/eclipse/jst/ws/internal/axis/creation/ui/widgets/bean/BeanClassWidget.java
@@ -0,0 +1,172 @@
+/*******************************************************************************
+ * Copyright (c) 2004 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.jst.ws.internal.axis.creation.ui.widgets.bean;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jface.wizard.IWizardContainer;
+import org.eclipse.jface.wizard.IWizardPage;
+import org.eclipse.jst.ws.internal.common.ResourceUtils;
+import org.eclipse.jst.ws.internal.consumption.common.JavaResourceFilter;
+import org.eclipse.jst.ws.internal.consumption.ui.ConsumptionUIMessages;
+import org.eclipse.jst.ws.internal.ui.common.UIUtils;
+import org.eclipse.jst.ws.internal.ui.dialog.DialogUtils;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.wst.command.internal.env.ui.widgets.SimpleWidgetDataContributor;
+import org.eclipse.wst.command.internal.env.ui.widgets.WidgetDataEvents;
+
+
+public class BeanClassWidget extends SimpleWidgetDataContributor
+{
+
+  private IProject           serverProject_ = null;
+  private Composite          parent_ = null;
+  private IWizardContainer   context_ = null;
+  private JavaResourceFilter filter_ = new JavaResourceFilter();
+  private IResource          initialResource_ = null;
+  
+  /*CONTEXT_ID PBCL0001 for the Bean Selection Page*/
+  private String INFOPOP_PBCL_PAGE = "PBCL0001";
+  
+  private Text beanClassText_;
+  /*CONTEXT_ID PBCL0002 for the Bean Selection field of the Bean Selection Page*/
+  private String INFOPOP_PBCL_TEXT_BEAN_CLASS = "PBCL0002";
+
+  private Button beanClassBrowseButton_;
+  /*CONTEXT_ID PBCL0003 for the Bean Class Browse button of the Bean Selection Page*/
+  private String INFOPOP_PBCL_BUTTON_BEAN_CLASS_BROWSE = "PBCL0003";
+
+  private Button beanResourceBrowseButton_;
+  /*CONTEXT_ID PBCL0004 for the Bean Resource Browse button of the Bean Selection Page*/
+  private String INFOPOP_PBCL_BUTTON_BEAN_RESOURCE_BROWSE = "PBCL0004";
+   
+  public WidgetDataEvents addControls( Composite parent, Listener statusListener )
+  {
+	String       pluginId_  = "org.eclipse.jst.ws.consumption.ui";	  
+	String       thisPlugin = "org.eclipse.jst.ws.axis.creation.ui";
+    UIUtils      uiUtils  = new UIUtils( thisPlugin ); 
+    
+    parent_ = parent;
+    
+    Composite group = uiUtils.createComposite( parent, 4 );
+    
+    group.setToolTipText( ConsumptionUIMessages.TOOLTIP_PBCL_PAGE );
+    PlatformUI.getWorkbench().getHelpSystem().setHelp( group, pluginId_ + "." + INFOPOP_PBCL_PAGE );
+    
+    beanClassText_ = uiUtils.createText( group, ConsumptionUIMessages.LABEL_BEAN_CLASS_NAME,
+    		ConsumptionUIMessages.TOOLTIP_PBCL_TEXT_BEAN_CLASS,
+                                         INFOPOP_PBCL_TEXT_BEAN_CLASS,
+                                         SWT.SINGLE | SWT.BORDER);
+    
+    beanClassBrowseButton_ = uiUtils.createPushButton( group, ConsumptionUIMessages.BUTTON_BROWSE_CLASSES,
+    		ConsumptionUIMessages.TOOLTIP_PBCL_BUTTON_BEAN_CLASS_BROWSE,
+                                                       INFOPOP_PBCL_BUTTON_BEAN_CLASS_BROWSE );
+    beanClassBrowseButton_.addSelectionListener( new SelectionAdapter()
+                                                 {
+                                                   public void widgetSelected( SelectionEvent evt )
+                                                   {
+                                                     handleBrowseClasses();  
+                                                   }
+                                                 } );
+    
+    beanResourceBrowseButton_ = uiUtils.createPushButton( group, ConsumptionUIMessages.BUTTON_BROWSE_FILES,
+    		ConsumptionUIMessages.TOOLTIP_PBCL_BUTTON_BEAN_RESOURCE_BROWSE,
+                                                          INFOPOP_PBCL_BUTTON_BEAN_RESOURCE_BROWSE );
+    beanResourceBrowseButton_.addSelectionListener( new SelectionAdapter()
+                                                    {
+                                                      public void widgetSelected( SelectionEvent evt )
+                                                      {
+                                                        handleBrowseFiles();  
+                                                      }
+                                                    } );
+    
+    return this;
+  }
+  
+  private void handleBrowseClasses()
+  {
+    String className = DialogUtils.browseClasses( parent_.getShell(), 
+                                                  serverProject_, context_ );
+
+    if (className!=null) beanClassText_.setText(className);
+    
+  }
+  
+  private void handleBrowseFiles()
+  {
+    IResource topResource = serverProject_;
+    
+    if (topResource == null)
+    {
+      topResource = ResourceUtils.getWorkspaceRoot();
+    }
+    
+    IResource resource 
+      = DialogUtils.browseResources( parent_.getShell(),
+                                     topResource,
+				                     initialResource_,
+				                     filter_ );
+    
+    if( resource != null )
+    {
+      IPath  path     = resource.getFullPath();
+      String basename = path.lastSegment();
+      
+      if( basename != null && basename.length() > 0 )
+      {
+        String beanPackage = org.eclipse.jst.ws.internal.common.ResourceUtils.getJavaResourcePackageName(path);
+        String beanClass = (beanPackage == null ? basename : (beanPackage + "." + basename));
+        
+        if( beanClass.toLowerCase().endsWith(".java") || beanClass.toLowerCase().endsWith(".class" ) )
+        {
+          beanClass = beanClass.substring( 0, beanClass.lastIndexOf('.') );
+        }
+        
+        beanClassText_.setText(beanClass);
+      }
+    }   
+  }
+  
+  public void setCurrentPage( IWizardPage page )
+  {
+    context_ = page.getWizard().getContainer();
+  }
+
+  public void setBeanClassName(String beanClassName)
+  {
+    beanClassText_.setText(beanClassName);
+  }
+  
+  public String getBeanClassName()
+  {
+    return beanClassText_.getText().trim();  
+  }
+  
+  public void setServerProjectName( String name )
+  {
+    serverProject_ = (IProject)ResourceUtils.findResource( new Path( name ).makeAbsolute() );  
+  }
+    
+  public void setInitialResource( IResource resource )
+  {
+    initialResource_ = resource;  
+  }  
+  
+}
diff --git a/bundles/org.eclipse.jst.ws.axis.creation.ui/src/org/eclipse/jst/ws/internal/axis/creation/ui/widgets/bean/BeanConfigWidget.java b/bundles/org.eclipse.jst.ws.axis.creation.ui/src/org/eclipse/jst/ws/internal/axis/creation/ui/widgets/bean/BeanConfigWidget.java
index 0ab663b..e54abe8 100644
--- a/bundles/org.eclipse.jst.ws.axis.creation.ui/src/org/eclipse/jst/ws/internal/axis/creation/ui/widgets/bean/BeanConfigWidget.java
+++ b/bundles/org.eclipse.jst.ws.axis.creation.ui/src/org/eclipse/jst/ws/internal/axis/creation/ui/widgets/bean/BeanConfigWidget.java
@@ -1,15 +1,12 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
+ * Copyright (c) 2004 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060321   128827 joan - Joan Haggarty, remove redundant wsdl URI, folder and file controls
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jst.ws.internal.axis.creation.ui.widgets.bean;
 
@@ -54,8 +51,14 @@
   /* CONTEXT_ID PBCF0001 for the Bean Config Page */
   private final String INFOPOP_PBCF_PAGE = "PBCF0001"; //$NON-NLS-1$
 	
-  private String wsdlFolder_;
-  
+  private Text uriText_;
+  /* CONTEXT_ID PBCF0002 for the URI field of the Bean Config Page */
+  private final String INFOPOP_PBCF_TEXT_URI = "PBCF0002"; //$NON-NLS-1$
+	
+  private Text wsdlFolderText_;
+  /* CONTEXT_ID PBCF0006 for the WSDL Folder field in the Bean Config Page */
+  private final String INFOPOP_PBCF_TEXT_WSDL_FOLDER = "PBCF0006"; //$NON-NLS-1$
+	
   private Text wsdlFileText_;
   /* CONTEXT_ID PBCF0007 for the WSDL File field of the Bean Config Page */
   private final String INFOPOP_PBCF_TEXT_WSDL_FILE = "PBCF0007"; //$NON-NLS-1$
@@ -87,7 +90,17 @@
 	parent.setToolTipText( AxisCreationUIMessages.TOOLTIP_PBCF_PAGE  );
 	PlatformUI.getWorkbench().getHelpSystem().setHelp( parent, pluginId_ + "." + INFOPOP_PBCF_PAGE );
     
-    Composite configGroup = uiUtils.createComposite( parent, 2 );    
+    Composite configGroup = uiUtils.createComposite( parent, 2 );
+    
+    uriText_ = uiUtils.createText( configGroup, AxisCreationUIMessages.LABEL_URI,
+    		AxisCreationUIMessages.TOOLTIP_PBCF_TEXT_URI,
+                                   INFOPOP_PBCF_TEXT_URI,
+                                   SWT.SINGLE | SWT.BORDER | SWT.READ_ONLY );
+    
+    wsdlFolderText_ = uiUtils.createText( configGroup, AxisCreationUIMessages.LABEL_OUTPUT_FOLDER_NAME,
+    		AxisCreationUIMessages.TOOLTIP_PBCF_TEXT_WSDL_FOLDER,
+                                          INFOPOP_PBCF_TEXT_WSDL_FOLDER,
+                                          SWT.SINGLE | SWT.BORDER | SWT.READ_ONLY );
     
     wsdlFileText_ = uiUtils.createText( configGroup, AxisCreationUIMessages.LABEL_OUTPUT_FILE_NAME,
     		AxisCreationUIMessages.TOOLTIP_PBCF_TEXT_WSDL_FILE,
@@ -95,6 +108,8 @@
                                         SWT.SINGLE | SWT.BORDER  );
     wsdlFileText_.addListener( SWT.Modify, statusListener );
     
+    uiUtils.createHorizontalSeparator( parent, 6 );
+    
     // TODO this group has no TOOLTIP or INFOPOP.
     Group    methodsGroup = baseConUiUtils.createGroup( parent, ConsumptionUIMessages.LABEL_METHODS, null, null );
 	methodsGroup.setLayoutData( uiUtils.createFillAll() );
@@ -177,11 +192,19 @@
     javaParameter_ = javaParameter;
     
 	String wsdlLocation = javaParameter.getOutputWsdlLocation();
+
+	// TODO Verify that we need to find the WSDL in the eclipse file system.
+	//IFile file 
+	//  = ResourceUtils.getWorkspaceRoot().getFileForLocation(new Path(wsdlLocation));
+	//IPath wsdlPath = file.getFullPath();
 	IPath wsdlPath = new Path( wsdlLocation );
 	
-	wsdlFolder_ = wsdlPath.removeLastSegments(1).toString();    
+	wsdlFolderText_.setText(wsdlPath.removeLastSegments(1).toString());
 	wsdlFileText_.setText(wsdlPath.lastSegment());
-    
+	
+	String location = javaParameter.getUrlLocation();
+	uriText_.setText(location == null ? "" : location);  
+	
 	methodsTree_.removeAll();
 	Hashtable methods = javaParameter.getMethods();
 	Enumeration e = methods.keys();
@@ -221,10 +244,9 @@
   
   public JavaWSDLParameter getJavaParameter()
   {
-    
     IPath wsdlPath 
-    = new Path( wsdlFolder_.trim() ).append( wsdlFileText_.getText().trim() );
-    
+      = new Path( wsdlFolderText_.getText().trim() ).append( wsdlFileText_.getText().trim() );
+	    
 	// TODO Do we need to go to the eclipse file system??
 	//String wsdlLocation = workspace.getFile(wsdlPath).getLocation().toString();
 	String wsdlLocation = wsdlPath.toString();
diff --git a/bundles/org.eclipse.jst.ws.axis.creation.ui/src/org/eclipse/jst/ws/internal/axis/creation/ui/widgets/skeleton/SkeletonConfigWidget.java b/bundles/org.eclipse.jst.ws.axis.creation.ui/src/org/eclipse/jst/ws/internal/axis/creation/ui/widgets/skeleton/SkeletonConfigWidget.java
index 2960305..07a345b 100644
--- a/bundles/org.eclipse.jst.ws.axis.creation.ui/src/org/eclipse/jst/ws/internal/axis/creation/ui/widgets/skeleton/SkeletonConfigWidget.java
+++ b/bundles/org.eclipse.jst.ws.axis.creation.ui/src/org/eclipse/jst/ws/internal/axis/creation/ui/widgets/skeleton/SkeletonConfigWidget.java
@@ -1,16 +1,12 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
+ * Copyright (c) 2004 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060106   121199 jesper@selskabet.org - Jesper Møller
- * 20060321   128827 joan - Joan Haggarty, remove redundant wsdl URI, folder and file controls
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jst.ws.internal.axis.creation.ui.widgets.skeleton;
 
@@ -28,6 +24,7 @@
 import org.eclipse.swt.widgets.Combo;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Text;
 import org.eclipse.ui.PlatformUI;
 import org.eclipse.wst.command.internal.env.ui.widgets.SimpleWidgetDataContributor;
 import org.eclipse.wst.command.internal.env.ui.widgets.WidgetDataEvents;
@@ -43,6 +40,16 @@
   // private Text uriText_;
   /* CONTEXT_ID PBCF0002 for the URI field of the Bean Config Page */
   //private final String INFOPOP_PBCF_TEXT_URI = "PBCF0002"; //$NON-NLS-1$
+
+  
+  private Text wsdlFolderText_;
+  /* CONTEXT_ID PBCF0006 for the WSDL Folder field in the Bean Config Page */
+  private final String INFOPOP_PBCF_TEXT_WSDL_FOLDER = "PBCF0006"; //$NON-NLS-1$
+  
+  private Text wsdlFileText_;
+  /* CONTEXT_ID PBCF0007 for the WSDL File field of the Bean Config Page */
+  private final String INFOPOP_PBCF_TEXT_WSDL_FILE = "PBCF0007"; //$NON-NLS-1$
+
   
   private Combo skeletonFolderText_;
   /* CONTEXT_ID PBSC0004 for the Skeleton Folder field of the Skeleton Config Page */
@@ -78,12 +85,24 @@
                                    INFOPOP_PBCF_TEXT_URI,
                                    SWT.SINGLE | SWT.BORDER | SWT.READ_ONLY );
     */
-    
+
+    wsdlFolderText_ = uiUtils.createText( textGroup, AxisCreationUIMessages.LABEL_OUTPUT_FOLDER_NAME,
+    		AxisCreationUIMessages.TOOLTIP_PBCF_TEXT_WSDL_FOLDER,
+                                          INFOPOP_PBCF_TEXT_WSDL_FOLDER,
+                                          SWT.SINGLE | SWT.BORDER | SWT.READ_ONLY );
+
+    wsdlFileText_ = uiUtils.createText( textGroup, AxisCreationUIMessages.LABEL_OUTPUT_FILE_NAME,
+    		AxisCreationUIMessages.TOOLTIP_PBCF_TEXT_WSDL_FILE,
+                                        INFOPOP_PBCF_TEXT_WSDL_FILE,
+                                        SWT.SINGLE | SWT.BORDER | SWT.READ_ONLY );
+
     skeletonFolderText_ = baseConUiUtils.createCombo( textGroup, ConsumptionUIMessages.LABEL_SKELETON_ROOT_NAME,
     		ConsumptionUIMessages.TOOLTIP_PBSC_TEXT_SKELETON_FOLDER,
         INFOPOP_PBSC_TEXT_SKELETON_FOLDER,
         SWT.SINGLE | SWT.BORDER | SWT.READ_ONLY );
 
+    uiUtils.createHorizontalSeparator( parent, 5 );
+
     showMappingsCheckbox_ = conUiUtils.createCheckbox( parent, AxisConsumptionUIMessages.LABEL_EXPLORE_MAPPINGS_XML2BEAN,
     													AxisConsumptionUIMessages.TOOLTIP_N2P_SHOW_MAPPINGS,
                                                        INFOPOP_N2P_SHOW_MAPPINGS );
@@ -97,7 +116,19 @@
     if (endpointURI != null)
       uriText_.setText(endpointURI);
     */
-  }  
+  }
+  
+  public void setOutputWSDLFolder(String outputWSDLFolder)
+  {
+    if (outputWSDLFolder != null)
+      wsdlFolderText_.setText(outputWSDLFolder);
+  }
+  
+  public void setOutputWSDLFile(String outputWSDLFile)
+  {
+    if (outputWSDLFile != null)
+      wsdlFileText_.setText(outputWSDLFile);
+  }
   
   public void setOutputJavaFolder(String outputJavaFolder)
   {
@@ -171,4 +202,4 @@
   {
   	return ResourcesPlugin.getWorkspace().getRoot().getLocation().removeTrailingSeparator().toString();
   }
-}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.ws.axis.creation.ui/src/org/eclipse/jst/ws/internal/axis/creation/ui/widgets/skeleton/SkeletonConfigWidgetDefaultingCommand.java b/bundles/org.eclipse.jst.ws.axis.creation.ui/src/org/eclipse/jst/ws/internal/axis/creation/ui/widgets/skeleton/SkeletonConfigWidgetDefaultingCommand.java
index 1c6559a..5126f46 100644
--- a/bundles/org.eclipse.jst.ws.axis.creation.ui/src/org/eclipse/jst/ws/internal/axis/creation/ui/widgets/skeleton/SkeletonConfigWidgetDefaultingCommand.java
+++ b/bundles/org.eclipse.jst.ws.axis.creation.ui/src/org/eclipse/jst/ws/internal/axis/creation/ui/widgets/skeleton/SkeletonConfigWidgetDefaultingCommand.java
@@ -1,15 +1,12 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
+ * Copyright (c) 2004 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060221   119111 rsinha@ca.ibm.com - Rupam Kuehner
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jst.ws.internal.axis.creation.ui.widgets.skeleton;
 
@@ -54,15 +51,8 @@
 		javaWSDLParam.setJavaOutput(javaOutput);
 
 
-    String projectURL = null;
-	if (serviceServerTypeID_ != null && serviceServerTypeID_.length()>0)
-    {
-	  projectURL = ServerUtils.getEncodedWebComponentURL(serverProject, serviceServerTypeID_);
-    }
-    else
-    {
-      projectURL = "http://tempuri.org/";
-    }
+	
+	String projectURL = ServerUtils.getEncodedWebComponentURL(serverProject, serviceServerTypeID_);
 	
 	if (projectURL == null) {
 	    status = StatusUtils.errorStatus(NLS.bind(AxisCreationUIMessages.MSG_ERROR_PROJECT_URL, new String[] { serverProject.toString()}));
@@ -140,4 +130,4 @@
 public void setServiceServerTypeID(String serviceServerTypeID) {
 	this.serviceServerTypeID_ = serviceServerTypeID;
 }
-}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.ws.axis.creation.ui/src/org/eclipse/jst/ws/internal/axis/creation/ui/wizard/wsdl/WSWSDLAxisType.java b/bundles/org.eclipse.jst.ws.axis.creation.ui/src/org/eclipse/jst/ws/internal/axis/creation/ui/wizard/wsdl/WSWSDLAxisType.java
index 30a347b..83c3d95 100644
--- a/bundles/org.eclipse.jst.ws.axis.creation.ui/src/org/eclipse/jst/ws/internal/axis/creation/ui/wizard/wsdl/WSWSDLAxisType.java
+++ b/bundles/org.eclipse.jst.ws.axis.creation.ui/src/org/eclipse/jst/ws/internal/axis/creation/ui/wizard/wsdl/WSWSDLAxisType.java
@@ -1,15 +1,12 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
+ * Copyright (c) 2000, 2004 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060321   128827 joan - Joan Haggarty, remove redundant wsdl URI, folder and file controls
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jst.ws.internal.axis.creation.ui.wizard.wsdl;
 
@@ -124,6 +121,8 @@
     dataRegistry.addMapping(ServerExtensionDefaultingCommand.class, "ServerProject", SkeletonConfigWidget.class, "ServerProject", new ProjectName2IProjectTransformer());
     dataRegistry.addMapping(AxisSkeletonDefaultingCommand.class, "JavaWSDLParam", SkeletonConfigWidget.class);
     dataRegistry.addMapping(SkeletonConfigWidgetDefaultingCommand.class, "EndpointURI", SkeletonConfigWidget.class);
+    dataRegistry.addMapping(SkeletonConfigWidgetDefaultingCommand.class, "OutputWSDLFolder", SkeletonConfigWidget.class);
+    dataRegistry.addMapping(SkeletonConfigWidgetDefaultingCommand.class, "OutputWSDLFile", SkeletonConfigWidget.class);
     dataRegistry.addMapping(SkeletonConfigWidgetDefaultingCommand.class, "OutputJavaFolder", SkeletonConfigWidget.class);
     dataRegistry.addMapping(SkeletonConfigWidgetDefaultingCommand.class, "ShowMapping", SkeletonConfigWidget.class);
 
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.jst.ws.consumption.ui/META-INF/MANIFEST.MF
index 21e6a60..c24b785 100644
--- a/bundles/org.eclipse.jst.ws.consumption.ui/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/META-INF/MANIFEST.MF
@@ -2,33 +2,33 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %PLUGIN_NAME
 Bundle-SymbolicName: org.eclipse.jst.ws.consumption.ui; singleton:=true
-Bundle-Version: 1.0.101.qualifier
+Bundle-Version: 1.0.2.qualifier
 Bundle-Activator: org.eclipse.jst.ws.internal.consumption.ui.plugin.WebServiceConsumptionUIPlugin
 Bundle-Vendor: %PLUGIN_PROVIDER
 Bundle-Localization: plugin
-Export-Package: org.eclipse.jst.ws.internal.consumption.ui;x-internal:=true,
- org.eclipse.jst.ws.internal.consumption.ui.action;x-internal:=true,
- org.eclipse.jst.ws.internal.consumption.ui.ant;x-internal:=true,
- org.eclipse.jst.ws.internal.consumption.ui.command;x-internal:=true,
- org.eclipse.jst.ws.internal.consumption.ui.command.data;x-internal:=true,
- org.eclipse.jst.ws.internal.consumption.ui.common;x-internal:=true,
- org.eclipse.jst.ws.internal.consumption.ui.extension;x-internal:=true,
- org.eclipse.jst.ws.internal.consumption.ui.plugin;x-internal:=true,
- org.eclipse.jst.ws.internal.consumption.ui.preferences;x-internal:=true,
- org.eclipse.jst.ws.internal.consumption.ui.selection;x-internal:=true,
- org.eclipse.jst.ws.internal.consumption.ui.server;x-internal:=true,
- org.eclipse.jst.ws.internal.consumption.ui.widgets;x-internal:=true,
- org.eclipse.jst.ws.internal.consumption.ui.widgets.binding;x-internal:=true,
- org.eclipse.jst.ws.internal.consumption.ui.widgets.extensions;x-internal:=true,
- org.eclipse.jst.ws.internal.consumption.ui.widgets.object;x-internal:=true,
- org.eclipse.jst.ws.internal.consumption.ui.widgets.runtime;x-internal:=true,
- org.eclipse.jst.ws.internal.consumption.ui.widgets.test;x-internal:=true,
- org.eclipse.jst.ws.internal.consumption.ui.widgets.test.explorer;x-internal:=true,
- org.eclipse.jst.ws.internal.consumption.ui.widgets.test.wssample;x-internal:=true,
- org.eclipse.jst.ws.internal.consumption.ui.wizard;x-internal:=true,
- org.eclipse.jst.ws.internal.consumption.ui.wizard.uddi;x-internal:=true,
- org.eclipse.jst.ws.internal.consumption.ui.wsil;x-internal:=true,
- org.eclipse.jst.ws.internal.consumption.ui.wsrt;x-internal:=true
+Export-Package: org.eclipse.jst.ws.internal.consumption.ui,
+ org.eclipse.jst.ws.internal.consumption.ui.action,
+ org.eclipse.jst.ws.internal.consumption.ui.ant,
+ org.eclipse.jst.ws.internal.consumption.ui.command,
+ org.eclipse.jst.ws.internal.consumption.ui.command.data,
+ org.eclipse.jst.ws.internal.consumption.ui.common,
+ org.eclipse.jst.ws.internal.consumption.ui.extension,
+ org.eclipse.jst.ws.internal.consumption.ui.plugin,
+ org.eclipse.jst.ws.internal.consumption.ui.preferences,
+ org.eclipse.jst.ws.internal.consumption.ui.selection,
+ org.eclipse.jst.ws.internal.consumption.ui.server,
+ org.eclipse.jst.ws.internal.consumption.ui.widgets,
+ org.eclipse.jst.ws.internal.consumption.ui.widgets.binding,
+ org.eclipse.jst.ws.internal.consumption.ui.widgets.extensions,
+ org.eclipse.jst.ws.internal.consumption.ui.widgets.object,
+ org.eclipse.jst.ws.internal.consumption.ui.widgets.runtime,
+ org.eclipse.jst.ws.internal.consumption.ui.widgets.test,
+ org.eclipse.jst.ws.internal.consumption.ui.widgets.test.explorer,
+ org.eclipse.jst.ws.internal.consumption.ui.widgets.test.wssample,
+ org.eclipse.jst.ws.internal.consumption.ui.wizard,
+ org.eclipse.jst.ws.internal.consumption.ui.wizard.uddi,
+ org.eclipse.jst.ws.internal.consumption.ui.wsil,
+ org.eclipse.jst.ws.internal.consumption.ui.wsrt
 Require-Bundle: org.eclipse.wst.ws.parser,
  org.eclipse.wst.command.env,
  org.eclipse.wst.command.env.ui,
@@ -71,7 +71,5 @@
  org.eclipse.wst.common.environment,
  org.eclipse.wst.common.project.facet.core,
  org.eclipse.jst.server.core,
- org.eclipse.debug.core,
- com.ibm.icu,
- org.apache.xerces
-Eclipse-LazyStart: true
+ org.eclipse.debug.core
+Eclipse-AutoStart: true
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/icons/client_assemble.jpg b/bundles/org.eclipse.jst.ws.consumption.ui/icons/client_assemble.jpg
deleted file mode 100644
index e676679..0000000
--- a/bundles/org.eclipse.jst.ws.consumption.ui/icons/client_assemble.jpg
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/icons/client_deploy.jpg b/bundles/org.eclipse.jst.ws.consumption.ui/icons/client_deploy.jpg
deleted file mode 100644
index 7cfc866..0000000
--- a/bundles/org.eclipse.jst.ws.consumption.ui/icons/client_deploy.jpg
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/icons/client_develop.jpg b/bundles/org.eclipse.jst.ws.consumption.ui/icons/client_develop.jpg
deleted file mode 100644
index d659e24..0000000
--- a/bundles/org.eclipse.jst.ws.consumption.ui/icons/client_develop.jpg
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/icons/client_install.jpg b/bundles/org.eclipse.jst.ws.consumption.ui/icons/client_install.jpg
deleted file mode 100644
index 0822508..0000000
--- a/bundles/org.eclipse.jst.ws.consumption.ui/icons/client_install.jpg
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/icons/client_none.jpg b/bundles/org.eclipse.jst.ws.consumption.ui/icons/client_none.jpg
deleted file mode 100644
index 91c8fa9..0000000
--- a/bundles/org.eclipse.jst.ws.consumption.ui/icons/client_none.jpg
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/icons/client_run.jpg b/bundles/org.eclipse.jst.ws.consumption.ui/icons/client_run.jpg
deleted file mode 100644
index 363ac70..0000000
--- a/bundles/org.eclipse.jst.ws.consumption.ui/icons/client_run.jpg
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/icons/client_test.jpg b/bundles/org.eclipse.jst.ws.consumption.ui/icons/client_test.jpg
deleted file mode 100644
index 36b9445..0000000
--- a/bundles/org.eclipse.jst.ws.consumption.ui/icons/client_test.jpg
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/icons/scale0_bground.jpg b/bundles/org.eclipse.jst.ws.consumption.ui/icons/scale0_bground.jpg
deleted file mode 100644
index 679405f..0000000
--- a/bundles/org.eclipse.jst.ws.consumption.ui/icons/scale0_bground.jpg
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/icons/scale1_bground.jpg b/bundles/org.eclipse.jst.ws.consumption.ui/icons/scale1_bground.jpg
deleted file mode 100644
index ee33ba3..0000000
--- a/bundles/org.eclipse.jst.ws.consumption.ui/icons/scale1_bground.jpg
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/icons/scale2_bground.jpg b/bundles/org.eclipse.jst.ws.consumption.ui/icons/scale2_bground.jpg
deleted file mode 100644
index e9dbf45..0000000
--- a/bundles/org.eclipse.jst.ws.consumption.ui/icons/scale2_bground.jpg
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/icons/scale3_bground.jpg b/bundles/org.eclipse.jst.ws.consumption.ui/icons/scale3_bground.jpg
deleted file mode 100644
index 6b7f15f..0000000
--- a/bundles/org.eclipse.jst.ws.consumption.ui/icons/scale3_bground.jpg
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/icons/scale4_bground.jpg b/bundles/org.eclipse.jst.ws.consumption.ui/icons/scale4_bground.jpg
deleted file mode 100644
index e73fd81..0000000
--- a/bundles/org.eclipse.jst.ws.consumption.ui/icons/scale4_bground.jpg
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/icons/scale5_bground.jpg b/bundles/org.eclipse.jst.ws.consumption.ui/icons/scale5_bground.jpg
deleted file mode 100644
index 150be97..0000000
--- a/bundles/org.eclipse.jst.ws.consumption.ui/icons/scale5_bground.jpg
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/icons/scale6_bground.jpg b/bundles/org.eclipse.jst.ws.consumption.ui/icons/scale6_bground.jpg
deleted file mode 100644
index 6a80f3e..0000000
--- a/bundles/org.eclipse.jst.ws.consumption.ui/icons/scale6_bground.jpg
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/plugin.properties b/bundles/org.eclipse.jst.ws.consumption.ui/plugin.properties
index add2ab1..c15fe27 100644
--- a/bundles/org.eclipse.jst.ws.consumption.ui/plugin.properties
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/plugin.properties
@@ -57,8 +57,8 @@
 #
 # Dialogs
 #
-CHECKBOX_SHOW_GENERATE_JAVA_PROXY_DIALOG=Hide &Generate Java bean Proxy Dialog
-CHECKBOX_SHOW_PROXY2SAMPLE_DIALOG=Hide &Proxy To Sample Generation Dialog
+CHECKBOX_SHOW_GENERATE_JAVA_PROXY_DIALOG=Hide Generate Java bean Proxy Dialog
+CHECKBOX_SHOW_PROXY2SAMPLE_DIALOG=Hide Proxy To Sample Generation Dialog
 TOOLTIP_PPAD_CHECKBOX_WSDL2PROXY=Hide the dialog for generating the Java bean proxy action.
 TOOLTIP_PPAD_CHECKBOX_PROXY2SAMPLE=Hide the dialog for generating the sample application action.
 
@@ -92,6 +92,10 @@
 #
 # PublicUDDIRegistryType
 #
+PUBLICUDDIREGISTRYTYPE_NAME_IBM=IBM UDDI Registry
+PUBLICUDDIREGISTRYTYPE_NAME_IBM_TEST=IBM UDDI Test Registry
+PUBLICUDDIREGISTRYTYPE_NAME_MICROSOFT=Microsoft UDDI Registry
+PUBLICUDDIREGISTRYTYPE_NAME_MICROSOFT_TEST=Microsoft UDDI Test Registry
 PUBLICUDDIREGISTRYTYPE_NAME_SAP=SAP UDDI Registry
 PUBLICUDDIREGISTRYTYPE_NAME_SAP_TEST=SAP UDDI Test Registry
 PUBLICUDDIREGISTRYTYPE_NAME_XMETHODS=XMethods Registry
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/plugin.xml b/bundles/org.eclipse.jst.ws.consumption.ui/plugin.xml
index 83245a5..a36c4b1 100644
--- a/bundles/org.eclipse.jst.ws.consumption.ui/plugin.xml
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/plugin.xml
@@ -30,6 +30,42 @@
    <extension
          point="org.eclipse.jst.ws.consumption.ui.publicUDDIRegistryType">
       <publicUDDIRegistryType
+            name="%PUBLICUDDIREGISTRYTYPE_NAME_IBM_TEST"
+            class="org.eclipse.jst.ws.internal.consumption.ui.wizard.uddi.PublicUDDIRegistryIBMTest"
+            id="org.eclipse.jst.ws.internal.consumption.ui.wizard.uddi.PublicUDDIRegistryIBMTest">
+      </publicUDDIRegistryType>
+   </extension>
+
+   <extension
+         point="org.eclipse.jst.ws.consumption.ui.publicUDDIRegistryType">
+      <publicUDDIRegistryType
+            name="%PUBLICUDDIREGISTRYTYPE_NAME_IBM"
+            class="org.eclipse.jst.ws.internal.consumption.ui.wizard.uddi.PublicUDDIRegistryIBM"
+            id="org.eclipse.jst.ws.internal.consumption.ui.wizard.uddi.PublicUDDIRegistryIBM">
+      </publicUDDIRegistryType>
+   </extension>
+
+   <extension
+         point="org.eclipse.jst.ws.consumption.ui.publicUDDIRegistryType">
+      <publicUDDIRegistryType
+            name="%PUBLICUDDIREGISTRYTYPE_NAME_MICROSOFT_TEST"
+            class="org.eclipse.jst.ws.internal.consumption.ui.wizard.uddi.PublicUDDIRegistryMicrosoftTest"
+            id="org.eclipse.jst.ws.internal.consumption.ui.wizard.uddi.PublicUDDIRegistryMicrosoftTest">
+      </publicUDDIRegistryType>
+   </extension>
+
+   <extension
+         point="org.eclipse.jst.ws.consumption.ui.publicUDDIRegistryType">
+      <publicUDDIRegistryType
+            name="%PUBLICUDDIREGISTRYTYPE_NAME_MICROSOFT"
+            class="org.eclipse.jst.ws.internal.consumption.ui.wizard.uddi.PublicUDDIRegistryMicrosoft"
+            id="org.eclipse.jst.ws.internal.consumption.ui.wizard.uddi.PublicUDDIRegistryMicrosoft">
+      </publicUDDIRegistryType>
+   </extension>
+
+   <extension
+         point="org.eclipse.jst.ws.consumption.ui.publicUDDIRegistryType">
+      <publicUDDIRegistryType
             name="%PUBLICUDDIREGISTRYTYPE_NAME_SAP_TEST"
             class="org.eclipse.jst.ws.internal.consumption.ui.wizard.uddi.PublicUDDIRegistrySAPTest"
             id="org.eclipse.jst.ws.internal.consumption.ui.wizard.uddi.PublicUDDIRegistrySAPTest">
@@ -164,7 +200,7 @@
             name="%PLUGIN_IMPORT_WIZARD_NAME_WS"
             icon="icons/import_ws.gif"
             class="org.eclipse.wst.command.internal.env.ui.widgets.DynamicWizard"
-            id="org.eclipse.jst.ws.consumption.ui.wsimport">
+            id="wsimport">
          <description>
                %PLUGIN_IMPORT_WIZARD_DESC_WS
          </description>
@@ -177,7 +213,7 @@
             iconbanner="icons/import_ws_wiz.gif"
             name="%PLUGIN_IMPORT_WIZARD_NAME_WS"
             class="org.eclipse.jst.ws.internal.consumption.ui.widgets.binding.ImportWSWidgetBinding"
-            id="org.eclipse.jst.ws.consumption.ui.wsimport">
+            id="wsimport">
       </dynamicWizard>
    </extension>
 
@@ -187,7 +223,7 @@
             name="%IMPORT_WIZARD_NAME_WSIL"
             icon="icons/wsil/import_wsil.gif"
             class="org.eclipse.wst.command.internal.env.ui.widgets.DynamicWizard"
-            id="org.eclipse.jst.ws.consumption.ui.wsilimport">
+            id="wsilimport">
          <description>
                %IMPORT_WIZARD_DESC_WSIL
          </description>
@@ -200,7 +236,7 @@
             iconbanner="icons/wsil/import_wiz_banner_wsil.gif"
             name="%IMPORT_WIZARD_NAME_WSIL"
             class="org.eclipse.jst.ws.internal.consumption.ui.widgets.binding.ImportWSILWidgetBinding"
-            id="org.eclipse.jst.ws.consumption.ui.wsilimport">
+            id="wsilimport">
       </dynamicWizard>
    </extension>
 
@@ -226,8 +262,8 @@
       <page
             name="%PREFERENCE_CATEGORY_TEST_FACILITY"
             category="org.eclipse.wst.ws.internal.ui.preferences.name"
-            class="org.eclipse.jst.ws.internal.ui.preferences.TestFacilityDefaultsPreferencePage"
-            id="org.eclipse.jst.ws.internal.ui.preferences.TestFacilityDefaultsPreferencePage">
+            class="org.eclipse.jst.ws.internal.ui.preferences.ScenarioDefaultsPreferencePage"
+            id="org.eclipse.jst.ws.internal.ui.preferences.ScenarioDefaultsPreferencePage">
       </page>
 
       <page
@@ -317,7 +353,7 @@
                label="%POPUP_GENERATE_WSIL"
                class="org.eclipse.wst.command.internal.env.ui.widgets.popup.DynamicPopupWizard"
                menubarPath="org.eclipse.jst.ws.atk.ui.webservice.category.popupMenu/popupActions"
-               id="org.eclipse.jst.ws.consumption.ui.wsilimport">
+               id="wsilimport">
          </action>
       </objectContribution>
 
@@ -389,7 +425,7 @@
                label="%POPUP_GENERATE_WSIL"
                class="org.eclipse.wst.command.internal.env.ui.widgets.popup.DynamicPopupWizard"
                menubarPath="additions"
-               id="org.eclipse.jst.ws.consumption.ui.wsilimport">
+               id="wsilimport">
          </action>
       </objectContribution>
 
@@ -538,7 +574,7 @@
                label="%POPUP_GENERATE_WSIL"
                class="org.eclipse.wst.command.internal.env.ui.widgets.popup.DynamicPopupWizard"
                menubarPath="additions"
-               id="org.eclipse.jst.ws.consumption.ui.wsilimport">
+               id="wsilimport">
          </action>
       </objectContribution>
 
@@ -550,7 +586,7 @@
             label="%POPUP_GENERATE_WSIL"
             class="org.eclipse.wst.command.internal.env.ui.widgets.popup.DynamicPopupWizard"
             menubarPath="additions"
-            id="org.eclipse.jst.ws.consumption.ui.wsilimport">
+            id="wsilimport">
          </action>
       </objectContribution>
    </extension>
@@ -664,13 +700,11 @@
               key="InitialSelection"
               operation="org.eclipse.jst.ws.internal.consumption.ui.widgets.runtime.ClientRuntimeSelectionWidgetDefaultingCommand"
               property="InitialInitialSelection"
-              required="true"
               transform="org.eclipse.jst.ws.internal.common.String2SelectionTransformer"/>
         <map
               key="InitialSelection"
               operation="org.eclipse.jst.ws.internal.consumption.ui.widgets.WSDLSelectionWidgetDefaultingCommand"
               property="InitialSelection"
-              required="true"
               transform="org.eclipse.jst.ws.internal.common.String2SelectionTransformer"/>
 
         <map
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/ConsumptionUI.properties b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/ConsumptionUI.properties
index 1f426f4..12bd4b1 100644
--- a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/ConsumptionUI.properties
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/ConsumptionUI.properties
@@ -6,13 +6,12 @@
 # http://www.eclipse.org/legal/epl-v10.html
 #
 # Contributors:
-# IBM Corporation - initial API and implementation
-# yyyymmdd bug      Email and other contact information
-# -------- -------- -----------------------------------------------------------
+#     IBM Corporation - initial API and implementation
+#  yyyymmdd bug      Email and other contact information
+#  -------- -------- -----------------------------------------------------------
 #  20060204 124143   rsinha@ca.ibm.com - Rupam Kuehner
-#  20060204 124408   rsinha@ca.ibm.com - Rupam Kuehner     
-# 20060221   119111 rsinha@ca.ibm.com - Rupam Kuehner
-# 20060329   128069 rsinha@ca.ibm.com - Rupam Kuehner
+#  20060204 124408   rsinha@ca.ibm.com - Rupam Kuehner 
+#  20060411 136134   kathy@ca.ibm.com - Kathy Chan     
 ###############################################################################
 
 #
@@ -60,7 +59,7 @@
 # General messages.
 #
 MSG_ERROR_TASK_EXCEPTED=IWAB0234E An internal error occurred. Details: {0}
-MSG_ERROR_NO_SERVER_RUNTIME=No suitable server can be found for the {0} Web service runtime. Go to Window > Preferences. Select Server > Installed Runtimes and configure a server runtime.
+MSG_ERROR_NO_SERVER_RUNTIME=No suitable server can be found for the {0} Web service runtime. Go to Window > Preferences. Select Server > Installed Runtimes and configure one of the following: {1}
 
 
 #
@@ -74,7 +73,7 @@
 LABEL_FOLDER_NAME=Folder:
 LABEL_JSP_FOLDER_NAME=JSP folder:
 LABEL_WEB_PROJECT_NAME=Web project:
-LABEL_WEBSERVICETYPE=&Web service type:
+LABEL_WEBSERVICETYPE=Web service type:
 LABEL_J2EE_VERSION=J2EE version:
 LABEL_NA=N/A
 
@@ -98,13 +97,13 @@
 #
 PAGE_TITLE_WS_PROJECT=Web Services
 PAGE_DESC_WS_PROJECT=Review your Web service options and make any necessary changes before proceeding to the next page.
-BUTTON_START_WEB_PROJECT=&Start Web service in Web project
+BUTTON_START_WEB_PROJECT=Start Web service in Web project
 #BUTTON_DEPLOY_WEB_PROJECT=Deploy Web service to a server type
-BUTTON_INSTALL_SERVICE_WEB_PROJECT=&Install Web service on server
-BUTTON_INSTALL_CLIENT_WEB_PROJECT=Install Web service &client on server (managed clients only)
+BUTTON_INSTALL_SERVICE_WEB_PROJECT=Install Web service on server
+BUTTON_INSTALL_CLIENT_WEB_PROJECT=Install Web service client on server (managed clients only)
 GROUP_SCENARIO_SERVICE=Service
 GROUP_SCENARIO_CLIENT=Client proxy
-LABEL_WEBSERVICECLIENTTYPE=Client &proxy type:
+LABEL_WEBSERVICECLIENTTYPE=Client proxy type:
 
 
 
@@ -112,8 +111,8 @@
 # WebServiceRuntimeSelectionPage
 PAGE_TITLE_WS_RUNTIME_SELECTION=Service Deployment Configuration
 PAGE_DESC_WS_RUNTIME_SELECTION=Choose from the list of runtimes and deployment servers, or use the default settings.
-LABEL_RUNTIMES_LIST=&Web service runtime:
-LABEL_SERVERS_LIST=&Server:
+LABEL_RUNTIMES_LIST=Web service runtime:
+LABEL_SERVERS_LIST=Server:
 LABEL_EDIT_BUTTON=Edit...
 LABEL_SERVICE_EAR_MODULE=Service EAR module:
 LABEL_CLIENT_EAR_MODULE=Client EAR module:
@@ -150,8 +149,6 @@
 MSG_NO_SERVER=No server specified for the {0} scenario.
 MSG_ERROR_STUB_ONLY={0} has only stub runtimes associated with it. Choose a different server or configure a non-stub runtime in the server preferences. 
 MSG_WARN_STUB_ONLY={0} has only stub runtimes associated with it so the server will not be created or started.
-MSG_WARN_NO_SERVICE_SERVER=No server has been selected. The Web service will not be deployed, installed, or run.
-MSG_WARN_NO_CLIENT_SERVER=No server has been selected. The Web service client will not be deployed, installed, or run.
 
 MSG_SERVER_TARGET_MISMATCH=The project, {0}, has a server target which is not compatible with the selected server type
 MSG_J2EE_MISMATCH=The project, {0}, has a different J2EE level from the selected J2EE level
@@ -193,9 +190,6 @@
 MSG_CLIENT_CANNOT_ASSOCIATE=The client project, {0}, cannot be associated with the EAR, {1}. Choose an EAR with a J2EE level of {2} or higher.
 MSG_SERVICE_CANNOT_ASSOCIATE=The service project, {0}, cannot be associated with the EAR, {1}. Choose an EAR with a J2EE level of {2} or higher.
 
-MSG_PROJECT_MUST_EXIST=No server can be found and {0} does not exist. Choose an existing project or use the preferences to configure a server runtime.  
-
-
 # WebServiceClientRuntimeSelectionPage
 PAGE_TITLE_WS_CLIENT_RUNTIME_SELECTION=Client Environment Configuration
 PAGE_DESC_WS_CLIENT_RUNTIME_SELECTION=Choose from the list of supported runtimes and servers for the client environment, or use the default settings.
@@ -236,7 +230,7 @@
 #
 # WebServiceProxyPage
 #
-BUTTON_GENERATE_PROXY=&Generate a proxy
+BUTTON_GENERATE_PROXY=Generate a proxy
 
 #
 # WebServiceSkeletonConfigPage
@@ -260,8 +254,8 @@
 #
 PAGE_TITLE_WSTEST=Web Service Test Page
 PAGE_DESC_WSTEST=Select a test facility
-CHECKBOX_TEST_WEBSERVICE=&Test the Web service
-CHECKBOX_MONITOR_WEBSERVICE=&Monitor the Web service
+CHECKBOX_TEST_WEBSERVICE=Test the Web service
+CHECKBOX_MONITOR_WEBSERVICE=Monitor the Web service
 MSG_ERROR_UNABLE_TO_LAUNCH_WSDL_TEST=An error occurred. Unable to launch WSDL test facility.
 
 #
@@ -304,7 +298,7 @@
 PAGE_DESC_WS_PUBLISH=Do you want to publish your Web service?
 PAGE_TITLE_WS_FIND=Find a Web service
 PAGE_DESC_WS_FIND=Do you want to find a Web service?
-BUTTON_WS_PUBLISH=&Launch the Web Services Explorer to publish this Web service to a UDDI Registry
+BUTTON_WS_PUBLISH=Launch the Web Services Explorer to publish this Web service to a UDDI Registry
 BUTTON_WS_PUBLISH_PRIVATE_UDDI=Launch the Web Services Explorer to publish this Web service to the Unit Test UDDI Registry
 BUTTON_WS_FIND=Launch the Web Services Explorer to find a Web service from a UDDI Registry
 BUTTON_WS_FIND_PRIVATE_UDDI=Launch the Web Services Explorer to find a Web service from the Unit Test UDDI Registry
@@ -319,7 +313,6 @@
 LABEL_EAR_PROJECTS=EAR projects
 TOOLTIP_EAR_PROJECTS=Enterprise application projects.
 TOOLTIP_TABLE_BEAN_NAMES=Select an EJB.
-LABEL_SHOW_ALL_STATELESS_SESSION_EJBS=<<Show all stateless session EJBs>>
 
 #
 # Tooltips for WebServiceWSDLSelectionPage
@@ -417,6 +410,14 @@
 TOOLTIP_TABLE_VALIDATE_MESSAGE=Use the Web Service Profile Compliance and Validation preference to enable or disable WSDL validation.
 
 #
+# Table column heading for ValidationMessageViewerWidget
+#
+TABLE_COLUMN_VALIDATION_SEVERITY=Severity
+TABLE_COLUMN_VALIDATION_LINE=Line
+TABLE_COLUMN_VALIDATION_COLUMN=Column
+TABLE_COLUMN_VALIDATION_MESSAGE=Message
+
+#
 # Tooltips for client.WebServiceClienTestPage
 #
 TOOLTIP_PWSM_PAGE=
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/ConsumptionUIMessages.java b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/ConsumptionUIMessages.java
index 3d1b4e0..f4fd908 100644
--- a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/ConsumptionUIMessages.java
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/ConsumptionUIMessages.java
@@ -6,13 +6,12 @@
  * http://www.eclipse.org/legal/epl-v10.html
  *
  * Contributors:
- * IBM Corporation - initial API and implementation
+ *     IBM Corporation - initial API and implementation
  * yyyymmdd bug      Email and other contact information
  * -------- -------- -----------------------------------------------------------
  * 20060204 124143   rsinha@ca.ibm.com - Rupam Kuehner          
- * 20060204 124408   rsinha@ca.ibm.com - Rupam Kuehner     
- * 20060221   119111 rsinha@ca.ibm.com - Rupam Kuehner
- * 20060329   128069 rsinha@ca.ibm.com - Rupam Kuehner
+ * 20060204 124408   rsinha@ca.ibm.com - Rupam Kuehner 
+ * 20060411 136134   kathy@ca.ibm.com - Kathy Chan    
  *******************************************************************************/
 package org.eclipse.jst.ws.internal.consumption.ui;
 
@@ -87,8 +86,6 @@
 	public static String MSG_NO_SERVER;
 	public static String MSG_ERROR_STUB_ONLY;
 	public static String MSG_WARN_STUB_ONLY;
-    public static String MSG_WARN_NO_SERVICE_SERVER;
-    public static String MSG_WARN_NO_CLIENT_SERVER;
 	public static String MSG_SERVER_TARGET_MISMATCH;
 	public static String MSG_J2EE_MISMATCH;
 	public static String MSG_SERVICE_PROJECT_EMPTY;
@@ -175,7 +172,6 @@
 	public static String TABLE_TITLE_EJB_BEAN_NAMES;
 	public static String TABLE_TITLE_EJB_PROJECT_NAME;
 	public static String LABEL_EAR_PROJECTS;
-    public static String LABEL_SHOW_ALL_STATELESS_SESSION_EJBS;
 	public static String TOOLTIP_EAR_PROJECTS;
 	public static String TOOLTIP_TABLE_BEAN_NAMES;
 	public static String TOOLTIP_PWWS_PAGE;
@@ -237,6 +233,10 @@
 	public static String TOOLTIP_PCON_BUTTON_BROWSE_WS;
 	public static String TOOLTIP_VALIDATE_TEXT_MESSAGE;
 	public static String TOOLTIP_TABLE_VALIDATE_MESSAGE;
+	public static String TABLE_COLUMN_VALIDATION_SEVERITY;
+	public static String TABLE_COLUMN_VALIDATION_LINE;
+	public static String TABLE_COLUMN_VALIDATION_COLUMN;
+	public static String TABLE_COLUMN_VALIDATION_MESSAGE;
 	public static String TOOLTIP_PWSM_PAGE;
 	public static String TOOLTIP_PWSM_CHECKBOX_TEST;
 	public static String TOOLTIP_PWSM_COMBOBOX_TEST;
@@ -332,10 +332,8 @@
     public static String MSG_ERROR_WSDD_NOT_FOUND;
     public static String MSG_CLIENT_CANNOT_ASSOCIATE;
     public static String MSG_SERVICE_CANNOT_ASSOCIATE;
-    public static String MSG_PROJECT_MUST_EXIST;
-
 
 	static {
 		NLS.initializeMessages(BUNDLE_NAME, ConsumptionUIMessages.class);
 	}
-}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/ant/AntClientRootCommandFragment.java b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/ant/AntClientRootCommandFragment.java
index f2c3194..12e2438 100644
--- a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/ant/AntClientRootCommandFragment.java
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/ant/AntClientRootCommandFragment.java
@@ -1,15 +1,12 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060221   119111 rsinha@ca.ibm.com - Rupam Kuehner
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jst.ws.internal.consumption.ui.ant;
 
@@ -115,7 +112,6 @@
       dataRegistry.addMapping(AntDefaultingOperation.class, "ClientIdsFixed", ClientRuntimeSelectionWidgetDefaultingCommand.class);
       dataRegistry.addMapping(AntDefaultingOperation.class, "StartService", PreClientDevelopCommand.class);
       dataRegistry.addMapping(AntDefaultingOperation.class, "InstallClient", PreClientDevelopCommand.class);        
-      dataRegistry.addMapping(AntDefaultingOperation.class, "DeployClient", PreClientDevelopCommand.class);
           
       // Map WSDLSelectionWidgetDefaultingCommand command.
       dataRegistry.addMapping(WSDLSelectionWidgetDefaultingCommand.class, "GenWSIL", ClientExtensionDefaultingCommand.class);
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/command/AntDefaultingOperation.java b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/command/AntDefaultingOperation.java
index 480cd6c..9e0dfc0 100644
--- a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/command/AntDefaultingOperation.java
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/command/AntDefaultingOperation.java
@@ -1,16 +1,3 @@
-/*******************************************************************************
- * Copyright (c) 2006 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060221   119111 rsinha@ca.ibm.com - Rupam Kuehner
- *******************************************************************************/
 package org.eclipse.jst.ws.internal.consumption.ui.command;
 
 import org.eclipse.core.commands.ExecutionException;
@@ -46,14 +33,4 @@
 	{
 		return false;
 	}
-    
-    public boolean getDeployService()
-    {
-      return true;
-    }
-    
-    public boolean getDeployClient()
-    {
-      return true;
-    }
 }
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/command/data/ProjectName2IProjectTransformer.java b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/command/data/ProjectName2IProjectTransformer.java
index ac65f41..37c5817 100644
--- a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/command/data/ProjectName2IProjectTransformer.java
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/command/data/ProjectName2IProjectTransformer.java
@@ -1,15 +1,12 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
+ * Copyright (c) 2004 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060221   124302 rsinha@ca.ibm.com - Rupam Kuehner
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jst.ws.internal.consumption.ui.command.data;
 
@@ -20,21 +17,15 @@
 {
   public Object transform(Object value)
   {
-    if (value != null)
-    {
-      String project = (String) value;
-      int slashIndex = project.indexOf('/');
-      String projectName = project;
-
-      if (slashIndex != -1)
-      {
-        projectName = project.substring(0, slashIndex);
-      }
-
-      return ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
-    } else
-    {
-      return null;
-    }
+	String project     = (String)value;
+	int    slashIndex  = project.indexOf( '/' );
+	String projectName = project;
+	
+	if( slashIndex != -1 )
+	{
+	  projectName = project.substring( 0, slashIndex );
+	}
+	
+    return ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
   }
 }
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/common/ServerSelectionUtils.java b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/common/ServerSelectionUtils.java
index 0a472a2..6943c0f 100644
--- a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/common/ServerSelectionUtils.java
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/common/ServerSelectionUtils.java
@@ -1,37 +1,314 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
+ * Copyright (c) 2004 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060324   116750 rsinha@ca.ibm.com - Rupam Kuehner
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 
 package org.eclipse.jst.ws.internal.consumption.ui.common;
 
 import java.util.ArrayList;
-
+import java.util.List;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IConfigurationElement;
 import org.eclipse.core.runtime.IExtensionRegistry;
 import org.eclipse.core.runtime.Platform;
+import org.eclipse.jst.j2ee.internal.servertarget.IServerTargetConstants;
+import org.eclipse.jst.j2ee.internal.servertarget.ServerTargetHelper;
+import org.eclipse.jst.ws.internal.common.ServerUtils;
 import org.eclipse.jst.ws.internal.consumption.common.IServerDefaulter;
 import org.eclipse.jst.ws.internal.consumption.common.ServerInfo;
+import org.eclipse.jst.ws.internal.consumption.ui.plugin.WebServiceConsumptionUIPlugin;
+import org.eclipse.jst.ws.internal.consumption.ui.preferences.PersistentServerRuntimeContext;
+import org.eclipse.jst.ws.internal.consumption.ui.wsrt.WebServiceRuntimeExtensionUtils;
+import org.eclipse.jst.ws.internal.consumption.ui.wsrt.WebServiceRuntimeInfo;
 import org.eclipse.wst.server.core.IRuntime;
 import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.core.IServerType;
 import org.eclipse.wst.server.core.ServerCore;
+import org.eclipse.wst.server.core.ServerUtil;
 
 
 public class ServerSelectionUtils
 {
+  /*
+   * Returns reasonable defaults for server factory id and instance id based on 
+   * an existing project
+   * index [0] contains factoryId, index[1] contains instance Id.
+   * @deprecated
+   */
+  public static String[] getServerInfoFromExistingProject(IProject project, String componentName, String runtimeId, boolean askExtenders)
+  {
+    String[] serverInfo = new String[2]; //serverInfp[0] contains factoryId, serverInfo[1] contains instance Id
 
+    // If the project has been added to an existing server, pick that server
+    //IServer[] configuredServers = ServerUtil.getServersByModule(ResourceUtils.getModule(project), null);
+    IServer[] configuredServers = ServerUtil.getServersByModule(ServerUtils.getModule(project), null);
+    IServer firstSupportedServer = getFirstSupportedServer(configuredServers, runtimeId );
+    if (firstSupportedServer != null)
+    {
+      serverInfo[0] = firstSupportedServer.getServerType().getId();
+      serverInfo[1] = firstSupportedServer.getId();
+      return serverInfo;
+      	
+    }
+    
+    
+    //Does the project have a runtime-target?
+    IRuntime runtimeTarget = getRuntimeTarget(project.getName());
+    if (runtimeTarget != null)
+    {
+      //Look for an existing server which is compatible with the runtime-target
+      IServer[] compatibleServers = getCompatibleExistingServers(runtimeTarget);
+      if (compatibleServers!=null && compatibleServers.length > 0)
+      {
+        IServer firstSupportedCompatServer = getFirstSupportedServer(compatibleServers, runtimeId);
+        if (firstSupportedCompatServer != null)
+        {
+          serverInfo[0] = firstSupportedCompatServer.getServerType().getId();
+          serverInfo[1] = firstSupportedCompatServer.getId();
+          return serverInfo;
+          
+        }  
+      }
+      
+      //No existing compatible server was found. Choose a compatible server type.
+      
+      //If the preferred server is compatible with the project's runtime target, use it.
+      PersistentServerRuntimeContext ctx = WebServiceConsumptionUIPlugin.getInstance().getServerRuntimeContext();
+      String pFactoryId = ctx.getServerFactoryId();
+      IServerType serverType = ServerCore.findServerType(pFactoryId);
+      if (serverType!=null){
+      	String serverRuntimeId = serverType.getRuntimeType().getId();
+      	if (serverRuntimeId.equals(runtimeTarget.getRuntimeType().getId()))
+      	{
+      	  serverInfo[0] = pFactoryId;
+      	  return serverInfo;
+      	}
+      }     
+      
+      //The preferred server was not compatible. Pick the first valid compatible server type.
+      String factoryId = getFirstSupportedServerType(runtimeTarget, runtimeId);
+      if (factoryId != null) serverInfo[0] = factoryId;
+      return serverInfo;
+
+    }
+    
+    if (askExtenders)
+    {
+      ServerInfo recommendedServerInfo = getExtenderRecommendation(project);
+      if (recommendedServerInfo!=null)
+      {
+        if (recommendedServerInfo.getServerFactoryId()!=null && recommendedServerInfo.getServerFactoryId().length()>0)
+          serverInfo[0] = recommendedServerInfo.getServerFactoryId();
+        
+        if (recommendedServerInfo.getServerInstanceId()!=null && recommendedServerInfo.getServerInstanceId().length()>0)
+          serverInfo[1] = recommendedServerInfo.getServerInstanceId(); 
+
+        return serverInfo;
+      }
+
+    }
+    
+    //Use ServerTargetHelper to get a list of valid runtime-targets and use these to determine a default server type.
+    String[] projectAttrs = ServerTargetHelper.getProjectTypeAndJ2EELevel(project);
+    List runtimes = ServerTargetHelper.getServerTargets(projectAttrs[0], projectAttrs[1]);
+    String[] compatServerInfo = getCompatibleExistingServer(runtimes,runtimeId); 
+    if ( compatServerInfo != null)
+    {
+      return compatServerInfo;
+    }
+    
+    //No existing compatible server, pick a type.
+    String factoryId = getFirstSupportedServerType(runtimes, runtimeId);
+    if (factoryId != null) serverInfo[0] = factoryId; 
+    return serverInfo;   
+    
+  }
+
+  /*
+   * Returns reasonable defaults for server factory id and instance id based on 
+   * an existing project
+   * index [0] contains factoryId, index[1] contains instance Id.
+   */
+  /*
+  public static String[] getServerInfoFromExistingProject(IProject project, String runtimeId, boolean askExtenders)
+  {
+    String[] serverInfo = new String[2]; //serverInfp[0] contains factoryId, serverInfo[1] contains instance Id
+
+    // If the project has been added to an existing server, pick that server
+    IServer[] configuredServers = ServerUtil.getServersByModule(ResourceUtils.getModule(project), null);
+    IServer firstSupportedServer = getFirstSupportedServer(configuredServers, runtimeId );
+    if (firstSupportedServer != null)
+    {
+      serverInfo[0] = firstSupportedServer.getServerType().getId();
+      serverInfo[1] = firstSupportedServer.getId();
+      return serverInfo;
+      	
+    }
+    
+    
+    //Does the project have a runtime-target?
+    IRuntime runtimeTarget = getRuntimeTarget(project.getName());
+    if (runtimeTarget != null)
+    {
+      //Look for an existing server which is compatible with the runtime-target
+      IServer[] compatibleServers = getCompatibleExistingServers(runtimeTarget);
+      if (compatibleServers!=null && compatibleServers.length > 0)
+      {
+        IServer firstSupportedCompatServer = getFirstSupportedServer(compatibleServers, runtimeId);
+        if (firstSupportedCompatServer != null)
+        {
+          serverInfo[0] = firstSupportedCompatServer.getServerType().getId();
+          serverInfo[1] = firstSupportedCompatServer.getId();
+          return serverInfo;
+          
+        }  
+      }
+      
+      //No existing compatible server was found. Choose a compatible server type.
+      
+      //If the preferred server is compatible with the project's runtime target, use it.
+      PersistentServerRuntimeContext ctx = WebServiceConsumptionUIPlugin.getInstance().getServerRuntimeContext();
+      String pFactoryId = ctx.getServerFactoryId();
+      IServerType serverType = ServerCore.findServerType(pFactoryId);
+      if (serverType!=null){
+      	String serverRuntimeId = serverType.getRuntimeType().getId();
+      	if (serverRuntimeId.equals(runtimeTarget.getRuntimeType().getId()))
+      	{
+      	  serverInfo[0] = pFactoryId;
+      	  return serverInfo;
+      	}
+      }     
+      
+      //The preferred server was not compatible. Pick the first valid compatible server type.
+      String factoryId = getFirstSupportedServerType(runtimeTarget, typeId);
+      if (factoryId != null) serverInfo[0] = factoryId;
+      return serverInfo;
+
+    }
+    
+    if (askExtenders)
+    {
+      ServerInfo recommendedServerInfo = getExtenderRecommendation(project);
+      if (recommendedServerInfo!=null)
+      {
+        if (recommendedServerInfo.getServerFactoryId()!=null && recommendedServerInfo.getServerFactoryId().length()>0)
+          serverInfo[0] = recommendedServerInfo.getServerFactoryId();
+        
+        if (recommendedServerInfo.getServerInstanceId()!=null && recommendedServerInfo.getServerInstanceId().length()>0)
+          serverInfo[1] = recommendedServerInfo.getServerInstanceId(); 
+
+        return serverInfo;
+      }
+
+    }
+    
+    //Use ServerTargetHelper to get a list of valid runtime-targets and use these to determine a default server type.
+    String[] projectAttrs = ServerTargetHelper.getProjectTypeAndJ2EELevel(project);
+    List runtimes = ServerTargetHelper.getServerTargets(projectAttrs[0], projectAttrs[1]);
+    List suppRuntimes = getRuntimeTargetsSupportedByWSRuntime(runtimes, runtimeId);
+    String[] compatServerInfo = getCompatibleExistingServer(suppRuntimes,typeId); 
+    if ( compatServerInfo != null)
+    {
+      return compatServerInfo;
+    }
+    
+    //No existing compatible server, pick a type.
+    String factoryId = getFirstSupportedServerType(suppRuntimes, typeId);
+    if (factoryId != null) serverInfo[0] = factoryId; 
+    return serverInfo;   
+    
+  }
+  */
+  
+  /*
+   * Given a list of existing servers, this returns the first one that is supported
+   * by the given Web service runtime id. 
+   * Returns null of there are no supported servers in the array.
+   */
+  public static IServer getFirstSupportedServer(IServer[] servers, String webServiceRuntimeId)
+  {
+    //WebServiceServerRuntimeTypeRegistry wssrtRegistry = WebServiceServerRuntimeTypeRegistry.getInstance();
+    if (servers != null && servers.length > 0) {
+      for (int i = 0; i < servers.length; i++)
+      {
+        String serverFactoryId = servers[i].getServerType().getId();
+        if (WebServiceRuntimeExtensionUtils.doesRuntimeSupportServer(webServiceRuntimeId, serverFactoryId))
+        {
+          return servers[i];
+        }
+      }
+    }
+    return null;
+  }
+  
+  
+  /*
+   * Returns the factory id of a server type compatible with the Web service type and the runtime target.
+   * Returns null if there are none.
+   */
+  public static String getFirstSupportedServerType(IRuntime runtimeTarget, String webServiceRuntimeId)
+  {
+    String runtimeId = runtimeTarget.getRuntimeType().getId();
+    WebServiceRuntimeInfo wsrt = WebServiceRuntimeExtensionUtils.getWebServiceRuntimeById(webServiceRuntimeId);
+    String[] serverFactoryIds = wsrt.getServerFactoryIds();
+    for (int i=0; i<serverFactoryIds.length; i++)
+    {
+      IServerType serverType = ServerCore.findServerType(serverFactoryIds[i]);
+      if (serverType!=null){
+        String serverRuntimeId = serverType.getRuntimeType().getId();
+        if (serverRuntimeId.equals(runtimeId))
+        {
+          return serverFactoryIds[i];
+        }
+      }
+    }
+    return null;
+  }
+  
+
+  /*
+   * Return the factory id of the first server type compatible with the runtimeTargets and webServiceRuntimeId.
+   * Returns null if there are none.
+   */
+  public static String getFirstSupportedServerType(List runtimeTargets, String webServiceRuntimeId)
+  {
+    for (int i=0; i<runtimeTargets.size(); i++ )
+    {
+      IRuntime runtimeTarget = (IRuntime)runtimeTargets.get(i);
+      String factoryId = getFirstSupportedServerType(runtimeTarget, webServiceRuntimeId);
+      if (factoryId != null && factoryId.length()>0)
+        return factoryId;
+    }
+    
+    return null;
+  }  
+  /*
+   * Return the factory id of the first server type compatible with the runtimeTargets and typeId.
+   * Returns null if there are none.
+   * @deprecated
+   */
+  /*
+  public static String getFirstSupportedServerType(List runtimeTargets, String typeId)
+  {
+    for (int i=0; i<runtimeTargets.size(); i++ )
+    {
+      IRuntime runtimeTarget = (IRuntime)runtimeTargets.get(i);
+      String factoryId = getFirstSupportedServerType(runtimeTarget, typeId);
+      if (factoryId != null && factoryId.length()>0)
+        return factoryId;
+    }
+    
+    return null;
+  }
+  */
   public static IRuntime getRuntimeTarget(String projectName)
   {
   	if( projectName != null && projectName.length() > 0 ){ //$NON-NLS-1$
@@ -94,7 +371,62 @@
     
     return compatibleServers;
   }
-    
+  
+
+  /*
+   * Returns the factory Id and instance id of the first exiting server compatible
+   * with the runtime targets and typeId
+   * Returns null if there are none.
+   * The item at [0] is the factory id.
+   * The item at [1] is the instance id.
+   * @deprecated
+   */
+  public static String[] getCompatibleExistingServer(List runtimeTargets, String webServiceRuntimeId)
+  {
+    String[] serverInfo = new String[2];
+    for (int i=0; i<runtimeTargets.size(); i++ )
+    {
+      IRuntime runtimeTarget = (IRuntime)runtimeTargets.get(i);
+      IServer[] existingCompatServers = getCompatibleExistingServers(runtimeTarget);
+      IServer compatServer = getFirstSupportedServer(existingCompatServers, webServiceRuntimeId);
+      if (compatServer != null)
+      {
+        serverInfo[0] = compatServer.getServerType().getId();
+        serverInfo[1] = compatServer.getId();
+        return serverInfo;
+      }
+    }
+    return null;
+  }
+  
+  /*
+   * Returns the factory Id and instance id of the first exiting server compatible
+   * with the runtime targets and typeId
+   * Returns null if there are none.
+   * The item at [0] is the factory id.
+   * The item at [1] is the instance id.
+   * @deprecated
+   */
+  /*
+  public static String[] getCompatibleExistingServer(List runtimeTargets, String typeId)
+  {
+    String[] serverInfo = new String[2];
+    for (int i=0; i<runtimeTargets.size(); i++ )
+    {
+      IRuntime runtimeTarget = (IRuntime)runtimeTargets.get(i);
+      IServer[] existingCompatServers = getCompatibleExistingServers(runtimeTarget);
+      IServer compatServer = getFirstSupportedServer(existingCompatServers, typeId);
+      if (compatServer != null)
+      {
+        serverInfo[0] = compatServer.getServerType().getId();
+        serverInfo[1] = compatServer.getId();
+        return serverInfo;
+      }
+    }
+    return null;
+  }
+  */
+  
   public static ServerInfo getExtenderRecommendation(IProject project)
   {
     try
@@ -120,4 +452,119 @@
     
     return null;
   }
+  
+  /**
+   * Use this method to get a server factory id and instance id that is compatible with the given Web
+   * service runtime.
+   * @param webServiceRuntimeId
+   * @param j2eeVersion String representation of the int values in J2EEVersionConstants i.e. "12", "13", "14"
+   * @return String[] index [0] contains factoryId, index[1] contains instance Id.
+   */
+  public static String[] getServerFromWebServceRuntimeAndJ2EE(String webServiceRuntimeId, String j2eeVersion)
+  {
+    String[] serverInfo = new String[2];
+    
+    //Get all possible valid servers. If there are none, we can't default intelligently, return null.
+
+    WebServiceRuntimeInfo wsrt = WebServiceRuntimeExtensionUtils.getWebServiceRuntimeById(webServiceRuntimeId);
+    String[] validServerFactoryIds = wsrt.getServerFactoryIds();
+    if (validServerFactoryIds==null || validServerFactoryIds.length<1)
+      return null;
+    
+    //Get all existing servers
+    IServer[] servers = ServerCore.getServers(); //Get all existing servers
+    
+    //Get the preferred server.
+  	PersistentServerRuntimeContext context = WebServiceConsumptionUIPlugin.getInstance().getServerRuntimeContext();
+  	String prefServerFactoryId = context.getServerFactoryId();
+  	
+    boolean preferredIsValid =  containsString(validServerFactoryIds, prefServerFactoryId)
+                                && isServerValid(prefServerFactoryId, j2eeVersion);
+    if (preferredIsValid)
+    {
+      for (int i=0; i<servers.length; i++)
+      {
+        IServer server = (IServer)servers[i];
+        String thisFactoryId = server.getServerType().getId();
+        
+        if (thisFactoryId.equals(prefServerFactoryId))
+        {
+          serverInfo[0] = prefServerFactoryId;
+          serverInfo[1] = server.getId();
+          return serverInfo;
+        }                
+      }      
+    }
+    
+    //Either the preferred server was not valid or it was valid but does not exist.
+    //Check the existing servers for validity
+    for (int i=0; i<servers.length; i++)
+    {
+      IServer server = (IServer)servers[i];
+      String thisFactoryId = server.getServerType().getId();
+      
+      boolean thisServerValid = containsString(validServerFactoryIds, thisFactoryId) 
+                                && isServerValid(thisFactoryId, j2eeVersion);
+      if (thisServerValid)
+      {
+        serverInfo[0] = thisFactoryId;
+        serverInfo[1] = server.getId();
+        return serverInfo;        
+      }
+    }          
+
+    //None of the existing servers is valid. Pick the preferred one if valid. Otherwise, pick the
+    //first valid server type.
+    if (preferredIsValid)
+    {
+      serverInfo[0] = prefServerFactoryId;
+      return serverInfo;
+    }
+    else
+    {
+      for (int i=0; i<validServerFactoryIds.length; i++ )
+      {
+        boolean isValid = isServerValid(validServerFactoryIds[i], j2eeVersion);
+        if (isValid)
+        {
+          serverInfo[0] = validServerFactoryIds[i];
+          return serverInfo;
+        }
+      }      
+    }
+    
+    //We can't determine a valid server selection. Return null.
+    return null;
+  }
+  
+  private static boolean isServerValid(String serverFactoryId, String j2eeVersion)
+  {
+   if (serverFactoryId==null || serverFactoryId.length()==0 || j2eeVersion==null || j2eeVersion.length()==0)
+     return true;
+   
+   String runtimeTargetId = ServerUtils.getRuntimeTargetIdFromFactoryId(serverFactoryId);
+   if (runtimeTargetId == null || runtimeTargetId.length()==0)
+     return false;
+   String webModuleType = IServerTargetConstants.WEB_TYPE;
+   boolean isValid = ServerUtils.isTargetValidForProjectType(runtimeTargetId, j2eeVersion, webModuleType);
+   return isValid;
+  }
+  /*
+   * Returns true is a contains b, false otherwise.
+   */
+  private static boolean containsString(String[] a, String b)
+  {
+    if (a==null || a.length<0 || b == null || b.length()==0 )
+      return false;
+    
+    for (int i=0; i<a.length; i++)
+    {
+      String s = a[i];
+      if (s.equals(b))
+      {
+        return true;
+      }
+    }
+    return false;
+  }
 }
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/common/ValidationUtils.java b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/common/ValidationUtils.java
index 62cf617..d7dd937 100644
--- a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/common/ValidationUtils.java
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/common/ValidationUtils.java
@@ -1,15 +1,12 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
+ * Copyright (c) 2004 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060222   115834 rsinha@ca.ibm.com - Rupam Kuehner
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jst.ws.internal.consumption.ui.common;
 
@@ -25,23 +22,17 @@
 import javax.wsdl.Service;
 
 import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
-import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.jem.util.emf.workbench.ProjectUtilities;
-import org.eclipse.jem.util.emf.workbench.WorkbenchResourceHelperBase;
-import org.eclipse.jst.j2ee.internal.project.J2EEProjectUtilities;
+import org.eclipse.jst.j2ee.internal.webservice.helper.WebServicesManager;
 import org.eclipse.jst.j2ee.webservice.internal.WebServiceConstants;
 import org.eclipse.jst.j2ee.webservice.wsdd.PortComponent;
 import org.eclipse.jst.j2ee.webservice.wsdd.WSDLPort;
 import org.eclipse.jst.j2ee.webservice.wsdd.WebServiceDescription;
-import org.eclipse.jst.j2ee.webservice.wsdd.WebServices;
-import org.eclipse.jst.j2ee.webservice.wsdd.WsddResource;
 import org.eclipse.jst.server.core.FacetUtil;
 import org.eclipse.jst.ws.internal.common.J2EEUtils;
 import org.eclipse.jst.ws.internal.common.ResourceUtils;
@@ -51,9 +42,7 @@
 import org.eclipse.osgi.util.NLS;
 import org.eclipse.wst.command.internal.env.core.common.StatusUtils;
 import org.eclipse.wst.command.internal.env.core.selection.SelectionListChoices;
-import org.eclipse.wst.common.componentcore.ComponentCore;
 import org.eclipse.wst.common.componentcore.internal.util.IModuleConstants;
-import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
 import org.eclipse.wst.common.project.facet.core.IFacetedProject;
 import org.eclipse.wst.common.project.facet.core.IFacetedProjectTemplate;
 import org.eclipse.wst.common.project.facet.core.IProjectFacet;
@@ -348,16 +337,11 @@
       return false;
     
     
-    //Make a list of all the wsdl-port's in webservices.xml
-    if (!(wsXML instanceof IFile))
-    {
-      return false;
-    }
-     
-    Resource res = WorkbenchResourceHelperBase.getResource((IFile)wsXML, true);
-    WsddResource wsddRes = (WsddResource)res;    
-    WebServices webServices = wsddRes.getWebServices();
-    Iterator wsDescs = webServices.getWebServiceDescriptions().iterator();
+      //Make a list of all the wsdl-port's in webservices.xml
+    WebServicesManager wsm = WebServicesManager.getInstance();
+    //WebServiceEditModel wsEditModel = wsm.getWSEditModel(p);
+    //WebServices ws = wsEditModel.getWebServices();
+    Iterator wsDescs = wsm.getInternalWebServicesDescriptions().iterator();
     ArrayList wsdlPortList = new ArrayList();
     while(wsDescs.hasNext())
     {
@@ -394,51 +378,40 @@
   }
   
   /**
+   * @deprecated
    * 
    */
   private IResource getWebServcesXML(IProject p)
   {
-    //Get the module root.    
-    IResource moduleRoot = getModuleRoot(p);
+	  // 
+//    J2EENature nature = (J2EENature) J2EENature.getRegisteredRuntime(p);
+//    if (nature == null)
+//      return null;
+
+//    IResource moduleRoot = nature.getModuleServerRoot();
+//	IResource moduleRoot = ResourceUtils.getWebModuleServerRoot(p);
+	IResource moduleRoot = J2EEUtils.getFirstWebContentContainer(p);  
     if (!(moduleRoot instanceof IContainer))
       return null;
 
-    IResource webServicesXML = null;
-    if (J2EEProjectUtilities.isDynamicWebProject(p))
+    IResource webServicesXML=null;
+//    if (nature instanceof J2EEWebNatureRuntime)
+	if (ResourceUtils.isWebProject(p))
     {
       StringBuffer wsPath = new StringBuffer();
       wsPath.append("WEB-INF/");
       wsPath.append(WebServiceConstants.WEBSERVICE_DD_SHORT_NAME);
-      webServicesXML = ((IContainer) moduleRoot).findMember(wsPath.toString());
+      webServicesXML = ((IContainer)moduleRoot).findMember(wsPath.toString()); 
     }
-    else
+    else //Must be an Application Client Module or an EJB Module
     {
       StringBuffer wsPath = new StringBuffer();
       wsPath.append("META-INF/");
       wsPath.append(WebServiceConstants.WEBSERVICE_DD_SHORT_NAME);
-      webServicesXML = ((IContainer) moduleRoot).findMember(wsPath.toString());      
+      webServicesXML = ((IContainer)moduleRoot).findMember(wsPath.toString());     
     }
-    return webServicesXML;
-  }
-  
-  private IResource getModuleRoot(IProject p)
-  {
-    IPath modulePath = null;
-    try 
-    {
-      IVirtualComponent vc = ComponentCore.createComponent(p);
-      if (vc != null) 
-      {
-        modulePath = vc.getRootFolder().getWorkspaceRelativePath();
-      }
-    }
-    catch(Exception ex)
-    {
-      
-    } 
     
-    IResource res = ResourceUtils.findResource(modulePath);
-    return res;
+    return webServicesXML;
   }
   
   private ArrayList getPortNamesFromWsdl(String wsdlURL, WebServicesParser parser)
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/extension/ClientRootFragment.java b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/extension/ClientRootFragment.java
index 93a52f5..d6517aa 100644
--- a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/extension/ClientRootFragment.java
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/extension/ClientRootFragment.java
@@ -1,16 +1,15 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005 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
+ *     IBM Corporation - initial API and implementation
  * yyyymmdd bug      Email and other contact information
  * -------- -------- -----------------------------------------------------------
  * 20060131 121071   rsinha@ca.ibm.com - Rupam Kuehner          
- * 20060221   119111 rsinha@ca.ibm.com - Rupam Kuehner
  *******************************************************************************/
 
 package org.eclipse.jst.ws.internal.consumption.ui.extension;
@@ -93,8 +92,6 @@
   	registry.addMapping( PreClientDevelopCommand.class, "Ear", RunClientFragment.class );
     
     //Mappings from framework to framework commands
-    registry.addMapping( PreClientDevelopCommand.class, "Context", PreClientDeployCommand.class );
-    
     registry.addMapping( PreClientDevelopCommand.class, "WebService", PreClientAssembleCommand.class );
     registry.addMapping( PreClientDevelopCommand.class, "Project", PreClientAssembleCommand.class );
     registry.addMapping( PreClientDevelopCommand.class, "Module", PreClientAssembleCommand.class );
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/extension/PreClientDeployCommand.java b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/extension/PreClientDeployCommand.java
index 08f589e..28203c6 100644
--- a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/extension/PreClientDeployCommand.java
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/extension/PreClientDeployCommand.java
@@ -1,15 +1,12 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060221   119111 rsinha@ca.ibm.com - Rupam Kuehner
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 
 package org.eclipse.jst.ws.internal.consumption.ui.extension;
@@ -19,25 +16,11 @@
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelOperation;
-import org.eclipse.wst.ws.internal.wsrt.IContext;
 
 public class PreClientDeployCommand extends AbstractDataModelOperation 
 {
-  private IContext    context_;
-  
   public IStatus execute( IProgressMonitor monitor, IAdaptable adaptable )
   {
-    if (context_.getDeploy())
-    {
-      //If and when there are framework specific deploy things to be done,
-      //do them here.
-    }
-    
     return Status.OK_STATUS;
   }
-  
-  public void setContext(IContext context)
-  {
-      context_=context;
-  }    
 }
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/extension/PreClientDevelopCommand.java b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/extension/PreClientDevelopCommand.java
index 5c66bd3..5c4d697 100644
--- a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/extension/PreClientDevelopCommand.java
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/extension/PreClientDevelopCommand.java
@@ -1,16 +1,15 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005 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
+ *     IBM Corporation - initial API and implementation
  * yyyymmdd bug      Email and other contact information
  * -------- -------- -----------------------------------------------------------
  * 20060131 121071   rsinha@ca.ibm.com - Rupam Kuehner     
- * 20060221   119111 rsinha@ca.ibm.com - Rupam Kuehner
  *******************************************************************************/
 
 package org.eclipse.jst.ws.internal.consumption.ui.extension;
@@ -54,7 +53,6 @@
   private IWebServiceClient webServiceClient_;
   private String            j2eeLevel_;
   private ResourceContext   resourceContext_;
-  private boolean                       deploy_;
   private boolean						test_;
   private boolean						install_;
   private boolean						run_;
@@ -93,7 +91,7 @@
     
     webServiceClient_ = wsrt.getWebServiceClient(wsInfo);
     WebServiceScenario scenario = WebServiceScenario.CLIENT_LITERAL;
-    context_ = new SimpleContext(true, true, deploy_, install_, run_, true, test_,
+    context_ = new SimpleContext(true, true, true, install_, run_, true, test_,
         false, scenario, resourceContext_.isOverwriteFilesEnabled(),
         resourceContext_.isCreateFoldersEnabled(), resourceContext_
             .isCheckoutFilesEnabled());
@@ -214,11 +212,6 @@
   {
 	ear_ = ear;  
   }
-  
-  public void setDeployClient(boolean deployClient)
-  {
-      deploy_ = deployClient;
-  }
 	
   public void setInstallClient(boolean installClient)
   {
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/preferences/PersistentProjectTopologyContext.java b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/preferences/PersistentProjectTopologyContext.java
index 5662e98..1e83b5a 100644
--- a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/preferences/PersistentProjectTopologyContext.java
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/preferences/PersistentProjectTopologyContext.java
@@ -10,15 +10,13 @@
  * yyyymmdd bug      Email and other contact information
  * -------- -------- -----------------------------------------------------------
  * 20060202   119780 pmoogk@ca.ibm.com - Peter Moogk
- * 20060216   127138 pmoogk@ca.ibm.com - Peter Moogk
- * 20060227   124392 rsinha@ca.ibm.com - Rupam Kuehner
  *******************************************************************************/
 
 package org.eclipse.jst.ws.internal.consumption.ui.preferences;
 
+import java.util.StringTokenizer;
 import org.eclipse.jst.ws.internal.consumption.ui.plugin.WebServiceConsumptionUIPlugin;
 import org.eclipse.wst.command.internal.env.context.PersistentContext;
-import com.ibm.icu.util.StringTokenizer;
 
 
 public class PersistentProjectTopologyContext extends PersistentContext implements ProjectTopologyContext
@@ -31,18 +29,6 @@
   
   public void load() 
   {
-    //Load the service project types
-    String[] serviceIds = ProjectTopologyDefaults.getServiceTypes();
-    StringBuffer serviceSb = new StringBuffer();
-    for (int i = 0; i < serviceIds.length; i++)
-    {
-      if (i != 0)
-        serviceSb.append(" ");
-      serviceSb.append(serviceIds[i]);
-    }
-    setDefaultStringIfNoDefault(PREFERENCE_SERVICE_TYPES, serviceSb.toString());
-    
-    //Load the client project types
     String[] ids = ProjectTopologyDefaults.getClientTypes();
     StringBuffer sb = new StringBuffer();
     for (int i = 0; i < ids.length; i++)
@@ -55,36 +41,6 @@
     setDefault(PREFERENCE_USE_TWO_EARS, ProjectTopologyDefaults.isUseTwoEARs());
  }
 
-  public void setServiceTypes(String[] ids)
-  {
-    StringBuffer sb = new StringBuffer();
-    for (int i = 0; i < ids.length; i++)
-    {
-      if (i != 0)
-        sb.append(" ");
-      sb.append(ids[i]);
-    }
-    setValue(PREFERENCE_SERVICE_TYPES, sb.toString());
-  }
-
-  public String[] getServiceTypes()
-  {
-    StringTokenizer st = new StringTokenizer(getValueAsString(PREFERENCE_SERVICE_TYPES));
-    String[] s = new String[st.countTokens()];
-    for (int i = 0; i < s.length; i++)
-      s[i] = st.nextToken();
-    return s;
-  }
-  
-  public String[] getDefaultServiceTypes()
-  {
-    StringTokenizer st = new StringTokenizer(getDefaultString(PREFERENCE_SERVICE_TYPES));
-    String[] s = new String[st.countTokens()];
-    for (int i = 0; i < s.length; i++)
-      s[i] = st.nextToken();
-    return s;        
-  }
-    
  public void setClientTypes(String[] ids)
  {
    StringBuffer sb = new StringBuffer();
@@ -105,15 +61,6 @@
      s[i] = st.nextToken();
    return s;
  }
- 
- public String[] getDefaultClientTypes()
- {
-   StringTokenizer st = new StringTokenizer(getDefaultString(PREFERENCE_CLIENT_TYPES));
-   String[] s = new String[st.countTokens()];
-   for (int i = 0; i < s.length; i++)
-     s[i] = st.nextToken();
-   return s;        
- } 
 
  public void setUseTwoEARs(boolean use)
  {
@@ -126,12 +73,8 @@
 
  public ProjectTopologyContext copy() {
  	TransientProjectTopologyContext context = new TransientProjectTopologyContext();
-    context.setServiceTypes(getServiceTypes());
-    context.setDefaultServiceTypes(getDefaultServiceTypes());
 	context.setClientTypes(getClientTypes());
-    context.setDefaultClientTypes(getDefaultClientTypes());
 	context.setUseTwoEARs(isUseTwoEARs());
 	return context;
 }
-
 }
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/preferences/ProjectTopologyContext.java b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/preferences/ProjectTopologyContext.java
index cc21c4b..023ad73 100644
--- a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/preferences/ProjectTopologyContext.java
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/preferences/ProjectTopologyContext.java
@@ -1,15 +1,12 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
+ * Copyright (c) 2000, 2004 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060227   124392 rsinha@ca.ibm.com - Rupam Kuehner
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 
 package org.eclipse.jst.ws.internal.consumption.ui.preferences;
@@ -20,20 +17,14 @@
     * This constant String is used to lookup the preferred order of the different client types
   **/
   public static final String PREFERENCE_CLIENT_TYPES = "clientTypes";
-  public static final String PREFERENCE_SERVICE_TYPES = "serviceTypes";
   
   /**
     * This constant String is used to lookup the two EAR option
   **/
   public static final String PREFERENCE_USE_TWO_EARS = "useTwoEARs";
   
-  public void setServiceTypes(String[] ids);
-  public String[] getServiceTypes();
-  public String[] getDefaultServiceTypes();
-  
   public void setClientTypes(String[] ids);
   public String[] getClientTypes();
-  public String[] getDefaultClientTypes();
 
   public void setUseTwoEARs(boolean use);
   public boolean isUseTwoEARs();
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/preferences/ProjectTopologyDefaults.java b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/preferences/ProjectTopologyDefaults.java
index e19e1f5..113183c 100644
--- a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/preferences/ProjectTopologyDefaults.java
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/preferences/ProjectTopologyDefaults.java
@@ -1,15 +1,12 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
+ * Copyright (c) 2000, 2004 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060227   124392 rsinha@ca.ibm.com - Rupam Kuehner
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 
 package org.eclipse.jst.ws.internal.consumption.ui.preferences;
@@ -18,12 +15,6 @@
 
 public class ProjectTopologyDefaults
 {
-  
-  public static final String[] getServiceTypes()
-  {
-    return WebServiceRuntimeExtensionUtils2.getAllServiceProjectTypes();
-  }
-  
   public static final String[] getClientTypes()
   {
     return WebServiceRuntimeExtensionUtils2.getAllClientProjectTypes();
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/preferences/ProjectTopologyPreferencePage.java b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/preferences/ProjectTopologyPreferencePage.java
index fe3db67..d4ebe1a 100644
--- a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/preferences/ProjectTopologyPreferencePage.java
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/preferences/ProjectTopologyPreferencePage.java
@@ -1,21 +1,17 @@
 /*******************************************************************************
- * Copyright (c) 2003, 2006 IBM Corporation and others.
+ * Copyright (c) 2003, 2004 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060227   124392 rsinha@ca.ibm.com - Rupam Kuehner
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 
 package org.eclipse.jst.ws.internal.consumption.ui.preferences;
 
 import java.util.Vector;
-
 import org.eclipse.jface.preference.PreferencePage;
 import org.eclipse.jface.viewers.ColumnWeightData;
 import org.eclipse.jface.viewers.IStructuredContentProvider;
@@ -35,9 +31,9 @@
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Group;
 import org.eclipse.swt.widgets.Table;
 import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.Text;
 import org.eclipse.ui.IWorkbench;
 import org.eclipse.ui.IWorkbenchPreferencePage;
 import org.eclipse.ui.PlatformUI;
@@ -51,11 +47,6 @@
   /*CONTEXT_ID PTPP0001 for the Project Topology Preference Page*/
   private String INFOPOP_PTPP_PAGE = WebServiceUIPlugin.ID + ".PPTP0001";
 
-  private TableViewer serviceTypeViewer_;
-  private Button serviceMoveUp_;
-  private Button serviceMoveDown_;
-  private Vector serviceTypes_;
-  
   private TableViewer clientTypeViewer_;
   private Button moveUp_;
   private Button moveDown_;
@@ -77,62 +68,17 @@
     parent.setLayoutData( new GridData( GridData.FILL_HORIZONTAL ) );
     PlatformUI.getWorkbench().getHelpSystem().setHelp(parent,INFOPOP_PTPP_PAGE);  
 
-    Group serviceTypeComposite = new Group( parent, SWT.NONE );
-    GridLayout servicegl = new GridLayout();
-    servicegl.numColumns = 2;
-    servicegl.marginHeight = 0;
-    servicegl.marginWidth = 0;
-    serviceTypeComposite.setLayout(servicegl);
-    serviceTypeComposite.setLayoutData( new GridData( GridData.FILL_HORIZONTAL ));
-    serviceTypeComposite.setText(WSUIPluginMessages.LABEL_SERVICE_TYPE_NAME);
-    
-    Table serviceTable= new Table(serviceTypeComposite, SWT.BORDER | SWT.SINGLE | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL);
-    GridData servicegd = new GridData(GridData.FILL_HORIZONTAL | GridData.FILL_VERTICAL);
-    servicegd.widthHint = 256;
-    serviceTable.setLayoutData(servicegd);
-    serviceTable.setToolTipText(WSUIPluginMessages.TOOLTIP_SERVICE_TYPE_TABLE_VIEWER);
+    Text clientTypeLabel = new Text(parent, SWT.READ_ONLY | SWT.WRAP);
+    clientTypeLabel.setText(WSUIPluginMessages.LABEL_CLIENT_TYPE_NAME);
+    clientTypeLabel.setLayoutData( new GridData( GridData.FILL_HORIZONTAL));
 
-    serviceTypes_ = new Vector();
-    serviceTypeViewer_ = new TableViewer(serviceTable);
-    serviceTypeViewer_.setContentProvider(new ClientTypeContentProvider());
-    serviceTypeViewer_.setLabelProvider(new ClientTypeLabelProvider());
-    serviceTypeViewer_.setInput(serviceTypes_);
-
-    TableLayout serviceTableLayout = new TableLayout();
-    TableColumn serviceTableColumn = new TableColumn(serviceTable, SWT.NONE);
-    serviceTableColumn.setText(WSUIPluginMessages.LABEL_SERVICE_TYPE_NAME);
-    ColumnWeightData serviceColumnData = new ColumnWeightData(256, 256, false);
-    serviceTableLayout.addColumnData(serviceColumnData);
-    serviceTable.setLayout(serviceTableLayout);
-
-    Composite servicec = new Composite(serviceTypeComposite, SWT.NONE);
-    servicegl = new GridLayout();
-    servicegl.numColumns = 1;
-    servicegl.marginHeight = 10;
-    servicegl.marginWidth = 0;
-    servicec.setLayout(servicegl);
-
-    serviceMoveUp_ = new Button(servicec, SWT.PUSH);
-    serviceMoveUp_.setText(WSUIPluginMessages.LABEL_MOVE_UP);
-    serviceMoveUp_.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-    serviceMoveUp_.addSelectionListener(this);
-    serviceMoveUp_.setToolTipText(WSUIPluginMessages.TOOLTIP_MOVE_UP);
-
-    serviceMoveDown_ = new Button(servicec, SWT.PUSH);
-    serviceMoveDown_.setText(WSUIPluginMessages.LABEL_MOVE_DOWN);
-    serviceMoveDown_.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-    serviceMoveDown_.addSelectionListener(this);
-    serviceMoveDown_.setToolTipText(WSUIPluginMessages.TOOLTIP_MOVE_DOWN);
-    
-
-    Group clientTypeComposite = new Group( parent, SWT.NONE );
+    Composite clientTypeComposite = new Composite(parent, SWT.NONE);
     GridLayout gl = new GridLayout();
     gl.numColumns = 2;
     gl.marginHeight = 0;
     gl.marginWidth = 0;
     clientTypeComposite.setLayout(gl);
     clientTypeComposite.setLayoutData( new GridData( GridData.FILL_HORIZONTAL ));
-    clientTypeComposite.setText(WSUIPluginMessages.LABEL_CLIENT_TYPE_NAME);
 
     Table table= new Table(clientTypeComposite, SWT.BORDER | SWT.SINGLE | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL);
     GridData gd = new GridData(GridData.FILL_HORIZONTAL | GridData.FILL_VERTICAL);
@@ -211,48 +157,20 @@
    */
   public void init(IWorkbench workbench)  { }
 
-  
-  /**
-   * Adds the String elements of array a into Vector v. If String array b contains any elements
-   * that are not already in array a, appends these elements from array b to the end of Vector v. 
-   * @param a a String array
-   * @param b a String array
-   * @param v a non-null Vector
-   */
-  private void setVectorContentsFromTwoArrays(String[] a, String[] b, Vector v)
-  {
-    for (int i = 0; i < a.length; i++)
-    {
-      v.add(a[i]);
-    }
-    
-    for (int i = 0; i < b.length; i++)
-    {
-      if (v.indexOf(b[i]) == -1)
-      {
-        v.add(b[i]);
-      }
-    }   
-  }
-  
   /**
    * Initializes states of the controls to their burned-in defaults.
    */
   private void initializeDefaults()
   {
-    ProjectTopologyContext context = WebServiceConsumptionUIPlugin.getInstance().getProjectTopologyContext();
-    serviceTypes_.clear();
-    String[] defaultServiceTypes = context.getDefaultServiceTypes();
-    String[] allServiceTypes = ProjectTopologyDefaults.getServiceTypes();
-    setVectorContentsFromTwoArrays(defaultServiceTypes, allServiceTypes, serviceTypes_);    
-    serviceTypeViewer_.refresh();
-    
     clientTypes_.clear();
-    String[] defaultClientTypes = context.getDefaultClientTypes();
-    String[] allClientTypes = ProjectTopologyDefaults.getClientTypes();
-    setVectorContentsFromTwoArrays(defaultClientTypes, allClientTypes, clientTypes_);         
-    clientTypeViewer_.refresh();
+    String[] types = ProjectTopologyDefaults.getClientTypes();
     
+    for (int i = 0; i < types.length; i++)
+    {
+      clientTypes_.add(types[i]);
+    }
+    
+    clientTypeViewer_.refresh();
     twoEAR_.setSelection(true);
   }
   
@@ -261,35 +179,29 @@
    */
   private void initializeValues()
   {
-    //Initial service project types.
     ProjectTopologyContext context = WebServiceConsumptionUIPlugin.getInstance().getProjectTopologyContext();
-    String[] serviceTypesFromContext = context.getServiceTypes();
-    String[] allServiceTypes = ProjectTopologyDefaults.getServiceTypes();
-    setVectorContentsFromTwoArrays(serviceTypesFromContext, allServiceTypes, serviceTypes_);
-    if (allServiceTypes.length > serviceTypesFromContext.length)
+    String[] types = context.getClientTypes();
+    for (int i = 0; i < types.length; i++)
+      clientTypes_.add(types[i]);
+    // check whether we missed any types from the default list
+    boolean missed = false;
+    types = ProjectTopologyDefaults.getClientTypes();
+    for (int i = 0; i < types.length; i++)
     {
-      String[] serviceTypesArray = new String[serviceTypes_.size()];
-      serviceTypes_.copyInto(serviceTypesArray);
-      context.setServiceTypes(serviceTypesArray);
+      if (clientTypes_.indexOf(types[i]) == -1)
+      {
+        clientTypes_.add(types[i]);
+        missed = true;
+      }
     }
-    // refresh viewer
-    serviceTypeViewer_.refresh();
-
-    
-    //Initialize client project types.
-    String[] clientTypesFromContext = context.getClientTypes();
-    String[] allClientTypes = ProjectTopologyDefaults.getClientTypes();
-    setVectorContentsFromTwoArrays(clientTypesFromContext, allClientTypes, clientTypes_);
-    if (allClientTypes.length > clientTypesFromContext.length)
+    if (missed)
     {
-      String[] clientTypesArray = new String[clientTypes_.size()];
-      clientTypes_.copyInto(clientTypesArray);
-      context.setClientTypes(clientTypesArray);
+      types = new String[clientTypes_.size()];
+      clientTypes_.copyInto(types);
+      context.setClientTypes(types);
     }
-    
     // refresh viewer
     clientTypeViewer_.refresh();
-    
     twoEAR_.setSelection(context.isUseTwoEARs());
    }
 
@@ -299,9 +211,6 @@
   private void storeValues()
   {
     ProjectTopologyContext context = WebServiceConsumptionUIPlugin.getInstance().getProjectTopologyContext();
-    String[] serviceTypesArray = new String[serviceTypes_.size()];
-    serviceTypes_.copyInto(serviceTypesArray);
-    context.setServiceTypes(serviceTypesArray);    
     String[] types = new String[clientTypes_.size()];
     clientTypes_.copyInto(types);
     context.setClientTypes(types);
@@ -314,41 +223,20 @@
 
   public void widgetSelected(SelectionEvent e)
   {
-    if (e.widget == serviceMoveUp_ || e.widget == serviceMoveDown_)
+    int index = clientTypeViewer_.getTable().getSelectionIndex();
+    if (index != -1)
     {
-      int index = serviceTypeViewer_.getTable().getSelectionIndex();
-      if (index != -1)
+      if (e.widget == moveUp_ && index > 0)
       {
-        if (e.widget == serviceMoveUp_ && index > 0)
-        {
-          Object object = serviceTypes_.remove(index);
-          serviceTypes_.insertElementAt(object, index-1);
-          serviceTypeViewer_.refresh();
-        }
-        else if (e.widget == serviceMoveDown_ && index < serviceTypes_.size()-1)
-        {
-          Object object = serviceTypes_.remove(index);
-          serviceTypes_.insertElementAt(object, index+1);
-          serviceTypeViewer_.refresh();
-        }
+        Object object = clientTypes_.remove(index);
+        clientTypes_.insertElementAt(object, index-1);
+        clientTypeViewer_.refresh();
       }
-    }
-    else if (e.widget == moveUp_ || e.widget == moveDown_)
-    {
-      int index = clientTypeViewer_.getTable().getSelectionIndex();
-      if (index != -1)
+      else if (e.widget == moveDown_ && index < clientTypes_.size()-1)
       {
-        if (e.widget == moveUp_ && index > 0)
-        {
-          Object object = clientTypes_.remove(index);
-          clientTypes_.insertElementAt(object, index - 1);
-          clientTypeViewer_.refresh();
-        } else if (e.widget == moveDown_ && index < clientTypes_.size() - 1)
-        {
-          Object object = clientTypes_.remove(index);
-          clientTypes_.insertElementAt(object, index + 1);
-          clientTypeViewer_.refresh();
-        }
+        Object object = clientTypes_.remove(index);
+        clientTypes_.insertElementAt(object, index+1);
+        clientTypeViewer_.refresh();
       }
     }
   }
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/preferences/TransientProjectTopologyContext.java b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/preferences/TransientProjectTopologyContext.java
index 1102733..0737788 100644
--- a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/preferences/TransientProjectTopologyContext.java
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/preferences/TransientProjectTopologyContext.java
@@ -1,15 +1,12 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
+ * Copyright (c) 2000, 2004 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060227   124392 rsinha@ca.ibm.com - Rupam Kuehner
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 
 package org.eclipse.jst.ws.internal.consumption.ui.preferences;
@@ -17,25 +14,11 @@
 
 public class TransientProjectTopologyContext implements ProjectTopologyContext
 {
- private String[] serviceTypes;
- private String[] defaultServiceTypes;
- 
  private String[] clientTypes;
- private String[] defaultClientTypes;
- 
  private boolean twoEARs;
  
  public TransientProjectTopologyContext () {}
 
- public void setServiceTypes(String[] serviceTypes)
- {
-   this.serviceTypes = serviceTypes;
- }
- public String[] getServiceTypes()
- {
-   return serviceTypes;
- }
- 
  public void setClientTypes(String[] clientTypes)
  {
    this.clientTypes = clientTypes;
@@ -56,35 +39,8 @@
 
  public ProjectTopologyContext copy() {
  	TransientProjectTopologyContext context = new TransientProjectTopologyContext();
-    context.setServiceTypes(getServiceTypes());
-    context.setDefaultServiceTypes(getDefaultServiceTypes());
 	context.setClientTypes(getClientTypes());
-    context.setDefaultClientTypes(getDefaultClientTypes());
 	context.setUseTwoEARs(isUseTwoEARs());
 	return context;
  }
-
- 
-public void setDefaultServiceTypes(String[] defaultServiceTypes)
-{
-  this.defaultServiceTypes = defaultServiceTypes;
-}
-
-public String[] getDefaultServiceTypes()
-{
-  return defaultServiceTypes;
-
-}
-
-
-public void setDefaultClientTypes(String[] defaultClientTypes)
-{
-  this.defaultClientTypes = defaultClientTypes;
-}
-
-public String[] getDefaultClientTypes()
-{
-  return defaultClientTypes;
-
-}
 }
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/ClientWizardWidgetDefaultingCommand.java b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/ClientWizardWidgetDefaultingCommand.java
index 73caf2e..f71c986 100644
--- a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/ClientWizardWidgetDefaultingCommand.java
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/ClientWizardWidgetDefaultingCommand.java
@@ -1,15 +1,12 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
+ * Copyright (c) 2004 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060221   119111 rsinha@ca.ibm.com - Rupam Kuehner
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jst.ws.internal.consumption.ui.widgets;
 
@@ -65,12 +62,7 @@
     //String                       runtime  = registry.getAllClientRuntimes()[0];
 		String                       runtime  = WebServiceRuntimeExtensionUtils2.getAllRuntimesForClientSide()[0];
     //String                       server   = registry.getAllClientServerFactoryIds()[0];
-        String[] servers = WebServiceRuntimeExtensionUtils2.getAllClientServerFactoryIds();
-        String server = null;
-        if (servers != null && servers.length>0)
-        {
-		  server   = servers[0];
-        }
+		String                       server   = WebServiceRuntimeExtensionUtils2.getAllClientServerFactoryIds()[0];
     TypeRuntimeServer            result   = new TypeRuntimeServer();
 		// rskreg
     
@@ -85,4 +77,4 @@
   {
     return Status.OK_STATUS;
   }
-}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/binding/ClientWidgetBinding.java b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/binding/ClientWidgetBinding.java
index b0b14b3..bc2eada 100644
--- a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/binding/ClientWidgetBinding.java
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/binding/ClientWidgetBinding.java
@@ -1,18 +1,16 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
+ * Copyright (c) 2004 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
+ *     IBM Corporation - initial API and implementation
  * yyyymmdd bug      Email and other contact information
  * -------- -------- -----------------------------------------------------------
  * 20060204 124408    rsinha@ca.ibm.com - Rupam Kuehner          
  * 20060204 121605    rsinha@ca.ibm.com - Rupam Kuehner
- * 20060221   119111 rsinha@ca.ibm.com - Rupam Kuehner
- * 20060223   129020 rsinha@ca.ibm.com - Rupam Kuehner
  *******************************************************************************/
 package org.eclipse.jst.ws.internal.consumption.ui.widgets.binding;
 
@@ -114,7 +112,7 @@
     //dataRegistry.addMapping(ClientRuntimeSelectionWidgetDefaultingCommand.class, "Runtime2ClientTypes", ClientRuntimeSelectionWidget.class);
     //dataRegistry.addMapping(ClientRuntimeSelectionWidgetDefaultingCommand.class, "ClientComponentName", ClientRuntimeSelectionWidget.class);
     //dataRegistry.addMapping(ClientRuntimeSelectionWidgetDefaultingCommand.class, "ClientEarComponentName", ClientRuntimeSelectionWidget.class);
-    dataRegistry.addMapping(ClientRuntimeSelectionWidgetDefaultingCommand.class, "ClientNeedEAR", ClientRuntimeSelectionWidget.class);
+    dataRegistry.addMapping(ClientRuntimeSelectionWidgetDefaultingCommand.class, "ClientNeedEAR", ClientRuntimeSelectionWidget.class,"NeedEAR",null);
     
     // After ClientRuntimeSelectionWidget
     dataRegistry.addMapping(ClientRuntimeSelectionWidget.class, "ClientTypeRuntimeServer", ClientExtensionDefaultingCommand.class);
@@ -313,7 +311,6 @@
       dataRegistry.addMapping(WSDLSelectionOutputCommand.class, "WebServicesParser", CheckForServiceProjectCommand.class);      
 	  
 	  // Setup the PreClientDevelopCommand.
-      dataRegistry.addMapping( ClientExtensionDefaultingCommand.class, "DeployClient", PreClientDevelopCommand.class);
       dataRegistry.addMapping( ClientExtensionDefaultingCommand.class, "InstallClient", PreClientDevelopCommand.class);
       
       //Always start the client if it is installed.      
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/extensions/ClientExtensionDefaultingCommand.java b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/extensions/ClientExtensionDefaultingCommand.java
index 80fcd73..536ddb9 100644
--- a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/extensions/ClientExtensionDefaultingCommand.java
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/extensions/ClientExtensionDefaultingCommand.java
@@ -1,29 +1,25 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
+ * Copyright (c) 2004 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
+ *     IBM Corporation - initial API and implementation
  * yyyymmdd bug      Email and other contact information
  * -------- -------- -----------------------------------------------------------
  * 20060204 124408   rsinha@ca.ibm.com - Rupam Kuehner          
- * 20060221   119111 rsinha@ca.ibm.com - Rupam Kuehner
  *******************************************************************************/
 package org.eclipse.jst.ws.internal.consumption.ui.widgets.extensions;
 
 import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.resources.IProject;
 import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
-import org.eclipse.jem.util.emf.workbench.ProjectUtilities;
 import org.eclipse.jst.ws.internal.common.ServerUtils;
 import org.eclipse.jst.ws.internal.consumption.ui.ConsumptionUIMessages;
-import org.eclipse.jst.ws.internal.consumption.ui.wsrt.RuntimeDescriptor;
 import org.eclipse.jst.ws.internal.consumption.ui.wsrt.WebServiceRuntimeExtensionUtils2;
 import org.eclipse.jst.ws.internal.data.TypeRuntimeServer;
 import org.eclipse.osgi.util.NLS;
@@ -42,7 +38,6 @@
   private TypeRuntimeServer    clientIds_;
   private String               clientRuntimeId_;
   private Boolean              testService;
-  private Boolean              deployClient;
   private Boolean              installClient;
   private ResourceContext      resourceContext;
   
@@ -285,14 +280,6 @@
   }
 
   /**
-   * @return Returns the deployService.
-   */
-  public Boolean getDeployClient()
-  {
-    return deployClient;
-  }
-  
-  /**
    * @return Returns the installClient.
    */
   public Boolean getInstallClient()
@@ -482,11 +469,6 @@
     //when the user clicks Finish prior to page 3 of the wizard.
     
     IStatus status = Status.OK_STATUS;
-    
-    //default deployClient to true. It will get set to false later if there is no
-    //server type selected.
-    deployClient = Boolean.TRUE;
-    
     String scenario = ConsumptionUIMessages.MSG_CLIENT_SUB;
 
     //Ensure server and runtime are non-null
@@ -502,60 +484,30 @@
     
     if( serverId == null || serverId.length()==0)
     {
-      //Popup and error if the selected client project does not exist.
-      IProject clientProject = ProjectUtilities.getProject(clientProjectName_);
-      if (!clientProject.exists())
-      {
-        String runtimeLabel = WebServiceRuntimeExtensionUtils2.getRuntimeLabelById(runtimeId);
-        status = StatusUtils.errorStatus(NLS.bind(ConsumptionUIMessages.MSG_ERROR_NO_SERVER_RUNTIME, new String[]{runtimeLabel } ) );
-        env.getStatusHandler().reportError(status);
-      }
-      else
-      {
-        RuntimeDescriptor desc = WebServiceRuntimeExtensionUtils2.getRuntimeById(runtimeId);
-
-        if (desc.getServerRequired())
-        {
-          status = StatusUtils.errorStatus(NLS.bind(ConsumptionUIMessages.MSG_NO_SERVER, new String[] { scenario }));
-          env.getStatusHandler().reportError(status);
-        } 
-        else
-        {
-          // No server has been selected and the selected Web service runtime
-          // does not
-          // require a server. Set deploy, install, run, and test to false.
-          deployClient = Boolean.FALSE;
-          installClient = Boolean.FALSE;
-          testService = Boolean.FALSE;
-        }
-      }
+      status = StatusUtils.errorStatus( NLS.bind(ConsumptionUIMessages.MSG_NO_SERVER, new String[]{ scenario } ) );
+      env.getStatusHandler().reportError(status);
     }
     
-    //If the server is non-null, ensure the server, runtime, and type are compatible
-    if (serverId != null && serverId.length() > 0)
+    //ensure the server, runtime, and type are compatible
+    if (!WebServiceRuntimeExtensionUtils2.isServerClientRuntimeTypeSupported(serverId, runtimeId, typeId)) 
+    {    
+      String serverLabel = WebServiceRuntimeExtensionUtils2.getServerLabelById(serverId);
+      String runtimeLabel = WebServiceRuntimeExtensionUtils2.getRuntimeLabelById(runtimeId);
+      status = StatusUtils.errorStatus( NLS.bind(ConsumptionUIMessages.MSG_INVALID_SRT_SELECTIONS, new String[]{ serverLabel, runtimeLabel } ) );
+      env.getStatusHandler().reportError(status);
+    }
+    
+    //Determine if the selected server type has only stub runtimes associated with it.
+    //If so, set install and test to false in the context.
+    IRuntime nonStubRuntime = ServerUtils.getNonStubRuntime(serverId);
+    if (nonStubRuntime == null)
     {
-      if (!WebServiceRuntimeExtensionUtils2.isServerClientRuntimeTypeSupported(serverId, runtimeId, typeId))
-      {
-        String serverLabel = WebServiceRuntimeExtensionUtils2.getServerLabelById(serverId);
-        String runtimeLabel = WebServiceRuntimeExtensionUtils2.getRuntimeLabelById(runtimeId);
-        status = StatusUtils.errorStatus(NLS.bind(ConsumptionUIMessages.MSG_INVALID_SRT_SELECTIONS, new String[] { serverLabel,
-            runtimeLabel }));
-        env.getStatusHandler().reportError(status);
-      }
-
-      // Determine if the selected server type has only stub runtimes associated
-      // with it.
-      // If so, set install and test to false in the context.
-      IRuntime nonStubRuntime = ServerUtils.getNonStubRuntime(serverId);
-      if (nonStubRuntime == null)
-      {
-        installClient = Boolean.FALSE;
-        testService = Boolean.FALSE;
-      }
+      installClient = Boolean.FALSE;
+      testService = Boolean.FALSE;
     }
 
     return status;
   }
   
   
-}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/extensions/ServerExtensionDefaultingCommand.java b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/extensions/ServerExtensionDefaultingCommand.java
index 34beebf..e30ae4f 100644
--- a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/extensions/ServerExtensionDefaultingCommand.java
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/extensions/ServerExtensionDefaultingCommand.java
@@ -1,29 +1,25 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
+ * Copyright (c) 2004 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
+ *     IBM Corporation - initial API and implementation
  * yyyymmdd bug      Email and other contact information
  * -------- -------- -----------------------------------------------------------
  * 20060204 124408   rsinha@ca.ibm.com - Rupam Kuehner          
- * 20060221   119111 rsinha@ca.ibm.com - Rupam Kuehner
  *******************************************************************************/
 package org.eclipse.jst.ws.internal.consumption.ui.widgets.extensions;
 
 import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.resources.IProject;
 import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
-import org.eclipse.jem.util.emf.workbench.ProjectUtilities;
 import org.eclipse.jst.ws.internal.common.ServerUtils;
 import org.eclipse.jst.ws.internal.consumption.ui.ConsumptionUIMessages;
-import org.eclipse.jst.ws.internal.consumption.ui.wsrt.RuntimeDescriptor;
 import org.eclipse.jst.ws.internal.consumption.ui.wsrt.WebServiceRuntimeExtensionUtils2;
 import org.eclipse.jst.ws.internal.data.TypeRuntimeServer;
 import org.eclipse.osgi.util.NLS;
@@ -37,7 +33,6 @@
 
 public class ServerExtensionDefaultingCommand extends AbstractDataModelOperation
 {
-  private Boolean              deployService;
   private Boolean              installService;
   private Boolean              startService;
   private Boolean              testService;
@@ -176,14 +171,6 @@
   }
 
   /**
-   * @return Returns the deployService.
-   */
-  public Boolean getDeployService()
-  {
-    return deployService;
-  }
-  
-  /**
    * @return Returns the installService.
    */
   public Boolean getInstallService()
@@ -309,11 +296,6 @@
     //when the user clicks Finish prior to page 3 of the wizard.
     
     IStatus status = Status.OK_STATUS;
-    
-    //default deployService to true. It will get set to false later if there is no
-    //server type selected.
-    deployService = Boolean.TRUE;
-    
     String scenario = ConsumptionUIMessages.MSG_SERVICE_SUB;
 
     //Ensure server and runtime are non-null
@@ -329,59 +311,28 @@
     
     if( serverId == null || serverId.length()==0)
     {
-      //Popup and error if the selected service project does not exist.
-      IProject serviceProject = ProjectUtilities.getProject(serviceProjectName_);
-      if (!serviceProject.exists())        
-      {
-        String runtimeLabel = WebServiceRuntimeExtensionUtils2.getRuntimeLabelById(runtimeId);
-        status = StatusUtils.errorStatus(NLS.bind(ConsumptionUIMessages.MSG_ERROR_NO_SERVER_RUNTIME, new String[]{ runtimeLabel } ) );
-        env.getStatusHandler().reportError(status);
-      }
-      else
-      {
-
-        RuntimeDescriptor desc = WebServiceRuntimeExtensionUtils2.getRuntimeById(runtimeId);
-        if (desc.getServerRequired())
-        {
-          status = StatusUtils.errorStatus(NLS.bind(ConsumptionUIMessages.MSG_NO_SERVER, new String[] { scenario }));
-          env.getStatusHandler().reportError(status);
-        } 
-        else
-        {
-          // No server has been selected and the selected Web service runtime
-          // does not require a server. Set deploy, install, run, and test to false.
-          deployService = Boolean.FALSE;
-          installService = Boolean.FALSE;
-          startService = Boolean.FALSE;
-          testService = Boolean.FALSE;
-        }
-      }
+      status = StatusUtils.errorStatus( NLS.bind(ConsumptionUIMessages.MSG_NO_SERVER, new String[]{ scenario } ) );
+      env.getStatusHandler().reportError(status);
     }
     
-    //If the server is non-null, ensure the server, runtime, and type are compatible
-    if (serverId != null && serverId.length() > 0)
+    //ensure the server, runtime, and type are compatible
+    if (!WebServiceRuntimeExtensionUtils2.isServerRuntimeTypeSupported(serverId, runtimeId, typeId)) 
+    {    
+      String serverLabel = WebServiceRuntimeExtensionUtils2.getServerLabelById(serverId);
+      String runtimeLabel = WebServiceRuntimeExtensionUtils2.getRuntimeLabelById(runtimeId);
+      status = StatusUtils.errorStatus( NLS.bind(ConsumptionUIMessages.MSG_INVALID_SRT_SELECTIONS, new String[]{ serverLabel, runtimeLabel } ) );
+      env.getStatusHandler().reportError(status);
+    }
+    
+    //Determine if the selected server type has only stub runtimes associated with it.
+    //If so, set install, run, and test to false in the context.
+    IRuntime nonStubRuntime = ServerUtils.getNonStubRuntime(serverId);
+    if (nonStubRuntime == null)
     {
-      if (!WebServiceRuntimeExtensionUtils2.isServerRuntimeTypeSupported(serverId, runtimeId, typeId))
-      {
-        String serverLabel = WebServiceRuntimeExtensionUtils2.getServerLabelById(serverId);
-        String runtimeLabel = WebServiceRuntimeExtensionUtils2.getRuntimeLabelById(runtimeId);
-        status = StatusUtils.errorStatus(NLS.bind(ConsumptionUIMessages.MSG_INVALID_SRT_SELECTIONS, new String[] { serverLabel,
-            runtimeLabel }));
-        env.getStatusHandler().reportError(status);
-      }
-
-      // Determine if the selected server type has only stub runtimes associated
-      // with it.
-      // If so, set install, run, and test to false in the context.
-      IRuntime nonStubRuntime = ServerUtils.getNonStubRuntime(serverId);
-      if (nonStubRuntime == null)
-      {
-        installService = Boolean.FALSE;
-        startService = Boolean.FALSE;
-        testService = Boolean.FALSE;
-      }
+      installService = Boolean.FALSE;
+      startService = Boolean.FALSE;
+      testService = Boolean.FALSE;
     }
-    
     return status;
   }
-}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/object/EJBSelectionWidget.java b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/object/EJBSelectionWidget.java
index 68dbadc..058f2d8 100644
--- a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/object/EJBSelectionWidget.java
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/object/EJBSelectionWidget.java
@@ -1,20 +1,16 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
+ * Copyright (c) 2004 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060329   128069 rsinha@ca.ibm.com - Rupam Kuehner
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jst.ws.internal.consumption.ui.widgets.object;
 
 import java.util.Collections;
-import java.util.Hashtable;
 import java.util.Iterator;
 import java.util.Vector;
 
@@ -44,7 +40,6 @@
 import org.eclipse.ui.PlatformUI;
 import org.eclipse.wst.command.internal.env.core.common.StatusUtils;
 import org.eclipse.wst.command.internal.env.ui.widgets.WidgetDataEvents;
-import org.eclipse.wst.common.componentcore.internal.util.ComponentUtilities;
 import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
 
 public class EJBSelectionWidget extends AbstractObjectSelectionWidget implements IObjectSelectionWidget
@@ -53,11 +48,12 @@
   private Combo earList;
   private EJBTableViewer beanList;
   private IVirtualComponent[] earComponents;
+  //rskejb private EARNatureRuntime[] earProjects;
   private Integer selectedBeanIndex = null;
   private Vector ejbBeanNames;
   private Vector ejbComponentNames;
   private Vector ejbComponentProjectNames;
-  private Hashtable ejbValuesByEARSelectionCache;
+  //rskejb private Vector ejbProjectNames;
   private Listener  statusListener_;
   /* CONTEXT_ID PEBD0001 for the EAR Projects drop-down box */
   private String INFOPOP_PEBD_EAR_PROJECTS = "org.eclipse.jst.ws.consumption.ui.PEBD0001";
@@ -67,7 +63,23 @@
   public EJBSelectionWidget()
   {
 	earComponents = J2EEUtils.getAllEARComponents();
-    ejbValuesByEARSelectionCache = new Hashtable();
+    /* rskejb 
+    IProject[] projects = J2EEUtils.getEARProjects();
+	
+	
+    Vector earVector = new Vector();
+    for (int i = 0; i < projects.length; i++)
+    {
+      try
+      {
+        earVector.add(projects[i].getNature(IEARNatureConstants.NATURE_ID));
+      }
+      catch (CoreException ce)
+      {
+      }
+    }
+    earProjects = (EARNatureRuntime[]) earVector.toArray(new EARNatureRuntime[0]);
+	rskejb */
   }
 
   public String getSelectedBean()
@@ -111,15 +123,7 @@
       public void widgetSelected(SelectionEvent evt)
       {
         Combo widget = (Combo) (evt.widget);
-        int earListSelectionIndex = widget.getSelectionIndex();
-        if (earListSelectionIndex > 0)
-        {
-          setBeanList(earComponents[earListSelectionIndex-1]);
-        }
-        else
-        {
-          setBeanList(null);
-        }
+        setBeanList(earComponents[widget.getSelectionIndex()]);
         selectedBeanIndex = null;
         statusListener_.handleEvent(null);
       }
@@ -152,10 +156,6 @@
     {
       setBeanList(earComponents[0]);
     }
-    else
-    {
-      setBeanList(null);
-    }
     beanTable.getColumn(0).pack();
     beanTable.getColumn(1).pack();
     // This is a dummy label that forces the status label into the second
@@ -166,44 +166,19 @@
 
   private void addEARNamesToList()
   {
-    earList.add(ConsumptionUIMessages.LABEL_SHOW_ALL_STATELESS_SESSION_EJBS);
     if (earComponents != null && earComponents.length > 0)
     {
       for (int index = 0; index < earComponents.length; index++)
       {
         earList.add(earComponents[index].getName());
       }
-      earList.setText(earList.getItem(1));
+      earList.setText(earList.getItem(0));
     }
   }
 
   private void setBeanList(IVirtualComponent earComponent)
-  {    
-    String cacheKey = (earComponent == null)? earList.getItem(0): earComponent.getName();
-    
-    //Check if we've already cached results for this case. If so, use the
-    //cached values and return. If not, continue.
-    EJBTableValues cachedValues = (EJBTableValues)ejbValuesByEARSelectionCache.get(cacheKey);
-    if (cachedValues != null)
-    {
-      ejbBeanNames = cachedValues.cachedEjbBeanNames;
-      ejbComponentNames = cachedValues.cachedEjbComponentNames;
-      ejbComponentProjectNames = cachedValues.cachdedEjbComponentProjectNames;
-      beanList.setData(ejbBeanNames, ejbComponentNames);
-      beanList.setInput(ejbBeanNames);    
-      return;
-    }
-    
-    IVirtualComponent[] ejbComponentsArray = null;
-    if (earComponent == null)
-    {  
-      ejbComponentsArray = J2EEUtils.getAllEJBComponents();      
-    }
-    else
-    {
-      ejbComponentsArray = J2EEUtils.getReferencingEJBComponentsFromEAR(earComponent.getProject());
-    }
-    
+  {
+    IVirtualComponent[] ejbComponentsArray = J2EEUtils.getReferencingEJBComponentsFromEAR(earComponent.getProject());
     Table beanTable = beanList.getTable();
     beanTable.removeAll();
     ejbBeanNames = new Vector();
@@ -229,16 +204,39 @@
       }      
     }
     beanList.setData(ejbBeanNames, ejbComponentNames);
-    beanList.setInput(ejbBeanNames);
+    beanList.setInput(ejbBeanNames);    
     
-    //Cache the results for next time
-    EJBTableValues ejbTableValues = new EJBTableValues();
-    ejbTableValues.cachedEjbBeanNames = ejbBeanNames;
-    ejbTableValues.cachedEjbComponentNames = ejbComponentNames;
-    ejbTableValues.cachdedEjbComponentProjectNames = ejbComponentProjectNames;
-    ejbValuesByEARSelectionCache.put(cacheKey, ejbTableValues);        
   }
-    
+  
+  /*
+   * @deprecated
+   */
+  /*
+  private void setBeanList(EARNatureRuntime earProject)
+  {
+    Vector ejbProjects = J2EEUtils.getEJBProjects(earProject);
+    Table beanTable = beanList.getTable();
+    beanTable.removeAll();
+    ejbBeanNames = new Vector();
+    //rskejb ejbProjectNames = new Vector();
+    ejbComponentNames = new Vector();
+    ejbComponents = new Vector();
+    for (int index = 0; index < ejbProjects.size(); index++)
+    {
+      EJBNatureRuntime ejbNature = (EJBNatureRuntime) (ejbProjects.elementAt(index));
+      EJBProjectResources ejbResource = new EJBProjectResources(ejbNature.getProject());
+      EJBJar jar = ejbResource.getEJBJar();
+      Vector beans = J2EEUtils.getBeanNames(jar);
+      String projectName = ejbNature.getProject().getName();
+      ejbBeanNames.addAll(beans);
+      ejbProjectNames.addAll(Collections.nCopies(beans.size(), projectName));
+      ejbResource.cleanup();
+    }
+    beanList.setData(ejbBeanNames, ejbProjectNames);
+    beanList.setInput(ejbBeanNames);
+  }
+  */
+  
   public void setInitialSelection(IStructuredSelection initialSelection)
   {
     if (initialSelection != null && !initialSelection.isEmpty())
@@ -275,13 +273,24 @@
               }
 				
 			      }
+			      /* rskejb
+            Vector ejbProjects = J2EEUtils.getEJBProjects(earProjects[i]);
+            for (Iterator it = ejbProjects.iterator(); it.hasNext();)
+            {
+              EJBProjectResources ejbResource = new EJBProjectResources(((EJBNatureRuntime) it.next()).getProject());
+              if (ejbResource.getEJBJar() == jar)
+              {
+                earList.setText(earProjects[i].getProject().getName());
+                setBeanList(earProjects[i]);
+                beanList.setSelection(new StructuredSelection(new Integer[]{new Integer(ejbBeanNames.indexOf(session.getName()))}));
+                selectedBeanIndex = new Integer(ejbBeanNames.indexOf(session.getName()));
+                ejbResource.cleanup();
+                return;
+              }
+              ejbResource.cleanup();
+            }
+			      rskejb */
           }
-          
-          //Haven't returned yet so we did not find an EAR that contains this EJB. Initialize the page accordingly.
-          earList.setText(earList.getItem(0));
-          setBeanList(null);
-          beanList.setSelection(new StructuredSelection(new Integer[]{new Integer(ejbBeanNames.indexOf(session.getName()))}));
-          selectedBeanIndex = new Integer(ejbBeanNames.indexOf(session.getName()));
         }
       }
     }
@@ -298,30 +307,50 @@
         String selEJBName = (String) ejbBeanNames.get(((Integer) object).intValue());
         if (selEJBName != null)
         {
-          //Get the project containing the bean to get the corresponding Session object.
-          //Then return the Session object in an IStructuredSelection.
-          String ejbComponentName = (String) ejbComponentNames.get(((Integer)object).intValue());
-          IVirtualComponent ejbComponent = ComponentUtilities.getComponent(ejbComponentName);
-          EJBArtifactEdit  ejbEdit = null;
-          try 
+          IProject project = earComponents[earList.getSelectionIndex()].getProject();
+          IVirtualComponent[] ejbComponents = J2EEUtils.getReferencingEJBComponentsFromEAR(project);
+          for (int i=0; i<ejbComponents.length; i++)
           {
-            ejbEdit = EJBArtifactEdit.getEJBArtifactEditForRead(ejbComponent);
-            EJBResource ejbRes = ejbEdit.getEJBJarXmiResource();
-            EJBJar jar = ejbRes.getEJBJar();
+            EJBArtifactEdit  ejbEdit = null;
+            try 
+            {
+              ejbEdit = EJBArtifactEdit.getEJBArtifactEditForRead(ejbComponents[i]);
+              EJBResource ejbRes = ejbEdit.getEJBJarXmiResource();
+              EJBJar jar = ejbRes.getEJBJar();
+              java.util.List sessions = jar.getSessionBeans();
+              for (Iterator it2 = sessions.iterator(); it2.hasNext();)
+              {
+                Session session = (Session) it2.next();
+                if (selEJBName.equals(session.getName()))
+                {
+                  return new StructuredSelection(new Session[]{session});
+                }
+              }
+            }
+            finally {
+              if (ejbEdit!=null)
+                ejbEdit.dispose();
+            }            
+          }
+          /* rskejb
+          Vector ejbProjects = J2EEUtils.getEJBProjects(earProjects[earList.getSelectionIndex()]);
+          for (Iterator it = ejbProjects.iterator(); it.hasNext();)
+          {
+            EJBProjectResources ejbResource = new EJBProjectResources(((EJBNatureRuntime) it.next()).getProject());
+            EJBJar jar = ejbResource.getEJBJar();
             java.util.List sessions = jar.getSessionBeans();
             for (Iterator it2 = sessions.iterator(); it2.hasNext();)
             {
               Session session = (Session) it2.next();
               if (selEJBName.equals(session.getName()))
               {
+                ejbResource.cleanup();
                 return new StructuredSelection(new Session[]{session});
               }
             }
+            ejbResource.cleanup();
           }
-          finally {
-            if (ejbEdit!=null)
-              ejbEdit.dispose();
-          }
+          rskejb */
         }
       }
     }
@@ -361,11 +390,4 @@
   	return Status.OK_STATUS;
   }
   
-  private class EJBTableValues
-  {
-    Vector cachedEjbBeanNames;
-    Vector cachedEjbComponentNames;
-    Vector cachdedEjbComponentProjectNames; 
-  }
-  
-}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/object/ObjectSelectionWidget.java b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/object/ObjectSelectionWidget.java
index 578c502..25a07a0 100644
--- a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/object/ObjectSelectionWidget.java
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/object/ObjectSelectionWidget.java
@@ -1,15 +1,12 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
+ * Copyright (c) 2004 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060224   129387 pmoogk@ca.ibm.com - Peter Moogk
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jst.ws.internal.consumption.ui.widgets.object;
 
@@ -25,7 +22,6 @@
 import org.eclipse.jst.ws.internal.consumption.ui.wsrt.WebServiceRuntimeExtensionUtils2;
 import org.eclipse.jst.ws.internal.data.TypeRuntimeServer;
 import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Composite;
@@ -98,6 +94,7 @@
                 if (object instanceof IObjectSelectionWidget)
                 {
                   Control shell = parent.getShell();
+                  int x = shell.getSize().x;
                   composite = new Composite(parent, SWT.NONE);
                   GridLayout gl = new GridLayout();
                   gl.marginHeight = 0;
@@ -108,32 +105,9 @@
                   child = (IObjectSelectionWidget)object;
                   child.addControls(composite, statusListener);
                   child.setInitialSelection(initialSelection);
-                  
-                  Point origSize = shell.getSize();
-                  Point compSize = composite.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-                  int   newX     = origSize.x;
-                  int   newY     = origSize.y;
-                  
-                  // Note: we are trying to determine here if the wizard page should
-                  //       be resized based on the size of the control that is
-                  //       given to us by the extension.  The hard coded constants
-                  //       below represent the vertical and horizontal pixels that need
-                  //       to go around object selection control.  Hopefully, a more
-                  //       programatic method of doing this can be found in the future.
-                  if( compSize.x + 20 > origSize.x )
-                  {
-                    newX = compSize.x + 20;
-                  }
-                  
-                  if( compSize.y + 205 > origSize.y )
-                  {
-                    newY = compSize.y + 205;
-                  }
-                  
-                  composite.setSize(newX - 20, newY - 205 );
-                  parent.setSize(newX - 10, newY - 195 );
-                  shell.setSize(newX, newY);
-                  
+                  composite.setSize(x-20, composite.computeSize(SWT.DEFAULT, SWT.DEFAULT).y);
+                  parent.setSize(x-10, parent.computeSize(SWT.DEFAULT, SWT.DEFAULT).y);
+                  shell.setSize(x, shell.computeSize(SWT.DEFAULT, SWT.DEFAULT).y);
                   shell.setRedraw(true);
                   shell.redraw();
                   shell.update();
@@ -256,4 +230,4 @@
     }
     return null;    
   }
-}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/object/ValidationMessageViewerWidget.java b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/object/ValidationMessageViewerWidget.java
index bc54f59..5770d55 100644
--- a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/object/ValidationMessageViewerWidget.java
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/object/ValidationMessageViewerWidget.java
@@ -4,12 +4,12 @@
  * 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
- * yyyymmdd bug      Email and other contact information
+ *     IBM Corporation - initial API and implementation
+ *yyyymmdd bug      Email and other contact information
  * -------- -------- -----------------------------------------------------------
- * 20060310   131352 pmoogk@ca.ibm.com - Peter Moogk
+ * 20060411   136134 kathy@ca.ibm.com - Kathy Chan
  *******************************************************************************/
 package org.eclipse.jst.ws.internal.consumption.ui.widgets.object;
 
@@ -29,11 +29,11 @@
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Listener;
 import org.eclipse.swt.widgets.Table;
 import org.eclipse.swt.widgets.TableColumn;
 import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.swt.widgets.Text;
 import org.eclipse.ui.ISharedImages;
 import org.eclipse.ui.PlatformUI;
 import org.eclipse.wst.command.internal.env.core.common.StatusUtils;
@@ -48,7 +48,11 @@
   private TableViewer tableViewer_;
   private Table table_;
   private String message = null;
-  static final String columns_[] = {"severity", "line", "column", "message"};
+  static final String columns_[] = {ConsumptionUIMessages.TABLE_COLUMN_VALIDATION_SEVERITY,
+		ConsumptionUIMessages.TABLE_COLUMN_VALIDATION_LINE,
+		ConsumptionUIMessages.TABLE_COLUMN_VALIDATION_COLUMN,
+		ConsumptionUIMessages.TABLE_COLUMN_VALIDATION_MESSAGE};
+
   static final int columnsWidth_[] = {10, 10, 10, 60};
 
   
@@ -68,7 +72,7 @@
 	composite.setLayout(gl);
 	composite.setLayoutData(new GridData(GridData.FILL_BOTH));
 	
-    Text messageLabel = new Text( composite, SWT.READ_ONLY);
+    Label messageLabel = new Label( composite, SWT.WRAP);
     messageLabel.setText( ConsumptionUIMessages.LABEL_VALIDATE_MESSAGES);
     GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
     messageLabel.setLayoutData(gd);
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/runtime/ClientRuntimeSelectionWidget.java b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/runtime/ClientRuntimeSelectionWidget.java
index 4f44992..3d4ee20 100644
--- a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/runtime/ClientRuntimeSelectionWidget.java
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/runtime/ClientRuntimeSelectionWidget.java
@@ -1,16 +1,15 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
+ * Copyright (c) 2004 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
+ *     IBM Corporation - initial API and implementation
  * yyyymmdd bug      Email and other contact information
  * -------- -------- -----------------------------------------------------------
  * 20060204 124408   rsinha@ca.ibm.com - Rupam Kuehner          
- * 20060221   119111 rsinha@ca.ibm.com - Rupam Kuehner
  *******************************************************************************/
 package org.eclipse.jst.ws.internal.consumption.ui.widgets.runtime;
 
@@ -222,45 +221,35 @@
         }
         else
         {
-          //Non-existing project is only permitted if there is a server selected.
-          if (serverFactoryId==null || serverFactoryId.length()==0)
-          {
-            finalStatus = StatusUtils.errorStatus(NLS.bind(ConsumptionUIMessages.MSG_PROJECT_MUST_EXIST, new String[]{projectName}));
-          }
-          else
-          {
-            // Look at the project type to ensure that it is suitable for the
-            // selected runtime and server.
-            String templateId = getClientComponentType();
+          //Look at the project type to ensure that it is suitable for the selected runtime
+          //and server.
+          
+          String templateId = getClientComponentType();
 
-            if (templateId != null && templateId.length() > 0)
+          if (templateId != null && templateId.length()>0)
+          {
+            //Check if the runtime supports it.            
+            if (!WebServiceRuntimeExtensionUtils2.doesClientTypeAndRuntimeSupportTemplate(typeId, runtimeId, templateId))
             {
-              // Check if the runtime supports it.
-              if (!WebServiceRuntimeExtensionUtils2.doesClientTypeAndRuntimeSupportTemplate(typeId, runtimeId, templateId))
+              String runtimeLabel = WebServiceRuntimeExtensionUtils2.getRuntimeLabelById(runtimeId);
+              String templateLabel = FacetUtils.getTemplateLabelById(templateId);
+              finalStatus = StatusUtils.errorStatus(NLS.bind(ConsumptionUIMessages.MSG_CLIENT_RUNTIME_DOES_NOT_SUPPORT_TEMPLATE, new String[]{runtimeLabel, templateLabel}));
+            }
+            
+            //Check if the server supports it.
+            if (serverFactoryId!=null && serverFactoryId.length()>0)
+            {
+              if (!valUtils.doesServerSupportTemplate(serverFactoryId, templateId))
               {
-                String runtimeLabel = WebServiceRuntimeExtensionUtils2.getRuntimeLabelById(runtimeId);
+                String serverLabel = WebServiceRuntimeExtensionUtils2.getServerLabelById(serverFactoryId);
                 String templateLabel = FacetUtils.getTemplateLabelById(templateId);
-                finalStatus = StatusUtils.errorStatus(NLS.bind(
-                    ConsumptionUIMessages.MSG_CLIENT_RUNTIME_DOES_NOT_SUPPORT_TEMPLATE, new String[] { runtimeLabel,
-                        templateLabel }));
-              }
-
-              // Check if the server supports it.
-              if (serverFactoryId != null && serverFactoryId.length() > 0)
-              {
-                if (!valUtils.doesServerSupportTemplate(serverFactoryId, templateId))
-                {
-                  String serverLabel = WebServiceRuntimeExtensionUtils2.getServerLabelById(serverFactoryId);
-                  String templateLabel = FacetUtils.getTemplateLabelById(templateId);
-                  finalStatus = StatusUtils.errorStatus(NLS.bind(
-                      ConsumptionUIMessages.MSG_CLIENT_SERVER_DOES_NOT_SUPPORT_TEMPLATE, new String[] { serverLabel,
-                          templateLabel }));
-                }
+                finalStatus = StatusUtils.errorStatus(NLS.bind(ConsumptionUIMessages.MSG_CLIENT_SERVER_DOES_NOT_SUPPORT_TEMPLATE, new String[]{serverLabel, templateLabel}));
               }
             }
           }
           
           
+          
         }
       }
       
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/runtime/ClientRuntimeSelectionWidgetDefaultingCommand.java b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/runtime/ClientRuntimeSelectionWidgetDefaultingCommand.java
index 738f953..896c2f9 100644
--- a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/runtime/ClientRuntimeSelectionWidgetDefaultingCommand.java
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/runtime/ClientRuntimeSelectionWidgetDefaultingCommand.java
@@ -1,20 +1,16 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
+ * Copyright (c) 2004 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
+ *     IBM Corporation - initial API and implementation
  * yyyymmdd bug      Email and other contact information
  * -------- -------- -----------------------------------------------------------
  * 20060131 121071   rsinha@ca.ibm.com - Rupam Kuehner
  * 20060206 126408   rsinha@ca.ibm.com - Rupam Kuehner
- * 20060221   119111 rsinha@ca.ibm.com - Rupam Kuehner
- * 20060222   115834 rsinha@ca.ibm.com - Rupam Kuehner
- * 20060227   124392 rsinha@ca.ibm.com - Rupam Kuehner
- * 20060315   131963 rsinha@ca.ibm.com - Rupam Kuehner
  *******************************************************************************/
 package org.eclipse.jst.ws.internal.consumption.ui.widgets.runtime;
 
@@ -42,14 +38,13 @@
 import org.eclipse.jst.ws.internal.consumption.common.FacetUtils;
 import org.eclipse.jst.ws.internal.consumption.common.RequiredFacetVersion;
 import org.eclipse.jst.ws.internal.consumption.ui.ConsumptionUIMessages;
-import org.eclipse.jst.ws.internal.consumption.ui.common.ValidationUtils;
 import org.eclipse.jst.ws.internal.consumption.ui.plugin.WebServiceConsumptionUIPlugin;
 import org.eclipse.jst.ws.internal.consumption.ui.preferences.PersistentServerRuntimeContext;
 import org.eclipse.jst.ws.internal.consumption.ui.preferences.ProjectTopologyContext;
 import org.eclipse.jst.ws.internal.consumption.ui.wsrt.ClientRuntimeDescriptor;
 import org.eclipse.jst.ws.internal.consumption.ui.wsrt.FacetMatchCache;
-import org.eclipse.jst.ws.internal.consumption.ui.wsrt.RuntimeDescriptor;
 import org.eclipse.jst.ws.internal.consumption.ui.wsrt.ServiceRuntimeDescriptor;
+import org.eclipse.jst.ws.internal.consumption.ui.wsrt.WebServiceRuntimeExtensionUtils;
 import org.eclipse.jst.ws.internal.consumption.ui.wsrt.WebServiceRuntimeExtensionUtils2;
 import org.eclipse.jst.ws.internal.data.TypeRuntimeServer;
 import org.eclipse.osgi.util.NLS;
@@ -95,18 +90,18 @@
   private ResourceContext   resourceContext_;
   private boolean           test_;
   
-  //A note on initial projects ...
-  //The difference between clientInitialProject_ and initialProject_ is that
-  //clientInitialProject_ comes from the ObjectSelectionOutputCommand while initialProject_
-  //comes from SelectionCommand (i.e. it is the project containing the thing that was selected before 
-  //the wizard was launched). In the defaulting algorithm, clientInitialProject_ will 
-  //be given first priority. If, however, it is deemed that clientInitialProject_ is not a valid project 
-  //because it contains the J2EE Web service for which we are trying to create a client, initialProject_
-  //will be given second priority.
-  private IProject initialProject_; //This is the project containing the selection prior to the wizard being launched.
-  private IProject clientInitialProject_; //This is the project containing the object selection from page 2.
+  //A note on initialSelections ...
+  //The difference between clientInitialProject/Component_ and initialInitialSelection is that
+  //clientInitialProject/Component_ comes from the ObjectSelectionOutputCommand while initialInitialSelection
+  //is the actual thing that was selected before the wizard was launched. In the runtime/j2ee/project 
+  //defaulting algorithm, clientInitialSelection will be given first priority. If, however, it is 
+  //deemed that clientInitialProject is not a valid initial selection, initialInitialSelection
+  //will be given second priority. Things that could make an initialSelection invalid include
+  //1. The containing project contains the Web service for which we are trying to create a client
+  //2. The containing project has a J2EE level, server target, and project type combination which
+  //   is not supported by any of the registered Web service runtimes.
+  private IProject clientInitialProject_;
   private String wsdlURI_;
-  private WebServicesParser parser_;  
 
   public ClientRuntimeSelectionWidgetDefaultingCommand()
   {
@@ -187,45 +182,14 @@
       } 
       else
       {
-        ValidationUtils vu = new ValidationUtils();
-        
-        // Set the runtime based on the project containing the object selection/initial selection.
-        DefaultRuntimeTriplet drt = null;
-        
-        if (!vu.isProjectServiceProject(clientInitialProject_, wsdlURI_, parser_))
-        {
-          //If clientIntialProject_ does not contain the J2EE Web service, choose a clientRuntime based on it.
-          drt = getDefaultRuntime(clientInitialProject_, clientIds_.getTypeId(), true);
-          clientFacetMatcher_ = drt.getFacetMatcher();
-          clientProjectName_ = drt.getProjectName();
-          clientRuntimeId_ = drt.getRuntimeId();          
-        }
-        else
-        {
-          //clientInitialProject_ contains the J2EE Web service so don't use it.
-          //Try using the initalProject_ instead.
-          if (!vu.isProjectServiceProject(initialProject_, wsdlURI_, parser_))
-          {
-            //If intialProject_ does not contain the J2EE Web service, choose a clientRuntime based on it.
-            drt = getDefaultRuntime(initialProject_, clientIds_.getTypeId(), true);
-            clientFacetMatcher_ = drt.getFacetMatcher();
-            clientProjectName_ = drt.getProjectName();
-            clientRuntimeId_ = drt.getRuntimeId();            
-          }
-          else
-          {
-            //Both clientIntialProject_ and initialProject_ contain the J2EE Web service
-            //and cannot be used to influence clientRuntime defaulting.
-            //Choose a clientRuntime but don't choose clientInitialProject_
-            //as the clientProject.
-            drt = getDefaultRuntime(null, clientIds_.getTypeId(), true);
-            clientRuntimeId_ = drt.getRuntimeId();                      
-          }
-        }
+        // Set the runtime based on the initial selection
+        DefaultRuntimeTriplet drt = getDefaultRuntime(clientInitialProject_, clientIds_.getTypeId(), true);
+        clientFacetMatcher_ = drt.getFacetMatcher();
+        clientProjectName_ = drt.getProjectName();
+        clientRuntimeId_ = drt.getRuntimeId();
 
         if (clientRuntimeId_ == null)
         {
-        	// TODO:
           // return and error.
         }
         clientIds_.setRuntimeId(WebServiceRuntimeExtensionUtils2.getClientRuntimeDescriptorById(clientRuntimeId_).getRuntime()
@@ -375,18 +339,11 @@
       return Status.OK_STATUS;
     }    
     
-    // No suitable server was found. Popup an error if the default Web service
-    // runtime requires a server.
-    RuntimeDescriptor runtimeDescriptor = WebServiceRuntimeExtensionUtils2.getRuntimeById(clientIds_.getRuntimeId());
-    if (runtimeDescriptor.getServerRequired())
-    {
-      String runtimeLabel = WebServiceRuntimeExtensionUtils2.getRuntimeLabelById(clientIds_.getRuntimeId());
-      IStatus status = StatusUtils.errorStatus(NLS.bind(ConsumptionUIMessages.MSG_ERROR_NO_SERVER_RUNTIME, new String[] {
-          runtimeLabel}));
-      return status;
-    }
-    
-    return Status.OK_STATUS;
+    //No suitable server was found. Popup an error.
+    String runtimeLabel = WebServiceRuntimeExtensionUtils2.getRuntimeLabelById(clientIds_.getRuntimeId());
+    String serverLabels = getServerLabels(clientRuntimeId_);    
+    IStatus status = StatusUtils.errorStatus(NLS.bind(ConsumptionUIMessages.MSG_ERROR_NO_SERVER_RUNTIME, new String[]{runtimeLabel, serverLabels}) );
+    return status;
   }
   
   private IServer getServerFromClientRuntimeId()
@@ -657,6 +614,7 @@
   {
     String[] templates = WebServiceRuntimeExtensionUtils2.getClientProjectTemplates(clientIds_.getTypeId(), clientIds_.getRuntimeId());
     
+    //Pick the Web one if it's there, otherwise pick the first one.
     //Walk the list of client project types in the project topology preference
     ProjectTopologyContext ptc= WebServiceConsumptionUIPlugin.getInstance().getProjectTopologyContext();
     String[] preferredTemplateIds = ptc.getClientTypes();
@@ -699,7 +657,6 @@
   
   private String getDefaultClientProjectName()
   {
-    ValidationUtils vu = new ValidationUtils();
     IProject[] projects = FacetUtils.getAllProjects();
     ClientRuntimeDescriptor desc = WebServiceRuntimeExtensionUtils2.getClientRuntimeDescriptorById(clientRuntimeId_);
     RequiredFacetVersion[] rfvs = desc.getRequiredFacetVersions();
@@ -707,34 +664,32 @@
     //Check each project and its facetRuntime for compatibility with the clientRuntime
     for (int i=0; i<projects.length; i++)
     {
-      if (!vu.isProjectServiceProject(projects[i], wsdlURI_, parser_))
+
+      Set facetVersions = FacetUtils.getFacetsForProject(projects[i].getName());
+      org.eclipse.wst.common.project.facet.core.runtime.IRuntime fRuntime = null;
+      String fRuntimeName = null;
+      fRuntime = FacetUtils.getFacetRuntimeForProject(projects[i].getName());
+      if (fRuntime != null)
       {
-        Set facetVersions = FacetUtils.getFacetsForProject(projects[i].getName());
-        org.eclipse.wst.common.project.facet.core.runtime.IRuntime fRuntime = null;
-        String fRuntimeName = null;
-        fRuntime = FacetUtils.getFacetRuntimeForProject(projects[i].getName());
-        if (fRuntime != null)
+        fRuntimeName = fRuntime.getName();        
+      }              
+
+      if (facetVersions != null)
+      {
+
+        //FacetMatcher fm = FacetUtils.match(rfvs, facetVersions);
+        FacetMatcher fm = FacetMatchCache.getInstance().getMatchForProject(true, clientRuntimeId_, projects[i].getName());
+        boolean facetRuntimeMatches = true;
+        if (fRuntimeName != null)
         {
-          fRuntimeName = fRuntime.getName();
+          facetRuntimeMatches = FacetUtils.isFacetRuntimeSupported(rfvs, fRuntimeName);  
         }
-
-        if (facetVersions != null)
+        
+        if (fm.isMatch() && facetRuntimeMatches)
         {
-
-          // FacetMatcher fm = FacetUtils.match(rfvs, facetVersions);
-          FacetMatcher fm = FacetMatchCache.getInstance().getMatchForProject(true, clientRuntimeId_, projects[i].getName());
-          boolean facetRuntimeMatches = true;
-          if (fRuntimeName != null)
-          {
-            facetRuntimeMatches = FacetUtils.isFacetRuntimeSupported(rfvs, fRuntimeName);
-          }
-
-          if (fm.isMatch() && facetRuntimeMatches)
-          {
-            clientFacetMatcher_ = fm;
-            return projects[i].getName();
-          }
-        }
+          clientFacetMatcher_ = fm;
+          return projects[i].getName();
+        }                    
       }
     }
     
@@ -956,36 +911,23 @@
     //Haven't returned yet so this means that the intitially selected project cannot be used
     //to influence the selection of the service/client runtime. 
     
-      //Use the preferred project types to influence the selection of a runtime.
+    //If this is client defaulting, use the preferred client project types to
+    //influence the selection of a runtime.
+    if (isClient)
+    {
       ProjectTopologyContext ptc = WebServiceConsumptionUIPlugin.getInstance().getProjectTopologyContext();
-      String[] preferredTemplateIds = null;
-      if (isClient)
-      {
-        preferredTemplateIds = ptc.getClientTypes();  
-      }
-      else
-      {
-        preferredTemplateIds = ptc.getServiceTypes();
-      }
-      
+      String[] preferredTemplateIds = ptc.getClientTypes();
     
       for (int n=0; n<preferredTemplateIds.length; n++)
       {
         String preferredTemplateId = preferredTemplateIds[n];
+        //Set templateFacetVersions = FacetUtils.getInitialFacetVersionsFromTemplate(preferredTemplateId);
 
         for (int m=0; m<preferredRuntimeIds.length; m++)
         {
-          //If this client or service runtime supports this template, choose it and exit.        
-          boolean matches = false;
-          if (isClient)
-          {
-            matches = WebServiceRuntimeExtensionUtils2.doesClientRuntimeSupportTemplate(preferredRuntimeIds[m], preferredTemplateId);            
-          }
-          else
-          {
-            matches = WebServiceRuntimeExtensionUtils2.doesServiceRuntimeSupportTemplate(preferredRuntimeIds[m], preferredTemplateId);
-          }
-          
+          //If this clientRuntime supports this template, choose it and exit.        
+          //ClientRuntimeDescriptor desc = WebServiceRuntimeExtensionUtils2.getClientRuntimeDescriptorById(preferredRuntimeIds[m]);
+          boolean matches = WebServiceRuntimeExtensionUtils2.doesClientRuntimeSupportTemplate(preferredRuntimeIds[m], preferredTemplateId);
           if (matches)
           {
             DefaultRuntimeTriplet drt = new DefaultRuntimeTriplet();
@@ -996,7 +938,7 @@
           }        
         }
       }
-    
+    }
     
     //Still haven't returned. Return the first preferred service/client runtime id.
     if (preferredRuntimeIds.length > 0)
@@ -1078,29 +1020,36 @@
     IVirtualComponent[] allEarComps = J2EEUtils.getAllEARComponents();
     if (allEarComps.length>0)
     {
-      if (clientProject != null && clientProject.exists())
-      {
-        for (int i=0; i < allEarComps.length; i++)
-        {
-          IProject earProject = allEarComps[i].getProject();
-          IStatus associationStatus = J2EEUtils.canAssociateProjectToEAR(clientProject, earProject);
-          if (associationStatus.getSeverity()==IStatus.OK)
-          {
-            return allEarComps[i].getName(); 
-          }
-        }
-      }
-      else
-      {
-        return allEarComps[0].getName();
-      }
+        //TODO Choose an existing EAR that can be added to the server and who's J2EE level in consistent with 
+        //that of the selected project, if applicable. Picking the first one for now.        
+        return allEarComps[0].getName();             
     }
-    
-    //there are no Ears.
-    return ResourceUtils.getDefaultClientEARProjectName();
-        
+    else
+    {
+      //there are no Ears.
+      return ResourceUtils.getDefaultClientEARProjectName();
+    }    
   }
-      
+    
+    
+  private String getServerLabels(String clientRuntimeId)
+  {
+        String[] validServerFactoryIds = WebServiceRuntimeExtensionUtils2.getServerFactoryIdsByClientRuntime(clientRuntimeId);
+	    //String[] validServerLabels = new String[validServerFactoryIds.length];
+	    StringBuffer validServerLabels = new StringBuffer(); 
+	    for (int i=0; i<validServerFactoryIds.length; i++)
+	    {
+	    	if (i>0)
+	    	{
+	    		validServerLabels.append(", ");
+	    	}
+	    	validServerLabels.append(WebServiceRuntimeExtensionUtils.getServerLabelById(validServerFactoryIds[i]));
+	    	
+	    }
+	    return validServerLabels.toString();
+  }
+  
+  
   /*
    * Update the client project, client project type and clientRuntime as needed.
    * Used by ServerRuntimeSelectionWidgetDefaultingCommand to update client side
@@ -1192,7 +1141,8 @@
    */
   public void setInitialInitialSelection(IStructuredSelection initialInitialSelection)
   {
-    initialProject_ = getProjectFromInitialSelection(initialInitialSelection);
+    // TODO Delete this method and corresponding mappings
+	// if no longer required.
   }
   
   public boolean getClientNeedEAR()
@@ -1204,7 +1154,8 @@
    * @param parser_ The parser_ to set.
    */
   public void setWebServicesParser(WebServicesParser parser) {
-    parser_ = parser;
+    // TODO Delete this method and corresponding mappings
+	// if no longer required.
   }
   
   public void setWsdlURI(String wsdlURI)
@@ -1320,4 +1271,4 @@
       this.runtimeId_ = runtimeId_;
     }        
   }
-}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/runtime/ProjectSelectionWidget.java b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/runtime/ProjectSelectionWidget.java
index 9544750..e47c1a4 100644
--- a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/runtime/ProjectSelectionWidget.java
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/runtime/ProjectSelectionWidget.java
@@ -1,18 +1,15 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
+ * Copyright (c) 2004 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
+ *     IBM Corporation - initial API and implementation
  * yyyymmdd bug      Email and other contact information
  * -------- -------- -----------------------------------------------------------
  * 20060204 124143   rsinha@ca.ibm.com - Rupam Kuehner          
- * 20060221   122661 rsinha@ca.ibm.com - Rupam Kuehner
- * 20060223   129020 rsinha@ca.ibm.com - Rupam Kuehner
- * 20060227   124392 rsinha@ca.ibm.com - Rupam Kuehner
  *******************************************************************************/
 package org.eclipse.jst.ws.internal.consumption.ui.widgets.runtime;
 
@@ -117,15 +114,19 @@
 		
     if (isClient_)
 	{
-	  moduleProject_ = uiUtils.createCombo(parent, ConsumptionUIMessages.LABEL_CLIENT_PROJECT, ConsumptionUIMessages.LABEL_CLIENT_PROJECT, INFOPOP_PWRS_COMBO_PROJECT, SWT.SINGLE | SWT.BORDER );
-      projectType_ = uiUtils.createCombo(parent, ConsumptionUIMessages.LABEL_CLIENT_TYPE, ConsumptionUIMessages.TOOLTIP_PWCR_COMBO_CLIENT_TYPE, INFOPOP_PWRS_COMBO_CLIENT_PROJECT_TYPE, SWT.SINGLE | SWT.BORDER);      
+      projectType_ = uiUtils.createCombo(parent, ConsumptionUIMessages.LABEL_CLIENT_TYPE, ConsumptionUIMessages.TOOLTIP_PWCR_COMBO_CLIENT_TYPE, INFOPOP_PWRS_COMBO_CLIENT_PROJECT_TYPE, SWT.SINGLE | SWT.BORDER);
+	  moduleProject_ = uiUtils.createCombo(parent, ConsumptionUIMessages.LABEL_CLIENT_PROJECT, ConsumptionUIMessages.LABEL_CLIENT_PROJECT, INFOPOP_PWRS_COMBO_PROJECT, SWT.SINGLE | SWT.BORDER );            
+      //module_ = uiUtils.createCombo(parent, ConsumptionUIMessages.LABEL_CLIENT_MODULE", ConsumptionUIMessages.LABEL_CLIENT_MODULE", INFOPOP_PWRS_COMBO_PROJECT, SWT.SINGLE | SWT.BORDER );
 	  earProject_ = uiUtils.createCombo(parent, ConsumptionUIMessages.LABEL_CLIENT_EAR_PROJECT, ConsumptionUIMessages.LABEL_CLIENT_EAR_PROJECT, INFOPOP_PWRS_COMBO_PROJECT, SWT.SINGLE | SWT.BORDER );
+	  //earModule_ = uiUtils.createCombo(parent, ConsumptionUIMessages.LABEL_CLIENT_EAR_MODULE", ConsumptionUIMessages.LABEL_CLIENT_EAR_MODULE", INFOPOP_PWRS_COMBO_EAR, SWT.SINGLE | SWT.BORDER );
     }
     else 
-	{      
-	  moduleProject_ = uiUtils.createCombo(parent, ConsumptionUIMessages.LABEL_SERVICE_PROJECT, ConsumptionUIMessages.LABEL_SERVICE_PROJECT, INFOPOP_PWRS_COMBO_PROJECT, SWT.SINGLE | SWT.BORDER );
+	{
       projectType_ = uiUtils.createCombo(parent, ConsumptionUIMessages.LABEL_SERVICE_TYPE, ConsumptionUIMessages.TOOLTIP_PWCR_COMBO_SERVICE_TYPE, INFOPOP_PWRS_COMBO_SERVICE_PROJECT_TYPE, SWT.SINGLE | SWT.BORDER);      
+	  moduleProject_ = uiUtils.createCombo(parent, ConsumptionUIMessages.LABEL_SERVICE_PROJECT, ConsumptionUIMessages.LABEL_SERVICE_PROJECT, INFOPOP_PWRS_COMBO_PROJECT, SWT.SINGLE | SWT.BORDER );
+      //module_ = uiUtils.createCombo(parent, ConsumptionUIMessages.LABEL_SERVICE_MODULE", ConsumptionUIMessages.LABEL_SERVICE_MODULE", INFOPOP_PWRS_COMBO_PROJECT, SWT.SINGLE | SWT.BORDER );
 	  earProject_ = uiUtils.createCombo(parent, ConsumptionUIMessages.LABEL_SERVICE_EAR_PROJECT, ConsumptionUIMessages.LABEL_SERVICE_EAR_PROJECT, INFOPOP_PWRS_COMBO_PROJECT, SWT.SINGLE | SWT.BORDER );
+	  //earModule_ = uiUtils.createCombo(parent, ConsumptionUIMessages.LABEL_SERVICE_EAR_MODULE, ConsumptionUIMessages.LABEL_SERVICE_EAR_MODULE, INFOPOP_PWRS_COMBO_EAR, SWT.SINGLE | SWT.BORDER );
     }
     
     //Temporarily remove the listeners
@@ -134,7 +135,6 @@
     {
       public void modifyText(ModifyEvent evt) 
       {
-        handleProjectTypeChanged();
         statusListener_.handleEvent( null );
       }
     };    
@@ -176,7 +176,163 @@
     moduleProject_.removeModifyListener( moduleProjectListener_ );
     earProject_.removeModifyListener( earProjectListener_ );
   }
-    
+  
+  /*
+  private void handleModuleProjectChanged(String moduleName)
+  {
+	String   projectName = moduleProject_.getText(); 
+	IProject project     = null;
+	
+	if( projectName.equals( "" ) ) 
+	{
+	  module_.setItems( new String[0] );
+	  
+	  return;
+	}
+			
+	project = ProjectUtilities.getProject( projectName );
+	
+	
+	IVirtualComponent[] components = J2EEUtils.getComponentsByType( project, componentType_ );
+	String[] modules = new String[components.length];
+	
+	for( int index = 0; index < components.length; index++ )
+	{
+	  modules[index] = components[index].getName();	
+	}
+	
+	module_.setItems( modules );
+	
+	  if( modules.length > 0 )
+	  {
+      if (moduleName != null)
+      {
+       module_.setText(moduleName); 
+      }
+      else
+      {
+	      module_.setText( modules[0] );
+      }
+       
+	  }
+	  else
+	  {
+	    module_.setText( projectName );
+	  }
+  
+  }
+  */
+  
+  /*
+  private void handleModuleChanged()
+  {
+	IVirtualComponent component = getEarModuleForModule();
+	
+	if( component != null )
+	{
+	  String earProject    = component.getProject().getName();
+	  String componentName = component.getName();
+	
+      // This will cause the module list to be update via a listener.
+	  earProject_.setText( earProject );  
+	  earModule_.setText( componentName );
+	}
+	else
+	{
+	  earProject_.setText( "" );  
+	  earModule_.setText( "" );
+	}
+	
+	updateEAREnabledState();
+  }
+  */
+
+  /*
+  private void handleEarProjectChanged()
+  {
+	
+	String   projectName = earProject_.getText(); 
+	
+	if( projectName != null && !projectName.equals( "" ))
+	{
+	  IProject project     = ProjectUtilities.getProject( projectName );
+	
+	  IVirtualComponent[] components = J2EEUtils.getComponentsByType( project, J2EEUtils.EAR );
+	  String[] earModules = new String[components.length];
+	
+	  for( int index = 0; index < components.length; index++ )
+	  {
+	    earModules[index] = components[index].getName();	
+	  }
+	
+	  earModule_.setItems( earModules );
+	
+	  if( earModules.length > 0 )
+	  {
+	    earModule_.setText( earModules[0] );	
+	  }
+	  else
+	  {
+	    earModule_.setText( projectName );	
+	  }
+	}
+	else
+	{
+	  earModule_.setItems( new String[0] );	
+	}
+  }
+  */
+  
+  /*
+  private IVirtualComponent getEarModuleForModule()
+  {
+	String   projectName = moduleProject_.getText(); 
+	
+	if( projectName.equals( "" ) )
+	{
+	  return null;	
+	}
+	
+	IProject project     = ProjectUtilities.getProject( projectName );
+	
+	IVirtualComponent[] components = J2EEUtils.getReferencingEARComponents( project );
+	
+	return components.length == 0 ? null : components[0];
+  }
+  */
+  
+  /*
+  public void setProjectChoices(SelectionListChoices projects) 
+  {
+	listenersOff();
+	
+    projects_ = projects;
+	
+	String   selectedModuleProject    = projects.getList().getSelection();
+	String   selectedEarModuleProject = projects.getChoice().getList().getSelection();
+	String[] projectNames             = getProjects();
+	
+	moduleProject_.setItems( projectNames );
+	moduleProject_.setText( selectedModuleProject );
+	earProject_.setItems( projectNames );
+	earProject_.setText( selectedEarModuleProject );
+		
+	handleModuleProjectChanged(initialModuleName_);
+  handleModuleChanged();
+	updateEAREnabledState();	
+    listenersOn();
+  }
+  */
+  
+
+
+  /*
+  public SelectionListChoices getProjectChoices() 
+  {
+    return projects_;
+  }
+  */
+  
   public String getProjectName()
   {
 	return moduleProject_.getText();
@@ -187,7 +343,6 @@
 	listenersOff();
     moduleProject_.setText( name );
     handleProjectChanged();
-    updateEARState();
 	listenersOn();
   }
   
@@ -214,7 +369,6 @@
     else
       projectType_.setText("");
     
-    handleProjectTypeChanged();
     listenersOn();
   }
   
@@ -285,7 +439,6 @@
     moduleProject_.setItems(projectNames);
     moduleProject_.setText(selectedModuleProject);
     handleProjectChanged();
-    updateEARState();
     listenersOn();
   }
   
@@ -303,14 +456,10 @@
       earProject_.select(0);
   }
   
-  private void handleProjectTypeChanged()
-  {
-    updateEARState();    
-  }
-  
   private void handleProjectChanged()
-  { 
-    updateTemplates(); 
+  {  
+    updateEARState();
+    updateTemplates();
   }
   
   private void updateTemplates()
@@ -328,7 +477,7 @@
       {
         populateProjectTypeCombo();
         projectType_.setEnabled(true);
-      }      
+      }
     }
   }
   
@@ -362,18 +511,12 @@
       }
       else
       {
+
+        if (isClient_)
+        {
           // Select the preferred client project type.
           ProjectTopologyContext ptc = WebServiceConsumptionUIPlugin.getInstance().getProjectTopologyContext();
-          String[] preferredTemplateIds = null;
-          if (isClient_)
-          {
-            preferredTemplateIds = ptc.getClientTypes();
-          }
-          else
-          {
-            preferredTemplateIds = ptc.getServiceTypes();
-          }
-          
+          String[] preferredTemplateIds = ptc.getClientTypes();
           boolean selected = false;
           outer: for (int j = 0; j < preferredTemplateIds.length; j++)
           {
@@ -393,6 +536,19 @@
           {
             projectType_.select(0);
           }
+
+        } else
+        {
+          // If a "..web.." template is there, pick that as the default.
+          int webTemplateIndex = getWebTemplateIndex(templates);
+          if (webTemplateIndex > -1)
+          {
+            projectType_.select(webTemplateIndex);
+          } else
+          {
+            projectType_.select(0);
+          }
+        }
       }
     }
   }
@@ -411,6 +567,19 @@
     return -1;    
   }
   
+  private int getWebTemplateIndex(String[] templateIds)
+  {
+    for (int i=0; i<templateIds.length; i++)
+    {
+      if (templateIds[i].indexOf("web") > -1)
+      {
+        return i;
+      }
+    }
+    
+    return -1;
+  }
+  
   private void updateEARState()
   {
       if(!projectNeedsEAR(moduleProject_.getText()))
@@ -457,34 +626,7 @@
 
   private boolean projectNeedsEAR(String projectName)
   {
-    //If the project is a simple Java project or the project type is 
-    //Java utility return false.
-    if (projectName != null && projectName.length()>0)
-    {
-      IProject project = ProjectUtilities.getProject(projectName);
-      if (project.exists())
-      {
-        if (FacetUtils.isJavaProject(project))
-        {
-          return false;
-        }
-      }
-    }
-
-    //Project didn't rule out the need for an EAR
-    //so check the proect type
-    String templateId = getComponentType();
-    if (templateId != null && templateId.length()>0)
-    {
-      if (FacetUtils.isUtilityTemplate(templateId))
-      {
-        return false;
-      }
-    }
-    
-        
-	//Project or project type didn't rule out the need for an EAR
-    //so check the server type.
+	//Use the server type
     if (trsIds_ != null && trsIds_.getServerId() != null)
     {
       String targetId = ServerUtils.getRuntimeTargetIdFromFactoryId(trsIds_.getServerId());
@@ -496,7 +638,7 @@
   	    }
   	  }
     }
-  	 
+  	
   	return true;    
   }
   
@@ -615,4 +757,4 @@
     
     return finalStatus;
   }
-}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/runtime/RuntimeServerSelectionWidget.java b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/runtime/RuntimeServerSelectionWidget.java
index f95d580..e1f6567 100644
--- a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/runtime/RuntimeServerSelectionWidget.java
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/runtime/RuntimeServerSelectionWidget.java
@@ -1,16 +1,15 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
+ * Copyright (c) 2004 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
+ *     IBM Corporation - initial API and implementation
  * yyyymmdd bug      Email and other contact information
  * -------- -------- -----------------------------------------------------------
  * 20060204 124408   rsinha@ca.ibm.com - Rupam Kuehner          
- * 20060221   119111 rsinha@ca.ibm.com - Rupam Kuehner
  *******************************************************************************/
 package org.eclipse.jst.ws.internal.consumption.ui.widgets.runtime;
 
@@ -20,7 +19,6 @@
 import org.eclipse.jst.ws.internal.common.ServerUtils;
 import org.eclipse.jst.ws.internal.consumption.ui.ConsumptionUIMessages;
 import org.eclipse.jst.ws.internal.consumption.ui.wizard.RuntimeServerSelectionDialog;
-import org.eclipse.jst.ws.internal.consumption.ui.wsrt.RuntimeDescriptor;
 import org.eclipse.jst.ws.internal.consumption.ui.wsrt.WebServiceRuntimeExtensionUtils2;
 import org.eclipse.jst.ws.internal.data.TypeRuntimeServer;
 import org.eclipse.jst.ws.internal.ui.common.UIUtils;
@@ -196,14 +194,10 @@
     if( ids_.getRuntimeId() == null || runtimeLabel == null || runtimeLabel.equals("" ))
     {
       status = StatusUtils.errorStatus(NLS.bind(ConsumptionUIMessages.MSG_NO_RUNTIME, new String[]{ scenario } ) );
-    }    
+    }
     else if( ids_.getServerId() == null || serverLabel.equals( "" ))
     {
-      RuntimeDescriptor desc = WebServiceRuntimeExtensionUtils2.getRuntimeById(ids_.getRuntimeId());
-      if (desc.getServerRequired())
-      {
-        status = StatusUtils.errorStatus( NLS.bind(ConsumptionUIMessages.MSG_NO_SERVER, new String[]{ scenario } ) );
-      }
+      status = StatusUtils.errorStatus( NLS.bind(ConsumptionUIMessages.MSG_NO_SERVER, new String[]{ scenario } ) );      
     }
     
     //
@@ -229,39 +223,23 @@
 
     }
 
-    //If no errors for detected, check for warnings    
     if (status.getSeverity() != Status.ERROR)
     {
-      
-      // Check if server type is null and the user opted to install on page 1.
+      // Check if only stub runtime is available for the selected server type
+
       String serverFactoryId = ids_.getServerId();
-      if (serverFactoryId == null || serverFactoryId.length() == 0)
-      {
-        if (isClientContext_)
-        {
-          status = StatusUtils.warningStatus(NLS.bind(ConsumptionUIMessages.MSG_WARN_NO_CLIENT_SERVER, new String[0]));
-        } else
-        {
-          status = StatusUtils.warningStatus(NLS.bind(ConsumptionUIMessages.MSG_WARN_NO_SERVICE_SERVER, new String[0]));
-        }
-
-      }
-      else
+      //
+      IServerType serverType = ServerCore.findServerType(serverFactoryId);
+      if (serverType != null)
       {
 
-        // Check if only stub runtime is available for the selected server type
-        IServerType serverType = ServerCore.findServerType(serverFactoryId);
-        if (serverType != null)
+        // Find a Runtime which is not a stub
+        IRuntime nonStubRuntime = ServerUtils.getNonStubRuntime(serverFactoryId);
+        if (install_ && nonStubRuntime == null)
         {
-
-          // Find a Runtime which is not a stub
-          IRuntime nonStubRuntime = ServerUtils.getNonStubRuntime(serverFactoryId);
-          if (install_ && nonStubRuntime == null)
-          {
-            String servertypeLabel = WebServiceRuntimeExtensionUtils2.getServerLabelById(serverFactoryId);
-            status = StatusUtils.warningStatus(NLS.bind(ConsumptionUIMessages.MSG_WARN_STUB_ONLY,
-                new String[] { servertypeLabel }));
-          }
+          String servertypeLabel = WebServiceRuntimeExtensionUtils2.getServerLabelById(serverFactoryId);
+          status = StatusUtils.warningStatus(NLS
+              .bind(ConsumptionUIMessages.MSG_WARN_STUB_ONLY, new String[] { servertypeLabel }));
         }
       }
     }
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/test/wssample/AddModuleDependenciesCommand.java b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/test/wssample/AddModuleDependenciesCommand.java
index 412e994..432a5b1 100644
--- a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/test/wssample/AddModuleDependenciesCommand.java
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/test/wssample/AddModuleDependenciesCommand.java
@@ -1,15 +1,12 @@
 /*******************************************************************************
- * Copyright (c) 2003, 2006 IBM Corporation and others.
+ * Copyright (c) 2003, 2004 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060324   122799 rsinha@ca.ibm.com - Rupam Kuehner
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jst.ws.internal.consumption.ui.widgets.test.wssample;
 
@@ -19,12 +16,7 @@
 import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
 import org.eclipse.core.runtime.Status;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.core.JavaModelException;
 import org.eclipse.jem.util.emf.workbench.ProjectUtilities;
 import org.eclipse.jst.j2ee.project.facet.IJavaProjectMigrationDataModelProperties;
 import org.eclipse.jst.j2ee.project.facet.JavaProjectMigrationDataModelProvider;
@@ -75,17 +67,6 @@
         if (J2EEUtils.isJavaComponent(clientIProject)){
           addJavaProjectAsUtilityJar(clientIProject, sampleEARIProject,monitor);
           addJavaProjectAsUtilityJar(clientIProject, sampleIProject,monitor);
-          try
-          {
-        	  addBuildPath(sampleIProject, clientIProject);
-          } catch (JavaModelException jme)
-          {
-        	  //Do nothing in this catch block. The worst that
-        	  //will happen is that the sample Web project
-        	  //will show some compile errors. The sample will
-        	  //likely still launch successfully on the server
-        	  //and the user will be able to use it.
-          }
 		}
 	  }
     
@@ -116,20 +97,6 @@
 	  }
   }
 
-  
-  private void addBuildPath(IProject referencingProject, IProject referencedProject) throws JavaModelException
-  {
-    IJavaProject javaProject = JavaCore.create(referencingProject);
-    if (javaProject != null)
-    {
-      IClasspathEntry[] oldCp = javaProject.getRawClasspath();
-	  IClasspathEntry[] newCp = new IClasspathEntry[oldCp.length + 1];
-	  for (int i = 0; i < oldCp.length; i++)
-        newCp[i] = oldCp[i];
-	  newCp[newCp.length - 1] = JavaCore.newProjectEntry(referencedProject.getFullPath());
-	  javaProject.setRawClasspath(newCp, new NullProgressMonitor());
-    }
-  }
  
 
   public static final String DEFAULT_SAMPLE_EAR_PROJECT_EXT = "EAR";
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wizard/RuntimeServerSelectionDialog.java b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wizard/RuntimeServerSelectionDialog.java
index 6d6c121..e8ba923 100644
--- a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wizard/RuntimeServerSelectionDialog.java
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wizard/RuntimeServerSelectionDialog.java
@@ -1,16 +1,12 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
+ * Copyright (c) 2000, 2004 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060221   119111 rsinha@ca.ibm.com - Rupam Kuehner
- * 20060327   131605 rsinha@ca.ibm.com - Rupam Kuehner
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jst.ws.internal.consumption.ui.wizard;
 
@@ -25,7 +21,6 @@
 import org.eclipse.jst.ws.internal.consumption.ui.wsrt.RuntimeDescriptor;
 import org.eclipse.jst.ws.internal.consumption.ui.wsrt.WebServiceRuntimeExtensionUtils2;
 import org.eclipse.jst.ws.internal.data.TypeRuntimeServer;
-import org.eclipse.osgi.util.NLS;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.graphics.Color;
 import org.eclipse.swt.graphics.Image;
@@ -258,45 +253,28 @@
 
 
   private void validateServerRuntimeSelection() {
-
+    // Check if the extension exists
     if (selectionMode_ == MODE_SERVICE) {
-      if (selectedServerFactoryID_ != null && selectedRuntime_ != null)
-      {
+      if (selectedServerFactoryID_!=null && selectedRuntime_!=null) {
 
-        if (WebServiceRuntimeExtensionUtils2.isServerRuntimeTypeSupported(selectedServerFactoryID_, selectedRuntime_.getId(),
-            typeId_))
-        {
-          setOKStatusMessage();
-        } else
-        {
-          String serverLabel = WebServiceRuntimeExtensionUtils2.getServerLabelById(selectedServerFactoryID_);
-          String runtimeLabel = selectedRuntime_.getLabel();
-          setERRORStatusMessage(NLS.bind(ConsumptionUIMessages.MSG_INVALID_SRT_SELECTIONS, new String[] { serverLabel,
-              runtimeLabel }));
-          // Found an error - so return.
-          return;
-        }
+      boolean wssrtSupported = WebServiceRuntimeExtensionUtils2.isServerRuntimeTypeSupported(selectedServerFactoryID_,selectedRuntime_.getId(),typeId_);
+	  
+      if (wssrtSupported && WebServiceRuntimeExtensionUtils2.isServerSupportedForChosenServiceType(typeId_, selectedServerFactoryID_)) {
+	        setOKStatusMessage();
+	      }	  
+      else {
+        setERRORStatusMessage(ConsumptionUIMessages.MSG_INVALID_SRT_SELECTIONS);
+      }
       }
     }
     else {
 
-      if (selectedServerFactoryID_ != null && selectedRuntime_ != null)
-      {
-        String clientId = typeId_;
-        if (WebServiceRuntimeExtensionUtils2.isServerClientRuntimeTypeSupported(selectedServerFactoryID_, selectedRuntime_
-            .getId(), clientId))
-        {
-          setOKStatusMessage();
-        } else
-        {
-          String serverLabel = WebServiceRuntimeExtensionUtils2.getServerLabelById(selectedServerFactoryID_);
-          String runtimeLabel = selectedRuntime_.getLabel();
-          setERRORStatusMessage(NLS.bind(ConsumptionUIMessages.MSG_INVALID_SRT_SELECTIONS, new String[] { serverLabel,
-              runtimeLabel }));
-          
-          // Found an error - so return.
-          return;
-        }
+      String clientId = typeId_;
+      if (selectedServerFactoryID_==null || selectedRuntime_ == null || !WebServiceRuntimeExtensionUtils2.isServerClientRuntimeTypeSupported(selectedServerFactoryID_, selectedRuntime_.getId(), clientId)) {
+	        setERRORStatusMessage(ConsumptionUIMessages.MSG_INVALID_SRT_SELECTIONS);
+	  }	  
+      else {
+        setOKStatusMessage();
       }
     }
     // Disable OK button if the runtime selection is invalid
@@ -495,7 +473,7 @@
 		runtimes = WebServiceRuntimeExtensionUtils2.getRuntimesByServiceType(typeId_);
     }
     else {
-	  runtimes = WebServiceRuntimeExtensionUtils2.getRuntimesByClientType(typeId_);
+	  runtimes = WebServiceRuntimeExtensionUtils2.getAllRuntimesForClientSide();
     }
 
     TreeItem[] runtimeName = new TreeItem[runtimes.length];
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wizard/TypeSelectionFilter.java b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wizard/TypeSelectionFilter.java
new file mode 100644
index 0000000..2d28a71
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wizard/TypeSelectionFilter.java
@@ -0,0 +1,193 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2004 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.jst.ws.internal.consumption.ui.wizard;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jst.ws.internal.common.ResourceUtils;
+import org.eclipse.jst.ws.internal.consumption.ui.wsrt.WebServiceImpl;
+import org.eclipse.jst.ws.internal.consumption.ui.wsrt.WebServiceRuntimeExtensionUtils;
+import org.eclipse.wst.ws.internal.wsrt.WebServiceScenario;
+
+
+public class TypeSelectionFilter
+{
+  // Copyright
+  public static final String copyright = "(c) Copyright IBM Corporation 2000, 2002.";
+
+  public String[] getWebServiceTypeByInitialSelection(IStructuredSelection initialSelection, ArrayList webServiceTypeList)
+  {
+        
+    ArrayList supportedTypes = new ArrayList();
+    if (initialSelection != null && initialSelection.size() == 1)
+    {
+      
+      // Check for null initial selection
+      Object initialObject = initialSelection.getFirstElement();
+      if (initialObject == null)
+      {
+        return null;
+      }
+      // Match up resource type metadata with initial selection
+      Iterator iter = webServiceTypeList.iterator();
+      while (iter.hasNext())
+      {
+        String wst = (String)iter.next();
+        String scenario = wst.substring(0,wst.indexOf("/"));
+        String implId = wst.substring(wst.indexOf("/")+1);        
+        //IWebServiceType wst = (IWebServiceType)iter.next();
+        //String typeId = (String)wst.getId();
+        if (scenario.equals(String.valueOf(WebServiceScenario.BOTTOMUP)) && !supportedTypes.contains(wst))
+        {
+
+          
+          WebServiceImpl wsimpl = WebServiceRuntimeExtensionUtils.getWebServiceImplById(implId);
+          String[] resourceTypes = wsimpl.getResourceTypeMetadata();
+          for (int i=0; i<resourceTypes.length; i++)
+          {
+            if (resourceTypes[i]!=null)
+            {              
+              if ((initialObject.getClass().getName()).endsWith(resourceTypes[i]))
+              {
+                String name = null;
+                IResource resource = null;
+
+                try
+                {                  
+                  resource = ResourceUtils.getResourceFromSelection(initialObject);
+                }
+                catch( CoreException exc )
+                {
+                  resource = null;
+                }
+
+                if (resource instanceof IContainer)
+                {
+                  name = initialObject.getClass().getName();
+                }
+                else if( resource != null )
+                {
+                  name = resource.getFullPath().toString();
+                }
+                else
+                {
+                  name = initialObject.getClass().getName();
+                }
+                String[] extensions = wsimpl.getExtensionMetadata();
+                if (acceptsName(name, extensions))
+                {
+                  supportedTypes.add(wst);
+                }
+              }
+              
+            }
+          }
+        }
+      }
+      
+      //If no wsImpls have accepted this selection, check if this is WSDL. If it is,
+      //add the top-down Java service type to the list.
+      if (supportedTypes.isEmpty())
+      {
+        String[] resourceTypes = {"File", "IResource", "String", "ServiceImpl", "ServiceRefImpl", "WSDLResourceImpl"};
+        for (int i=0; i<resourceTypes.length; i++)
+        {
+          if (resourceTypes[i]!=null)
+          {              
+            if ((initialObject.getClass().getName()).endsWith(resourceTypes[i]))
+            {
+              String name = null;
+              IResource resource = null;
+
+              try
+              {                  
+                resource = ResourceUtils.getResourceFromSelection(initialObject);
+              }
+              catch( CoreException exc )
+              {
+                resource = null;
+              }
+
+              if (resource instanceof IContainer)
+              {
+                name = initialObject.getClass().getName();
+              }
+              else if( resource != null )
+              {
+                name = resource.getFullPath().toString();
+              }
+              else
+              {
+                name = initialObject.getClass().getName();
+              }
+              String[] extensions = {".wsdl", ".wsil", ".html", ".ServiceImpl", ".ServiceRefImpl", ".WSDLResourceImpl"};
+              if (acceptsName(name, extensions))
+              {
+                StringBuffer entrybuff = new StringBuffer();
+                entrybuff.append(String.valueOf(WebServiceScenario.TOPDOWN));
+                entrybuff.append("/");
+                entrybuff.append("org.eclipse.jst.ws.wsImpl.java");
+                String entry = entrybuff.toString();                
+                supportedTypes.add(entry);
+              }
+            }
+            
+          }
+        }      
+      }
+      
+    }    
+  
+
+    
+    if (supportedTypes.isEmpty())
+    {
+      //It's not a registered implementation and its not WSDL so return null;
+      return null;
+    }
+    else
+    {
+      return (String[])supportedTypes.toArray(new String[0]);
+    }
+  }
+  //
+  // Checks if the given name is acceptable based upon its extension
+  //
+  private boolean acceptsName ( String name, String[] extensions)
+  {
+    //Return true if "all" extensions are supported.
+
+    if (extensions[0]!=null)
+    {
+      if (extensions[0].equals("all"))
+      {
+        return true;
+      }
+    }
+
+    for (int i=0; i<extensions.length; i++)
+    {
+      if (extensions[i]!=null)
+      {
+        if (name.endsWith(extensions[i]))
+          return true;
+      }
+    }
+    return false;
+  }
+
+
+}
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wizard/TypeSelectionMetadata.java b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wizard/TypeSelectionMetadata.java
index 8275acc..198c12d 100644
--- a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wizard/TypeSelectionMetadata.java
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wizard/TypeSelectionMetadata.java
@@ -1,21 +1,17 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
+ * Copyright (c) 2000, 2004 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060216   127138 pmoogk@ca.ibm.com - Peter Moogk
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 
 package org.eclipse.jst.ws.internal.consumption.ui.wizard;
 
-import com.ibm.icu.util.StringTokenizer;
-
+import java.util.StringTokenizer;
 
   //
   // This class holds the set of distinguishing factors in determining 
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wizard/uddi/PublicUDDIRegistryIBM.java b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wizard/uddi/PublicUDDIRegistryIBM.java
new file mode 100644
index 0000000..7f3aa24
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wizard/uddi/PublicUDDIRegistryIBM.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 2004 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.jst.ws.internal.consumption.ui.wizard.uddi;
+
+import org.eclipse.wst.ws.parser.PluginMessages;
+
+public class PublicUDDIRegistryIBM implements PublicUDDIRegistryType
+{
+
+    // Copyright
+    public static final String copyright = "(c) Copyright IBM Corporation 2002.";
+
+    public PublicUDDIRegistryIBM() {
+    }
+
+    public String getName() {
+        return PluginMessages.PUBLICUDDIREGISTRYTYPE_NAME_IBM;
+    }
+
+    public String getInquiryURL() {
+        return "http://uddi.ibm.com/ubr/inquiryapi";
+    }
+
+    public String getPublishURL() {
+        return "https://uddi.ibm.com/ubr/publishapi";
+    }
+
+    public String getRegistrationURL() {
+        return "http://uddi.ibm.com/ubr/registry.html";
+    }
+
+}
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wizard/uddi/PublicUDDIRegistryIBMTest.java b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wizard/uddi/PublicUDDIRegistryIBMTest.java
new file mode 100644
index 0000000..78d2c0c
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wizard/uddi/PublicUDDIRegistryIBMTest.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 2004 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.jst.ws.internal.consumption.ui.wizard.uddi;
+
+import org.eclipse.wst.ws.parser.PluginMessages;
+
+public class PublicUDDIRegistryIBMTest implements PublicUDDIRegistryType
+{
+
+    // Copyright
+    public static final String copyright = "(c) Copyright IBM Corporation 2002.";
+
+    public PublicUDDIRegistryIBMTest() {
+    }
+
+    public String getName() {
+        return PluginMessages.PUBLICUDDIREGISTRYTYPE_NAME_IBM_TEST;
+    }
+
+    public String getInquiryURL() {
+        return "http://uddi.ibm.com/testregistry/inquiryapi";
+    }
+
+    public String getPublishURL() {
+        return "https://uddi.ibm.com/testregistry/publishapi";
+    }
+
+    public String getRegistrationURL() {
+        return "http://uddi.ibm.com/testregistry/registry.html";
+    }
+
+}
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wizard/uddi/PublicUDDIRegistryMicrosoft.java b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wizard/uddi/PublicUDDIRegistryMicrosoft.java
new file mode 100644
index 0000000..bbbb8d7
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wizard/uddi/PublicUDDIRegistryMicrosoft.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 2004 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.jst.ws.internal.consumption.ui.wizard.uddi;
+
+import org.eclipse.wst.ws.parser.PluginMessages;
+
+public class PublicUDDIRegistryMicrosoft implements PublicUDDIRegistryType
+{
+
+    // Copyright
+    public static final String copyright = "(c) Copyright IBM Corporation 2002.";
+
+    public PublicUDDIRegistryMicrosoft() {
+    }
+
+    public String getName() {
+        return PluginMessages.PUBLICUDDIREGISTRYTYPE_NAME_MICROSOFT;
+    }
+
+    public String getInquiryURL() {
+        return "http://uddi.microsoft.com/inquire";
+    }
+
+    public String getPublishURL() {
+        return "https://uddi.microsoft.com/publish";
+    }
+
+    public String getRegistrationURL() {
+        return "https://uddi.microsoft.com/register.aspx";
+    }
+
+}
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wizard/uddi/PublicUDDIRegistryMicrosoftTest.java b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wizard/uddi/PublicUDDIRegistryMicrosoftTest.java
new file mode 100644
index 0000000..a6f9bee
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wizard/uddi/PublicUDDIRegistryMicrosoftTest.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 2004 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.jst.ws.internal.consumption.ui.wizard.uddi;
+
+import org.eclipse.wst.ws.parser.PluginMessages;
+
+public class PublicUDDIRegistryMicrosoftTest implements PublicUDDIRegistryType
+{
+
+    // Copyright
+    public static final String copyright = "(c) Copyright IBM Corporation 2002.";
+
+    public PublicUDDIRegistryMicrosoftTest() {
+    }
+
+    public String getName() {
+        return PluginMessages.PUBLICUDDIREGISTRYTYPE_NAME_MICROSOFT_TEST;
+    }
+
+    public String getInquiryURL() {
+        return "http://test.uddi.microsoft.com/inquire";
+    }
+
+    public String getPublishURL() {
+        return "https://test.uddi.microsoft.com/publish";
+    }
+
+    public String getRegistrationURL() {
+        return "http://test.uddi.microsoft.com/register.aspx";
+    }
+
+}
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wsrt/ClientType.java b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wsrt/ClientType.java
index e3c4b51..85a0260 100644
--- a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wsrt/ClientType.java
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wsrt/ClientType.java
@@ -1,21 +1,18 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060216   127138 pmoogk@ca.ibm.com - Peter Moogk
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jst.ws.internal.consumption.ui.wsrt;
 
 import java.util.Hashtable;
+import java.util.StringTokenizer;
 import org.eclipse.core.runtime.IConfigurationElement;
-import com.ibm.icu.util.StringTokenizer;
 
 public class ClientType {
 
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wsrt/RuntimeDescriptor.java b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wsrt/RuntimeDescriptor.java
index ac2bb37..b629537 100644
--- a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wsrt/RuntimeDescriptor.java
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wsrt/RuntimeDescriptor.java
@@ -1,15 +1,12 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060221   119111 rsinha@ca.ibm.com - Rupam Kuehner
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 
 package org.eclipse.jst.ws.internal.consumption.ui.wsrt;
@@ -22,8 +19,6 @@
   private IConfigurationElement elem;
   private String id;
   private String label;
-  private String serverRequiredString;
-  private boolean serverRequired;
   
 
   public RuntimeDescriptor(IConfigurationElement elem)
@@ -54,21 +49,4 @@
     return new String[]{"13", "14"};
   }
   
-  public boolean getServerRequired()
-  {
-    if (serverRequiredString == null)
-    {     
-      //Defaults to true if the extension omits this attribute
-      serverRequired = true;
-
-      serverRequiredString = elem.getAttribute("serverRequired");
-      if (serverRequiredString != null)
-      {
-        serverRequired = Boolean.valueOf(serverRequiredString).booleanValue();
-      }             
-      
-    }    
-    return serverRequired;    
-  }
-  
 }
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wsrt/ServiceType.java b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wsrt/ServiceType.java
index 417cc29..85bf5af 100644
--- a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wsrt/ServiceType.java
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wsrt/ServiceType.java
@@ -1,22 +1,19 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060216   127138 pmoogk@ca.ibm.com - Peter Moogk
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jst.ws.internal.consumption.ui.wsrt;
 
 import java.util.Hashtable;
+import java.util.StringTokenizer;
 import org.eclipse.core.runtime.IConfigurationElement;
 import org.eclipse.wst.ws.internal.wsrt.WebServiceScenario;
-import com.ibm.icu.util.StringTokenizer;
 
 public class ServiceType {
 
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wsrt/WebServiceImpl.java b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wsrt/WebServiceImpl.java
index b375424..b5630e9 100644
--- a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wsrt/WebServiceImpl.java
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wsrt/WebServiceImpl.java
@@ -1,20 +1,17 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060216   127138 pmoogk@ca.ibm.com - Peter Moogk
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jst.ws.internal.consumption.ui.wsrt;
 
+import java.util.StringTokenizer;
 import org.eclipse.core.runtime.IConfigurationElement;
-import com.ibm.icu.util.StringTokenizer;
 
 public class WebServiceImpl {
 	
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wsrt/WebServiceRuntimeExtensionUtils.java b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wsrt/WebServiceRuntimeExtensionUtils.java
new file mode 100644
index 0000000..9dc843b
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wsrt/WebServiceRuntimeExtensionUtils.java
@@ -0,0 +1,967 @@
+/*******************************************************************************
+ * Copyright (c) 2005 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.jst.ws.internal.consumption.ui.wsrt;
+
+import java.util.ArrayList;
+import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.Vector;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jst.ws.internal.consumption.ui.wizard.TypeSelectionFilter;
+import org.eclipse.jst.ws.internal.data.LabelsAndIds;
+import org.eclipse.wst.command.internal.env.core.common.MessageUtils;
+import org.eclipse.wst.command.internal.env.core.selection.SelectionList;
+import org.eclipse.wst.command.internal.env.core.selection.SelectionListChoices;
+import org.eclipse.wst.common.componentcore.internal.util.IModuleConstants;
+import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.core.IServerType;
+import org.eclipse.wst.server.core.ServerCore;
+import org.eclipse.wst.server.ui.ServerUICore;
+import org.eclipse.wst.ws.internal.wsrt.IWebServiceRuntime;
+import org.eclipse.wst.ws.internal.wsrt.WebServiceScenario;
+
+public class WebServiceRuntimeExtensionUtils
+{
+  private static WebServiceRuntimeExtensionRegistry registry = WebServiceRuntimeExtensionRegistry.getInstance();
+  private static SelectionListChoices serverToRuntimeToJ2EE_;
+  private static Hashtable serverFactoryIdByLabel_;
+  private static Hashtable runtimeIdByLabel_;
+  
+  public static IWebServiceRuntime getWebServiceRuntime( String runtimeId )
+  {
+	WebServiceRuntimeInfo wsrtInfo       		= getWebServiceRuntimeById(runtimeId);
+	IWebServiceRuntime    webserviceRuntime     = null;
+	if (wsrtInfo != null)
+	{
+		webserviceRuntime = wsrtInfo.getWebServiceRuntime();
+	}
+	
+	return webserviceRuntime;
+  }  
+  
+  public static WebServiceImpl getWebServiceImplById(String id)
+  {
+    Object result = registry.webServiceImpls_.get(id);
+    if (result!=null)
+    {
+      return (WebServiceImpl)result;
+    }
+    return null;    
+  }
+  
+  public static int getScenarioFromTypeId(String typeId)
+  {
+    return Integer.parseInt(typeId.substring(0,typeId.indexOf("/")));
+  }
+  
+  public static String getImplIdFromTypeId(String typeId)
+  {
+    return typeId.substring(typeId.indexOf("/")+1);
+  }
+  /*
+   * @param typeId will be a String of the format "0/implId"
+   * where the digit before the "/" represents the scenario
+   * (e.g. WebServiceScenario.BOTTOM_UP) and the implId is the id
+   * of the WebServiceImpl
+   */  
+  public static ServiceType getServiceType(String runtimeId, String typeId)
+  {
+    WebServiceRuntimeInfo wsrt = getWebServiceRuntimeById(runtimeId);
+    if (wsrt!=null)
+    {
+      int scenario = getScenarioFromTypeId(typeId);
+      String implId = getImplIdFromTypeId(typeId);
+      //Return the first service type that supports the impl and scenario
+      ServiceType[] sts = wsrt.getServiceTypes();
+      if (sts != null)
+      {
+        for (int i = 0; i < sts.length; i++)
+        {
+          String thisImplId = sts[i].getWebServiceImpl().getId();
+          if (implId.equals(thisImplId))
+          {
+            // Check if scenario is supported
+            if (sts[i].supportsScenario(scenario))
+            {
+              return sts[i];
+            }
+          }
+        }
+      }
+    }
+    
+    return null;
+  }
+  
+  public static WebServiceRuntimeInfo getWebServiceRuntimeById(String id)
+  {
+    Object result = registry.webServiceRuntimes_.get(id);
+    if (result!=null)
+    {
+      return (WebServiceRuntimeInfo)result;
+    }
+    return null;
+  }  
+  
+  public static WebServiceRuntimeInfo getWebServiceRuntimeByLabel(String label)
+  {
+    Iterator iter = registry.webServiceRuntimes_.values().iterator();
+    while (iter.hasNext())
+    {
+      WebServiceRuntimeInfo wsr = (WebServiceRuntimeInfo)iter.next();
+      if (wsr!=null) {
+        if (label.equals(wsr.getLabel()))
+          return wsr;
+      }
+    }
+    return null;      
+  }  
+
+  /*
+   * @param typeId will be a String of the format "0/implId"
+   * where the digit before the "/" represents the scenario
+   * (e.g. WebServiceScenario.BOTTOM_UP) and the implId is the id
+   * of the WebServiceImpl
+   */
+  public static String[] getRuntimesByType(String typeId) 
+  {
+    int scenario = getScenarioFromTypeId(typeId);
+    String implId = getImplIdFromTypeId(typeId);    
+    ArrayList ids = new ArrayList();
+    Iterator iter = registry.webServiceRuntimes_.values().iterator();
+    while (iter.hasNext())
+    {
+      WebServiceRuntimeInfo wsr = (WebServiceRuntimeInfo)iter.next();
+      ServiceType[] sts = wsr.getServiceTypes();
+      if (sts != null)
+      {
+        for (int i = 0; i < sts.length; i++)
+        {
+          String thisImplId = sts[i].getWebServiceImpl().getId();
+          if (implId.equals(thisImplId))
+          {
+            // Check if scenario is supported
+            if (sts[i].supportsScenario(scenario))
+            {
+              ids.add(wsr.getId());
+              break;
+            }
+          }
+        }
+      }
+    }
+    
+    if (ids.size() > 0)
+    {
+      String[] runtimeIds = (String[])ids.toArray(new String[0]);
+      return runtimeIds;
+    }
+    
+    return null;
+  }
+  
+  /*
+   * @param typeId will be a String of the format "0/implId"
+   * where the digit before the "/" represents the scenario
+   * (e.g. WebServiceScenario.BOTTOM_UP) and the implId is the id
+   * of the WebServiceImpl
+   */  
+  public static boolean isRuntimeSupportedForType(String typeId, String runtimeId)
+  {
+    String[] runtimeIds = getRuntimesByType(typeId);
+    if (runtimeIds!=null)
+    {
+      for (int i=0; i < runtimeIds.length; i++)
+      {
+        if (runtimeIds[i].equals(runtimeId))
+        {
+          return true;
+        }
+      }
+    }
+    
+    return false;
+  }
+  
+  public static String[] getServerFactoryIdsByType(String typeId) 
+  {
+    String[] wsrts = getRuntimesByType(typeId);
+    if (wsrts == null )
+    {
+      return null;
+    }
+      
+    ArrayList ids = new ArrayList();
+    for (int i=0; i<wsrts.length ;i++)
+    {
+      String[] fIds = getWebServiceRuntimeById(wsrts[i]).getServerFactoryIds();
+      if (fIds != null)
+      {
+        for (int j=0; j<fIds.length; j++)
+        {
+          if (!ids.contains(fIds[j]))
+          {
+            ids.add(fIds[j]);
+          }
+        }
+      }
+    }
+    
+    if (ids.size() > 0)
+    {
+      String[] serverFactoryIds = (String[])ids.toArray(new String[0]);
+      return serverFactoryIds;
+    }
+    
+    return null;    
+  }
+  
+  /*
+   * @param typeId will be a String of the format "0/implId"
+   * where the digit before the "/" represents the scenario
+   * (e.g. WebServiceScenario.BOTTOM_UP) and the implId is the id
+   * of the WebServiceImpl
+   */
+  public static boolean isServerSupportedForChosenType(String typeId, String serverFactoryId)
+  {
+    String[] fIds = getServerFactoryIdsByType(typeId);
+    if (fIds == null)
+    {
+      return false;
+    }
+
+    for (int i=0;i<fIds.length;i++)
+    {
+      if (serverFactoryId.equals(fIds[i]))
+      {
+        return true;
+      }      
+    }
+    
+    return false;
+  }
+  
+  /*
+   * @param typeId will be a String of the format "0/implId"
+   * where the digit before the "/" represents the scenario
+   * (e.g. WebServiceScenario.BOTTOM_UP) and the implId is the id
+   * of the WebServiceImpl
+   */    
+  public static boolean isServerRuntimeTypeSupported(String serverFactoryId, String runtimeId, String typeId)  
+  {
+    String[] rIds = getRuntimesByType(typeId);
+    if (rIds == null)
+    {
+      return false;
+    }
+    
+    for (int i = 0; i < rIds.length; i++)
+    {
+      if (runtimeId.equals(rIds[i]))
+      {
+        String[] fIds = getWebServiceRuntimeById(rIds[i]).getServerFactoryIds();
+        if (fIds != null)
+        {
+          for (int j = 0; j < fIds.length; j++)
+          {
+            if (serverFactoryId.equals(fIds[j]))
+            {
+              // Found it!
+              return true;
+            }
+          }
+        }
+      }
+    }  
+    
+    return false;
+  }
+  
+  public static boolean doesRuntimeSupportJ2EELevel(String j2eeVersionId, String runtimeId)
+  {
+    WebServiceRuntimeInfo wsrt = getWebServiceRuntimeById(runtimeId);
+    if (wsrt==null)
+      return false;
+    
+    String[] j2eeVersions = wsrt.getJ2eeLevels();
+    if (j2eeVersions==null || j2eeVersions.length==0) 
+      return true;
+    
+    for(int i=0; i<j2eeVersions.length; i++)
+    {
+      if (j2eeVersions[i].equals(j2eeVersionId))
+      {
+        return true;
+      }
+    }
+    return false;        
+  }
+  
+  public static boolean doesRuntimeSupportServerTarget(String serverTargetId, String runtimeId)
+  {
+    WebServiceRuntimeInfo wsrt = getWebServiceRuntimeById(runtimeId);
+    if (wsrt==null)
+      return false;
+    
+    String[] fIds = wsrt.getServerFactoryIds();
+    for(int i=0;i<fIds.length;i++)
+    {
+      IServerType serverType = ServerCore.findServerType(fIds[i]);
+      if (serverType == null)
+        continue;
+      
+      String thisServerTargetId = serverType.getRuntimeType().getId(); 
+      if (thisServerTargetId.equals(serverTargetId))
+        return true;
+    }
+    
+    return false;
+  }
+
+  /**
+   * Returns a list of valid projects for the Web service type with an id of typeId.
+   * In the case where the Web service type extension does not specify which project
+   * natures are included, a array of all Web and EJB projects in the workspace will
+   * be returned.
+   * @param typeId
+   * @return IProject[] an array of valid projects
+   */
+  public static IProject[] getAllProjects()
+  {
+    IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
+    ArrayList validProjects = new ArrayList();
+    for (int i = 0; i < projects.length; i++)
+    {
+      if (!projects[i].getName().equals("Servers") && !projects[i].getName().startsWith("."))
+      {
+        validProjects.add(projects[i]);
+      }
+    }
+    
+    return (IProject[])validProjects.toArray(new IProject[0]); 
+    // rsktodo
+    /*
+    IWebServiceType wst = getWebServiceTypeById(typeId);
+    if (wst != null)
+    {
+      IConfigurationElement elem = wst.getConfigurationElement();
+      String includedNatures = elem.getAttribute("includeNatures");
+      String excludedNatures = elem.getAttribute("excludeNatures");
+      if (includedNatures!=null && includedNatures.length()>0)
+      {
+        for (int i = 0; i < projects.length; i++)
+        {
+          if (include(projects[i], includedNatures) && exclude(projects[i], excludedNatures))
+            validProjects.add(projects[i]);
+        }
+        return (IProject[])validProjects.toArray(new IProject[0]);
+      }
+    }
+    
+    //If wst was null or the extension didn't specify which project natures are
+    // to be included, revert to the old behaviour
+    for (int j = 0; j < projects.length; j++)
+    {
+      if (ResourceUtils.isWebProject(projects[j]) || ResourceUtils.isEJBProject(projects[j]))
+        validProjects.add(projects[j]);
+    }    
+    return (IProject[])validProjects.toArray(new IProject[0]);
+    */
+    // rsktodo
+  }
+  
+  public static LabelsAndIds getServiceTypeLabels()
+  {
+    String       pluginId = "org.eclipse.jst.ws.internal.consumption.ui";
+    MessageUtils msgUtils = new MessageUtils( pluginId + ".ConsumptionUI", registry );
+    
+    LabelsAndIds labelIds = new LabelsAndIds();
+    Iterator     iterator = registry.webServiceTypesList_.iterator();
+    int          size     = registry.webServiceTypesList_.size();
+    String[]     labels   = new String[size];
+    String[]     ids      = new String[size];
+    int          index    = 0;
+    
+    labelIds.setLabels_( labels );
+    labelIds.setIds_( ids );
+    
+    while( iterator.hasNext() ) 
+    {
+      String wst = (String)iterator.next();
+      int scenario = getScenarioFromTypeId(wst);
+      String implId = getImplIdFromTypeId(wst);
+      WebServiceImpl wsimpl = WebServiceRuntimeExtensionUtils.getWebServiceImplById(implId);
+      String impllabel = wsimpl.getLabel();
+      ids[index]    = wst;
+      String scenLabel = "";
+      switch(scenario)
+      {
+      case WebServiceScenario.BOTTOMUP:
+        scenLabel = msgUtils.getMessage(WebServiceScenario.BOTTOMUP_LABEL);
+        break;
+      case WebServiceScenario.TOPDOWN:
+        scenLabel = msgUtils.getMessage(WebServiceScenario.TOPDOWN_LABEL);
+        break; 
+      default:
+      }
+      labels[index] = msgUtils.getMessage( "COMBINED_TYPE_AND_RUNTIME_LABEL", new String[]{ scenLabel, impllabel } );
+      index++;
+    }    
+    
+    return labelIds;
+  }
+  
+  /*
+   * @param typeId will be a String of the format "0/implId"
+   * where the digit before the "/" represents the scenario
+   * (e.g. WebServiceScenario.BOTTOM_UP) and the implId is the id
+   * of the WebServiceImpl
+   */
+  public static String getDefaultRuntimeValueFor(String typeId)
+  {
+    String[] rIds = getRuntimesByType(typeId);
+    if (rIds == null)
+    {
+      return null;
+    }
+    
+    return rIds[0];
+  }    
+  
+  
+  public static String getDefaultServerValueFor(String typeId)
+  {
+    String[] fIds = getServerFactoryIdsByType(typeId);
+    if (fIds==null)
+      return null;
+    
+    return fIds[0];
+  }  
+  
+  public static String[] getWebServiceTypeBySelection(IStructuredSelection selection)
+  {
+    TypeSelectionFilter tsf = new TypeSelectionFilter();
+    String[] wst = tsf.getWebServiceTypeByInitialSelection(selection, registry.webServiceTypesList_);
+    return wst == null ? null : wst;
+  }    
+  /**
+   * Returns true if an EJB project is needed to host a Web service
+   * of the type identified by typeId. If multiple natureIds are specified in the 
+   * "includeNatures" attribute, only the first one is checked. If no natureIds are specified, 
+   * false is returned.
+   * 
+   * @deprecated  
+   * 	Should be refactored in future 
+   */
+//  public static boolean requiresEJBProject(String typeId)
+//  {
+//    IWebServiceType wst = getWebServiceTypeById(typeId);
+//    if (wst != null)
+//    {
+//      IConfigurationElement elem = wst.getConfigurationElement();
+//      String includedNatures = elem.getAttribute("includeNatures");
+//      if (includedNatures==null || includedNatures.length()==0)
+//      {
+//        return false;
+//      }
+//      else
+//      {
+//        StringTokenizer st = new StringTokenizer(includedNatures);
+//        if(st.hasMoreTokens())
+//        {
+//          String firstIncludedNature = st.nextToken();
+//          if (firstIncludedNature.equals(IEJBNatureConstants.NATURE_ID))
+//            return true;
+//        }
+//      }
+//    }
+//    return false;
+//  }  
+  
+  /*
+   * @param typeId will be a String of the format "0/implId"
+   * where the digit before the "/" represents the scenario
+   * (e.g. WebServiceScenario.BOTTOM_UP) and the implId is the id
+   * of the WebServiceImpl
+   */
+  public static boolean requiresEJBProject(String runtimeId, String typeId)
+  {
+    ServiceType st = getServiceType(runtimeId, typeId);
+    if (st!=null)
+    {
+      String[] includedNatures = st.getModuleTypesInclude(getScenarioFromTypeId(typeId));
+      if (includedNatures!=null && includedNatures.length>0)
+      {
+        if (includedNatures[0].equals(IModuleConstants.JST_EJB_MODULE))
+        {
+          return true;
+        }
+      }
+    }
+    
+    return false;
+  }  
+  
+  public static boolean requiresEJBModuleFor(String serverFactoryId, String runtimeId, String typeId)
+  {
+	  // rsktodo
+	  return false;
+  }  
+  
+  //Ported from the former WebServiceClientRegistry
+  
+  public static String getRuntimeLabelById(String runtimeId) 
+  {
+    WebServiceRuntimeInfo wsrt = getWebServiceRuntimeById(runtimeId);
+    if (wsrt == null)
+      return null;
+    
+    return wsrt.getLabel();
+  }  
+  
+  public static String getServerLabelById(String serverFactoryId)
+  {
+    IServerType serverType = ServerCore.findServerType(serverFactoryId);
+    if (serverType == null)
+      return null;
+    
+    String serverLabel = ServerUICore.getLabelProvider().getText(serverType);   
+    return serverLabel;
+  }
+  
+  public static String getServerInstanceLabelFromInstanceId( String instanceId )
+  {
+    IServer server = ServerCore.findServer( instanceId );    
+    return server.getName();
+  }  
+  
+  public static boolean doesRuntimeSupportServer(String runtimeId, String factoryId)
+  {
+    WebServiceRuntimeInfo wsrt = getWebServiceRuntimeById(runtimeId);
+    if (wsrt != null)
+    {
+      String[] fids = wsrt.getServerFactoryIds();
+      if (fids!=null)
+      {
+        for (int i=0; i<fids.length; i++)
+        {
+          if (fids[i].equals(factoryId))
+          {
+            return true;
+          }
+        }
+      }
+    }
+    return false;
+  }
+  
+  public static String getFirstSupportedServer(String runtimeId)
+  {
+    WebServiceRuntimeInfo wsrt = getWebServiceRuntimeById(runtimeId);
+    
+    if (wsrt != null)
+    {
+      String[] fids = wsrt.getServerFactoryIds();
+      if (fids!=null && fids.length>0)
+      {
+        return fids[0];
+      }
+    }
+    
+    return null;    
+  }
+
+
+  public static String[] getRuntimesByClientType(String clientImplId) 
+  {
+    ArrayList ids = new ArrayList();
+    Iterator iter = registry.webServiceRuntimes_.values().iterator();
+    while (iter.hasNext())
+    {
+      WebServiceRuntimeInfo wsr = (WebServiceRuntimeInfo)iter.next();
+      ClientType[] cts = wsr.getClientTypes();
+      if (cts != null)
+      {
+        for (int i = 0; i < cts.length; i++)
+        {
+          String wsClientImplId = cts[i].getWebServiceClientImpl().getId();
+          if (wsClientImplId.equals(clientImplId))
+          {
+            ids.add(wsr.getId());
+            break;
+          }
+        }
+      }
+    }
+    
+    if (ids.size() > 0)
+    {
+      String[] runtimeIds = (String[])ids.toArray(new String[0]);
+      return runtimeIds;
+    }
+    
+    return null;    
+  }
+  
+
+  
+  public static boolean webServiceClientRuntimeTypeExists(String serverFactoryId, String runtimeId, String clientTypeId) 
+  {
+    String[] rIds = getRuntimesByClientType(clientTypeId);
+    if (rIds == null)
+    {
+      return false;
+    }
+    
+    for (int i = 0; i < rIds.length; i++)
+    {
+      if (runtimeId.equals(rIds[i]))
+      {
+        String[] fIds = getWebServiceRuntimeById(rIds[i]).getServerFactoryIds();
+        if (fIds != null)
+        {
+          for (int j = 0; j < fIds.length; j++)
+          {
+            if (serverFactoryId.equals(fIds[j]))
+            {
+              // Found it!
+              return true;
+            }
+          }
+        }
+      }
+    }  
+    
+    return false;
+  }
+  
+  public static String[] getAllClientRuntimes() 
+  {
+    ArrayList ids = new ArrayList();
+    Iterator iter = registry.webServiceRuntimes_.values().iterator();
+    while (iter.hasNext())
+    {
+      WebServiceRuntimeInfo wsr = (WebServiceRuntimeInfo)iter.next();
+      ClientType[] cts = wsr.getClientTypes();
+      if (cts!=null && cts.length>0)
+      {
+        //this runtime supports the client scenario
+        ids.add(wsr.getId());
+      }
+    }
+    
+    if (ids.size() > 0)
+    {
+      String[] runtimeIds = (String[])ids.toArray(new String[0]);
+      return runtimeIds;
+    }
+    
+    return null;
+  }
+  
+
+  public static String[] getAllClientServerFactoryIds() 
+  {    
+    String[] rIds = getAllClientRuntimes();
+    if (rIds==null)
+      return null;
+    
+    ArrayList ids = new ArrayList();
+    for (int i=0; i<rIds.length ;i++)
+    {
+      String[] fIds = getWebServiceRuntimeById(rIds[i]).getServerFactoryIds();
+      if (fIds != null)
+      {
+        for (int j=0; j<fIds.length; j++)
+        {
+          if (!ids.contains(fIds[j]))
+          {
+            ids.add(fIds[j]);
+          }
+        }
+      }
+    }
+    
+    if (ids.size() > 0)
+    {
+      String[] serverFactoryIds = (String[])ids.toArray(new String[0]);
+      return serverFactoryIds;
+    }
+    
+    return null;
+  }
+  
+
+  
+  public static String[] getClientProjectTypes(String clientImplId, String runtimeId)
+  {
+    String[] rIds = getRuntimesByClientType(clientImplId);
+    if (rIds == null)
+    {
+      return null;
+    }
+    
+    for (int i = 0; i < rIds.length; i++)
+    {
+      if (runtimeId.equals(rIds[i]))
+      {
+        ClientType[] cts = getWebServiceRuntimeById(rIds[i]).getClientTypes();
+        if (cts != null)
+        {
+          for (int j = 0; j < cts.length; j++)
+          {
+            String thisClientImplId = cts[j].getWebServiceClientImpl().getId();
+            if (clientImplId.equals(thisClientImplId))
+            {
+              // Found the one!
+              String[] projectTypes = cts[j].getModuleTypesInclude();
+              return projectTypes;
+            }
+          }
+        }
+      }
+    }  
+    
+    return null;    
+  }
+  
+  public static boolean doesRuntimeSupportComponentType(String clientImplId, String runtimeId, String componentTypeId)
+  {
+    String[] compTypeIds = getClientProjectTypes(clientImplId, runtimeId);
+    if (compTypeIds!=null)
+    {
+      for (int i=0; i<compTypeIds.length; i++)
+      {
+       if (compTypeIds[i].equals(componentTypeId))
+       {
+         return true;
+       }
+      }
+    }
+    
+    return false;
+  }
+  
+  public static LabelsAndIds getClientTypeLabels()
+  {
+    
+    LabelsAndIds labelIds = new LabelsAndIds();
+    String[] idsArray = new String[0];
+    String[] labelsArray = new String[0];
+    labelIds.setIds_(idsArray);
+    labelIds.setLabels_(labelsArray);
+  
+    String[] rIds = getAllClientRuntimes();
+    if (rIds == null)
+    {
+      return labelIds;
+    }
+  
+    ArrayList ids = new ArrayList();
+    ArrayList labels = new ArrayList();
+  
+    for (int i=0; i < rIds.length; i++)
+    {
+      WebServiceRuntimeInfo wsrt = getWebServiceRuntimeById(rIds[i]);
+      ClientType[] cts = wsrt.getClientTypes();
+      if (cts != null)
+      {
+        for (int j = 0; j < cts.length; j++)
+        {
+          ClientType ct = cts[j];
+          // String id = ct.getWebServiceClientTypeId();
+          String id = ct.getWebServiceClientImpl().getId();
+          if (!ids.contains(id))
+          {
+            ids.add(id);
+            labels.add(ct.getWebServiceClientImpl().getLabel());
+          }
+        }
+      }
+
+    }
+
+    if (ids.size() > 0)
+    {
+      idsArray = (String[]) ids.toArray(new String[0]);
+      labelsArray = (String[]) labels.toArray(new String[0]);
+      labelIds.setIds_(idsArray);
+      labelIds.setLabels_(labelsArray);
+    }
+
+    return labelIds;
+
+  }  
+  
+  //Utilities used by the ServerRuntimePreferencePage
+  
+  public static SelectionListChoices getServerToRuntimeToJ2EE()
+  {
+    if (serverToRuntimeToJ2EE_!=null)
+    {
+      return serverToRuntimeToJ2EE_;
+    }
+    
+    //String[] servers = getStringArrayIntersection(getAllServerFactoryIds(), WebServiceClientTypeRegistry.getInstance().getAllClientServerFactoryIds());
+    String[] servers = getAllServerFactoryIds();
+    SelectionList serversList = new SelectionList(servers, 0);
+    Vector choices = new Vector();
+    for (int i=0; i<servers.length; i++)
+    {
+      choices.add(getRuntimeChoices(servers[i]));
+    }
+    serverToRuntimeToJ2EE_ = new SelectionListChoices(serversList, choices);
+    return serverToRuntimeToJ2EE_;
+    
+  }
+
+  private static SelectionListChoices getRuntimeChoices(String serverFactoryId)
+  {
+    
+    String[] runtimes = getRuntimeIDsByServerFactoryID(serverFactoryId);
+    SelectionList runtimesList = new SelectionList(runtimes, 0);
+    Vector choices = new Vector();
+    for (int i=0; i<runtimes.length; i++)
+    {
+      choices.add(getJ2EEChoices(runtimes[i]));
+    }
+    return new SelectionListChoices(runtimesList, choices);    
+  }  
+  
+  private static SelectionListChoices getJ2EEChoices(String runtimeId)
+  {
+    //String[] serviceJ2EEVersions = getWebServiceRuntimeById(runtimeId).getJ2EEVersions();
+    //String[] clientJ2EEVersions = WebServiceClientTypeRegistry.getInstance().getWebServiceRuntimeById(runtimeId).getJ2EEVersions();
+    //String[] j2eeVersions = getStringArrayIntersection(serviceJ2EEVersions, clientJ2EEVersions);
+    WebServiceRuntimeInfo wsr = getWebServiceRuntimeById(runtimeId);
+    if (wsr==null)
+    {
+      return null;
+    }
+    
+    String[] j2eeVersions = wsr.getJ2eeLevels();
+    SelectionList j2eeVersionsList = new SelectionList(j2eeVersions, 0);
+    return new SelectionListChoices(j2eeVersionsList, null);
+  }  
+  
+  private static String[] getAllServerFactoryIds()
+  {
+    ArrayList ids = new ArrayList();
+    if (serverFactoryIdByLabel_ == null)
+    {
+      serverFactoryIdByLabel_ = new Hashtable();
+      Iterator iter = registry.webServiceRuntimes_.values().iterator();
+      while (iter.hasNext())
+      {
+        WebServiceRuntimeInfo wsr = (WebServiceRuntimeInfo) iter.next();
+        String[] sfids = wsr.getServerFactoryIds();
+        for (int i = 0; i < sfids.length; i++)
+        {
+          if (!ids.contains(sfids[i]))
+          {
+            String label = getServerLabelById(sfids[i]);
+            if (label != null)
+            {
+              ids.add(sfids[i]);
+              serverFactoryIdByLabel_.put(label, sfids[i]);
+            }
+          }
+        }
+      }
+    }
+    else
+    {
+      Iterator fids =  serverFactoryIdByLabel_.values().iterator();
+      while (fids.hasNext())
+      {
+        String fid = (String)fids.next();
+        ids.add(fid);
+      }           
+    }
+    
+    if (ids.size() > 0)
+    {
+      String[] serverFactoryIds = (String[])ids.toArray(new String[0]);
+      return serverFactoryIds;
+    }
+    
+    return null;
+  }  
+  
+  private static String[] getRuntimeIDsByServerFactoryID(String serverFactoryID) 
+  {
+    ArrayList ids = new ArrayList();
+    Iterator iter = registry.webServiceRuntimes_.values().iterator();
+    while (iter.hasNext())
+    {
+      WebServiceRuntimeInfo wsr = (WebServiceRuntimeInfo)iter.next();
+      if (doesRuntimeSupportServer(wsr.getId(), serverFactoryID))
+      {
+        ids.add(wsr.getId());
+      }
+      
+    }
+    
+    if (ids.size() > 0)
+    {
+      String[] runtimeIds = (String[])ids.toArray(new String[0]);
+      return runtimeIds;
+    }
+    
+    return null;    
+    
+    
+  }
+  
+  public static String getServerFactoryId(String label)
+  {
+    if (label==null || label.length()==0)
+      return null;
+    
+    if (serverFactoryIdByLabel_ == null)
+    {
+      getAllServerFactoryIds();
+    }
+    
+    if (serverFactoryIdByLabel_.containsKey(label))
+    {
+      return (String)serverFactoryIdByLabel_.get(label);  
+    }
+    else
+    {
+      return null;
+    }       
+  }  
+  
+  public static String getRuntimeId(String label)
+  {
+    
+    if (label==null || label.length()==0)
+      return null;
+    
+    if (runtimeIdByLabel_ == null)
+    {
+      runtimeIdByLabel_ = new Hashtable();
+      Iterator iter = registry.webServiceRuntimes_.values().iterator();
+      while (iter.hasNext())
+      {
+        WebServiceRuntimeInfo wsr = (WebServiceRuntimeInfo)iter.next();
+        runtimeIdByLabel_.put(wsr.getLabel(), wsr.getId());        
+      }      
+    }
+    
+    return (String)runtimeIdByLabel_.get(label);    
+  }    
+}
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wsrt/WebServiceRuntimeExtensionUtils2.java b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wsrt/WebServiceRuntimeExtensionUtils2.java
index e654d22..b9dc950 100644
--- a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wsrt/WebServiceRuntimeExtensionUtils2.java
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wsrt/WebServiceRuntimeExtensionUtils2.java
@@ -1,18 +1,15 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005 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
+ *     IBM Corporation - initial API and implementation
  * yyyymmdd bug      Email and other contact information
  * -------- -------- -----------------------------------------------------------
  * 20060131 121071   rsinha@ca.ibm.com - Rupam Kuehner     
- * 20060221   119111 rsinha@ca.ibm.com - Rupam Kuehner
- * 20060227   124392 rsinha@ca.ibm.com - Rupam Kuehner
- * 20060324   116750 rsinha@ca.ibm.com - Rupam Kuehner
  *******************************************************************************/
 
 package org.eclipse.jst.ws.internal.consumption.ui.wsrt;
@@ -30,11 +27,10 @@
 import org.eclipse.jst.ws.internal.consumption.common.FacetMatcher;
 import org.eclipse.jst.ws.internal.consumption.common.FacetUtils;
 import org.eclipse.jst.ws.internal.consumption.common.RequiredFacetVersion;
-import org.eclipse.jst.ws.internal.consumption.ui.ConsumptionUIMessages;
 import org.eclipse.jst.ws.internal.consumption.ui.wizard.TypeSelectionFilter2;
 import org.eclipse.jst.ws.internal.data.LabelsAndIds;
 import org.eclipse.jst.ws.internal.data.TypeRuntimeServer;
-import org.eclipse.osgi.util.NLS;
+import org.eclipse.wst.command.internal.env.core.common.MessageUtils;
 import org.eclipse.wst.command.internal.env.core.selection.SelectionList;
 import org.eclipse.wst.command.internal.env.core.selection.SelectionListChoices;
 import org.eclipse.wst.common.project.facet.core.IFacetedProjectTemplate;
@@ -61,35 +57,6 @@
     return null;        
   }
   
-  
-  public static String[] getAllServiceProjectTypes()
-  {
-    ArrayList finalTemplateIdList = new ArrayList();
-    Iterator iter = registry.serviceRuntimes_.values().iterator();
-
-    //Loop through all the serviceRuntimes
-    while (iter.hasNext())   
-    {
-      ServiceRuntimeDescriptor desc = (ServiceRuntimeDescriptor)iter.next();
-      
-      //Get the templates for this service runtime
-      Set templates = FacetMatchCache.getInstance().getTemplatesForServiceRuntime(desc.getId());
-      
-      //Add the template ids to the list if they have not already been added
-      Iterator itr = templates.iterator();
-      while (itr.hasNext())
-      {
-        IFacetedProjectTemplate template = (IFacetedProjectTemplate)itr.next();
-        if (!finalTemplateIdList.contains(template.getId()))
-        {
-          finalTemplateIdList.add(template.getId());
-        }
-      }            
-    }
-    
-    return (String[])finalTemplateIdList.toArray(new String[]{});
-  }
-  
   public static String[] getAllClientProjectTypes()
   {
     ArrayList finalTemplateIdList = new ArrayList();
@@ -219,21 +186,17 @@
   
   public static String getServiceRuntimeId(TypeRuntimeServer trs, String projectName, String templateId)
   {
-    boolean serverSelected = (trs.getServerId() != null) && (trs.getServerId().length() > 0); 
-    //Find the first service runtime that supports the implementation type, runtime, server, and project
+    //Find the first client runtime that supports the implementation type, runtime, server, and project
     String[] descs = getServiceRuntimesByServiceType(trs.getTypeId());
     for (int i=0; i<descs.length; i++)
     {
       ServiceRuntimeDescriptor desc = getServiceRuntimeDescriptorById(descs[i]);      
       if (desc.getRuntime().getId().equals(trs.getRuntimeId()))
       {
-        if (serverSelected)
+        boolean supportsServer = doesServiceRuntimeSupportServer(desc.getId(), trs.getServerId());
+        if (!supportsServer)
         {
-          boolean supportsServer = doesServiceRuntimeSupportServer(desc.getId(), trs.getServerId());
-          if (!supportsServer)
-          {
-            continue;
-          }
+          continue;
         }
         
         IProject project = ProjectUtilities.getProject(projectName);
@@ -481,7 +444,10 @@
     
   
   public static LabelsAndIds getServiceTypeLabels()
-  {   
+  {
+    String       pluginId = "org.eclipse.jst.ws.internal.consumption.ui";
+    MessageUtils msgUtils = new MessageUtils( pluginId + ".ConsumptionUI", registry );
+    
     LabelsAndIds labelIds = new LabelsAndIds();
     Iterator     iterator = registry.webServiceTypesList_.iterator();
     int          size     = registry.webServiceTypesList_.size();
@@ -504,14 +470,14 @@
       switch(scenario)
       {
       case WebServiceScenario.BOTTOMUP:
-        scenLabel = NLS.bind(ConsumptionUIMessages.BOTTOMUP_LABEL, new String[0]);
+        scenLabel = msgUtils.getMessage(WebServiceScenario.BOTTOMUP_LABEL);
         break;
       case WebServiceScenario.TOPDOWN:
-        scenLabel = NLS.bind(ConsumptionUIMessages.TOPDOWN_LABEL, new String[0]);
+        scenLabel = msgUtils.getMessage(WebServiceScenario.TOPDOWN_LABEL);
         break; 
       default:
       }
-      labels[index] = NLS.bind(ConsumptionUIMessages.COMBINED_TYPE_AND_RUNTIME_LABEL, new String[]{ scenLabel, impllabel });
+      labels[index] = msgUtils.getMessage( "COMBINED_TYPE_AND_RUNTIME_LABEL", new String[]{ scenLabel, impllabel } );
       index++;
     }    
     
@@ -539,7 +505,7 @@
   public static String getDefaultServerValueFor(String typeId)
   {
     String[] fIds = getServerFactoryIdsByServiceType(typeId);
-    if (fIds==null || fIds.length==0)
+    if (fIds==null)
       return null;
     
     return fIds[0];
@@ -817,7 +783,6 @@
   
   public static String getClientRuntimeId(TypeRuntimeServer trs, String projectName, String templateId)
   {
-    boolean serverSelected = (trs.getServerId()!=null) && (trs.getServerId().length()>0);
     //Find the first client runtime that supports the implementation type, runtime, server, and project
     String[] descs = getClientRuntimesByType(trs.getTypeId());
     for (int i=0; i<descs.length; i++)
@@ -825,13 +790,10 @@
       ClientRuntimeDescriptor desc = getClientRuntimeDescriptorById(descs[i]);      
       if (desc.getRuntime().getId().equals(trs.getRuntimeId()))
       {
-        if (serverSelected)
+        boolean supportsServer = doesClientRuntimeSupportServer(desc.getId(), trs.getServerId());
+        if (!supportsServer)
         {
-          boolean supportsServer = doesClientRuntimeSupportServer(desc.getId(), trs.getServerId());
-          if (!supportsServer)
-          {
-            continue;
-          }
+          continue;
         }
         
         IProject project = ProjectUtilities.getProject(projectName);
@@ -911,10 +873,7 @@
       //Check if this serviceRuntime supports the implementation type
       if (desc.getClientImplementationType().getId().equals(clientImplId))
       {
-        if (!runtimeIds.contains(desc.getRuntime().getId()))
-        {
-          runtimeIds.add(desc.getRuntime().getId());
-        }
+        runtimeIds.add(desc.getRuntime().getId());
       }
     }
     
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wsrt/WebServiceRuntimeInfo.java b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wsrt/WebServiceRuntimeInfo.java
index a8e2562..a69832c 100644
--- a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wsrt/WebServiceRuntimeInfo.java
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/wsrt/WebServiceRuntimeInfo.java
@@ -1,23 +1,21 @@
+/*
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060216   127138 pmoogk@ca.ibm.com - Peter Moogk
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jst.ws.internal.consumption.ui.wsrt;
 
 import java.util.Hashtable;
+import java.util.StringTokenizer;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IConfigurationElement;
 import org.eclipse.wst.ws.internal.wsrt.IWebServiceRuntime;
-import com.ibm.icu.util.StringTokenizer;
 
 
 public class WebServiceRuntimeInfo {
diff --git a/bundles/org.eclipse.jst.ws.consumption/.cvsignore b/bundles/org.eclipse.jst.ws.consumption/.cvsignore
index ad09d9c..bd9ea09 100644
--- a/bundles/org.eclipse.jst.ws.consumption/.cvsignore
+++ b/bundles/org.eclipse.jst.ws.consumption/.cvsignore
@@ -5,5 +5,3 @@
 wsc.jar
 webserviceutilssrc.zip
 wscsrc.zip
-javaCompiler.webserviceutils.jar.args
-javaCompiler.wsc.jar.args
diff --git a/bundles/org.eclipse.jst.ws.consumption/META-INF/MANIFEST.MF b/bundles/org.eclipse.jst.ws.consumption/META-INF/MANIFEST.MF
index 1baee5e..6efc9f0 100644
--- a/bundles/org.eclipse.jst.ws.consumption/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.jst.ws.consumption/META-INF/MANIFEST.MF
@@ -2,28 +2,28 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %PLUGIN_NAME
 Bundle-SymbolicName: org.eclipse.jst.ws.consumption; singleton:=true
-Bundle-Version: 1.0.101.qualifier
+Bundle-Version: 1.0.2.qualifier
 Bundle-ClassPath: wsc.jar,
  webserviceutils.jar
 Bundle-Activator: org.eclipse.jst.ws.internal.consumption.plugin.WebServiceConsumptionPlugin
 Bundle-Vendor: %PLUGIN_PROVIDER
 Bundle-Localization: plugin
-Export-Package: org.eclipse.jst.ws.internal.consumption;x-internal:=true,
- org.eclipse.jst.ws.internal.consumption.codegen;x-internal:=true,
- org.eclipse.jst.ws.internal.consumption.codegen.bean;x-internal:=true,
- org.eclipse.jst.ws.internal.consumption.codegen.javamofvisitoractions;x-internal:=true,
- org.eclipse.jst.ws.internal.consumption.codegen.javamofvisitors;x-internal:=true,
- org.eclipse.jst.ws.internal.consumption.command.common;x-internal:=true,
- org.eclipse.jst.ws.internal.consumption.common;x-internal:=true,
- org.eclipse.jst.ws.internal.consumption.datamodel.beanmodel;x-internal:=true,
- org.eclipse.jst.ws.internal.consumption.datamodel.validate;x-internal:=true,
- org.eclipse.jst.ws.internal.consumption.datamodel.wsdlmodel;x-internal:=true,
- org.eclipse.jst.ws.internal.consumption.fragments;x-internal:=true,
- org.eclipse.jst.ws.internal.consumption.plugin;x-internal:=true,
- org.eclipse.jst.ws.internal.consumption.sampleapp.codegen;x-internal:=true,
- org.eclipse.jst.ws.internal.consumption.sampleapp.command;x-internal:=true,
- org.eclipse.jst.ws.internal.consumption.sampleapp.common;x-internal:=true,
- org.eclipse.jst.ws.internal.consumption.wsfinder;x-internal:=true,
+Export-Package: org.eclipse.jst.ws.internal.consumption,
+ org.eclipse.jst.ws.internal.consumption.codegen,
+ org.eclipse.jst.ws.internal.consumption.codegen.bean,
+ org.eclipse.jst.ws.internal.consumption.codegen.javamofvisitoractions,
+ org.eclipse.jst.ws.internal.consumption.codegen.javamofvisitors,
+ org.eclipse.jst.ws.internal.consumption.command.common,
+ org.eclipse.jst.ws.internal.consumption.common,
+ org.eclipse.jst.ws.internal.consumption.datamodel.beanmodel,
+ org.eclipse.jst.ws.internal.consumption.datamodel.validate,
+ org.eclipse.jst.ws.internal.consumption.datamodel.wsdlmodel,
+ org.eclipse.jst.ws.internal.consumption.fragments,
+ org.eclipse.jst.ws.internal.consumption.plugin,
+ org.eclipse.jst.ws.internal.consumption.sampleapp.codegen,
+ org.eclipse.jst.ws.internal.consumption.sampleapp.command,
+ org.eclipse.jst.ws.internal.consumption.sampleapp.common,
+ org.eclipse.jst.ws.internal.consumption.wsfinder,
  org.eclipse.jst.ws.util
 Require-Bundle: org.eclipse.jem,
  org.eclipse.jem.workbench,
@@ -57,6 +57,5 @@
  org.eclipse.wst.common.environment,
  org.eclipse.wst.common.project.facet.core,
  org.eclipse.jst.server.core,
- com.ibm.icu,
  org.eclipse.ui
-Eclipse-LazyStart: true
+Eclipse-AutoStart: true
diff --git a/bundles/org.eclipse.jst.ws.consumption/src/org/eclipse/jst/ws/internal/consumption/command/common/CreateFacetedProjectCommand.java b/bundles/org.eclipse.jst.ws.consumption/src/org/eclipse/jst/ws/internal/consumption/command/common/CreateFacetedProjectCommand.java
index 27ebdab..c5e20ad 100644
--- a/bundles/org.eclipse.jst.ws.consumption/src/org/eclipse/jst/ws/internal/consumption/command/common/CreateFacetedProjectCommand.java
+++ b/bundles/org.eclipse.jst.ws.consumption/src/org/eclipse/jst/ws/internal/consumption/command/common/CreateFacetedProjectCommand.java
@@ -12,7 +12,6 @@
  * 20060131 121071   rsinha@ca.ibm.com - Rupam Kuehner     
  * 20060204 124408   rsinha@ca.ibm.com - Rupam Kuehner      
  * 20060217 126757   rsinha@ca.ibm.com - Rupam Kuehner
- * 20060221 119111   rsinha@ca.ibm.com - Rupam Kuehner
  *******************************************************************************/
 
 package org.eclipse.jst.ws.internal.consumption.command.common;
@@ -124,7 +123,7 @@
   private IStatus checkDataReady()
   {
 
-	if (projectName == null)
+    if (projectName == null || serverFactoryId == null)
     {
       return StatusUtils.errorStatus(NLS.bind(ConsumptionMessages.MSG_ERROR_PROJECT_CREATION, new String[] {projectName}));
     }
@@ -192,40 +191,37 @@
   private void setFacetRuntime()
   {
     
-	  if (serverInstanceId != null && serverInstanceId.length()>0)
-	  {
-		  IServer server = ServerCore.findServer(serverInstanceId);
-		  IRuntime sRuntime = server.getRuntime();
-		  facetRuntime = FacetUtil.getRuntime(sRuntime);      
-	  }
-	  else
-	  {
-		  if (serverFactoryId != null && serverFactoryId.length() > 0)
-		  {
-			  //Find a non Stub runtime that matches this server type
-			  IRuntime serverRuntime = ServerUtils.getNonStubRuntime(serverFactoryId);
-			  if (serverRuntime != null)
-			  {
-				  facetRuntime = FacetUtil.getRuntime(serverRuntime);
-			  }
-			  else
-			  {
-				  //Accept stub runtime.
-				  IServerType st = ServerCore.findServerType(serverFactoryId);
-				  String runtimeTypeId = st.getRuntimeType().getId();   
-				  //Find the facet runtime
-				  IRuntime[] runtimes = ServerCore.getRuntimes();
-				  for (int i=0; i<runtimes.length; i++)
-				  {
-					  IRuntime sRuntime = runtimes[i];
-					  if (sRuntime.getRuntimeType().getId().equals(runtimeTypeId))
-					  {
-						  facetRuntime = FacetUtil.getRuntime(sRuntime);
-					  }
-				  }                
-			  }
-		  }
-	  }
+    if (serverInstanceId != null && serverInstanceId.length()>0)
+    {
+      IServer server = ServerCore.findServer(serverInstanceId);
+      IRuntime sRuntime = server.getRuntime();
+      facetRuntime = FacetUtil.getRuntime(sRuntime);      
+    }
+    else
+    {
+      //Find a non Stub runtime that matches this server type
+      IRuntime serverRuntime = ServerUtils.getNonStubRuntime(serverFactoryId);
+      if (serverRuntime != null)
+      {
+        facetRuntime = FacetUtil.getRuntime(serverRuntime);
+      }
+      else
+      {
+        //Accept stub runtime.
+        IServerType st = ServerCore.findServerType(serverFactoryId);
+        String runtimeTypeId = st.getRuntimeType().getId();   
+        //Find the facet runtime
+        IRuntime[] runtimes = ServerCore.getRuntimes();
+        for (int i=0; i<runtimes.length; i++)
+        {
+          IRuntime sRuntime = runtimes[i];
+          if (sRuntime.getRuntimeType().getId().equals(runtimeTypeId))
+          {
+            facetRuntime = FacetUtil.getRuntime(sRuntime);
+          }
+        }                
+      }
+    }
   }
   
   /*
diff --git a/bundles/org.eclipse.jst.ws.consumption/src/org/eclipse/jst/ws/internal/consumption/command/common/CreateModuleCommand.java b/bundles/org.eclipse.jst.ws.consumption/src/org/eclipse/jst/ws/internal/consumption/command/common/CreateModuleCommand.java
index e0cce92..1821b89 100644
--- a/bundles/org.eclipse.jst.ws.consumption/src/org/eclipse/jst/ws/internal/consumption/command/common/CreateModuleCommand.java
+++ b/bundles/org.eclipse.jst.ws.consumption/src/org/eclipse/jst/ws/internal/consumption/command/common/CreateModuleCommand.java
@@ -10,7 +10,7 @@
  * yyyymmdd bug      Email and other contact information
  * -------- -------- -----------------------------------------------------------
  * 20060204 124408   rsinha@ca.ibm.com - Rupam Kuehner      *     
- * 20060217   126757 rsinha@ca.ibm.com - Rupam Kuehner
+ * 20060217 126757   rsinha@ca.ibm.com - Rupam Kuehner
  *******************************************************************************/
 
 package org.eclipse.jst.ws.internal.consumption.command.common;
diff --git a/bundles/org.eclipse.jst.ws.consumption/src/org/eclipse/jst/ws/internal/consumption/common/FacetUtils.java b/bundles/org.eclipse.jst.ws.consumption/src/org/eclipse/jst/ws/internal/consumption/common/FacetUtils.java
index 93e9172..0aa1a45 100644
--- a/bundles/org.eclipse.jst.ws.consumption/src/org/eclipse/jst/ws/internal/consumption/common/FacetUtils.java
+++ b/bundles/org.eclipse.jst.ws.consumption/src/org/eclipse/jst/ws/internal/consumption/common/FacetUtils.java
@@ -10,7 +10,7 @@
  * yyyymmdd bug      Email and other contact information
  * -------- -------- -----------------------------------------------------------
  * 20060131 121071   rsinha@ca.ibm.com - Rupam Kuehner     
- * 20060217   126757 rsinha@ca.ibm.com - Rupam Kuehner
+ * 20060217 126757   rsinha@ca.ibm.com - Rupam Kuehner
  *******************************************************************************/
 
 package org.eclipse.jst.ws.internal.consumption.common;
@@ -21,6 +21,7 @@
 import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
+import java.util.StringTokenizer;
 
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.ResourcesPlugin;
@@ -48,7 +49,6 @@
 import org.eclipse.wst.common.project.facet.core.IFacetedProject.Action.Type;
 import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
 import org.eclipse.wst.common.project.facet.core.runtime.RuntimeManager;
-import com.ibm.icu.util.StringTokenizer;
 
 public class FacetUtils
 {
diff --git a/bundles/org.eclipse.jst.ws.creation.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.jst.ws.creation.ui/META-INF/MANIFEST.MF
index ad92d19..851f254 100644
--- a/bundles/org.eclipse.jst.ws.creation.ui/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.jst.ws.creation.ui/META-INF/MANIFEST.MF
@@ -2,20 +2,20 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %PLUGIN_NAME
 Bundle-SymbolicName: org.eclipse.jst.ws.creation.ui; singleton:=true
-Bundle-Version: 1.0.101.qualifier
+Bundle-Version: 1.0.1.qualifier
 Bundle-Activator: org.eclipse.jst.ws.internal.creation.ui.plugin.WebServiceCreationUIPlugin
 Bundle-Vendor: %PLUGIN_PROVIDER
 Bundle-Localization: plugin
-Export-Package: org.eclipse.jst.ws.internal.creation.ui;x-internal:=true,
- org.eclipse.jst.ws.internal.creation.ui.ant;x-internal:=true,
- org.eclipse.jst.ws.internal.creation.ui.extension;x-internal:=true,
- org.eclipse.jst.ws.internal.creation.ui.plugin;x-internal:=true,
- org.eclipse.jst.ws.internal.creation.ui.preferences;x-internal:=true,
- org.eclipse.jst.ws.internal.creation.ui.server;x-internal:=true,
- org.eclipse.jst.ws.internal.creation.ui.widgets;x-internal:=true,
- org.eclipse.jst.ws.internal.creation.ui.widgets.binding;x-internal:=true,
- org.eclipse.jst.ws.internal.creation.ui.widgets.runtime;x-internal:=true,
- org.eclipse.jst.ws.internal.creation.ui.widgets.test;x-internal:=true
+Export-Package: org.eclipse.jst.ws.internal.creation.ui,
+ org.eclipse.jst.ws.internal.creation.ui.ant,
+ org.eclipse.jst.ws.internal.creation.ui.extension,
+ org.eclipse.jst.ws.internal.creation.ui.plugin,
+ org.eclipse.jst.ws.internal.creation.ui.preferences,
+ org.eclipse.jst.ws.internal.creation.ui.server,
+ org.eclipse.jst.ws.internal.creation.ui.widgets,
+ org.eclipse.jst.ws.internal.creation.ui.widgets.binding,
+ org.eclipse.jst.ws.internal.creation.ui.widgets.runtime,
+ org.eclipse.jst.ws.internal.creation.ui.widgets.test
 Require-Bundle: org.eclipse.wst.command.env,
  org.eclipse.wst.command.env.ui,
  org.eclipse.wst.command.env.core,
@@ -42,4 +42,4 @@
  org.eclipse.wst.common.frameworks,
  org.eclipse.wst.common.environment,
  org.eclipse.wst.common.project.facet.core
-Eclipse-LazyStart: true
+Eclipse-AutoStart: true
diff --git a/bundles/org.eclipse.jst.ws.creation.ui/icons/scale0_bground.jpg b/bundles/org.eclipse.jst.ws.creation.ui/icons/scale0_bground.jpg
deleted file mode 100644
index 679405f..0000000
--- a/bundles/org.eclipse.jst.ws.creation.ui/icons/scale0_bground.jpg
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.ws.creation.ui/icons/scale1_bground.jpg b/bundles/org.eclipse.jst.ws.creation.ui/icons/scale1_bground.jpg
deleted file mode 100644
index ee33ba3..0000000
--- a/bundles/org.eclipse.jst.ws.creation.ui/icons/scale1_bground.jpg
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.ws.creation.ui/icons/scale2_bground.jpg b/bundles/org.eclipse.jst.ws.creation.ui/icons/scale2_bground.jpg
deleted file mode 100644
index e9dbf45..0000000
--- a/bundles/org.eclipse.jst.ws.creation.ui/icons/scale2_bground.jpg
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.ws.creation.ui/icons/scale3_bground.jpg b/bundles/org.eclipse.jst.ws.creation.ui/icons/scale3_bground.jpg
deleted file mode 100644
index 6b7f15f..0000000
--- a/bundles/org.eclipse.jst.ws.creation.ui/icons/scale3_bground.jpg
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.ws.creation.ui/icons/scale4_bground.jpg b/bundles/org.eclipse.jst.ws.creation.ui/icons/scale4_bground.jpg
deleted file mode 100644
index e73fd81..0000000
--- a/bundles/org.eclipse.jst.ws.creation.ui/icons/scale4_bground.jpg
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.ws.creation.ui/icons/scale5_bground.jpg b/bundles/org.eclipse.jst.ws.creation.ui/icons/scale5_bground.jpg
deleted file mode 100644
index 150be97..0000000
--- a/bundles/org.eclipse.jst.ws.creation.ui/icons/scale5_bground.jpg
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.ws.creation.ui/icons/scale6_bground.jpg b/bundles/org.eclipse.jst.ws.creation.ui/icons/scale6_bground.jpg
deleted file mode 100644
index 6a80f3e..0000000
--- a/bundles/org.eclipse.jst.ws.creation.ui/icons/scale6_bground.jpg
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.ws.creation.ui/icons/service_assemble.jpg b/bundles/org.eclipse.jst.ws.creation.ui/icons/service_assemble.jpg
deleted file mode 100644
index 5d37933..0000000
--- a/bundles/org.eclipse.jst.ws.creation.ui/icons/service_assemble.jpg
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.ws.creation.ui/icons/service_deploy.jpg b/bundles/org.eclipse.jst.ws.creation.ui/icons/service_deploy.jpg
deleted file mode 100644
index bd58bc0..0000000
--- a/bundles/org.eclipse.jst.ws.creation.ui/icons/service_deploy.jpg
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.ws.creation.ui/icons/service_develop.jpg b/bundles/org.eclipse.jst.ws.creation.ui/icons/service_develop.jpg
deleted file mode 100644
index 38ff6a6..0000000
--- a/bundles/org.eclipse.jst.ws.creation.ui/icons/service_develop.jpg
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.ws.creation.ui/icons/service_install.jpg b/bundles/org.eclipse.jst.ws.creation.ui/icons/service_install.jpg
deleted file mode 100644
index 58fcdba..0000000
--- a/bundles/org.eclipse.jst.ws.creation.ui/icons/service_install.jpg
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.ws.creation.ui/icons/service_run.jpg b/bundles/org.eclipse.jst.ws.creation.ui/icons/service_run.jpg
deleted file mode 100644
index 5c912f7..0000000
--- a/bundles/org.eclipse.jst.ws.creation.ui/icons/service_run.jpg
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.ws.creation.ui/icons/service_test.jpg b/bundles/org.eclipse.jst.ws.creation.ui/icons/service_test.jpg
deleted file mode 100644
index ab56959..0000000
--- a/bundles/org.eclipse.jst.ws.creation.ui/icons/service_test.jpg
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.ws.creation.ui/plugin.properties b/bundles/org.eclipse.jst.ws.creation.ui/plugin.properties
index 5e18d4a..c124705 100644
--- a/bundles/org.eclipse.jst.ws.creation.ui/plugin.properties
+++ b/bundles/org.eclipse.jst.ws.creation.ui/plugin.properties
@@ -25,10 +25,10 @@
 #	Web Services Preferance Pages
 #
 # Dialogs
-CHECKBOX_SHOW_DEPLOY_WEB_SERVICE_DIALOG=Hide &Create Web service Dialog
-CHECKBOX_SHOW_GENERATE_SKELETON_DIALOG=Hide Generate Java Bean S&keleton Dialog
+CHECKBOX_SHOW_DEPLOY_WEB_SERVICE_DIALOG=Hide Create Web service Dialog
+CHECKBOX_SHOW_GENERATE_SKELETON_DIALOG=Hide Generate Java Bean Skeleton Dialog
 CHECKBOX_SHOW_GENERATE_WSDL_FILES_DIALOG=Hide Generate WSDL Files Dialog
-CHECKBOX_SHOW_PUBLISH_WSDL_DIALOG=Hide Publish &WSDL Dialog
+CHECKBOX_SHOW_PUBLISH_WSDL_DIALOG=Hide Publish WSDL Dialog
 
 PREFERENCE_CATEGORY_SCENARIO_DEFAULTS=Scenario Defaults
 
diff --git a/bundles/org.eclipse.jst.ws.creation.ui/plugin.xml b/bundles/org.eclipse.jst.ws.creation.ui/plugin.xml
index 386150c..fb08480 100644
--- a/bundles/org.eclipse.jst.ws.creation.ui/plugin.xml
+++ b/bundles/org.eclipse.jst.ws.creation.ui/plugin.xml
@@ -39,7 +39,7 @@
             name="%PLUGIN_EXPORT_WIZARD_NAME_WS"
             icon="icons/export_ws.gif"
             class="org.eclipse.wst.command.internal.env.ui.widgets.DynamicWizard"
-            id="org.eclipse.jst.ws.consumption.ui.wsexport">
+            id="wsexport">
          <description>
             %PLUGIN_EXPORT_WIZARD_DESC_WS
          </description>
@@ -52,7 +52,7 @@
             iconbanner="icons/export_ws_wiz.gif"
             name="%PLUGIN_EXPORT_WIZARD_NAME_WS"
             class="org.eclipse.jst.ws.internal.creation.ui.widgets.binding.ExportWSWidgetBinding"
-            id="org.eclipse.jst.ws.consumption.ui.wsexport">
+            id="wsexport">
       </dynamicWizard>
    </extension>
 
@@ -254,13 +254,11 @@
               key="InitialSelection"
               operation="org.eclipse.jst.ws.internal.creation.ui.widgets.ServerWizardWidgetDefaultingCommand"
               property="InitialSelection"
-              required="true"
               transform="org.eclipse.jst.ws.internal.common.String2SelectionTransformer"/>
         <map
               key="InitialSelection"
               operation="org.eclipse.jst.ws.internal.consumption.ui.widgets.object.ObjectSelectionOutputCommand"
               property="ObjectSelection"
-              required="true"
               transform="org.eclipse.jst.ws.internal.common.String2SelectionTransformer"/>              
 		<map
               key="Project"
diff --git a/bundles/org.eclipse.jst.ws.creation.ui/src/org/eclipse/jst/ws/internal/creation/ui/ant/AntServiceRootCommandFragment.java b/bundles/org.eclipse.jst.ws.creation.ui/src/org/eclipse/jst/ws/internal/creation/ui/ant/AntServiceRootCommandFragment.java
index f26be75..40ad678 100644
--- a/bundles/org.eclipse.jst.ws.creation.ui/src/org/eclipse/jst/ws/internal/creation/ui/ant/AntServiceRootCommandFragment.java
+++ b/bundles/org.eclipse.jst.ws.creation.ui/src/org/eclipse/jst/ws/internal/creation/ui/ant/AntServiceRootCommandFragment.java
@@ -1,15 +1,12 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060221   119111 rsinha@ca.ibm.com - Rupam Kuehner
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jst.ws.internal.creation.ui.ant;
 
@@ -93,7 +90,6 @@
     dataRegistry.addMapping(AntDefaultingOperation.class, "ClientIdsFixed", ServerRuntimeSelectionWidgetDefaultingCommand.class);
     dataRegistry.addMapping(AntDefaultingOperation.class, "StartService", PreServiceDevelopCommand.class);
     dataRegistry.addMapping(AntDefaultingOperation.class, "InstallService", PreServiceDevelopCommand.class);
-    dataRegistry.addMapping(AntDefaultingOperation.class, "DeployService", PreServiceDevelopCommand.class);
     
     // Map ServerRuntimeSelectionWidgetDefaultingCommand
     dataRegistry.addMapping(ServerRuntimeSelectionWidgetDefaultingCommand.class, "ServiceTypeRuntimeServer", ServerExtensionDefaultingCommand.class);    
diff --git a/bundles/org.eclipse.jst.ws.creation.ui/src/org/eclipse/jst/ws/internal/creation/ui/extension/PreServiceDeployCommand.java b/bundles/org.eclipse.jst.ws.creation.ui/src/org/eclipse/jst/ws/internal/creation/ui/extension/PreServiceDeployCommand.java
index 4e55759..b4668ec 100644
--- a/bundles/org.eclipse.jst.ws.creation.ui/src/org/eclipse/jst/ws/internal/creation/ui/extension/PreServiceDeployCommand.java
+++ b/bundles/org.eclipse.jst.ws.creation.ui/src/org/eclipse/jst/ws/internal/creation/ui/extension/PreServiceDeployCommand.java
@@ -1,15 +1,12 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060221   119111 rsinha@ca.ibm.com - Rupam Kuehner
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 
 package org.eclipse.jst.ws.internal.creation.ui.extension;
@@ -19,24 +16,11 @@
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelOperation;
-import org.eclipse.wst.ws.internal.wsrt.IContext;
 
 public class PreServiceDeployCommand extends AbstractDataModelOperation
 {
-  private IContext    context_;
   public IStatus execute( IProgressMonitor monitor, IAdaptable adaptable )
   {
-      if (context_.getDeploy())
-      {
-        //If and when there are framework specific deploy things to be done,
-        //do them here.
-      }
-      
 	  return Status.OK_STATUS;
   }
-  
-  public void setContext(IContext context)
-  {
-      context_=context;
-  }  
 }
diff --git a/bundles/org.eclipse.jst.ws.creation.ui/src/org/eclipse/jst/ws/internal/creation/ui/extension/PreServiceDevelopCommand.java b/bundles/org.eclipse.jst.ws.creation.ui/src/org/eclipse/jst/ws/internal/creation/ui/extension/PreServiceDevelopCommand.java
index 3df8d7e..9d2d376 100644
--- a/bundles/org.eclipse.jst.ws.creation.ui/src/org/eclipse/jst/ws/internal/creation/ui/extension/PreServiceDevelopCommand.java
+++ b/bundles/org.eclipse.jst.ws.creation.ui/src/org/eclipse/jst/ws/internal/creation/ui/extension/PreServiceDevelopCommand.java
@@ -1,16 +1,15 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005 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
+ *     IBM Corporation - initial API and implementation
  * yyyymmdd bug      Email and other contact information
  * -------- -------- -----------------------------------------------------------
  * 20060131 121071   rsinha@ca.ibm.com - Rupam Kuehner
- * 20060221   119111 rsinha@ca.ibm.com - Rupam Kuehner
  *******************************************************************************/
 
 package org.eclipse.jst.ws.internal.creation.ui.extension;
@@ -54,7 +53,6 @@
   private String            j2eeLevel_;
   private ResourceContext   resourceContext_;
   
-  private boolean deploy_;
   private boolean install_;
   private boolean run_;
   private boolean client_;
@@ -109,7 +107,7 @@
       wsInfo.setWsdlURL(wsdlURL);      
 		}
 	
-		context_     = new SimpleContext(true, true, deploy_, install_, run_, client_, test_, publish_, 
+		context_     = new SimpleContext(true, true, true, install_, run_, client_, test_, publish_, 
 																		scenario, 
 																		resourceContext_.isOverwriteFilesEnabled(),
 																		resourceContext_.isCreateFoldersEnabled(),
@@ -236,11 +234,6 @@
 	{
 		install_ = installService;
 	}
-
-  public void setDeployService(boolean deployService)
-    {
-        deploy_ = deployService;
-    }
   
 	public void setStartService(boolean startService)
 	{
diff --git a/bundles/org.eclipse.jst.ws.creation.ui/src/org/eclipse/jst/ws/internal/creation/ui/extension/ServiceRootFragment.java b/bundles/org.eclipse.jst.ws.creation.ui/src/org/eclipse/jst/ws/internal/creation/ui/extension/ServiceRootFragment.java
index b3d9c2c..36dad87 100644
--- a/bundles/org.eclipse.jst.ws.creation.ui/src/org/eclipse/jst/ws/internal/creation/ui/extension/ServiceRootFragment.java
+++ b/bundles/org.eclipse.jst.ws.creation.ui/src/org/eclipse/jst/ws/internal/creation/ui/extension/ServiceRootFragment.java
@@ -1,16 +1,15 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005 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
+ *     IBM Corporation - initial API and implementation
  * yyyymmdd bug      Email and other contact information
  * -------- -------- -----------------------------------------------------------
  * 20060131 121071   rsinha@ca.ibm.com - Rupam Kuehner     
- * 20060221   119111 rsinha@ca.ibm.com - Rupam Kuehner
  *******************************************************************************/
 
 package org.eclipse.jst.ws.internal.creation.ui.extension;
@@ -102,8 +101,6 @@
 		registry.addMapping( PreServiceDevelopCommand.class, "EarProject", PreServiceAssembleCommand.class );
   	registry.addMapping( PreServiceDevelopCommand.class, "Ear", PreServiceAssembleCommand.class );
 		
-    registry.addMapping( PreServiceDevelopCommand.class, "Context", PreServiceDeployCommand.class );
-    
   	registry.addMapping( PreServiceDevelopCommand.class, "WebService", PreServiceInstallCommand.class );
 		registry.addMapping( PreServiceDevelopCommand.class, "Project", PreServiceInstallCommand.class );
   	registry.addMapping( PreServiceDevelopCommand.class, "Module", PreServiceInstallCommand.class );
diff --git a/bundles/org.eclipse.jst.ws.creation.ui/src/org/eclipse/jst/ws/internal/creation/ui/widgets/binding/ServerWidgetBinding.java b/bundles/org.eclipse.jst.ws.creation.ui/src/org/eclipse/jst/ws/internal/creation/ui/widgets/binding/ServerWidgetBinding.java
index 1797b8f..9dd1600 100644
--- a/bundles/org.eclipse.jst.ws.creation.ui/src/org/eclipse/jst/ws/internal/creation/ui/widgets/binding/ServerWidgetBinding.java
+++ b/bundles/org.eclipse.jst.ws.creation.ui/src/org/eclipse/jst/ws/internal/creation/ui/widgets/binding/ServerWidgetBinding.java
@@ -1,17 +1,16 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
+ * Copyright (c) 2004 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
+ *     IBM Corporation - initial API and implementation
  * yyyymmdd bug      Email and other contact information
  * -------- -------- -----------------------------------------------------------
  * 20060204 124408   rsinha@ca.ibm.com - Rupam Kuehner
  * 20060204 121605   rsinha@ca.ibm.com - Rupam Kuehner           
- * 20060221   119111 rsinha@ca.ibm.com - Rupam Kuehner
  *******************************************************************************/
 package org.eclipse.jst.ws.internal.creation.ui.widgets.binding;
 
@@ -382,7 +381,6 @@
       dataRegistry.addMapping( ServerExtensionDefaultingCommand.class, "TestService", PreClientDevelopCommand.class);
       
       dataRegistry.addMapping( ServerWizardWidgetOutputCommand.class, "ResourceContext", PreClientDevelopCommand.class);
-      dataRegistry.addMapping( ClientExtensionDefaultingCommand.class, "DeployClient", PreClientDevelopCommand.class );
       dataRegistry.addMapping( ClientExtensionDefaultingCommand.class, "InstallClient", PreClientDevelopCommand.class );
       dataRegistry.addMapping( ClientExtensionDefaultingCommand.class, "InstallClient", PreClientDevelopCommand.class, "StartService", null);      
       dataRegistry.addMapping( ClientExtensionDefaultingCommand.class, "ClientTypeRuntimeServer", PreClientDevelopCommand.class );
@@ -514,7 +512,6 @@
       dataRegistry.addMapping(ServerExtensionDefaultingCommand.class, "ServiceTypeRuntimeServer", ClientTestDelegateCommand.class);
 	  
 	    // Setup the PreServiceDevelopCommand.
-      dataRegistry.addMapping( ServerExtensionDefaultingCommand.class, "DeployService", PreServiceDevelopCommand.class);
       dataRegistry.addMapping( ServerExtensionDefaultingCommand.class, "InstallService", PreServiceDevelopCommand.class);
       dataRegistry.addMapping( ServerExtensionDefaultingCommand.class, "StartService", PreServiceDevelopCommand.class);      
       dataRegistry.addMapping( ServerExtensionDefaultingCommand.class, "TestService", PreServiceDevelopCommand.class);
diff --git a/bundles/org.eclipse.jst.ws.creation.ui/src/org/eclipse/jst/ws/internal/creation/ui/widgets/runtime/ServerRuntimeSelectionWidget.java b/bundles/org.eclipse.jst.ws.creation.ui/src/org/eclipse/jst/ws/internal/creation/ui/widgets/runtime/ServerRuntimeSelectionWidget.java
index 88334ad..0ad7f22 100644
--- a/bundles/org.eclipse.jst.ws.creation.ui/src/org/eclipse/jst/ws/internal/creation/ui/widgets/runtime/ServerRuntimeSelectionWidget.java
+++ b/bundles/org.eclipse.jst.ws.creation.ui/src/org/eclipse/jst/ws/internal/creation/ui/widgets/runtime/ServerRuntimeSelectionWidget.java
@@ -1,17 +1,15 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
+ * Copyright (c) 2004 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
+ *     IBM Corporation - initial API and implementation
  * yyyymmdd bug      Email and other contact information
  * -------- -------- -----------------------------------------------------------
- * 20060204 124408   rsinha@ca.ibm.com - Rupam Kuehner 
- * 20060221   100190 pmoogk@ca.ibm.com - Peter Moogk         
- * 20060221   119111 rsinha@ca.ibm.com - Rupam Kuehner
+ * 20060204 124408   rsinha@ca.ibm.com - Rupam Kuehner          
  *******************************************************************************/
 package org.eclipse.jst.ws.internal.creation.ui.widgets.runtime;
 
@@ -284,7 +282,7 @@
   {
     IStatus serviceStatus = runtimeWidget_.getStatus();
     IStatus projectStatus = projectWidget_.getStatus();
-    IStatus clientStatus  = isClientWidgetVisible_ ? clientWidget_.getStatus() : Status.OK_STATUS;    
+    IStatus clientStatus  = clientWidget_.getStatus();    
     IStatus finalStatus   = Status.OK_STATUS;
     
     
@@ -295,7 +293,8 @@
     }
     else if( clientStatus.getSeverity() == Status.ERROR )
     {
-      finalStatus = clientStatus;
+      if (isClientWidgetVisible_)
+        finalStatus = clientStatus;
     }
     else if ( projectStatus.getSeverity()== Status.ERROR) {
       finalStatus = projectStatus;
@@ -334,44 +333,35 @@
       }
       else
       {
-        //Non-existing project is only permitted if there is a server selected.
-        if (serverFactoryId==null || serverFactoryId.length()==0)
-        {
-          finalStatus = StatusUtils.errorStatus(NLS.bind(ConsumptionUIMessages.MSG_PROJECT_MUST_EXIST, new String[]{projectName}));
-        }
-        else
-        {
-          // Look at the project type to ensure that it is suitable for the
-          // selected runtime and server.
-          String templateId = getServiceComponentType();
+        //Look at the project type to ensure that it is suitable for the selected runtime
+        //and server.
+        
+        String templateId = getServiceComponentType();
 
-          if (templateId != null && templateId.length() > 0)
+        if (templateId != null && templateId.length()>0)
+        {
+          //Check if the runtime supports it.            
+          if (!WebServiceRuntimeExtensionUtils2.doesServiceTypeAndRuntimeSupportTemplate(typeId, runtimeId, templateId))
           {
-            // Check if the runtime supports it.
-            if (!WebServiceRuntimeExtensionUtils2.doesServiceTypeAndRuntimeSupportTemplate(typeId, runtimeId, templateId))
+            String runtimeLabel = WebServiceRuntimeExtensionUtils2.getRuntimeLabelById(runtimeId);
+            String templateLabel = FacetUtils.getTemplateLabelById(templateId);
+            finalStatus = StatusUtils.errorStatus(NLS.bind(ConsumptionUIMessages.MSG_SERVICE_RUNTIME_DOES_NOT_SUPPORT_TEMPLATE, new String[]{runtimeLabel, templateLabel}));
+          }
+          
+          //Check if the server supports it.
+          if (serverFactoryId!=null && serverFactoryId.length()>0)
+          {
+            if (!valUtils.doesServerSupportTemplate(serverFactoryId, templateId))
             {
-              String runtimeLabel = WebServiceRuntimeExtensionUtils2.getRuntimeLabelById(runtimeId);
+              String serverLabel = WebServiceRuntimeExtensionUtils2.getServerLabelById(serverFactoryId);
               String templateLabel = FacetUtils.getTemplateLabelById(templateId);
-              finalStatus = StatusUtils.errorStatus(NLS.bind(ConsumptionUIMessages.MSG_SERVICE_RUNTIME_DOES_NOT_SUPPORT_TEMPLATE,
-                  new String[] { runtimeLabel, templateLabel }));
-            }
-
-            // Check if the server supports it.
-            if (serverFactoryId != null && serverFactoryId.length() > 0)
-            {
-              if (!valUtils.doesServerSupportTemplate(serverFactoryId, templateId))
-              {
-                String serverLabel = WebServiceRuntimeExtensionUtils2.getServerLabelById(serverFactoryId);
-                String templateLabel = FacetUtils.getTemplateLabelById(templateId);
-                finalStatus = StatusUtils.errorStatus(NLS.bind(
-                    ConsumptionUIMessages.MSG_SERVICE_SERVER_DOES_NOT_SUPPORT_TEMPLATE,
-                    new String[] { serverLabel, templateLabel }));
-              }
+              finalStatus = StatusUtils.errorStatus(NLS.bind(ConsumptionUIMessages.MSG_SERVICE_SERVER_DOES_NOT_SUPPORT_TEMPLATE, new String[]{serverLabel, templateLabel}));
             }
           }
         }
         
         
+        
       }
     }    
 
diff --git a/bundles/org.eclipse.jst.ws.creation.ui/src/org/eclipse/jst/ws/internal/creation/ui/widgets/runtime/ServerRuntimeSelectionWidgetDefaultingCommand.java b/bundles/org.eclipse.jst.ws.creation.ui/src/org/eclipse/jst/ws/internal/creation/ui/widgets/runtime/ServerRuntimeSelectionWidgetDefaultingCommand.java
index 78012f5..43a9705 100644
--- a/bundles/org.eclipse.jst.ws.creation.ui/src/org/eclipse/jst/ws/internal/creation/ui/widgets/runtime/ServerRuntimeSelectionWidgetDefaultingCommand.java
+++ b/bundles/org.eclipse.jst.ws.creation.ui/src/org/eclipse/jst/ws/internal/creation/ui/widgets/runtime/ServerRuntimeSelectionWidgetDefaultingCommand.java
@@ -1,18 +1,15 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
+ * Copyright (c) 2004 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
+ *     IBM Corporation - initial API and implementation
  * yyyymmdd bug      Email and other contact information
  * -------- -------- -----------------------------------------------------------
  * 20060131 121071   rsinha@ca.ibm.com - Rupam Kuehner     
- * 20060221   119111 rsinha@ca.ibm.com - Rupam Kuehner
- * 20060227   124392 rsinha@ca.ibm.com - Rupam Kuehner
- * 20060315   131963 rsinha@ca.ibm.com - Rupam Kuehner
  *******************************************************************************/
 package org.eclipse.jst.ws.internal.creation.ui.widgets.runtime;
 
@@ -38,8 +35,8 @@
 import org.eclipse.jst.ws.internal.consumption.ui.preferences.ProjectTopologyContext;
 import org.eclipse.jst.ws.internal.consumption.ui.widgets.runtime.ClientRuntimeSelectionWidgetDefaultingCommand;
 import org.eclipse.jst.ws.internal.consumption.ui.wsrt.FacetMatchCache;
-import org.eclipse.jst.ws.internal.consumption.ui.wsrt.RuntimeDescriptor;
 import org.eclipse.jst.ws.internal.consumption.ui.wsrt.ServiceRuntimeDescriptor;
+import org.eclipse.jst.ws.internal.consumption.ui.wsrt.WebServiceRuntimeExtensionUtils;
 import org.eclipse.jst.ws.internal.consumption.ui.wsrt.WebServiceRuntimeExtensionUtils2;
 import org.eclipse.jst.ws.internal.data.TypeRuntimeServer;
 import org.eclipse.osgi.util.NLS;
@@ -246,25 +243,11 @@
 
     IVirtualComponent[] allEarComps = J2EEUtils.getAllEARComponents();
       
-
+    //TODO Choose an existing EAR that can be added to the server and who's J2EE level in consistent with 
+    //that of the selected project, if applicable. Picking the first one for now.
     if (allEarComps.length > 0)
     {
-      if (serviceProject != null && serviceProject.exists())
-      {
-        for (int i=0; i < allEarComps.length; i++)
-        {
-          IProject earProject = allEarComps[i].getProject();
-          IStatus associationStatus = J2EEUtils.canAssociateProjectToEAR(serviceProject, earProject);
-          if (associationStatus.getSeverity()==IStatus.OK)
-          {
-            return allEarComps[i].getName(); 
-          }
-        }
-      }
-      else
-      {
-        return allEarComps[0].getName();
-      }
+      return allEarComps[0].getName();
     }
 
 
@@ -325,15 +308,10 @@
     }    
 
     //No suitable server was found. Popup an error.
-    RuntimeDescriptor runtimeDescriptor = WebServiceRuntimeExtensionUtils2.getRuntimeById(serviceIds_.getRuntimeId());
-    if (runtimeDescriptor.getServerRequired())
-    {    
-      String runtimeLabel = WebServiceRuntimeExtensionUtils2.getRuntimeLabelById(serviceIds_.getRuntimeId());    
-      IStatus status = StatusUtils.errorStatus(NLS.bind(ConsumptionUIMessages.MSG_ERROR_NO_SERVER_RUNTIME, new String[]{runtimeLabel}) );
-      return status;
-    }
-    
-    return Status.OK_STATUS;
+    String runtimeLabel = WebServiceRuntimeExtensionUtils2.getRuntimeLabelById(serviceIds_.getRuntimeId());
+    String serverLabels = getServerLabels(serviceIds_.getRuntimeId());    
+    IStatus status = StatusUtils.errorStatus(NLS.bind(ConsumptionUIMessages.MSG_ERROR_NO_SERVER_RUNTIME, new String[]{runtimeLabel, serverLabels}) );
+    return status;
   }  
   
   private IServer getServerFromServiceRuntimeId()
@@ -374,33 +352,72 @@
     return null;
   }  
   
+  /*
+  private IServer getFirstSupportedServer(IServer[] servers, String serviceRuntimeId, IProject serviceProject)
+  {
+    if (servers != null && servers.length > 0) {
+      for (int i = 0; i < servers.length; i++)
+      {
+        String serverFactoryId = servers[i].getServerType().getId();
+        if (WebServiceRuntimeExtensionUtils2.doesServiceRuntimeSupportServer(serviceRuntimeId, serverFactoryId))
+        {
+          //TODO check if the server type supports the project before returning.
+          return servers[i];
+        }
+      }
+    }
+    return null;
+  }
+  */
   
+  private String getServerLabels(String serviceRuntimeId)
+  {
+        String[] validServerFactoryIds = WebServiceRuntimeExtensionUtils2.getServerFactoryIdsByServiceRuntime(serviceRuntimeId);
+        //String[] validServerLabels = new String[validServerFactoryIds.length];
+        StringBuffer validServerLabels = new StringBuffer(); 
+        for (int i=0; i<validServerFactoryIds.length; i++)
+        {
+            if (i>0)
+            {
+                validServerLabels.append(", ");
+            }
+            validServerLabels.append(WebServiceRuntimeExtensionUtils.getServerLabelById(validServerFactoryIds[i]));
+            
+        }
+        return validServerLabels.toString();
+  }
+
   private String getDefaultServiceProjectTemplate()
   {
     String[] templates = WebServiceRuntimeExtensionUtils2.getServiceProjectTemplates(serviceIds_.getTypeId(), serviceIds_.getRuntimeId());    
     
-    //Walk the list of service project types in the project topology preference
-    ProjectTopologyContext ptc= WebServiceConsumptionUIPlugin.getInstance().getProjectTopologyContext();
-    String[] preferredTemplateIds = ptc.getServiceTypes();
-    for (int j = 0; j < preferredTemplateIds.length; j++)
+    //Pick the Web one if it's there, otherwise pick the first one.    
+    for (int i=0; i<templates.length; i++)
     {
-      for (int i = 0; i < templates.length; i++)
+      String templateId = templates[i];
+      if (templateId.indexOf("web") != -1)
       {
-        String templateId = templates[i];
-        if (templateId.equals(preferredTemplateIds[j]))
+        boolean matches = WebServiceRuntimeExtensionUtils2.doesServiceRuntimeSupportTemplate(serviceRuntimeId_, templateId);
+        if (matches)
         {
-          boolean matches = WebServiceRuntimeExtensionUtils2.doesServiceRuntimeSupportTemplate(serviceRuntimeId_, templateId);
-          if (matches)
-          {
-            return templates[i];
-          }
-        }
+          return templates[i];
+        }        
+      }                                    
+    }
+    
+    //Didn't find a "web" type. Return the first one that is a match. Calculate the facet matcher for the template
+    //so that we know what to create and what to add during module creation.
+    for (int j = 0; j < templates.length; j++)
+    {
+      String templateId = templates[j];
+      boolean matches = WebServiceRuntimeExtensionUtils2.doesServiceRuntimeSupportTemplate(serviceRuntimeId_, templateId);
+      if (matches)
+      {
+        return templates[j];
       }
     }
     
-    //Since the preferredTemplateIds contains the union of all project types for all service runtimes, we are
-    //guaranteed to have returned by now, so the code below will never be executed under normal
-    //circumstances. Just return something to satisfy the compiler.
+    //Still nothing, return the first one if available.
     if (templates.length > 0)
       return templates[0];
     
@@ -500,33 +517,16 @@
     }
   }
   
-  private IProject getUniqueClientEAR(String earProjectName, String serviceEARProject, String clientProjectName) {
+  private IProject getUniqueClientEAR(String earProject, String serviceProject, String clientProjectName) {
 
     String projectName = new String();
-    //If the client project doesn't exist and the service project does, ensure the
-    //the client side EAR's J2EE level is such that the service project could be added to it.
-    //This will ensure we don't default the page with a client project EAR at a lower
-    //J2EE level than the service side.
-    boolean goodJ2EELevel = true;
-    if (!earProjectName.equalsIgnoreCase(serviceEARProject))
-    {
-      IProject clientProject = ProjectUtilities.getProject(clientProjectName);
-      IProject serviceProject = ProjectUtilities.getProject(serviceProjectName_);
-      IProject earProject = ProjectUtilities.getProject(earProjectName);
-      if (!clientProject.exists() && serviceProject.exists())
-      {
-        IStatus associationStatus = J2EEUtils.canAssociateProjectToEAR(serviceProject, earProject);
-        goodJ2EELevel = (associationStatus.getSeverity() == IStatus.OK);
-      }
+    if (!earProject.equalsIgnoreCase(serviceProject)) {
+      projectName = earProject;
     }
-    
-    if (!earProjectName.equalsIgnoreCase(serviceEARProject) && goodJ2EELevel) {
-      projectName = earProjectName;
-    }    
     else {
       projectName = clientProjectName+DEFAULT_CLIENT_EAR_PROJECT_EXT;
       int i=1;      
-      while (projectName.equalsIgnoreCase(serviceEARProject)) {
+      while (projectName.equalsIgnoreCase(serviceProject)) {
         projectName = projectName+i;
         i++;
       }
@@ -604,4 +604,4 @@
     return serviceNeedEAR_;
   }
   
-}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.ws.uddiregistry/META-INF/MANIFEST.MF b/bundles/org.eclipse.jst.ws.uddiregistry/META-INF/MANIFEST.MF
index 13aa0f9..355c430 100644
--- a/bundles/org.eclipse.jst.ws.uddiregistry/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.jst.ws.uddiregistry/META-INF/MANIFEST.MF
@@ -2,21 +2,20 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %PLUGIN_NAME
 Bundle-SymbolicName: org.eclipse.jst.ws.uddiregistry; singleton:=true
-Bundle-Version: 1.0.100.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-Activator: org.eclipse.jst.ws.internal.uddiregistry.plugin.WebServiceUDDIRegistryPlugin
 Bundle-Vendor: %PLUGIN_PROVIDER
 Bundle-Localization: plugin
-Export-Package: org.eclipse.jst.ws.internal.uddiregistry;x-internal:=true,
- org.eclipse.jst.ws.internal.uddiregistry.plugin;x-internal:=true,
- org.eclipse.jst.ws.internal.uddiregistry.widgets;x-internal:=true,
- org.eclipse.jst.ws.internal.uddiregistry.widgets.binding;x-internal:=true,
- org.eclipse.jst.ws.internal.uddiregistry.wizard;x-internal:=true
+Export-Package: org.eclipse.jst.ws.internal.uddiregistry.plugin,
+ org.eclipse.jst.ws.internal.uddiregistry.widgets,
+ org.eclipse.jst.ws.internal.uddiregistry.widgets.binding,
+ org.eclipse.jst.ws.internal.uddiregistry.wizard,
+ org.eclipse.jst.ws.internal.uddiregistry
 Require-Bundle: org.eclipse.ui,
  org.eclipse.core.runtime,
  org.eclipse.jst.ws.ui,
  org.eclipse.wst.command.env.core,
  org.eclipse.wst.command.env,
  org.eclipse.wst.command.env.ui,
- org.eclipse.wst.common.frameworks,
- com.ibm.icu
-Eclipse-LazyStart: true
+ org.eclipse.wst.common.frameworks
+Eclipse-AutoStart: true
diff --git a/bundles/org.eclipse.jst.ws.uddiregistry/src/org/eclipse/jst/ws/internal/uddiregistry/wizard/PrivateUDDIRegistryTypeRegistry.java b/bundles/org.eclipse.jst.ws.uddiregistry/src/org/eclipse/jst/ws/internal/uddiregistry/wizard/PrivateUDDIRegistryTypeRegistry.java
index 375510e..5fd441e 100644
--- a/bundles/org.eclipse.jst.ws.uddiregistry/src/org/eclipse/jst/ws/internal/uddiregistry/wizard/PrivateUDDIRegistryTypeRegistry.java
+++ b/bundles/org.eclipse.jst.ws.uddiregistry/src/org/eclipse/jst/ws/internal/uddiregistry/wizard/PrivateUDDIRegistryTypeRegistry.java
@@ -1,24 +1,21 @@
 /*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
+ * Copyright (c) 2002, 2004 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060216   127138 pmoogk@ca.ibm.com - Peter Moogk
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 
 package org.eclipse.jst.ws.internal.uddiregistry.wizard;
 
+import java.util.StringTokenizer;
 import java.util.Vector;
 import org.eclipse.core.runtime.IConfigurationElement;
 import org.eclipse.core.runtime.IExtensionRegistry;
 import org.eclipse.core.runtime.Platform;
-import com.ibm.icu.util.StringTokenizer;
 
 public class PrivateUDDIRegistryTypeRegistry {
 
diff --git a/bundles/org.eclipse.jst.ws.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.jst.ws.ui/META-INF/MANIFEST.MF
index 7587640..6ef0740 100644
--- a/bundles/org.eclipse.jst.ws.ui/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.jst.ws.ui/META-INF/MANIFEST.MF
@@ -2,17 +2,17 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %PLUGIN_NAME
 Bundle-SymbolicName: org.eclipse.jst.ws.ui; singleton:=true
-Bundle-Version: 1.0.100.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-Activator: org.eclipse.jst.ws.internal.ui.plugin.WebServiceUIPlugin
 Bundle-Vendor: %PLUGIN_PROVIDER
 Bundle-Localization: plugin
-Export-Package: org.eclipse.jst.ws.internal.ui;x-internal:=true,
- org.eclipse.jst.ws.internal.ui.action;x-internal:=true,
- org.eclipse.jst.ws.internal.ui.common;x-internal:=true,
- org.eclipse.jst.ws.internal.ui.dialog;x-internal:=true,
- org.eclipse.jst.ws.internal.ui.plugin;x-internal:=true,
- org.eclipse.jst.ws.internal.ui.preferences;x-internal:=true,
- org.eclipse.jst.ws.internal.ui.uddi;x-internal:=true
+Export-Package: org.eclipse.jst.ws.internal.ui.action,
+ org.eclipse.jst.ws.internal.ui.common,
+ org.eclipse.jst.ws.internal.ui.dialog,
+ org.eclipse.jst.ws.internal.ui.plugin,
+ org.eclipse.jst.ws.internal.ui.preferences,
+ org.eclipse.jst.ws.internal.ui.uddi,
+ org.eclipse.jst.ws.internal.ui
 Require-Bundle: org.eclipse.wst.command.env,
  org.eclipse.wst.command.env.ui,
  org.eclipse.wst.command.env.core,
@@ -29,4 +29,4 @@
  org.eclipse.jst.j2ee,
  org.eclipse.wst.ws.explorer,
  org.eclipse.jst.j2ee.core
-Eclipse-LazyStart: true
+Eclipse-AutoStart: true
diff --git a/bundles/org.eclipse.jst.ws.ui/src/org/eclipse/jst/ws/internal/ui/WSUIPlugin.properties b/bundles/org.eclipse.jst.ws.ui/src/org/eclipse/jst/ws/internal/ui/WSUIPlugin.properties
index 1dcddc3..21d64a1 100644
--- a/bundles/org.eclipse.jst.ws.ui/src/org/eclipse/jst/ws/internal/ui/WSUIPlugin.properties
+++ b/bundles/org.eclipse.jst.ws.ui/src/org/eclipse/jst/ws/internal/ui/WSUIPlugin.properties
@@ -1,15 +1,12 @@
 ###############################################################################
-# Copyright (c) 2004, 2006 IBM Corporation and others.
+# Copyright (c) 2004 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
-# yyyymmdd bug      Email and other contact information
-# -------- -------- -----------------------------------------------------------
-# 20060227   124392 rsinha@ca.ibm.com - Rupam Kuehner
+#     IBM Corporation - initial API and implementation
 ###############################################################################
 
 #
@@ -36,9 +33,9 @@
 
 #
 #Scenario Defaults
-BUTTON_LAUNCH_SAMPLE=&Launch the sample when generated
-LABEL_MOVE_UP=Move &up
-LABEL_MOVE_DOWN=Move &down
+BUTTON_LAUNCH_SAMPLE=Launch the sample when generated
+LABEL_MOVE_UP=Move up
+LABEL_MOVE_DOWN=Move down
 
 #
 # Preferences Tooltips
@@ -47,10 +44,9 @@
 #Scenario Defaults
 TOOLTIP_PPSD_PAGE=Set the defaults for the Web service scenarios.
 TOOLTIP_PPSD_CHECKBOX_LAUNCH_SAMPLE=Launch the sample application after generation.
-TOOLTIP_SERVICE_TYPE_TABLE_VIEWER=Preferred order of the list of service project types
-TOOLTIP_CLIENT_TYPE_TABLE_VIEWER=Preferred order of the list of client project types
-TOOLTIP_MOVE_UP=Move the selected project type up the list
-TOOLTIP_MOVE_DOWN=Move the selected project type down the list
+TOOLTIP_CLIENT_TYPE_TABLE_VIEWER=Preferred order of the list of client types
+TOOLTIP_MOVE_UP=Move the selected client type up the list
+TOOLTIP_MOVE_DOWN=Move the selected client type down the list
 
 #
 # Resource Managment
@@ -58,9 +54,9 @@
 TOOLTIP_PPRM_CHECKBOX_OVERWRITE_FILES=Overwrite files without warning.
 TOOLTIP_PPRM_CHECKBOX_CREATE_FOLDERS=Create folders when necessary.
 TOOLTIP_PPRM_CHECKBOX_CHECK_OUT=Check out files without warning.
-BUTTON_CREATE_FOLDERS=&Create folders when necessary
-BUTTON_OVERWRITE_FILES=&Overwrite files without warning
-BUTTON_CHECKOUT_FILES=C&heck out files without warning
+BUTTON_CREATE_FOLDERS=Create folders when necessary
+BUTTON_OVERWRITE_FILES=Overwrite files without warning
+BUTTON_CHECKOUT_FILES=Check out files without warning
 
 #
 # General messages.
@@ -99,9 +95,9 @@
 TOOLTIP_PTPP_PAGE=Preference that control the project topology of your Web service and client scenarios.
 TOOLTIP_ENABLE_TWO_EARS=Enable this option if you want to generate your Web service and Web service client in different EAR projects.
 
-LABEL_ENABLE_TWO_EARS=&Generate Web service and Web service client in different EAR projects
-LABEL_CLIENT_TYPE_NAME=Client project types
-LABEL_SERVICE_TYPE_NAME=Service project types
+LABEL_ENABLE_TWO_EARS=Generate Web service and Web service client in different EAR projects
+LABEL_CLIENT_TYPE_NAME=Client type:
+
 #
 # Resource Browser
 #
diff --git a/bundles/org.eclipse.jst.ws.ui/src/org/eclipse/jst/ws/internal/ui/WSUIPluginMessages.java b/bundles/org.eclipse.jst.ws.ui/src/org/eclipse/jst/ws/internal/ui/WSUIPluginMessages.java
index aac3fbd..7f57583 100644
--- a/bundles/org.eclipse.jst.ws.ui/src/org/eclipse/jst/ws/internal/ui/WSUIPluginMessages.java
+++ b/bundles/org.eclipse.jst.ws.ui/src/org/eclipse/jst/ws/internal/ui/WSUIPluginMessages.java
@@ -1,15 +1,12 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
+ * Copyright (c) 2000, 2005 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060227   124392 rsinha@ca.ibm.com - Rupam Kuehner
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jst.ws.internal.ui;
 
@@ -38,7 +35,6 @@
 	public static String TOOLTIP_PPSD_PAGE;
 	public static String TOOLTIP_PPSD_CHECKBOX_LAUNCH_SAMPLE;
 	public static String TOOLTIP_CLIENT_TYPE_TABLE_VIEWER;
-    public static String TOOLTIP_SERVICE_TYPE_TABLE_VIEWER;
 	public static String TOOLTIP_MOVE_UP;
 	public static String TOOLTIP_MOVE_DOWN;
 	public static String TOOLTIP_PPRM_PAGE;
@@ -64,9 +60,8 @@
 	public static String LABEL_CLIENT_TYPE_NAME;
 	public static String DIALOG_TITLE_RESOURCE_BROWSER;
 	public static String TOOLTIP_RESOURCE_TREE;
-    public static String LABEL_SERVICE_TYPE_NAME;
 
 	static {
 		NLS.initializeMessages(BUNDLE_NAME, WSUIPluginMessages.class);
 	}
-}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.ws.ui/src/org/eclipse/jst/ws/internal/ui/action/LaunchImportWizardAction.java b/bundles/org.eclipse.jst.ws.ui/src/org/eclipse/jst/ws/internal/ui/action/LaunchImportWizardAction.java
index 825db19..9597ab9 100644
--- a/bundles/org.eclipse.jst.ws.ui/src/org/eclipse/jst/ws/internal/ui/action/LaunchImportWizardAction.java
+++ b/bundles/org.eclipse.jst.ws.ui/src/org/eclipse/jst/ws/internal/ui/action/LaunchImportWizardAction.java
@@ -36,7 +36,7 @@
       
       try
       {
-        wizard.setInitialData( "org.eclipse.jst.ws.consumption.ui.wsimport" );
+        wizard.setInitialData( "wsimport" );
         wizard.init( PlatformUI.getWorkbench(), selection_ );
       }
       catch( CoreException exc )
diff --git a/bundles/org.eclipse.jst.ws.ui/src/org/eclipse/jst/ws/internal/ui/plugin/WebServiceUIPlugin.java b/bundles/org.eclipse.jst.ws.ui/src/org/eclipse/jst/ws/internal/ui/plugin/WebServiceUIPlugin.java
index 368f4a6..722b311 100644
--- a/bundles/org.eclipse.jst.ws.ui/src/org/eclipse/jst/ws/internal/ui/plugin/WebServiceUIPlugin.java
+++ b/bundles/org.eclipse.jst.ws.ui/src/org/eclipse/jst/ws/internal/ui/plugin/WebServiceUIPlugin.java
@@ -13,7 +13,9 @@
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.text.MessageFormat;
+
 import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jst.ws.internal.ui.preferences.PersistentActionDialogsContext;
 import org.eclipse.ui.plugin.AbstractUIPlugin;
 import org.eclipse.wst.command.internal.env.core.common.MessageUtils;
 
@@ -37,6 +39,8 @@
   */
   private static WebServiceUIPlugin instance_;
 
+  private PersistentActionDialogsContext actionDialogsContext_;
+  
   /**
    * Constructs a runtime plugin object for this plugin.
    */
@@ -53,6 +57,17 @@
   static public WebServiceUIPlugin getInstance() {
     return instance_;
   }
+
+
+  public PersistentActionDialogsContext getActionDialogsContext() 
+  	{
+  	  if (actionDialogsContext_ == null)
+  	  	{
+  	  		actionDialogsContext_ = new PersistentActionDialogsContext();
+  	  		actionDialogsContext_.load();
+  	  	}
+  	  return actionDialogsContext_;
+  	}
 		
   /**
   * Returns the message string identified by the given key from
diff --git a/bundles/org.eclipse.jst.ws.ui/src/org/eclipse/jst/ws/internal/ui/preferences/ActionDialogPreferenceType.java b/bundles/org.eclipse.jst.ws.ui/src/org/eclipse/jst/ws/internal/ui/preferences/ActionDialogPreferenceType.java
new file mode 100644
index 0000000..7e2ba9c
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.ui/src/org/eclipse/jst/ws/internal/ui/preferences/ActionDialogPreferenceType.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 2004 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.jst.ws.internal.ui.preferences;
+
+public class ActionDialogPreferenceType {
+
+    private String id_;
+	public void setId (String id) {
+		id_ = id;
+	}
+	public String getId() {
+    	return id_;
+	}
+
+	private String name_;
+	public void setName(String name) {
+		name_ = name;
+	}
+	public String getName() {
+    	return name_;
+	}
+
+	private String infopop_;
+    public void setInfopop (String infopop) {
+    	infopop_ = infopop;
+    	}
+    public String getInfopop () {
+    	return infopop_;
+    	}
+
+	private String tooltip_;
+    public void setTooltip (String tooltip) {
+    	tooltip_= tooltip;
+    	}
+    public String getTooltip () {
+    	return tooltip_;
+    	}
+
+ }
diff --git a/bundles/org.eclipse.jst.ws.ui/src/org/eclipse/jst/ws/internal/ui/preferences/ActionDialogPreferenceTypeRegistry.java b/bundles/org.eclipse.jst.ws.ui/src/org/eclipse/jst/ws/internal/ui/preferences/ActionDialogPreferenceTypeRegistry.java
new file mode 100644
index 0000000..e6a3a3f
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.ui/src/org/eclipse/jst/ws/internal/ui/preferences/ActionDialogPreferenceTypeRegistry.java
@@ -0,0 +1,114 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2004 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.jst.ws.internal.ui.preferences;
+
+import java.util.Enumeration;
+import java.util.Hashtable;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.Platform;
+
+public class ActionDialogPreferenceTypeRegistry
+{
+  private static ActionDialogPreferenceTypeRegistry instance_;
+
+  private Hashtable typesByName_;
+
+  //
+  // Loads WebServiceType objects into this registry.
+  // This is done by querying the plugin registry for all extensions
+  // hanging on the webServiceType extension point. Extensions
+  // must implement the org.eclipse.jst.ws.ui.wizard.WebServiceType
+  // interface.
+  //
+  private void loadDialogsPreferences ()
+  {
+    IExtensionRegistry reg = Platform.getExtensionRegistry();
+    IConfigurationElement[] config = reg.getConfigurationElementsFor(
+                                     "org.eclipse.jst.ws.ui",
+                                     "actionDialogPreferenceType");
+    for(int idx=0; idx<config.length; idx++) 
+    {
+      IConfigurationElement elem = config[idx];
+      try 
+      {
+        Object actionDialogPreferenceType = elem.createExecutableExtension("class");
+        if (actionDialogPreferenceType instanceof ActionDialogPreferenceType) 
+        {
+          ActionDialogPreferenceType dialog = (ActionDialogPreferenceType) actionDialogPreferenceType;
+          dialog.setId((String)elem.getAttribute("id"));
+          dialog.setName((String)elem.getAttribute("name"));
+          dialog.setInfopop((String)elem.getAttribute("infopop"));
+          dialog.setTooltip((String)elem.getAttribute("tooltip"));
+          add(dialog);
+        }
+      } catch (CoreException e)
+      {
+      }
+    }
+  }
+
+  //
+  // Loads actionDialogPreferenceType objects into this registry.
+  // See method getInstance().
+  //
+  private void load ()
+  {
+    typesByName_ = new Hashtable();
+    loadDialogsPreferences();
+  }
+
+  //
+  // Add the given WebServiceType to this registry.
+  // See method load().
+  //
+  private void add ( ActionDialogPreferenceType dialog )
+  {
+    typesByName_.put(dialog.getId(),dialog);
+  }
+
+  /**
+  * Returns a singleton instance of this class.
+  * @return A singleton WebServiceTypeRegistry object.
+  */
+  public static ActionDialogPreferenceTypeRegistry getInstance ()
+  {
+    if (instance_ == null)
+    {
+      instance_ = new ActionDialogPreferenceTypeRegistry();
+      instance_.load();
+    }
+    return instance_;
+  }
+
+  /**
+  * Returns all registered <code>WebServiceType</code> objects.
+  * @return All registered <code>WebServiceType</code> objects.
+  */
+  public ActionDialogPreferenceType[] getActionDialogsPrefrences ()
+  {
+    ActionDialogPreferenceType[] dialogs = new ActionDialogPreferenceType[typesByName_.size()];
+    Enumeration e = typesByName_.elements();
+    for (int i=0; e.hasMoreElements(); i++)
+    {
+      dialogs[i] = (ActionDialogPreferenceType)e.nextElement();
+    }
+    return dialogs;
+  }
+
+  public ActionDialogPreferenceType getActionDialogPrefrenceTypeByName (String name)
+  {
+  	return (name == null ? null : (ActionDialogPreferenceType)typesByName_.get(name));
+  }
+}
diff --git a/bundles/org.eclipse.jst.ws.ui/src/org/eclipse/jst/ws/internal/ui/preferences/ActionDialogsPreferencePage.java b/bundles/org.eclipse.jst.ws.ui/src/org/eclipse/jst/ws/internal/ui/preferences/ActionDialogsPreferencePage.java
new file mode 100644
index 0000000..8e25b51
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.ui/src/org/eclipse/jst/ws/internal/ui/preferences/ActionDialogsPreferencePage.java
@@ -0,0 +1,220 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2004 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.jst.ws.internal.ui.preferences;
+
+import java.util.Enumeration;
+import java.util.Hashtable;
+
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.preference.PreferencePage;
+import org.eclipse.jst.ws.internal.ui.plugin.WebServiceUIPlugin;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.help.IWorkbenchHelpSystem;
+import org.eclipse.wst.command.internal.env.ui.EnvironmentUIMessages;
+
+;
+
+public class ActionDialogsPreferencePage extends PreferencePage implements IWorkbenchPreferencePage, Listener
+{
+  /*CONTEXT_ID PPAD0001 for the Action Dialogs Preference Page*/
+  private String INFOPOP_PPAD_PAGE = WebServiceUIPlugin.ID + ".PPAD0001";
+  //
+  private Button showAll;
+  /*CONTEXT_ID PPAD0002 for the  show all check box on the Action Dialogs Preference Page*/
+  private String INFOPOP_PPAD_BUTTON_SHOW_ALL = WebServiceUIPlugin.ID + ".PPAD0002";
+  //
+  private Button hideAll;
+  /*CONTEXT_ID PPAD0003 for the  hide all check box on the Action Dialogs Preference Page*/
+  private String INFOPOP_PPAD_BUTTON_HIDE_ALL = WebServiceUIPlugin.ID + ".PPAD0003";
+
+  private Hashtable checkBoxes_;
+
+ /**
+   * Creates preference page controls on demand.
+   *   @param parent  the parent for the preference page
+   */
+  protected Control createContents(Composite superparent)
+  {
+    checkBoxes_ = new Hashtable();
+    addOptionalDialogsCheckBoxes (superparent);
+	new Label(superparent, SWT.HORIZONTAL);
+	
+	IWorkbenchHelpSystem helpSystem = PlatformUI.getWorkbench().getHelpSystem();
+	
+    Composite   parent = new Composite( superparent, SWT.NONE );	
+    GridLayout layout = new GridLayout();
+    layout.numColumns = 2;
+    parent.setLayout( layout );
+    parent.setToolTipText(EnvironmentUIMessages.TOOLTIP_PPAD_PAGE);
+    helpSystem.setHelp(parent,INFOPOP_PPAD_PAGE);
+	
+    showAll = new Button(parent, SWT.NONE);
+    showAll.setText(EnvironmentUIMessages.BUTTON_SHOW_ALL_DIALOGS);
+    showAll.addListener(SWT.Selection, this);
+    showAll.setToolTipText(EnvironmentUIMessages.TOOLTIP_PPAD_BUTTON_SHOW_ALL);
+    helpSystem.setHelp(showAll,INFOPOP_PPAD_BUTTON_SHOW_ALL);
+   
+    hideAll = new Button(parent, SWT.NONE);
+    hideAll.setText(EnvironmentUIMessages.BUTTON_HIDE_ALL_DIALOGS);
+    hideAll.addListener ( SWT.Selection, this);
+    hideAll.setToolTipText(EnvironmentUIMessages.TOOLTIP_PPAD_BUTTON_HIDE_ALL);
+    helpSystem.setHelp(hideAll,INFOPOP_PPAD_BUTTON_HIDE_ALL);
+
+    initializeValues();
+    org.eclipse.jface.dialogs.Dialog.applyDialogFont(superparent);
+    return parent;
+  }
+
+  private String getMessage(String key) 
+  {
+  		return WebServiceUIPlugin.getMessage(key);
+  }
+
+ public void handleEvent (Event event) 
+ {
+    if (showAll == event.widget)
+		handleShowAllEvent();
+    
+    else if ( hideAll == event.widget)
+    	handleHideAllEvent();
+ }
+
+ private void handleShowAllEvent ()
+ {
+    Enumeration e = checkBoxes_.elements();
+ 	for (int i=0; e.hasMoreElements(); i++)
+    	{
+    		Button dialog = (Button) e.nextElement();
+    		dialog.setSelection( true );
+    	}                      
+ }
+
+ private void handleHideAllEvent ()
+ {
+ 	Enumeration e = checkBoxes_.elements();
+ 	for (int i=0; e.hasMoreElements(); i++)
+    	{
+    		Button dialog = (Button) e.nextElement();
+    		dialog.setSelection( false );
+    	}
+ }
+ 
+ private void addOptionalDialogsCheckBoxes ( Composite parent)
+  {
+    PersistentActionDialogsContext context = WebServiceUIPlugin.getInstance().getActionDialogsContext();
+    ActionDialogPreferenceType[] dialogs = context.getDialogs();
+    for (int i = 0; i < dialogs.length; i++) {
+    	Button checkBox = createCheckBox(parent , dialogs[i].getName());
+    	checkBox.setToolTipText(getMessage(dialogs[i].getTooltip()));
+    	PlatformUI.getWorkbench().getHelpSystem().setHelp(checkBox,dialogs[i].getInfopop());
+    	checkBoxes_.put(dialogs[i].getId(), checkBox);
+    }
+  }
+  
+  private Button createCheckBox( Composite parent, String text )
+  {
+    Button button = new Button( parent, SWT.CHECK );
+    button.setText( text );
+    return button;
+  }
+
+  /**
+   * Does anything necessary because the default button has been pressed.
+   */
+  protected void performDefaults()
+  {
+    super.performDefaults();
+    initializeDefaults();
+  }
+
+  /**
+   * Do anything necessary because the OK button has been pressed.
+   *  @return whether it is okay to close the preference page
+   */
+  public boolean performOk()
+  {
+    storeValues();
+    return true;
+  }
+
+  protected void performApply()
+  {
+    performOk();
+  }
+
+  /**
+   * @see IWorkbenchPreferencePage
+   */
+  public void init(IWorkbench workbench)  { }
+
+  /**
+   * The proxy information is stored in the preference store.
+   */
+  public IPreferenceStore getPreferenceStore()
+  {
+    return WebServiceUIPlugin.getInstance().getPreferenceStore();
+  }
+
+  /**
+   * Initializes states of the controls using default values
+   * in the preference store.
+   */
+  private void initializeDefaults()
+  {
+    Enumeration e = checkBoxes_.elements();
+    for (int i=0; e.hasMoreElements(); i++)
+    {
+      Button dialog = (Button) e.nextElement();
+      dialog.setSelection(true);
+    }
+  }
+
+  /**
+   * Initializes states of the controls from the preferences.
+   */
+  private void initializeValues()
+  {
+    PersistentActionDialogsContext context = WebServiceUIPlugin.getInstance().getActionDialogsContext();
+    Enumeration e = checkBoxes_.keys();
+    for (int i=0; e.hasMoreElements(); i++)
+    {
+      String id = (String) e.nextElement();
+      Button button = (Button) checkBoxes_.get(id);
+      button.setSelection(context.isActionDialogEnabled(id));
+    }
+  }
+
+  /**
+   * Stores the values of the controls back to the preference store.
+   */
+  private void storeValues()
+  {
+    PersistentActionDialogsContext context = WebServiceUIPlugin.getInstance().getActionDialogsContext();
+
+    Enumeration e = checkBoxes_.keys();
+    for (int i=0; e.hasMoreElements(); i++)
+    {
+      String id = (String) e.nextElement();
+      context.setActionDialogEnabled(id, ((Button)checkBoxes_.get(id)).getSelection());
+    }
+  }
+}
+
diff --git a/bundles/org.eclipse.jst.ws.ui/src/org/eclipse/jst/ws/internal/ui/preferences/PersistentActionDialogsContext.java b/bundles/org.eclipse.jst.ws.ui/src/org/eclipse/jst/ws/internal/ui/preferences/PersistentActionDialogsContext.java
new file mode 100644
index 0000000..cabefe4
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.ui/src/org/eclipse/jst/ws/internal/ui/preferences/PersistentActionDialogsContext.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2004 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.jst.ws.internal.ui.preferences;
+
+import org.eclipse.jst.ws.internal.ui.plugin.WebServiceUIPlugin;
+import org.eclipse.wst.command.internal.env.context.PersistentContext;
+
+
+public class PersistentActionDialogsContext extends PersistentContext
+{
+ private ActionDialogPreferenceType [] dialogs_;
+
+public PersistentActionDialogsContext () 
+{
+	super(  WebServiceUIPlugin.getInstance());
+}
+public void load() 
+{
+    ActionDialogPreferenceTypeRegistry reg = ActionDialogPreferenceTypeRegistry.getInstance();
+    dialogs_ = reg.getActionDialogsPrefrences();
+    for (int i = 0; i < dialogs_.length; i++) {
+    	setDefault(dialogs_[i].getId(), true);
+   }
+}
+
+public ActionDialogPreferenceType[] getDialogs()
+{
+  return dialogs_;
+}
+
+public void setActionDialogEnabled ( String id, boolean value)
+{
+ 	setValue (id, value);
+}
+
+public boolean isActionDialogEnabled( String id)
+{
+     if (id == null ) 
+     	return true;
+	 return getValueAsBoolean(id);
+}
+
+}
diff --git a/bundles/org.eclipse.jst.ws.ui/src/org/eclipse/jst/ws/internal/ui/preferences/TestFacilityDefaultsPreferencePage.java b/bundles/org.eclipse.jst.ws.ui/src/org/eclipse/jst/ws/internal/ui/preferences/ScenarioDefaultsPreferencePage.java
similarity index 94%
rename from bundles/org.eclipse.jst.ws.ui/src/org/eclipse/jst/ws/internal/ui/preferences/TestFacilityDefaultsPreferencePage.java
rename to bundles/org.eclipse.jst.ws.ui/src/org/eclipse/jst/ws/internal/ui/preferences/ScenarioDefaultsPreferencePage.java
index a012ffd..f7a8bf1 100644
--- a/bundles/org.eclipse.jst.ws.ui/src/org/eclipse/jst/ws/internal/ui/preferences/TestFacilityDefaultsPreferencePage.java
+++ b/bundles/org.eclipse.jst.ws.ui/src/org/eclipse/jst/ws/internal/ui/preferences/ScenarioDefaultsPreferencePage.java
@@ -1,16 +1,12 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
+ * Copyright (c) 2000, 2004 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060217   113169 pmoogk@ca.ibm.com - Peter Moogk
- * 20060222   118711 pmoogk@ca.ibm.com - Peter Moogk
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jst.ws.internal.ui.preferences;
 
@@ -46,7 +42,7 @@
 
 
 
-public class TestFacilityDefaultsPreferencePage extends PreferencePage implements IWorkbenchPreferencePage, SelectionListener
+public class ScenarioDefaultsPreferencePage extends PreferencePage implements IWorkbenchPreferencePage, SelectionListener
 {
   
   private TableViewer webServiceTestTypeViewer_; 
@@ -203,8 +199,7 @@
   {
   	ScenarioContext  context  = WebServicePlugin.getInstance().getScenarioContext();
     ScenarioDefaults defaults = new ScenarioDefaults();
-    
-    launchSample.setSelection( context.isLaunchSampleEnabled());
+    //pgm launchSample.setSelection( context.isLaunchSampleEnabled());
         
     String[] types = context.getWebServiceTestTypes();
     for (int i = 0; i < types.length; i++)
@@ -240,7 +235,7 @@
     webServiceTestTypes_.copyInto(types);
     context.setWebServiceTestTypes(types);
     
-    context.setLaunchSampleEnabled(launchSample.getSelection());
+    //pgm context.setLaunchSampleEnabled(launchSample.getSelection());
   }
 
   public void widgetDefaultSelected(SelectionEvent e)
diff --git a/bundles/org.eclipse.jst.ws/META-INF/MANIFEST.MF b/bundles/org.eclipse.jst.ws/META-INF/MANIFEST.MF
index 0c274ab..862a89e 100644
--- a/bundles/org.eclipse.jst.ws/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.jst.ws/META-INF/MANIFEST.MF
@@ -2,19 +2,19 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %PLUGIN_NAME
 Bundle-SymbolicName: org.eclipse.jst.ws
-Bundle-Version: 1.0.101.qualifier
+Bundle-Version: 1.0.2.qualifier
 Bundle-Activator: org.eclipse.jst.ws.internal.plugin.WebServicePlugin
 Bundle-Vendor: %PLUGIN_PROVIDER
 Bundle-Localization: plugin
-Export-Package: org.eclipse.jst.ws.internal;x-internal:=true,
- org.eclipse.jst.ws.internal.command;x-internal:=true,
- org.eclipse.jst.ws.internal.common;x-internal:=true,
- org.eclipse.jst.ws.internal.context;x-internal:=true,
- org.eclipse.jst.ws.internal.data;x-internal:=true,
- org.eclipse.jst.ws.internal.dialog;x-internal:=true,
- org.eclipse.jst.ws.internal.ext;x-internal:=true,
- org.eclipse.jst.ws.internal.ext.test;x-internal:=true,
- org.eclipse.jst.ws.internal.plugin;x-internal:=true
+Export-Package: org.eclipse.jst.ws.internal,
+ org.eclipse.jst.ws.internal.command,
+ org.eclipse.jst.ws.internal.common,
+ org.eclipse.jst.ws.internal.context,
+ org.eclipse.jst.ws.internal.data,
+ org.eclipse.jst.ws.internal.dialog,
+ org.eclipse.jst.ws.internal.ext,
+ org.eclipse.jst.ws.internal.ext.test,
+ org.eclipse.jst.ws.internal.plugin
 Require-Bundle: org.eclipse.wst.command.env,
  org.eclipse.wst.command.env.ui,
  org.eclipse.wst.command.env.core,
@@ -46,6 +46,5 @@
  org.eclipse.jem.util,
  org.eclipse.jst.common.frameworks,
  org.eclipse.wst.common.environment,
- org.eclipse.wst.common.project.facet.core,
- com.ibm.icu
-Eclipse-LazyStart: true
+ org.eclipse.wst.common.project.facet.core
+Eclipse-AutoStart: true
diff --git a/bundles/org.eclipse.jst.ws/build.properties b/bundles/org.eclipse.jst.ws/build.properties
index 454fcce..cbb2310 100644
--- a/bundles/org.eclipse.jst.ws/build.properties
+++ b/bundles/org.eclipse.jst.ws/build.properties
@@ -1,6 +1,7 @@
 src.includes = component.xml
-bin.includes = .,\
+bin.includes = plugin.properties,\
+               plugin.xml,\
+               .,\
                META-INF/,\
-               about.html,\
-               plugin.properties
+               about.html
 source.. = src/
diff --git a/bundles/org.eclipse.jst.ws/src/org/eclipse/jst/ws/internal/common/J2EEActionAdapterFactory.java b/bundles/org.eclipse.jst.ws/src/org/eclipse/jst/ws/internal/common/J2EEActionAdapterFactory.java
index 2bf7bf0..63b9f9a 100644
--- a/bundles/org.eclipse.jst.ws/src/org/eclipse/jst/ws/internal/common/J2EEActionAdapterFactory.java
+++ b/bundles/org.eclipse.jst.ws/src/org/eclipse/jst/ws/internal/common/J2EEActionAdapterFactory.java
@@ -6,11 +6,7 @@
  * http://www.eclipse.org/legal/epl-v10.html
  * 
  * Contributors:
- * IBM Corporation - initial API and implementation
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060222   125574 zina@ca.ibm.com - Zina Mostafia
- * 20060222   225574 gilberta@ca.ibm.com - Gilbert Andrews
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 /*
  * Created on May 8, 2004
@@ -20,7 +16,6 @@
 import java.io.File;
 import java.net.MalformedURLException;
 import java.net.URL;
-
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.IPath;
@@ -46,38 +41,19 @@
   }
    
   //has to be under the webcontent
-  public static final String EJB_MODULE = "ejbModule";
-  public static final String APPCLIENT_MODULE = "appClientModule";
-  public static final String WEB_MODULE = "WebContent";
-
+  public static String WEB_CONTENT = "WebContent";
   public static String getWSDLURI(ServiceRef serviceImpl)
   {
-  	 String moduleRoot = null;
-	 IProject project = ProjectUtilities.getProject(serviceImpl);
-	 if(J2EEUtils.isWebComponent(project))
-	 {
-	   moduleRoot = WEB_MODULE;
-	 }
-     else if (J2EEUtils.isEJBComponent(project))
-	 {
-	   moduleRoot = EJB_MODULE;
-	 }
-	 else if (J2EEUtils.isAppClientComponent(project))
-	 {
-	   moduleRoot = APPCLIENT_MODULE;
-	 }
-	 IPath path = project.getLocation().addTrailingSeparator();
-	 path = path.append(moduleRoot).addTrailingSeparator();
-	 path = path.append(serviceImpl.getWsdlFile());
-	 File file = new File(path.toString());
-	 try{
-	   URL url = file.toURL();
-	   return url.toString();
-	 }catch(MalformedURLException e){return null;}
-	 
-  
-	  
-	
+  	IProject project = ProjectUtilities.getProject(serviceImpl);
+  	IPath path = project.getLocation().addTrailingSeparator();
+  	path = path.append(WEB_CONTENT).addTrailingSeparator();
+  	path = path.append(serviceImpl.getWsdlFile());
+  	File file = new File(path.toString());
+  	try{
+  	  URL url = file.toURL();
+  	  return url.toString();
+  	}catch(MalformedURLException e){return null;}
+  	
  }
   
   public static String getWSDLURI(WSDLResourceImpl wsdlRI)
diff --git a/bundles/org.eclipse.jst.ws/src/org/eclipse/jst/ws/internal/common/J2EEUtils.java b/bundles/org.eclipse.jst.ws/src/org/eclipse/jst/ws/internal/common/J2EEUtils.java
index ab131bc..447eeea 100644
--- a/bundles/org.eclipse.jst.ws/src/org/eclipse/jst/ws/internal/common/J2EEUtils.java
+++ b/bundles/org.eclipse.jst.ws/src/org/eclipse/jst/ws/internal/common/J2EEUtils.java
@@ -1,16 +1,15 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
+ * Copyright (c) 2000, 2005 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
+ *     IBM Corporation - initial API and implementation
  * yyyymmdd bug      Email and other contact information
  * -------- -------- -----------------------------------------------------------
  * 20060204  124143   rsinha@ca.ibm.com - Rupam Kuehner     
- * 20060329   128069 rsinha@ca.ibm.com - Rupam Kuehner
  *******************************************************************************/
 
 package org.eclipse.jst.ws.internal.common;
@@ -224,25 +223,6 @@
 		}
 		return (IVirtualComponent[])v.toArray(new IVirtualComponent[0]);		
 	}
-    
-    public static IVirtualComponent[] getAllEJBComponents(){
-        List v = new ArrayList();
-        IProject[] projects = ResourceUtils.getWorkspaceRoot().getProjects();
-        for (int i = 0; i < projects.length; i++) {
-            try {
-                IVirtualComponent[] components = getEJBComponents(projects[i]);
-                for (int j=0; j<components.length; j++) {
-                    if (components[j]!=null)
-                        v.add(components[j]);
-                }
-            } catch (Exception e) {
-                e.printStackTrace();
-                //handle exception
-            }
-
-        }
-        return (IVirtualComponent[])v.toArray(new IVirtualComponent[0]);        
-    }    
 	
 	/**
 	 * Returns the EAR components in a given IProject
diff --git a/bundles/org.eclipse.jst.ws/src/org/eclipse/jst/ws/internal/common/String2SelectionTransformer.java b/bundles/org.eclipse.jst.ws/src/org/eclipse/jst/ws/internal/common/String2SelectionTransformer.java
index f2351b0..817d820 100644
--- a/bundles/org.eclipse.jst.ws/src/org/eclipse/jst/ws/internal/common/String2SelectionTransformer.java
+++ b/bundles/org.eclipse.jst.ws/src/org/eclipse/jst/ws/internal/common/String2SelectionTransformer.java
@@ -4,12 +4,12 @@
  * 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
  * yyyymmdd bug      Email and other contact information
  * -------- -------- -----------------------------------------------------------
- * 20060222   128094 joan@ca.ibm.com - Joan Haggarty
+ * 20060303   128094 joan@ca.ibm.com - Joan Haggarty
  *******************************************************************************/
 package org.eclipse.jst.ws.internal.common;
 
diff --git a/bundles/org.eclipse.jst.ws/src/org/eclipse/jst/ws/internal/context/PersistentScenarioContext.java b/bundles/org.eclipse.jst.ws/src/org/eclipse/jst/ws/internal/context/PersistentScenarioContext.java
index 34e090b..e5ae338 100644
--- a/bundles/org.eclipse.jst.ws/src/org/eclipse/jst/ws/internal/context/PersistentScenarioContext.java
+++ b/bundles/org.eclipse.jst.ws/src/org/eclipse/jst/ws/internal/context/PersistentScenarioContext.java
@@ -1,27 +1,24 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
+ * Copyright (c) 2000, 2004 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060216   127138 pmoogk@ca.ibm.com - Peter Moogk
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 
 package org.eclipse.jst.ws.internal.context;
 
 import java.util.Enumeration;
+import java.util.StringTokenizer;
 import java.util.Vector;
 
 import org.eclipse.jst.ws.internal.ext.test.WebServiceTestExtension;
 import org.eclipse.jst.ws.internal.ext.test.WebServiceTestRegistry;
 import org.eclipse.jst.ws.internal.plugin.WebServicePlugin;
 import org.eclipse.wst.command.internal.env.context.PersistentContext;
-import com.ibm.icu.util.StringTokenizer;
 
 
 public class PersistentScenarioContext extends PersistentContext implements ScenarioContext
diff --git a/bundles/org.eclipse.wst.command.env.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.command.env.core/META-INF/MANIFEST.MF
index a84045b..b224dbc 100644
--- a/bundles/org.eclipse.wst.command.env.core/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.wst.command.env.core/META-INF/MANIFEST.MF
@@ -2,17 +2,17 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %PLUGIN_NAME
 Bundle-SymbolicName: org.eclipse.wst.command.env.core
-Bundle-Version: 1.0.101.qualifier
+Bundle-Version: 1.0.1.qualifier
 Bundle-Vendor: %PLUGIN_PROVIDER
 Bundle-Localization: plugin
-Export-Package: org.eclipse.wst.command.internal.env.core;x-internal:=true,
- org.eclipse.wst.command.internal.env.core.common;x-internal:=true,
- org.eclipse.wst.command.internal.env.core.context;x-internal:=true,
- org.eclipse.wst.command.internal.env.core.data;x-internal:=true,
- org.eclipse.wst.command.internal.env.core.fragment;x-internal:=true,
- org.eclipse.wst.command.internal.env.core.registry;x-internal:=true,
- org.eclipse.wst.command.internal.env.core.selection;x-internal:=true,
- org.eclipse.wst.command.internal.env.core.uri;x-internal:=true
+Export-Package: org.eclipse.wst.command.internal.env.core.data,
+ org.eclipse.wst.command.internal.env.core.fragment,
+ org.eclipse.wst.command.internal.env.core.registry,
+ org.eclipse.wst.command.internal.env.core,
+ org.eclipse.wst.command.internal.env.core.common,
+ org.eclipse.wst.command.internal.env.core.context,
+ org.eclipse.wst.command.internal.env.core.selection,
+ org.eclipse.wst.command.internal.env.core.uri
 Require-Bundle: org.eclipse.wst.common.frameworks,
  org.eclipse.core.commands,
  org.eclipse.core.runtime,
diff --git a/bundles/org.eclipse.wst.command.env.core/build.properties b/bundles/org.eclipse.wst.command.env.core/build.properties
index 7d430a1..443347a 100644
--- a/bundles/org.eclipse.wst.command.env.core/build.properties
+++ b/bundles/org.eclipse.wst.command.env.core/build.properties
@@ -1,4 +1,5 @@
-bin.includes = *.jar,\
+bin.includes = plugin.xml,\
+               *.jar,\
                .,\
                META-INF/,\
                plugin.properties,\
diff --git a/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/data/ClassEntry.java b/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/data/ClassEntry.java
index 41e5c56..0d08d10 100644
--- a/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/data/ClassEntry.java
+++ b/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/data/ClassEntry.java
@@ -1,15 +1,12 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
+ * Copyright (c) 2004 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060313   130958 pmoogk@ca.ibm.com - Peter Moogk
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 
 package org.eclipse.wst.command.internal.env.core.data;
@@ -18,60 +15,8 @@
 
 public class ClassEntry
 {
-  // A list of getter methods for a particular class.
+  public Object lastObject_;
   public Vector getterList_;
-  
-  // A list of setter methods for a particular class.
   public Vector setterList_;
-  
-  // A list of instance objects for this class.  Only the last entry
-  // should be looked at. 
-  private Vector objectList_ = new Vector();
-  
-  // A list of Interger objects that represent an ordering of objects.
-  // The number of entries in the objectList vector and the orderList vector
-  // should be the same.  Each entry in the objectList vector is
-  // corelated with each entry in the orderList vector.
-  private Vector orderList_ = new Vector();
-  
-  public void addObject( Object object, int order )
-  {
-    objectList_.add(object);
-    orderList_.add( new Integer(order) );
-  }
-  
-  public Object getLastObject()
-  {
-    Object result = null;
-    
-    if( objectList_.size() > 0 )
-    {
-      result = objectList_.lastElement();
-    }
-      
-    return result;
-  }
-  
-  public int getLastOrder()
-  {
-    int result = -1;
-    
-    if( orderList_.size() > 0 )
-    {
-      result = ((Integer)orderList_.lastElement()).intValue();
-    }
-      
-    return result;
-  }
-  
-  public void removeObject( Object object )
-  {
-    int removalIndex = objectList_.indexOf(object);
-    
-    if( removalIndex != -1 )
-    {
-      objectList_.remove(removalIndex);
-      orderList_.remove(removalIndex);
-    }   
-  }
+  public int    order_;
 }
diff --git a/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/data/DataFlowManager.java b/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/data/DataFlowManager.java
index e7ffe03..30ce90f 100644
--- a/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/data/DataFlowManager.java
+++ b/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/data/DataFlowManager.java
@@ -1,15 +1,12 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
+ * Copyright (c) 2004 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060313   130958 pmoogk@ca.ibm.com - Peter Moogk
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.wst.command.internal.env.core.data;
 
@@ -27,7 +24,7 @@
   private DataMappingRegistryImpl registry_;
   private Hashtable               classTable_;
   private int                     order_;
-  private IEnvironment				    environment_;
+  private IEnvironment				environment_;
   
   public DataFlowManager( DataMappingRegistryImpl registry, IEnvironment environment )
   {
@@ -42,20 +39,6 @@
     return registry_; 
   }
   
-  // Remove this instance object from the mapping table.
-  public void unprocess( Object object )
-  {
-    String     objectType = object.getClass().getName();
-    ClassEntry classEntry = (ClassEntry)classTable_.get( objectType );
-
-    if( classEntry != null )
-    {
-      classEntry.removeObject(object);
-    }
-  }
-  
-  // Add this object to our mapping table and call the setters
-  // that have corresponding getter objects.
   public void process( Object object )
   {
     // Add this object to the classTable_ if required.
@@ -69,8 +52,9 @@
       classEntry = new ClassEntry();
       classTable_.put( objectType, classEntry );
     }
-        
-    classEntry.addObject(object, order_++ );
+    
+    classEntry.lastObject_ = object;
+    classEntry.order_      = order_++;
     
     // Now process the setters for this object
     Vector ruleEntries  = registry_.getRuleEntries( objectType );
@@ -176,27 +160,22 @@
     
     if( classEntry != null )
     {
-      Object lastObject = classEntry.getLastObject();
+      if( classEntry.getterList_ == null )
+      {
+        // Build the getter list.
+        classEntry.getterList_ = getGetterList( classEntry.lastObject_ );
+      }
       
-      if( lastObject != null )
-      {        
-        if( classEntry.getterList_ == null )
-        {
-          // Build the getter list.
-          classEntry.getterList_ = getGetterList( lastObject );
-        }
-      
-        for( int index = 0; index < classEntry.getterList_.size(); index++ )
-        {
-          Method getter = (Method)classEntry.getterList_.elementAt( index );
+      for( int index = 0; index < classEntry.getterList_.size(); index++ )
+      {
+        Method getter = (Method)classEntry.getterList_.elementAt( index );
         
-          if( getter.getName().equals( "get" + sourceProperty ))
-          {
-            getterFound.order  = classEntry.getLastOrder();
-            getterFound.method = getter;
-            getterFound.object = lastObject;
-            break;
-          }
+        if( getter.getName().equals( "get" + sourceProperty ))
+        {
+          getterFound.order  = classEntry.order_;
+          getterFound.method = getter;
+          getterFound.object = classEntry.lastObject_;
+          break;
         }
       }
     }
diff --git a/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/fragment/CommandFragmentEngine.java b/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/fragment/CommandFragmentEngine.java
index 0faeffc..4b98c58 100644
--- a/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/fragment/CommandFragmentEngine.java
+++ b/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/fragment/CommandFragmentEngine.java
@@ -1,16 +1,12 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
+ * Copyright (c) 2004 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060223   129232 pmoogk@ca.ibm.com - Peter Moogk
- * 20060313   130958 pmoogk@ca.ibm.com - Peter Moogk
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.wst.command.internal.env.core.fragment;
 
@@ -68,27 +64,6 @@
   	environment_ = environment;
   } 
   
-  public String toString()
-  {
-    String      newline = System.getProperty("line.separator");    
-    StringBuffer buffer = new StringBuffer();
-    
-    buffer.append(newline);
-    buffer.append("Command stack start:");
-    buffer.append(newline);
-    
-    for( int index = 0; index < commandStack_.size(); index++ )
-    {
-      CommandListEntry entry = (CommandListEntry)commandStack_.elementAt(index);
-      entry.dump(buffer, index);
-    }
-    
-    buffer.append("Command start end:");
-    buffer.append(newline);
-    
-    return buffer.toString();
-  }
-  
   /**
    * @return returns the Data mapping registry.
    */
@@ -302,7 +277,6 @@
     try
     {
 	    cmd.undo( null, null );
-      dataManager_.unprocess(cmd);
     }
     catch( Exception exc )
     {
@@ -453,14 +427,6 @@
   	public CommandFragment fragment_;
   	public int             parentIndex_;
   	public boolean         fragmentStopped_;
-  	public boolean         beforeExecute_;
-    
-    public void dump( StringBuffer buffer, int index )
-    {
-      String newline = System.getProperty("line.separator");    
-      String line    = "  " + index + "- frag: " + fragment_.getId() + " parIndex: " + parentIndex_ + " stop: " + fragmentStopped_ + " beforeExecute: " + beforeExecute_ ;
-      buffer.append(line); 
-      buffer.append(newline);
-    }
+	public boolean         beforeExecute_;
   }    
 }
diff --git a/bundles/org.eclipse.wst.command.env.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.command.env.ui/META-INF/MANIFEST.MF
index 27d61c5..82e13c5 100644
--- a/bundles/org.eclipse.wst.command.env.ui/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.wst.command.env.ui/META-INF/MANIFEST.MF
@@ -2,18 +2,18 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %PLUGIN_NAME
 Bundle-SymbolicName: org.eclipse.wst.command.env.ui; singleton:=true
-Bundle-Version: 1.0.101.qualifier
+Bundle-Version: 1.0.1.qualifier
 Bundle-Activator: org.eclipse.wst.command.internal.env.ui.plugin.EnvUIPlugin
 Bundle-Vendor: %PLUGIN_PROVIDER
 Bundle-Localization: plugin
-Export-Package: org.eclipse.wst.command.internal.env.ui;x-internal:=true,
- org.eclipse.wst.command.internal.env.ui.dialog;x-internal:=true,
- org.eclipse.wst.command.internal.env.ui.eclipse;x-internal:=true,
- org.eclipse.wst.command.internal.env.ui.plugin;x-internal:=true,
- org.eclipse.wst.command.internal.env.ui.preferences;x-internal:=true,
- org.eclipse.wst.command.internal.env.ui.registry;x-internal:=true,
- org.eclipse.wst.command.internal.env.ui.widgets;x-internal:=true,
- org.eclipse.wst.command.internal.env.ui.widgets.popup;x-internal:=true
+Export-Package: org.eclipse.wst.command.internal.env.ui,
+ org.eclipse.wst.command.internal.env.ui.dialog,
+ org.eclipse.wst.command.internal.env.ui.eclipse,
+ org.eclipse.wst.command.internal.env.ui.plugin,
+ org.eclipse.wst.command.internal.env.ui.preferences,
+ org.eclipse.wst.command.internal.env.ui.registry,
+ org.eclipse.wst.command.internal.env.ui.widgets,
+ org.eclipse.wst.command.internal.env.ui.widgets.popup
 Require-Bundle: org.eclipse.wst.command.env.core,
  org.eclipse.wst.command.env,
  org.eclipse.core.runtime,
@@ -23,4 +23,4 @@
  org.eclipse.wst.common.environment,
  org.eclipse.core.resources,
  org.eclipse.ui.ide
-Eclipse-LazyStart: true
+Eclipse-AutoStart: true
diff --git a/bundles/org.eclipse.wst.command.env.ui/src/org/eclipse/wst/command/internal/env/ui/EnvironmentUI.properties b/bundles/org.eclipse.wst.command.env.ui/src/org/eclipse/wst/command/internal/env/ui/EnvironmentUI.properties
index 0c74610..7b5414c 100644
--- a/bundles/org.eclipse.wst.command.env.ui/src/org/eclipse/wst/command/internal/env/ui/EnvironmentUI.properties
+++ b/bundles/org.eclipse.wst.command.env.ui/src/org/eclipse/wst/command/internal/env/ui/EnvironmentUI.properties
@@ -9,8 +9,8 @@
 #     IBM Corporation - initial API and implementation
 ###############################################################################
 
-BUTTON_SHOW_ALL_DIALOGS=&Show All
-BUTTON_HIDE_ALL_DIALOGS=&Hide All
+BUTTON_SHOW_ALL_DIALOGS=Show All
+BUTTON_HIDE_ALL_DIALOGS=Hide All
 CHECKBOX_DO_NOT_SHOW_DIALOG_AGAIN=Do not show me this dialog box again.
 
 TOOLTIP_PPAD_PAGE=Control to show/hide the dialogs that appear when a pop-up action is executed.
@@ -23,7 +23,5 @@
 WIZARD_PAGE_DESC_ANT=Select workspace folder for Ant script and properties files
 MSG_STATUS_COPYING_ANT_FILES=Copying web services Ant files
 MSG_ERR_COPYING_ANT_FILES=Error encountered copying Ant files
-MSG_WARNING_FILE_EXISTS=The file {0} exists.  Do you want to overwrite?
-DIALOG_TITLE_OVERWRITE=Confirm Overwrite
 
 MSG_ERROR_WIZARD_ID_NOT_FOUND=IWAB0013E Could not find wizard id: {0}
diff --git a/bundles/org.eclipse.wst.command.env.ui/src/org/eclipse/wst/command/internal/env/ui/EnvironmentUIMessages.java b/bundles/org.eclipse.wst.command.env.ui/src/org/eclipse/wst/command/internal/env/ui/EnvironmentUIMessages.java
index a332a5f..c7ce6df 100644
--- a/bundles/org.eclipse.wst.command.env.ui/src/org/eclipse/wst/command/internal/env/ui/EnvironmentUIMessages.java
+++ b/bundles/org.eclipse.wst.command.env.ui/src/org/eclipse/wst/command/internal/env/ui/EnvironmentUIMessages.java
@@ -33,8 +33,6 @@
 	public static String WIZARD_PAGE_DESC_ANT;
 	public static String MSG_STATUS_COPYING_ANT_FILES;
 	public static String MSG_ERR_COPYING_ANT_FILES;
-	public static String MSG_WARNING_FILE_EXISTS;
-	public static String DIALOG_TITLE_OVERWRITE;
 
 	static {
 		NLS.initializeMessages(BUNDLE_NAME, EnvironmentUIMessages.class);
diff --git a/bundles/org.eclipse.wst.command.env.ui/src/org/eclipse/wst/command/internal/env/ui/dialog/AntFileImportWizard.java b/bundles/org.eclipse.wst.command.env.ui/src/org/eclipse/wst/command/internal/env/ui/dialog/AntFileImportWizard.java
index c23d71f..274290f 100644
--- a/bundles/org.eclipse.wst.command.env.ui/src/org/eclipse/wst/command/internal/env/ui/dialog/AntFileImportWizard.java
+++ b/bundles/org.eclipse.wst.command.env.ui/src/org/eclipse/wst/command/internal/env/ui/dialog/AntFileImportWizard.java
@@ -1,18 +1,6 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060315   128711 joan@ca.ibm.com - Joan Haggarty
- *******************************************************************************/
 package org.eclipse.wst.command.internal.env.ui.dialog;
 
+
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
@@ -30,8 +18,6 @@
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.MessageBox;
 import org.eclipse.ui.INewWizard;
 import org.eclipse.ui.IWorkbench;
 import org.eclipse.ui.IWorkbenchPage;
@@ -49,6 +35,7 @@
 import org.eclipse.wst.command.internal.env.ui.plugin.EnvUIPlugin;
 import org.eclipse.wst.common.environment.IStatusHandler;
 import org.eclipse.wst.common.environment.NullStatusHandler;
+//import org.eclipse.wst.common.environment.IEnvironment;
 
 public class AntFileImportWizard extends Wizard implements INewWizard {
 
@@ -91,7 +78,6 @@
 			//jvh: TODO: add extension so extenders of the command framework can register properties files to import
 			//  here we pick up all registered Ant files and import - also would be nice to allow user to choose a subset
 			String[] sourceFiles = new String[]{"ant/wsgen.xml", "ant/axisclient.properties", "ant/axisservice.properties"}; //$NON-NLS$
-			int filecount = 0;
 			for (int i = 0; i < sourceFiles.length; i++) {
 				String fileSource = sourceFiles[i];
 				String targetFile = fileSource;
@@ -103,16 +89,7 @@
 				}
 				Plugin sourcePlugin = EnvPlugin.getInstance();  
 				//jvh: TODO - add real progress monitor in here...
-								
-				IStatus status = copyIFile(sourcePlugin, fileSource, destination, targetFile, (IProgressMonitor)new NullProgressMonitor());
-				if (status == Status.CANCEL_STATUS)
-				{
-					filecount++;
-				}								
-			}
-			if (filecount == sourceFiles.length)
-			{
-				return false;  //don't close if all files were not written out - give user opportunity to change destination
+				copyIFile(sourcePlugin, fileSource, destination, targetFile, (IProgressMonitor)new NullProgressMonitor());					
 			}
 		}
 	    return true;		
@@ -129,31 +106,22 @@
 	    try
 	    {
 	       ResourceContext context = new TransientResourceContext();
-	       // check to see if file exists before copy
-	       IResource resource = FileResourceUtils.findResource(target);	     
+	       context.setOverwriteFilesEnabled(true);
+	       context.setCreateFoldersEnabled(true);
+	       context.setCheckoutFilesEnabled(true);
+	       IResource resource = FileResourceUtils.findResource(target);
+	       if(resource != null) return Status.OK_STATUS;
+	       FileResourceUtils.createFile(context, 
+	                      							target,
+	                                    plugin.openStream(new Path(source)),
+	                                    monitor, (IStatusHandler)new NullStatusHandler());
 	       
-	       if (resource != null)
-			{
-				MessageBox overwriteBox = new MessageBox(getShell(), SWT.ICON_QUESTION|SWT.YES|SWT.NO);
-				overwriteBox.setMessage(EnvironmentUIMessages.bind(EnvironmentUIMessages.MSG_WARNING_FILE_EXISTS, target.toString()));				
-				overwriteBox.setText(EnvironmentUIMessages.DIALOG_TITLE_OVERWRITE);
-				int result = overwriteBox.open();
-				if (result != SWT.NO)
-					FileResourceUtils.createFile(context, target, plugin.openStream(new Path(source)),
-                            monitor, (IStatusHandler)new NullStatusHandler());
-				else 
-					return Status.CANCEL_STATUS;
-			}       
-			else 
-			{
-				FileResourceUtils.createFile(context, target, plugin.openStream(new Path(source)),
-                                    monitor, (IStatusHandler)new NullStatusHandler());
-			}
+	                                    
 	    }
 	    catch (Exception e) {	    	
 	      return StatusUtils.errorStatus(EnvironmentUIMessages.MSG_ERR_COPYING_ANT_FILES, e);
 	    }
-	  }	  
+	  }
 	  return Status.OK_STATUS;
 	}
 	
diff --git a/bundles/org.eclipse.wst.command.env.ui/src/org/eclipse/wst/command/internal/env/ui/dialog/AntFileImportWizardPage.java b/bundles/org.eclipse.wst.command.env.ui/src/org/eclipse/wst/command/internal/env/ui/dialog/AntFileImportWizardPage.java
index ec53a3c..da94422 100644
--- a/bundles/org.eclipse.wst.command.env.ui/src/org/eclipse/wst/command/internal/env/ui/dialog/AntFileImportWizardPage.java
+++ b/bundles/org.eclipse.wst.command.env.ui/src/org/eclipse/wst/command/internal/env/ui/dialog/AntFileImportWizardPage.java
@@ -1,15 +1,3 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- *******************************************************************************/
 package org.eclipse.wst.command.internal.env.ui.dialog;
 
 import org.eclipse.core.runtime.IPath;
diff --git a/bundles/org.eclipse.wst.command.env.ui/src/org/eclipse/wst/command/internal/env/ui/widgets/DynamicWizard.java b/bundles/org.eclipse.wst.command.env.ui/src/org/eclipse/wst/command/internal/env/ui/widgets/DynamicWizard.java
index 77772e5..5b94b66 100644
--- a/bundles/org.eclipse.wst.command.env.ui/src/org/eclipse/wst/command/internal/env/ui/widgets/DynamicWizard.java
+++ b/bundles/org.eclipse.wst.command.env.ui/src/org/eclipse/wst/command/internal/env/ui/widgets/DynamicWizard.java
@@ -1,15 +1,12 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
+ * Copyright (c) 2004 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060223   129232 pmoogk@ca.ibm.com - Peter Moogk
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.wst.command.internal.env.ui.widgets;
 
@@ -97,10 +94,11 @@
   private   String                  iconBannerName_;
   private   Bundle                  bundle_;
   private   SimpleCanFinishRegistry canFinishRegistry_; 
+  private   WizardPageManager       pageManager_;
   private   String                  wizardTitle_;
   private   DataObjectCommand       dataObjectCommand_ = null;
-  private   WizardPageManager       pageManager_;
-  
+
+  protected IWizardPage             startPage_ = null;
   protected IConfigurationElement   wizardElement_;
   protected IConfigurationElement   originalElement_;
   protected CommandWidgetBinding    commandWidgetBinding_;
@@ -219,6 +217,7 @@
     }
     
 	dataObjectCommand_ = new DataObjectCommand();
+    startPage_         = null;
     canFinishRegistry_ = new SimpleCanFinishRegistry(); 
     pageManager_       = new WizardPageManager( widgetRegistry_, 
                                                 getWizardPageFactory(), 
@@ -310,7 +309,12 @@
   **/
   public IWizardPage getStartingPage()
   {
-    return pageManager_.getStartingPage();
+  	if( startPage_ == null )
+  	{
+  		startPage_ = pageManager_.getNextPage();
+  	}
+  	
+    return startPage_;
   }
 
   /**
@@ -381,7 +385,8 @@
 	  pageManager_          = null;
 	  wizardTitle_          = null;
 	  dataObjectCommand_    = null;
+	  startPage_            = null;
 	  commandWidgetBinding_ = null;
 	  WidgetRegistry.initialize();
   }
-}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.command.env.ui/src/org/eclipse/wst/command/internal/env/ui/widgets/SimpleCommandEngineManager.java b/bundles/org.eclipse.wst.command.env.ui/src/org/eclipse/wst/command/internal/env/ui/widgets/SimpleCommandEngineManager.java
index 243175f..a92bb29 100644
--- a/bundles/org.eclipse.wst.command.env.ui/src/org/eclipse/wst/command/internal/env/ui/widgets/SimpleCommandEngineManager.java
+++ b/bundles/org.eclipse.wst.command.env.ui/src/org/eclipse/wst/command/internal/env/ui/widgets/SimpleCommandEngineManager.java
@@ -1,15 +1,12 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
+ * Copyright (c) 2004 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060223   129232 pmoogk@ca.ibm.com - Peter Moogk
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.wst.command.internal.env.ui.widgets;
 
@@ -41,7 +38,7 @@
 {
   protected CommandFragmentEngine engine_;
   protected DataFlowManager       dataManager_;
-  protected   EclipseEnvironment    environment_;
+  private   EclipseEnvironment    environment_;
   
   private   boolean               foundStop_;
   private   boolean               doNotRunInTransaction_;
diff --git a/bundles/org.eclipse.wst.command.env.ui/src/org/eclipse/wst/command/internal/env/ui/widgets/WizardPageManager.java b/bundles/org.eclipse.wst.command.env.ui/src/org/eclipse/wst/command/internal/env/ui/widgets/WizardPageManager.java
index 0c795ce..37a8fe0 100644
--- a/bundles/org.eclipse.wst.command.env.ui/src/org/eclipse/wst/command/internal/env/ui/widgets/WizardPageManager.java
+++ b/bundles/org.eclipse.wst.command.env.ui/src/org/eclipse/wst/command/internal/env/ui/widgets/WizardPageManager.java
@@ -1,16 +1,12 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
+ * Copyright (c) 2004 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060223   129232 pmoogk@ca.ibm.com - Peter Moogk
- * 20060313   130958 pmoogk@ca.ibm.com - Peter Moogk
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.wst.command.internal.env.ui.widgets;
 
@@ -24,7 +20,6 @@
 import org.eclipse.wst.command.internal.env.core.fragment.CommandFragment;
 import org.eclipse.wst.command.internal.env.eclipse.EclipseEnvironment;
 import org.eclipse.wst.command.internal.env.ui.registry.WidgetRegistry;
-import org.eclipse.wst.common.environment.ILog;
 
 
 
@@ -69,16 +64,6 @@
 	  widgetStackStack_   = new Stack();
   }
   
-  public  IWizardPage getStartingPage()
-  {
-    if( firstPage_ == null )
-    {
-      firstPage_ = (PageWizardDataEvents)getNextPage();
-    }
-    
-    return firstPage_;
-  }
-  
   public IStatus runForwardToNextStop()
   {    
   	firstFragment_  = true;
@@ -130,11 +115,6 @@
   	// when we move forward below the data is available.
   	if( currentPage_ != null ) currentPage_.getDataEvents().externalize();
   	
-    if( environment_.getLog().isEnabled() )
-    {
-      environment_.getLog().log(ILog.INFO, "ws_dt_cmd_engine", 5010, this, "Cmd stack dump:", engine_ );
-    }
-    
 	  nextPage_ = getNextPageInGroup( widgetFactory_, true );
 	
 	  if( nextPage_ == null )
@@ -203,10 +183,6 @@
   	    undoToLastPage();
 	    }
 	  
-      // Since we are moving backwards we need to remove the
-      // current page object from the mapping table.
-      dataManager_.unprocess( currentPage_.getDataEvents() );
-      
   	  currentPage_ = page;
   	}	
   	else if( isPageVisible )
@@ -229,6 +205,8 @@
 	    {
 	  	  if( currentPage_ != null ) page.setPreviousPage( currentPage_ );
 	    	  
+	  	  if( firstPage_ == null ) firstPage_ = page;
+	  	  
 	  	  currentPage_ = page;  
 	    }
   	}
@@ -499,4 +477,4 @@
     INamedWidgetContributorFactory factory_;
 	  Stack                          stack_;
   }
-}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.command.env.ui/src/org/eclipse/wst/command/internal/env/ui/widgets/popup/DynamicPopupWizard.java b/bundles/org.eclipse.wst.command.env.ui/src/org/eclipse/wst/command/internal/env/ui/widgets/popup/DynamicPopupWizard.java
index 5fdc31c..4738f8b 100644
--- a/bundles/org.eclipse.wst.command.env.ui/src/org/eclipse/wst/command/internal/env/ui/widgets/popup/DynamicPopupWizard.java
+++ b/bundles/org.eclipse.wst.command.env.ui/src/org/eclipse/wst/command/internal/env/ui/widgets/popup/DynamicPopupWizard.java
@@ -1,15 +1,12 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
+ * Copyright (c) 2004 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060223   129232 pmoogk@ca.ibm.com - Peter Moogk
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.wst.command.internal.env.ui.widgets.popup;
 
@@ -124,7 +121,7 @@
 	  dialog.setPageSize( 400, 500 );
 	  dialog.create();
     
-    if( getStartingPage() != null )
+    if( startPage_ != null )
     {
 	    dialog.open();
     }
diff --git a/bundles/org.eclipse.wst.command.env/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.command.env/META-INF/MANIFEST.MF
index 186ca56..ab1b10b 100644
--- a/bundles/org.eclipse.wst.command.env/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.wst.command.env/META-INF/MANIFEST.MF
@@ -3,18 +3,18 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %PLUGIN_NAME
 Bundle-SymbolicName: org.eclipse.wst.command.env; singleton:=true
-Bundle-Version: 1.0.101.qualifier
+Bundle-Version: 1.0.2.qualifier
 Bundle-Activator: org.eclipse.wst.command.internal.env.plugin.EnvPlugin
 Bundle-Vendor: %PLUGIN_PROVIDER
 Bundle-Localization: plugin
-Export-Package: org.eclipse.wst.command.internal.env;x-internal:=true,
- org.eclipse.wst.command.internal.env.ant;x-internal:=true,
- org.eclipse.wst.command.internal.env.commandline;x-internal:=true,
- org.eclipse.wst.command.internal.env.common;x-internal:=true,
- org.eclipse.wst.command.internal.env.context;x-internal:=true,
- org.eclipse.wst.command.internal.env.eclipse;x-internal:=true,
- org.eclipse.wst.command.internal.env.plugin;x-internal:=true,
- org.eclipse.wst.command.internal.env.preferences;x-internal:=true
+Export-Package: org.eclipse.wst.command.internal.env.ant,
+ org.eclipse.wst.command.internal.env,
+ org.eclipse.wst.command.internal.env.commandline,
+ org.eclipse.wst.command.internal.env.common,
+ org.eclipse.wst.command.internal.env.context,
+ org.eclipse.wst.command.internal.env.eclipse,
+ org.eclipse.wst.command.internal.env.plugin,
+ org.eclipse.wst.command.internal.env.preferences
 Require-Bundle: org.eclipse.wst.command.env.core,
  org.eclipse.core.runtime,
  org.eclipse.core.resources,
@@ -23,4 +23,4 @@
  org.eclipse.wst.common.environment,
  org.apache.ant,
  org.eclipse.ant.core
-Eclipse-LazyStart: true
+Eclipse-AutoStart: true
diff --git a/bundles/org.eclipse.wst.command.env/ant/axisclient.properties b/bundles/org.eclipse.wst.command.env/ant/axisclient.properties
index d8b7756..f5ed32b 100644
--- a/bundles/org.eclipse.wst.command.env/ant/axisclient.properties
+++ b/bundles/org.eclipse.wst.command.env/ant/axisclient.properties
@@ -1,5 +1,5 @@
-!--ScenarioType REQUIRED. Differentiates from "service" scenario.  See axisservice.properties.
-ScenarioType=client
+!--scenarioType REQUIRED. Differentiates from "service" scenario.  See axisservice.properties.
+scenarioType=client
 
 !--InitialSelection REQUIRED.  Workspace relative URI to the input WSDL or Java.
 InitialSelection=/dynamicWebProjectName/WebContent/wsdl/myService.wsdl
@@ -8,43 +8,39 @@
 !-- Client.RuntimeId, Client.ServerId 
 ListRuntimes=true
 ListServers=true
-!-- Verbose will list informational messages as well as errors if set to true
-Verbose=true
-
  
-!--Client.RuntimeId - ID of web service runtime 
+!--type:String - ID of web service runtime 
 Client.RuntimeId=org.eclipse.jst.ws.axis.creation.axisWebServiceRT
-!--Client.ServerId - ID of target server 
+!--type:String - ID of target server 
 Client.ServerId=org.eclipse.jst.server.tomcat.50
 
-!--ClientProjectName - name of Client project - this property can be used to give the client project a 
+!--type:String - name of Client project - this property can be used to give the client project a 
 !-- different name than the project containing the initial selection
-!--ClientProjectName=clientProjectName
-
-!--ClientComponentType- name of Client EAR project - set only if applicable for selected server type
-!--ClientEarProjectName=clientEARProjectName
-
-!--ClientComponentType - type of Client project - must be one of: jst.web, jst.java - only jst.web is valid for Axis
-!--ClientComponentType=jst.web
+ClientProjectName=clientProjectName
+!--type:String - name of Client EAR project - set only if applicable for selected server type
+ClientEarProjectName=clientEARProjectName
+!--type:String - type of Client project - must be one of: jst.web, jst.java
+!-- only jst.web is valid for Axis
+ClientComponentType=jst.web
 
 !-- CustomizeClientMappings - set to true to supply package-namespace mappings type: boolean
-!--CustomizeClientMappings=false  
+CustomizeClientMappings=false  
     
-!-- Mappings 
+!-- type:String 
 !-- Workspace relative URI to property file containing mappings
 !-- Mappings are used to override the default package names of the generated Java classes.
 !-- Need not be set if CustomizeClientMappings is false  
 !-- The content of the properties file must be of the format package = namespace.
-!--Mappings=/testProj/mappings/mappings.txt
+Mappings=/testProj/mappings/mappings.txt
 
 !--OverwriteFilesEnabled - set to true to overwrite files that already exist. type:boolean 
 !-- note for non-interactive mode it is recommended that this be set to true
-!-- OverwriteFilesEnabled=true
+OverwriteFilesEnabled=true
 
 !--CreateFoldersEnabled - set to true create folders necessary during file generation type:boolean
 !-- note for non-interactive mode it is recommended that this be set to true
-!-- CreateFoldersEnabled=true
+CreateFoldersEnabled=true
 
 !--CheckoutFilesEnabled - set to true to check out files with no warning to the user type:boolean
 !-- note for non-interactive mode it is recommended that this be set to true
-!-- CheckoutFilesEnabled=true
+CheckoutFilesEnabled=true
diff --git a/bundles/org.eclipse.wst.command.env/ant/axisservice.properties b/bundles/org.eclipse.wst.command.env/ant/axisservice.properties
index c1a6ee8..065f980 100644
--- a/bundles/org.eclipse.wst.command.env/ant/axisservice.properties
+++ b/bundles/org.eclipse.wst.command.env/ant/axisservice.properties
@@ -1,61 +1,53 @@
-!-- ScenarioType REQUIRED. Differentiates from "client" scenario.  See axisclient.properties.
-ScenarioType=service
+!-- REQUIRED. Differentiates from "client" scenario.  See axisclient.properties.
+scenarioType=service
 
-!-- InitialSelection REQUIRED.  Workspace relative URI to the input WSDL or Java
+!-- REQUIRED.  Workspace relative URI to the input WSDL or Java
 InitialSelection=/dynamicWebProjectName/WebContent/myService.wsdl
 
 !--Utility property values - use these to list valid values for the following properties:
 !-- Service.RuntimeId, Service.ServerId 
 ListRuntimes=true
 ListServers=true
-!-- Verbose will list informational messages as well as errors if set to true
-Verbose=true
 
-!--  Service.RuntimeId - ID of web service runtime 
+!--  type:String  - ID of web service runtime 
 Service.RuntimeId=org.eclipse.jst.ws.axis.creation.axisWebServiceRT
-!-- Service.ServerId -  ID of target server 
+!--type:String -  ID of target server 
 Service.ServerId=org.eclipse.jst.server.tomcat.50
 !-- Service.TypeId -  "Top Down EJB" or "Bottom Up EJB"  
 !-- Java Bean is default for both Top Down and Bottom Up
 !-- Service.TypeId=Top Down EJB
 
-!-- ServiceProjectName - !--type:String - name of Service project - this property can be used to give the service project a different name than the project containing the initial selection.  type: String    
-!--ServiceProjectName=serviceProjectName
-!-- ServiceProjectName - !--type:String - name of Service project - this property can be used to give the service project a different name than the project containing the initial selection.  type: String
-!--ServiceEarProjectName=serviceEarProjectName
+!--ServiceProjectName - !--type:String - name of Service project - this property can be used to give the service project a different name than the project containing the initial selection.  type: String    
+ServiceProjectName=serviceProjectName
+!--ServiceProjectName - !--type:String - name of Service project - this property can be used to give the service project a different name than the project containing the initial selection.  type: String
+ServiceEarProjectName=serviceEarProjectName
 
-!-- Mappings
-!-- Top down or bottom up scenario. Workspace relative URI to property file containing mappings.
+!-- AXIS SERVICE ----
+!-- All scenarios. String: workspace relative URI to property file containing mappings
 !-- Top Down: Mappings are used to override the default package names of the generated Java template classes.
 !-- The content of the properties file must be of the format namespace=package  
 !-- Bottom Up: Mappings are used to override the default namespace names in the generated WSDL.
 !-- The content of the properties file must be of the format package = namespace 
-!--Mappings=/testProj/mappings/mappings.txt
+Mappings=/testProj/mappings/mappings.txt
 
-!-- JavaOutput
 !-- Top down - String: the workspace relative URI for a Java source folder for the generated Java code - must be existing workspace source folder
-!--JavaOutput=/projectName/JavaSource
+JavaOutput=/projectName/JavaSource
 
-!-- Methods
 !-- Bottom up - space delimited string of method signatures (i.e. method1(parmType1) method2(parmType2)) to be exposed in output WSDL.  If no list is provided, all methods are exposed.
-!-- Methods=
-
-!-- Style
+Methods=
 !-- Bottom up - String: one of: RPC, DOCUMENT, WRAPPED
-!--Style=DOCUMENT
-
-!-- Use
+Style=DOCUMENT
 !-- Bottom up - String: one of: LITERAL, ENCODED 
-!--Use=LITERAL
+Use=LITERAL
 
 !--OverwriteFilesEnabled - set to true to overwrite files that already exist. type:boolean 
 !-- note for non-interactive mode it is recommended that this be set to true
-!--OverwriteFilesEnabled=true
+OverwriteFilesEnabled=true
 
 !--CreateFoldersEnabled - set to true create folders necessary during file generation type:boolean
 !-- note for non-interactive mode it is recommended that this be set to true
-!--CreateFoldersEnabled=true
+CreateFoldersEnabled=true
 
 !--CheckoutFilesEnabled - set to true to check out files with no warning to the user type:boolean
 !-- note for non-interactive mode it is recommended that this be set to true
-!--CheckoutFilesEnabled=true
+CheckoutFilesEnabled=true
diff --git a/bundles/org.eclipse.wst.command.env/schema/antdatamapping.exsd b/bundles/org.eclipse.wst.command.env/schema/antdatamapping.exsd
index 4d2b664..95d9cad 100644
--- a/bundles/org.eclipse.wst.command.env/schema/antdatamapping.exsd
+++ b/bundles/org.eclipse.wst.command.env/schema/antdatamapping.exsd
@@ -69,13 +69,6 @@
                </documentation>
             </annotation>
          </attribute>
-         <attribute name="required" type="boolean" use="optional" default="false">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
       </complexType>
    </element>
 
diff --git a/bundles/org.eclipse.wst.command.env/src/org/eclipse/wst/command/internal/env/Environment.properties b/bundles/org.eclipse.wst.command.env/src/org/eclipse/wst/command/internal/env/Environment.properties
index 413d700..adfb459 100644
--- a/bundles/org.eclipse.wst.command.env/src/org/eclipse/wst/command/internal/env/Environment.properties
+++ b/bundles/org.eclipse.wst.command.env/src/org/eclipse/wst/command/internal/env/Environment.properties
@@ -24,12 +24,10 @@
 MSG_ERROR_IO=IWAB0006E An input/output error occurred while processing the resource "{0}".
 MSG_ERROR_FILE_OVERWRITE_DISABLED=IWAB0164E Cannot create the file "{1}" relative to the path "{0}" because automatic file overwriting has not been enabled. Do you want to enable it for this file?
 MSG_ERROR_UNEXPECTED_ERROR=IWAB0014E Unexpected exception occured.
-MSG_ERROR_ANT_DATA_TRANSFORM=Exception transforming Ant property key {0} using transformation {1}.
-MSG_ERROR_ANT_CALL_SETTER=Exception invoking setter method {0} for Ant property.
-MSG_ERROR_ANT_CMD_FRAGMENT=Exception retrieving Ant command fragment from registry.
-MSG_ERROR_ANT_SCENARIO_TYPE=Cannot determine scenario type.  Please ensure ScenarioType Ant property is set.
-MSG_ERROR_ANT_REQUIRED_PROPERTY=Required property {0} was not set in the Ant property file.
-MSG_INFO_ANT__PROPERTY_DEFAULT=Property {0} was not set in the Ant property file.  A default value will be used.
+MSG_ERR_ANT_DATA_TRANSFORM=Exception transforming Ant property key {0} using transformation {1}.
+MSG_ERR_ANT_CALL_SETTER=Exception invoking setter method {0} for Ant property.
+MSG_ERR_ANT_CMD_FRAGMENT=Exception retrieving Ant command fragment from registry.
+MSG_ERR_ANT_SCENARIO_TYPE=Cannot determine scenario type.  Please ensure scenarioType Ant property is set.
 
 LABEL_YES=Yes
 LABEL_YES_TO_ALL=Yes All
diff --git a/bundles/org.eclipse.wst.command.env/src/org/eclipse/wst/command/internal/env/EnvironmentMessages.java b/bundles/org.eclipse.wst.command.env/src/org/eclipse/wst/command/internal/env/EnvironmentMessages.java
index 2c73816..7025e31 100644
--- a/bundles/org.eclipse.wst.command.env/src/org/eclipse/wst/command/internal/env/EnvironmentMessages.java
+++ b/bundles/org.eclipse.wst.command.env/src/org/eclipse/wst/command/internal/env/EnvironmentMessages.java
@@ -32,12 +32,10 @@
 	public static String MSG_ERROR_IO;
 	public static String MSG_ERROR_FILE_OVERWRITE_DISABLED;
 	public static String MSG_ERROR_UNEXPECTED_ERROR;
-	public static String MSG_ERROR_ANT_DATA_TRANSFORM;
-	public static String MSG_ERROR_ANT_CALL_SETTER;
-	public static String MSG_ERROR_ANT_CMD_FRAGMENT;
-	public static String MSG_ERROR_ANT_SCENARIO_TYPE;
-	public static String MSG_ERROR_ANT_REQUIRED_PROPERTY;
-	public static String MSG_INFO_ANT__PROPERTY_DEFAULT;
+	public static String MSG_ERR_ANT_DATA_TRANSFORM;
+	public static String MSG_ERR_ANT_CALL_SETTER;
+	public static String MSG_ERR_ANT_CMD_FRAGMENT;
+	public static String MSG_ERR_ANT_SCENARIO_TYPE;
 	public static String LABEL_YES;
 	public static String LABEL_YES_TO_ALL;
 	public static String LABEL_CANCEL;
diff --git a/bundles/org.eclipse.wst.command.env/src/org/eclipse/wst/command/internal/env/ant/AntController.java b/bundles/org.eclipse.wst.command.env/src/org/eclipse/wst/command/internal/env/ant/AntController.java
index 914c295..4080a0f 100644
--- a/bundles/org.eclipse.wst.command.env/src/org/eclipse/wst/command/internal/env/ant/AntController.java
+++ b/bundles/org.eclipse.wst.command.env/src/org/eclipse/wst/command/internal/env/ant/AntController.java
@@ -65,7 +65,7 @@
 	   }
 	   else  //problem getting the root fragment - scenario type is likely missing
 	   {
-		   handler.reportError(new Status(IStatus.ERROR, "ws_ant", 9999, EnvironmentMessages.MSG_ERROR_ANT_SCENARIO_TYPE, null));
+		   handler.reportError(new Status(IStatus.ERROR, "ws_ant", 9999, EnvironmentMessages.MSG_ERR_ANT_SCENARIO_TYPE, null));
 		   return;
 	   }
 	      
diff --git a/bundles/org.eclipse.wst.command.env/src/org/eclipse/wst/command/internal/env/ant/AntEnvironment.java b/bundles/org.eclipse.wst.command.env/src/org/eclipse/wst/command/internal/env/ant/AntEnvironment.java
index 6cbb5c7..d65dbc9 100644
--- a/bundles/org.eclipse.wst.command.env/src/org/eclipse/wst/command/internal/env/ant/AntEnvironment.java
+++ b/bundles/org.eclipse.wst.command.env/src/org/eclipse/wst/command/internal/env/ant/AntEnvironment.java
@@ -34,7 +34,6 @@
 import org.eclipse.wst.command.internal.env.core.data.Transformer;
 import org.eclipse.wst.command.internal.env.core.fragment.CommandFragment;
 import org.eclipse.wst.command.internal.env.eclipse.EclipseEnvironment;
-import org.eclipse.wst.command.internal.env.plugin.EnvPlugin;
 import org.eclipse.wst.common.environment.ILog;
 import org.eclipse.wst.common.environment.IStatusHandler;
 import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelOperation;
@@ -54,7 +53,7 @@
 	private Hashtable operationDataRecord_ = new Hashtable();
 	private boolean mappingComplete_;
 	private ClassEntry classEntry;	
-		
+	
 	// extensionPoint names and namespace
 	private static String MAPPER_EXT_PT = "antDataMapping";  //$NON-NLS-1$
 	private static String SCENARIO_EXT_PT = "antScenario";  //$NON-NLS-1$
@@ -65,16 +64,11 @@
 	private static final String MAPPER_KEY_ATTRIBUTE= "key"; //$NON-NLS-1$
 	private static final String MAPPER_PROPERTY_ATTRIBUTE= "property"; //$NON-NLS-1$
 	private static final String MAPPER_TRANSFORM_ATTRIBUTE= "transform"; //$NON-NLS-1$
-	private static final String MAPPER_REQUIRED_ATTRIBUTE= "required"; //$NON-NLS-1$
-		
+	
 	// antScenario extension point attributes
 	private static final String SCENARIO_TYPE_ATTRIBUTE = "scenarioType"; //$NON-NLS-1$
 	private static final String SCENARIO_CLASS_ATTRIBUTE = "class"; //$NON-NLS-1$
 
-	// Ant property IDs
-	private static final String VERBOSE_PROPERTY = "Verbose"; //$NON-NLS-1$
-	private static final String SCENARIO_TYPE_PROPERTY = "ScenarioType"; //$NON-NLS-1$
-	
     private AntController controller_;
 	
 	public AntEnvironment(AntController controller, ResourceContext context, IStatusHandler handler, Hashtable properties)
@@ -84,24 +78,11 @@
 	   controller_ = controller;	   
 	}
 	
-	public boolean verbose()
-	{
-	  String verbose=getProperty(VERBOSE_PROPERTY);		
-	  
-	  if (verbose != null)
-	  {
-		  verbose = verbose.toLowerCase();
-		  if (verbose.equals("true"))
-			  return true;
-	  }		  
-	  return false;
-	}
-	
 	// returns String since the property table built by Ant is property value pairs where the value is a String
 	private String getProperty(String key)
 	{
 		Object property = antProperties_.get(key);
-		if (property != null && (!property.toString().equals("")))
+		if (property != null)
 			return property.toString().trim();
 		return null;
 	}
@@ -228,7 +209,7 @@
 					 catch (CoreException cex) {
 					   Status errorStatus = new Status(Status.ERROR, "ws_ant", 5092, cex.getMessage(), cex);
 					   getStatusHandler().reportError(errorStatus);
-					   getLog().log(ILog.ERROR, "ws_ant", 5092, this, "getMappingExtensions", EnvironmentMessages.bind(EnvironmentMessages.MSG_ERROR_ANT_DATA_TRANSFORM, key, transform));
+					   getLog().log(ILog.ERROR, "ws_ant", 5092, this, "getMappingExtensions", EnvironmentMessages.bind(EnvironmentMessages.MSG_ERR_ANT_DATA_TRANSFORM, key, transform));
 					   throw new CoreException(errorStatus);
 					 }
 					 
@@ -263,29 +244,7 @@
 						 holder.value_ = value;
 						 dataTable.put(property, holder);
 					 }			 
-				 }
-				 else if(ce.getAttribute(MAPPER_REQUIRED_ATTRIBUTE)!=null && ce.getAttribute(MAPPER_REQUIRED_ATTRIBUTE).equals("true"))
-				 {				
-					 String msg = EnvironmentMessages.bind(EnvironmentMessages.MSG_ERROR_ANT_REQUIRED_PROPERTY, key.toString());
-					 Status statusObj = new Status(IStatus.ERROR, 
-								EnvPlugin.ID,
-								IStatus.ERROR,
-								msg, 
-								null);
-					 getStatusHandler().reportError(statusObj);
-	                 getLog().log(ILog.ERROR, "ws_ant", 9999, this, "getMappingExtensions", msg);					 
-				 }
-				 else if (verbose())
-				 {
-					 String msg = EnvironmentMessages.bind(EnvironmentMessages.MSG_INFO_ANT__PROPERTY_DEFAULT, key.toString());
-					 Status statusObj = new Status(IStatus.INFO, 
-								EnvPlugin.ID,
-								IStatus.INFO,
-								msg, 
-								null);
-					 getStatusHandler().reportInfo(statusObj);
-					 getLog().log(ILog.INFO, "ws_ant", 9999, this, "getMappingExtensions", msg);					 
-				 }
+				 }			 
 		      }    	 
 		  }
 		   return dataTable.elements();
@@ -320,7 +279,7 @@
 				catch (Exception exc)
 				{
 					getStatusHandler().reportError(new Status(Status.ERROR, "ws_ant", 5093, exc.getMessage(), exc));
-                    getLog().log(ILog.ERROR, "ws_ant", 5093, this, "transformAndSet", EnvironmentMessages.bind(EnvironmentMessages.MSG_ERROR_ANT_DATA_TRANSFORM, mapping.key_, mapping.transform_));
+                    getLog().log(ILog.ERROR, "ws_ant", 5093, this, "transformAndSet", EnvironmentMessages.bind(EnvironmentMessages.MSG_ERR_ANT_DATA_TRANSFORM, mapping.key_, mapping.transform_));
                     throw new IllegalArgumentException(exc.getMessage());
 				}				
 			}
@@ -413,7 +372,7 @@
 			     		 catch(Exception cex){
 			     			Status errorStatus = new Status(Status.ERROR, "ws_ant", 5094, cex.getMessage(), cex);
 			     			getStatusHandler().reportError(errorStatus);
-			     			getLog().log(ILog.ERROR, "ws_ant", 5094, this, "callSetter", EnvironmentMessages.bind(EnvironmentMessages.MSG_ERROR_ANT_CALL_SETTER, setterMethodName));
+			     			getLog().log(ILog.ERROR, "ws_ant", 5094, this, "callSetter", EnvironmentMessages.bind(EnvironmentMessages.MSG_ERR_ANT_CALL_SETTER, setterMethodName));
 			     			throw new CoreException(errorStatus);
 			     		 }
 			       }  
@@ -476,7 +435,7 @@
 				    	catch(Exception e){
 				    		Status errorStatus = new Status(Status.ERROR, "ws_ant", 5095, e.getMessage(), e);
 				    		getStatusHandler().reportError(errorStatus);
-				    		getLog().log(ILog.ERROR, "ws_ant", 5095, this, "callPrimitiveSetter", EnvironmentMessages.bind(EnvironmentMessages.MSG_ERROR_ANT_CALL_SETTER, element.getName()));
+				    		getLog().log(ILog.ERROR, "ws_ant", 5095, this, "callPrimitiveSetter", EnvironmentMessages.bind(EnvironmentMessages.MSG_ERR_ANT_CALL_SETTER, element.getName()));
 				    		throw new CoreException(errorStatus);
 				    	}
 				    }			
@@ -505,7 +464,7 @@
 					{
 						Status errorStatus = new Status(Status.ERROR, "ws_ant", 5096, exc.getMessage(), exc);
 						getStatusHandler().reportError(errorStatus);
-						getLog().log(ILog.ERROR, "ws_ant", 5096, this, "callSetterConstructor", EnvironmentMessages.bind(EnvironmentMessages.MSG_ERROR_ANT_CALL_SETTER, element.getName()));
+						getLog().log(ILog.ERROR, "ws_ant", 5096, this, "callSetterConstructor", EnvironmentMessages.bind(EnvironmentMessages.MSG_ERR_ANT_CALL_SETTER, element.getName()));
 						throw new CoreException(errorStatus);
 					}
 				}
@@ -524,7 +483,7 @@
        {
     	   
     	   //look up the commandFragment in the scenarioRegistry extension point with an ID corresponding to the scenario property in the propertytable
-    	   String scenarioProperty = (String)getProperty(SCENARIO_TYPE_PROPERTY);
+    	   String scenarioProperty = (String)getProperty(SCENARIO_TYPE_ATTRIBUTE);
     	   IExtensionRegistry reg = Platform.getExtensionRegistry();
 		   IExtensionPoint extPt = reg.getExtensionPoint(EXT_PT_NAMESPACE, SCENARIO_EXT_PT);
 		   
@@ -548,7 +507,7 @@
 				 {
 					 Status errorStatus = new Status(Status.ERROR, "ws_ant", 5097, exception.getMessage(), exception);
 					 getStatusHandler().reportError(errorStatus);
-					 getLog().log(ILog.ERROR, "ws_ant", 5097, this, "getRootCommandFragment", EnvironmentMessages.MSG_ERROR_ANT_CMD_FRAGMENT);					 
+					 getLog().log(ILog.ERROR, "ws_ant", 5097, this, "getRootCommandFragment", EnvironmentMessages.MSG_ERR_ANT_CMD_FRAGMENT);					 
 				 }				 
 			  }    	   
            }
diff --git a/bundles/org.eclipse.wst.command.env/src/org/eclipse/wst/command/internal/env/common/FileResourceUtils.java b/bundles/org.eclipse.wst.command.env/src/org/eclipse/wst/command/internal/env/common/FileResourceUtils.java
index 81142a3..0c85096 100644
--- a/bundles/org.eclipse.wst.command.env/src/org/eclipse/wst/command/internal/env/common/FileResourceUtils.java
+++ b/bundles/org.eclipse.wst.command.env/src/org/eclipse/wst/command/internal/env/common/FileResourceUtils.java
@@ -4,12 +4,11 @@
  * 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060112   121199 jesper@selskabet.org - Jesper Møller
+ *     IBM Corporation - initial API and implementation
+ *     yyyymmdd	bug #	email					comment
+ *     20060112	[121199] jesper@selskabet.org 	- Jesper S Moller contributed patch for createFileAtLocation and makeFolderPathAtLocation
  *******************************************************************************/
 package org.eclipse.wst.command.internal.env.common;
 
diff --git a/bundles/org.eclipse.wst.command.env/src/org/eclipse/wst/command/internal/env/plugin/EnvPlugin.java b/bundles/org.eclipse.wst.command.env/src/org/eclipse/wst/command/internal/env/plugin/EnvPlugin.java
index 6eb1c42..cb8f4ab 100644
--- a/bundles/org.eclipse.wst.command.env/src/org/eclipse/wst/command/internal/env/plugin/EnvPlugin.java
+++ b/bundles/org.eclipse.wst.command.env/src/org/eclipse/wst/command/internal/env/plugin/EnvPlugin.java
@@ -22,11 +22,6 @@
 	private static EnvPlugin instance;
 
 	/**
-	  * The identifier of the descriptor of this plugin in plugin.xml.
-	  */
-	  public static final String ID = "org.eclipse.wst.command.env";	
-	
-	/**
 	 * The constructor.
 	 */
 	public EnvPlugin() {
diff --git a/bundles/org.eclipse.wst.ws.explorer/.cvsignore b/bundles/org.eclipse.wst.ws.explorer/.cvsignore
index a8fd994..7b4a75f 100644
--- a/bundles/org.eclipse.wst.ws.explorer/.cvsignore
+++ b/bundles/org.eclipse.wst.ws.explorer/.cvsignore
@@ -6,4 +6,3 @@
 *.jar
 *.war
 explorersrc.zip
-javaCompiler.*.args
diff --git a/bundles/org.eclipse.wst.ws.explorer/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.ws.explorer/META-INF/MANIFEST.MF
index 979d305..3aab59c 100644
--- a/bundles/org.eclipse.wst.ws.explorer/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.wst.ws.explorer/META-INF/MANIFEST.MF
@@ -2,16 +2,50 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %PLUGIN_NAME
 Bundle-SymbolicName: org.eclipse.wst.ws.explorer; singleton:=true
-Bundle-Version: 1.0.101.qualifier
+Bundle-Version: 1.0.1.qualifier
 Bundle-ClassPath: explorer.jar,
  wsexplorer-properties.jar
 Bundle-Activator: org.eclipse.wst.ws.internal.explorer.plugin.ExplorerPlugin
 Bundle-Vendor: %PLUGIN_PROVIDER
 Bundle-Localization: plugin
-Export-Package: org.eclipse.wst.ws.internal.explorer;x-internal:=true,
- org.eclipse.wst.ws.internal.explorer.favorites;x-internal:=true,
- org.eclipse.wst.ws.internal.explorer.plugin;x-internal:=true,
- org.eclipse.wst.ws.internal.explorer.popup;x-internal:=true
+Export-Package: org.eclipse.wst.ws.internal.explorer,
+ org.eclipse.wst.ws.internal.explorer.favorites,
+ org.eclipse.wst.ws.internal.explorer.platform.actions,
+ org.eclipse.wst.ws.internal.explorer.platform.constants,
+ org.eclipse.wst.ws.internal.explorer.platform.datamodel,
+ org.eclipse.wst.ws.internal.explorer.platform.engine,
+ org.eclipse.wst.ws.internal.explorer.platform.engine.constants,
+ org.eclipse.wst.ws.internal.explorer.platform.engine.data,
+ org.eclipse.wst.ws.internal.explorer.platform.engine.transformer,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.actions,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.constants,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.datamodel,
+ org.eclipse.wst.ws.internal.explorer.platform.favorites.perspective,
+ org.eclipse.wst.ws.internal.explorer.platform.perspective,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.actions,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.constants,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.datamodel,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective,
+ org.eclipse.wst.ws.internal.explorer.platform.uddi.util,
+ org.eclipse.wst.ws.internal.explorer.platform.util,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.impl,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.util,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.transformer,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.transport,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.util,
+ org.eclipse.wst.ws.internal.explorer.platform.wsdl.xsd,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.actions,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.constants,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.datamodel,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.perspective,
+ org.eclipse.wst.ws.internal.explorer.platform.wsil.transformer,
+ org.eclipse.wst.ws.internal.explorer.plugin,
+ org.eclipse.wst.ws.internal.explorer.popup
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.core.resources,
  org.eclipse.tomcat,
@@ -33,6 +67,5 @@
  org.eclipse.wst.common.frameworks,
  org.eclipse.wst.common.frameworks.ui,
  org.eclipse.wst.common.environment,
- org.eclipse.wst.common.uriresolver,
- com.ibm.icu
-Eclipse-LazyStart: true
+ org.eclipse.wst.common.uriresolver
+Eclipse-AutoStart: true
diff --git a/bundles/org.eclipse.wst.ws.explorer/properties/favorites_default.wsil b/bundles/org.eclipse.wst.ws.explorer/properties/favorites_default.wsil
index 015cac3..10658f4 100644
--- a/bundles/org.eclipse.wst.ws.explorer/properties/favorites_default.wsil
+++ b/bundles/org.eclipse.wst.ws.explorer/properties/favorites_default.wsil
@@ -6,6 +6,34 @@
   <abstract xml:lang="en-US">v5_0_1_0</abstract>
 
   <link referencedNamespace="urn:uddi-org:api">
+    <abstract xml:lang="en-US">%PUBLICUDDIREGISTRYTYPE_NAME_IBM_TEST</abstract>
+    <abstract xml:lang="en-US">http://uddi.ibm.com/testregistry/inquiryapi</abstract>
+    <abstract xml:lang="en-US">https://uddi.ibm.com/testregistry/publishapi</abstract>
+    <abstract xml:lang="en-US">http://uddi.ibm.com/testregistry/registry.html</abstract>
+  </link>
+
+  <link referencedNamespace="urn:uddi-org:api">
+    <abstract xml:lang="en-US">%PUBLICUDDIREGISTRYTYPE_NAME_IBM</abstract>
+    <abstract xml:lang="en-US">http://uddi.ibm.com/ubr/inquiryapi</abstract>
+    <abstract xml:lang="en-US">https://uddi.ibm.com/ubr/publishapi</abstract>
+    <abstract xml:lang="en-US">http://uddi.ibm.com/ubr/registry.html</abstract>
+  </link>
+
+  <link referencedNamespace="urn:uddi-org:api">
+    <abstract xml:lang="en-US">%PUBLICUDDIREGISTRYTYPE_NAME_MICROSOFT_TEST</abstract>
+    <abstract xml:lang="en-US">http://test.uddi.microsoft.com/inquire</abstract>
+    <abstract xml:lang="en-US">https://test.uddi.microsoft.com/publish</abstract>
+    <abstract xml:lang="en-US">https://test.uddi.microsoft.com/register.aspx</abstract>
+  </link>
+
+  <link referencedNamespace="urn:uddi-org:api">
+    <abstract xml:lang="en-US">%PUBLICUDDIREGISTRYTYPE_NAME_MICROSOFT</abstract>
+    <abstract xml:lang="en-US">http://uddi.microsoft.com/inquire</abstract>
+    <abstract xml:lang="en-US">https://uddi.microsoft.com/publish</abstract>
+    <abstract xml:lang="en-US">https://uddi.microsoft.com/register.aspx</abstract>
+  </link>
+
+  <link referencedNamespace="urn:uddi-org:api">
     <abstract xml:lang="en-US">%PUBLICUDDIREGISTRYTYPE_NAME_SAP_TEST</abstract>
     <abstract xml:lang="en-US">http://udditest.sap.com/UDDI/api/inquiry/</abstract>
     <abstract xml:lang="en-US">https://udditest.sap.com/UDDI/api/publish/</abstract>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-properties/uddi.properties b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-properties/uddi.properties
index 4c37a11..eddd983 100644
--- a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-properties/uddi.properties
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-properties/uddi.properties
@@ -25,6 +25,7 @@
 FORM_LABEL_REGISTRY_NAME=Registry Name
 FORM_LABEL_INQUIRY_URL=Inquiry URL
 FORM_LABEL_CHECK_USER_DEFINED_CATEGORIES=Check for user-defined categories
+DEFAULT_REGISTRY_NAME=IBM UDDI Test Registry
 MSG_ERROR_INVALID_REGISTRY_NAME=IWAB0136E Enter a valid registry name.
 MSG_ERROR_INVALID_INQUIRY_URL=IWAB0138E Enter a valid inquiry URL.
 MSG_INFO_REGISTRY_OPENED=IWAB0139I The registry named %1 located at %2 was opened successfully.
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/OpenRegistryTool.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/OpenRegistryTool.java
index 0f37be3..a2aee33 100644
--- a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/OpenRegistryTool.java
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/OpenRegistryTool.java
@@ -6,10 +6,7 @@
  * http://www.eclipse.org/legal/epl-v10.html
  * 
  * Contributors:
- * IBM Corporation - initial API and implementation
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060224   122752 cbrealey@ca.ibm.com - Chris Brealey
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 
 package org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective;
@@ -39,8 +36,8 @@
   {
     controller_ = toolManager_.getNode().getNodeManager().getController();
     UDDIPerspective uddiPerspective = controller_.getUDDIPerspective();
-    setProperty(UDDIActionInputs.REGISTRY_NAME,uddiPerspective.getDefaultUDDIRegistry().getName());
-    setProperty(UDDIActionInputs.INQUIRY_URL,uddiPerspective.getDefaultUDDIRegistry().getInquiryURL());
+    setProperty(UDDIActionInputs.REGISTRY_NAME,uddiPerspective.getMessage("DEFAULT_REGISTRY_NAME"));
+    setProperty(UDDIActionInputs.INQUIRY_URL,uddiPerspective.getIBMPublicUDDITestRegistry().getInquiryURL());
   }
 
   public String getSelectToolActionHref(boolean forHistory)
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/UDDIPerspective.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/UDDIPerspective.java
index 1368db6..7285e22 100644
--- a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/UDDIPerspective.java
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/UDDIPerspective.java
@@ -6,10 +6,7 @@
  * http://www.eclipse.org/legal/epl-v10.html
  * 
  * Contributors:
- * IBM Corporation - initial API and implementation
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060224   122752 cbrealey@ca.ibm.com - Chris Brealey
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.wst.ws.internal.explorer.platform.uddi.perspective;
 
@@ -50,7 +47,7 @@
 public class UDDIPerspective extends Perspective
 {
   private Hashtable knownRegistries_;
-  private IFavoritesUDDIRegistry defaultUDDIRegistry_;
+  private IFavoritesUDDIRegistry ibmPublicUDDITestRegistry_;
   private Model navigatorModel_;
   private NodeManager navigatorManager_;
   private int wsdlType_;
@@ -63,6 +60,9 @@
   private String actionsContainerFramesetRows_;
   private String savedActionsContainerFramesetRows_;
 
+  private final String IBM_TEST_REG_INQUIRY_URL = "http://uddi.ibm.com/testregistry/inquiryapi";
+  private final String IBM_TEST_REG_PUBLISH_URL = "https://uddi.ibm.com/testregistry/publishapi";
+
   public UDDIPerspective(Controller controller)
   {
     super("uddi",controller);
@@ -76,10 +76,12 @@
     knownRegistries_ = new Hashtable();
     for (int i=0;i<favRegistriesDefault.length;i++)
     {
+      if (favRegistriesDefault[i].getInquiryURL().equals(IBM_TEST_REG_INQUIRY_URL) && favRegistriesDefault[i].getPublishURL().equals(IBM_TEST_REG_PUBLISH_URL))
+        ibmPublicUDDITestRegistry_ = favRegistriesDefault[i];
       knownRegistries_.put(favRegistriesDefault[i].getInquiryURL(),favRegistriesDefault[i]);
     }
-    if (favRegistriesDefault.length > 0)
-      defaultUDDIRegistry_ = favRegistriesDefault[0];
+    if (ibmPublicUDDITestRegistry_ == null && favRegistriesDefault.length > 0)
+      ibmPublicUDDITestRegistry_ = favRegistriesDefault[0];
     
     navigatorModel_ = new BasicModel("uddiModel");
     UDDIMainElement uddiMainElement = new UDDIMainElement(getMessage("NODE_NAME_UDDI_MAIN"),navigatorModel_);
@@ -177,9 +179,9 @@
     return null;    
   }
 
-  public final IFavoritesUDDIRegistry getDefaultUDDIRegistry()
+  public final IFavoritesUDDIRegistry getIBMPublicUDDITestRegistry()
   {
-    return defaultUDDIRegistry_;
+    return ibmPublicUDDITestRegistry_;
   }
   
   public final void preloadUDDIRegistries(String[] inquiryURLs, String[] publishURLs)
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/util/HTMLUtils.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/util/HTMLUtils.java
index 83cf955..7ebcb0a 100644
--- a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/util/HTMLUtils.java
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/util/HTMLUtils.java
@@ -6,10 +6,7 @@
  * http://www.eclipse.org/legal/epl-v10.html
  * 
  * Contributors:
- * IBM Corporation - initial API and implementation
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060222   127443 jesper@selskabet.org - Jesper S Moller
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 
 package org.eclipse.wst.ws.internal.explorer.platform.util;
@@ -149,9 +146,6 @@
 
   /**
   * Replace special characters with HTML entities representing these characters.
-  * Note that this will also convert normal spaces into non-breaking spaces, which may be good for
-  * presentation but not for editing.
-  * 
   * @return String The converted String. Note: Order is important so that corrected entity references are not re-mangled.
   */
   public static final String charactersToHTMLEntities(String s) {
@@ -164,18 +158,6 @@
   }
 
   /**
-   * Replace special characters with HTML entities representing these characters
-   * @return String The converted String. Note: Order is important so that corrected entity references are not re-mangled.
-   */
-   public static final String charactersToHTMLEntitiesStrict(String s) {
-     s = stringReplace(s, AMPERSAND, AMPERSAND_HTML_ENTITY);
-     s = stringReplace(s, LESS_THAN, LESS_THAN_HTML_ENTITY);
-     s = stringReplace(s, GREATER_THAN, GREATER_THAN_HTML_ENTITY);
-     s = stringReplace(s, QUOTATION, QUOTATION_HTML_ENTITY);
-     return s;
-   }
-
-  /**
   * Replace HTML character entities with their associated characters.
   * @return String The converted String.
   */
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/util/QuickSort.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/util/QuickSort.java
index d018ee4..9fa7e2e 100644
--- a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/util/QuickSort.java
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/util/QuickSort.java
@@ -1,21 +1,18 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060217   127138 pmoogk@ca.ibm.com - Peter Moogk
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 
 package org.eclipse.wst.ws.internal.explorer.platform.util;
 
+import java.text.Collator;
 import java.util.Vector;
-import com.ibm.icu.text.Collator;
 
 public class QuickSort
 {
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDElementFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDElementFragment.java
index 2b78f02..e560d90 100644
--- a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDElementFragment.java
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDElementFragment.java
@@ -1,15 +1,12 @@
 /*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
+ * Copyright (c) 2002, 2004 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060119   123539 jesper@selskabet.org - Jesper Møller
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.impl;
 
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleListFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleListFragment.java
index a6c6661..764f842 100644
--- a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleListFragment.java
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDSimpleListFragment.java
@@ -1,19 +1,17 @@
 /*******************************************************************************
- * Copyright (c) 2002, 2006 IBM Corporation and others.
+ * Copyright (c) 2002, 2004 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060217   127138 pmoogk@ca.ibm.com - Peter Moogk
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.impl;
 
 import java.util.Hashtable;
+import java.util.StringTokenizer;
 import org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.FragmentConstants;
 import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.IXSDFragment;
 import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.IXSDSimpleListFragment;
@@ -27,7 +25,6 @@
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
-import com.ibm.icu.util.StringTokenizer;
 
 public abstract class XSDSimpleListFragment extends XSDMapFragment implements IXSDSimpleListFragment
 {
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/transport/HTTPTransport.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/transport/HTTPTransport.java
index 1487621..7d5c2c4 100644
--- a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/transport/HTTPTransport.java
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/transport/HTTPTransport.java
@@ -10,8 +10,6 @@
  * yyyymmdd bug      Email and other contact information
  * -------- -------- -----------------------------------------------------------
  * 20060131   125777 jesper@selskabet.org - Jesper S Moller
- * 20060222   118019 andyzhai@ca.ibm.com - Andy Zhai
- * 20060222   128564 jesper@selskabet.org - Jesper S Moller
  *******************************************************************************/
 package org.eclipse.wst.ws.internal.explorer.platform.wsdl.transport;
 
@@ -36,13 +34,11 @@
 {
   private final String SYS_PROP_HTTPS_PROXY_HOST = "https.proxyHost";
   private final String SYS_PROP_HTTPS_PROXY_PORT = "https.proxyPort";
-  private final String SYS_PROP_HTTPS_NON_PROXY_HOSTS = "https.nonProxyHosts";
   private final String SYS_PROP_HTTP_PROXY_HOST = "http.proxyHost";
   private final String SYS_PROP_HTTP_PROXY_PORT = "http.proxyPort";
   private final String SYS_PROP_HTTP_PROXY_USER_NAME = "http.proxyUserName";
   private final String SYS_PROP_HTTP_PROXY_PASSWORD = "http.proxyPassword";
-  private final String SYS_PROP_HTTP_NON_PROXY_HOSTS = "http.nonProxyHosts";
-  
+
   private final String HTTP_METHOD = "POST";
   private final String HTTP_VERSION = "HTTP/1.1";
   private final String HTTP_HEADER_SOAP_ACTION = "SOAPAction";
@@ -88,7 +84,6 @@
   private final int DEFAULT_HTTPS_PORT = 443;
   private final String DEFAULT_SOAP_ENCODING = "UTF-8";
   private final String DEFAULT_HTTP_HEADER_ENCODING = "iso-8859-1";
-  private final boolean DEFAULT_CASE_SENSITIVE_FOR_HOST_NAME = false;
 
   private String httpBasicAuthUsername;
   private String httpBasicAuthPassword;
@@ -169,9 +164,9 @@
     return getHTTPHeader(HTTP_HEADER_CONTENT_TYPE, CONTENT_TYPE_VALUE);
   }
   
-  private String getContentLength(byte[] payloadAsBytes)
+  private String getContentLength(String payload)
   {
-    return getHTTPHeader(HTTP_HEADER_CONTENT_LENGTH, String.valueOf(payloadAsBytes.length));
+    return getHTTPHeader(HTTP_HEADER_CONTENT_LENGTH, String.valueOf(payload.length()));
   }
 
   private String getSOAPAction(String soapAction)
@@ -293,13 +288,11 @@
 
   public void send(URL url, String soapAction, String payload) throws UnknownHostException, IOException
   {
-    byte[] payloadAsUTF8 = payload.getBytes(DEFAULT_SOAP_ENCODING);
-       
     StringBuffer httpHeader = new StringBuffer();
     httpHeader.append(getMethod(url));
     httpHeader.append(getHost(url));
     httpHeader.append(getContentType());
-    httpHeader.append(getContentLength(payloadAsUTF8));
+    httpHeader.append(getContentLength(payload));
     httpHeader.append(getAccept());
     httpHeader.append(getUserAgent());
     httpHeader.append(getCacheControl());
@@ -315,7 +308,7 @@
     InputStream is = socket.getInputStream();
     OutputStream os = socket.getOutputStream();
     os.write(httpHeader.toString().getBytes(DEFAULT_HTTP_HEADER_ENCODING));
-    os.write(payloadAsUTF8);
+    os.write(payload.getBytes(DEFAULT_SOAP_ENCODING));
     os.flush();
     httpResponse = new HTTPResponse();
     readHTTPResponseHeader(is, httpResponse);
@@ -479,18 +472,13 @@
     int port = url.getPort();
     String proxyHost = System.getProperty(SYS_PROP_HTTP_PROXY_HOST);
     int proxyPort = Integer.getInteger(SYS_PROP_HTTP_PROXY_PORT, DEFAULT_HTTP_PORT).intValue();
-    
-    String nonProxyHosts = System.getProperty(SYS_PROP_HTTP_NON_PROXY_HOSTS);
-
-    //  String proxyUserName = System.getProperty(SYS_PROP_HTTP_PROXY_USER_NAME);
-    //  String proxyPassword = System.getProperty(SYS_PROP_HTTP_PROXY_PASSWORD);
+//    String proxyUserName = System.getProperty(SYS_PROP_HTTP_PROXY_USER_NAME);
+//    String proxyPassword = System.getProperty(SYS_PROP_HTTP_PROXY_PASSWORD);
     if (url.getProtocol().equalsIgnoreCase(HTTPS))
     {
       proxyHost = System.getProperty(SYS_PROP_HTTPS_PROXY_HOST);
       proxyPort = Integer.getInteger(SYS_PROP_HTTPS_PROXY_PORT, DEFAULT_HTTPS_PORT).intValue();
-      nonProxyHosts = System.getProperty(SYS_PROP_HTTPS_NON_PROXY_HOSTS);
-
-      if (proxyHost != null && proxyHost.length() > 0 && !isHostInNonProxyHosts(host, nonProxyHosts, DEFAULT_CASE_SENSITIVE_FOR_HOST_NAME))
+      if (proxyHost != null && proxyHost.length() > 0)
       {
         // TODO:
         // SSL with proxy server
@@ -504,54 +492,10 @@
       // as demonstrated in the following (original) line of code:
       //  s = SSLUtils.buildSSLSocket(host, (port > 0 ? port : DEFAULT_HTTPS_PORT), proxyHost, proxyPort, proxyUserName, proxyPassword);
     }
-    else if (proxyHost != null && proxyHost.length() > 0 && !isHostInNonProxyHosts(host, nonProxyHosts, DEFAULT_CASE_SENSITIVE_FOR_HOST_NAME))
+    else if (proxyHost != null && proxyHost.length() > 0)
       s = new Socket(proxyHost, proxyPort);
     else
       s = new Socket(host, (port > 0 ? port : DEFAULT_HTTP_PORT));
     return s;
   }
-  
-  private boolean isHostInNonProxyHosts(String host, String nonProxyHosts, boolean caseSensitive)
-  {
-  	if (caseSensitive) return host.matches(createPatternFromString(nonProxyHosts));
-  	else return host.toLowerCase().matches(createPatternFromString(nonProxyHosts.toLowerCase()));  
-  }
-  
-  /*
-   * This method is used to generate a valid regular expression for a 
-   * normal java String used in the proxy mechanism. 
-   * For example, the http.nonProxyHosts contains following String: 
-   * "192.168.2.*|localhost|*.ibm.com" . It would be 
-   * transformed into: "192\.168\.2\.\w*|localhost|\w*\.ibm\.com"
-   * Thus, following host string would match above pattern:
-   * 192.168.2.5 192.168.2. 192.168.2.666 192.168.2.w
-   * localhost
-   * torolab.ibm.com .ibm.com 123.ibm.com
-   * 
-   * Two transformations are done:
-   * 1. replace all "." into "\." As in regular expression, '.' represents 
-   *    any charater.  "\.' represents the real character '.'
-   * 2. In order to get the real meaning of "*" used in property 
-   *    http.nonProxyHosts, "\w*" is used to replace "*"
-   *    "\w" represent a word character: [a-zA-Z_0-9]
-   *    
-   * Restriction:
-   * The validity of address is not checked. 
-   * (192.168.2.555 and 192.168.2.com are OK)
-   * 
-   * TODO check whether * occurs in address or hostname.
-   * if it occuus in address representation, replace "*" with "\d*"
-   * and check: value < 256 ?
-   */
-  private String createPatternFromString(String str) 
-  {
-    /* This is the same as following more understandable way:
-	 * return str.replace(".", "\\.").replace("*", "\\w*");
-	 * But, replace(CharSequence target, CharSequence replacement) can only be 
-	 * supported after j2se 1.5, on the other hand, 
-	 * replaceAll(String regex, String replacement) can be supported before 
-	 * j2se 1.5.
-	 */
-    return str == null ? null : str.replaceAll("\\.", "\\.").replaceAll("\\*", "\\w*");
-  }
 }
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/FragmentsSoapView.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/FragmentsSoapView.jsp
index 53d8b7d..ff2c753 100644
--- a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/FragmentsSoapView.jsp
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/forms/FragmentsSoapView.jsp
@@ -7,10 +7,7 @@
  * http://www.eclipse.org/legal/epl-v10.html
  * 
  * Contributors:
- * IBM Corporation - initial API and implementation
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060222   127443 jesper@selskabet.org - Jesper S Moller
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 %>
 <%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
@@ -90,7 +87,7 @@
     if (numberOfAttributes == 0)
       header.append('>');
 %>
-      <%=HTMLUtils.charactersToHTMLEntitiesStrict(header.toString())%>
+      <%=HTMLUtils.charactersToHTMLEntities(header.toString())%>
     </td>
   </tr>
 </table>
@@ -270,7 +267,7 @@
       <img width=<%=sourceContentIndentationImageWidth%> height=16 src="<%=response.encodeURL(controller.getPathWithContext("images/space.gif"))%>">
     </td>
     <td width="100%">
-      <textarea id="soap_body_content" name="<%=FragmentConstants.SOURCE_CONTENT%>" class="bigtextareaenter"><%=HTMLUtils.charactersToHTMLEntitiesStrict(sourceContent.toString())%></textarea>
+      <textarea id="soap_body_content" name="<%=FragmentConstants.SOURCE_CONTENT%>" class="bigtextareaenter"><%=sourceContent.toString()%></textarea>
     </td>
   </tr>
 </table>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDDefaultRFragmentJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDDefaultRFragmentJSP.jsp
index cc9c9f0..c00694f 100644
--- a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDDefaultRFragmentJSP.jsp
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDDefaultRFragmentJSP.jsp
@@ -7,10 +7,7 @@
  * http://www.eclipse.org/legal/epl-v10.html
  * 
  * Contributors:
- * IBM Corporation - initial API and implementation
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060222   127443 jesper@selskabet.org - Jesper S Moller
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 %>
 <%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
@@ -58,7 +55,7 @@
 <table cellpadding=3 cellspacing=0 class="<%=(xsdConfig.getIsWSDLPart() ? "fixfragtable" : "innerfixfragtable")%>">
   <tr>
     <td>
-      <textarea id="<%=frag.getID()%>" name="<%=frag.getID()%>" class="textareaenter" readonly><%=HTMLUtils.charactersToHTMLEntitiesStrict(sb.toString())%></textarea>
+      <textarea id="<%=frag.getID()%>" name="<%=frag.getID()%>" class="textareaenter" readonly><%=sb.toString()%></textarea>
 <%
       /*
       StringBuffer url = new StringBuffer();
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDDefaultRFragmentXML.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDDefaultRFragmentXML.jsp
index 5ee0313..6a90818 100644
--- a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDDefaultRFragmentXML.jsp
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDDefaultRFragmentXML.jsp
@@ -1,18 +1,3 @@
-<%
-/*******************************************************************************
- * Copyright (c) 2002, 2004 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060222   127443 jesper@selskabet.org - Jesper S Moller
- *******************************************************************************/
-%>
 <%@ page contentType="text/xml; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
                                                         org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.*,
                                                         org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.*,
@@ -96,7 +81,7 @@
   for (int i = 0; i < instanceDocuments.length; i++) {
     if (instanceDocuments[i] == null)
       continue;
-    sb.append(HTMLUtils.charactersToHTMLEntitiesStrict(XMLUtils.serialize(instanceDocuments[i], true)));
+    sb.append(HTMLUtils.charactersToHTMLEntities(XMLUtils.serialize(instanceDocuments[i], true)));
   }
 %>
 <%=sb.toString()%>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDDefaultWFragmentJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDDefaultWFragmentJSP.jsp
index b82f3b3..10a2f7f 100644
--- a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDDefaultWFragmentJSP.jsp
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDDefaultWFragmentJSP.jsp
@@ -7,10 +7,7 @@
  * http://www.eclipse.org/legal/epl-v10.html
  * 
  * Contributors:
- * IBM Corporation - initial API and implementation
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060222   127443 jesper@selskabet.org - Jesper S Moller
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 %>
 <%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
@@ -52,7 +49,7 @@
 <table cellpadding=3 cellspacing=0 class="<%=(xsdConfig.getIsWSDLPart() ? "fixfragtable" : "innerfixfragtable")%>">
   <tr>
     <td>
-      <textarea id="<%=frag.getID()%>" name="<%=frag.getID()%>" class="textareaenter"><%=((param != null) ? HTMLUtils.charactersToHTMLEntitiesStrict(param) : "")%></textarea>
+      <textarea id="<%=frag.getID()%>" name="<%=frag.getID()%>" class="textareaenter"><%=((param != null) ? param : "")%></textarea>
     </td>
   </tr>
 </table>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleAtomicDateTimeFixWFragmentJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleAtomicDateTimeFixWFragmentJSP.jsp
index 8b84992..68391d3 100644
--- a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleAtomicDateTimeFixWFragmentJSP.jsp
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleAtomicDateTimeFixWFragmentJSP.jsp
@@ -7,10 +7,7 @@
  * http://www.eclipse.org/legal/epl-v10.html
  * 
  * Contributors:
- * IBM Corporation - initial API and implementation
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060222   127443 jesper@selskabet.org - Jesper S Moller
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 %>
 <%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
@@ -68,7 +65,7 @@
       <%
       String value = frag.getParameterValue(frag.getID(), i);
       %>
-      <input type="text" id="<%=frag.getID()%>" name="<%=fragIDString%>" value="<%=((value != null) ? HTMLUtils.charactersToHTMLEntitiesStrict(value) : "")%>" size="50" class="tabletextenter">
+      <input type="text" id="<%=frag.getID()%>" name="<%=fragIDString%>" value="<%=((value != null) ? value : "")%>" size="50" class="tabletextenter">
     </td>
     <td valign="center" align="left" nowrap>
       <a href="javascript:openCalendarBrowser(<%=request.getParameter(ActionInputs.CALENDAR_TYPE)%>,'contentborder','<%=fragIDString%>',<%=i%>)"><%=controller.getMessage("FORM_LINK_BROWSE")%></a>
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleAtomicFixWFragmentJSP.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleAtomicFixWFragmentJSP.jsp
index f3f18de..877601d 100644
--- a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleAtomicFixWFragmentJSP.jsp
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl/fragment/XSDSimpleAtomicFixWFragmentJSP.jsp
@@ -7,10 +7,7 @@
  * http://www.eclipse.org/legal/epl-v10.html
  * 
  * Contributors:
- * IBM Corporation - initial API and implementation
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060222   127443 jesper@selskabet.org - Jesper S Moller
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 %>
 <%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.wst.ws.internal.explorer.platform.wsdl.perspective.*,
@@ -66,7 +63,7 @@
       <%
       String value = frag.getParameterValue(frag.getID(), i);
       %>
-      <input type="text" id="<%=frag.getID()%>" name="<%=frag.getID()%>" value="<%=((value != null) ? HTMLUtils.charactersToHTMLEntitiesStrict(value) : "")%>" size="50" class="tabletextenter">
+      <input type="text" id="<%=frag.getID()%>" name="<%=frag.getID()%>" value="<%=((value != null) ? value : "")%>" size="50" class="tabletextenter">
     </td>
   </tr>
   <%
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl_content.jsp b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl_content.jsp
index 2618e5a..432dd8d 100644
--- a/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl_content.jsp
+++ b/bundles/org.eclipse.wst.ws.explorer/wsexplorer/wsdl_content.jsp
@@ -1,16 +1,13 @@
 <%
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060317   127456 cbrealey@ca.ibm.com - Chris Brealey
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 %>
 <%@ page contentType="text/html; charset=UTF-8" import="org.eclipse.core.resources.*,
@@ -37,13 +34,6 @@
    HttpSession currentSession = (HttpSession)application.getAttribute(sessionId);
    Controller controller = (Controller)currentSession.getAttribute("controller");
    int wsdlType = controller.getWSDLType();
-   
-   Iterator wsIterator = WebServiceFinder.instance().getWebServices(null);    
-   Vector allWebServices = new Vector();
-   while (wsIterator.hasNext())
-   {
-     allWebServices.add(wsIterator.next());
-   }
 %>
 <html>
 <head>
@@ -107,8 +97,8 @@
          String httpProtocol = "http://";
          String httpsProtocol = "https://";
          wsdlURLs_.removeAllElements();
-
-		 Iterator ws = allWebServices.iterator();        
+         
+         Iterator ws = WebServiceFinder.instance().getWebServices();  
 
          while (ws.hasNext())
          {
diff --git a/bundles/org.eclipse.wst.ws.parser/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.ws.parser/META-INF/MANIFEST.MF
index 8b3fd2a..4d33646 100644
--- a/bundles/org.eclipse.wst.ws.parser/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.wst.ws.parser/META-INF/MANIFEST.MF
@@ -2,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %PLUGIN_NAME
 Bundle-SymbolicName: org.eclipse.wst.ws.parser
-Bundle-Version: 1.0.100.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-Activator: org.eclipse.wst.ws.internal.parser.plugin.ParserPlugin
 Bundle-Vendor: %PLUGIN_PROVIDER
 Bundle-Localization: plugin
-Export-Package: org.eclipse.wst.ws.internal.parser.disco;x-internal:=true,
- org.eclipse.wst.ws.internal.parser.discovery;x-internal:=true,
- org.eclipse.wst.ws.internal.parser.favorites;x-internal:=true,
- org.eclipse.wst.ws.internal.parser.plugin;x-internal:=true,
- org.eclipse.wst.ws.internal.parser.wsil;x-internal:=true,
+Export-Package: org.eclipse.wst.ws.internal.parser.disco,
+ org.eclipse.wst.ws.internal.parser.discovery,
+ org.eclipse.wst.ws.internal.parser.favorites,
+ org.eclipse.wst.ws.internal.parser.plugin,
+ org.eclipse.wst.ws.internal.parser.wsil,
  org.eclipse.wst.ws.parser
 Require-Bundle: org.eclipse.wst.wsdl,
  org.wsdl4j,
@@ -18,4 +18,4 @@
  org.apache.wsil4j,
  org.uddi4j,
  org.eclipse.wst.command.env.core
-Eclipse-LazyStart: true
+Eclipse-AutoStart: true
diff --git a/bundles/org.eclipse.wst.ws.parser/build.properties b/bundles/org.eclipse.wst.ws.parser/build.properties
index 94cf66e..f41b40a 100644
--- a/bundles/org.eclipse.wst.ws.parser/build.properties
+++ b/bundles/org.eclipse.wst.ws.parser/build.properties
@@ -1,4 +1,5 @@
-bin.includes = .,\
+bin.includes = plugin.xml,\
+               .,\
                META-INF/,\
                plugin.properties,\
                about.html
diff --git a/bundles/org.eclipse.wst.ws.parser/src/org/eclipse/wst/ws/parser/PluginMessages.java b/bundles/org.eclipse.wst.ws.parser/src/org/eclipse/wst/ws/parser/PluginMessages.java
index 939b0d5..9609cb5 100644
--- a/bundles/org.eclipse.wst.ws.parser/src/org/eclipse/wst/ws/parser/PluginMessages.java
+++ b/bundles/org.eclipse.wst.ws.parser/src/org/eclipse/wst/ws/parser/PluginMessages.java
@@ -11,6 +11,10 @@
     NLS.initializeMessages(BUNDLE_NAME, PluginMessages.class);
   }
 
+  public static String PUBLICUDDIREGISTRYTYPE_NAME_IBM;
+  public static String PUBLICUDDIREGISTRYTYPE_NAME_IBM_TEST;
+  public static String PUBLICUDDIREGISTRYTYPE_NAME_MICROSOFT;
+  public static String PUBLICUDDIREGISTRYTYPE_NAME_MICROSOFT_TEST;
   public static String PUBLICUDDIREGISTRYTYPE_NAME_SAP;
   public static String PUBLICUDDIREGISTRYTYPE_NAME_SAP_TEST;
   public static String PUBLICUDDIREGISTRYTYPE_NAME_XMETHODS;
diff --git a/bundles/org.eclipse.wst.ws.parser/src/org/eclipse/wst/ws/parser/plugin.properties b/bundles/org.eclipse.wst.ws.parser/src/org/eclipse/wst/ws/parser/plugin.properties
index 0080e47..ec8bde8 100644
--- a/bundles/org.eclipse.wst.ws.parser/src/org/eclipse/wst/ws/parser/plugin.properties
+++ b/bundles/org.eclipse.wst.ws.parser/src/org/eclipse/wst/ws/parser/plugin.properties
@@ -12,6 +12,10 @@
 #
 # PublicUDDIRegistryType
 #
+PUBLICUDDIREGISTRYTYPE_NAME_IBM=IBM UDDI Registry
+PUBLICUDDIREGISTRYTYPE_NAME_IBM_TEST=IBM UDDI Test Registry
+PUBLICUDDIREGISTRYTYPE_NAME_MICROSOFT=Microsoft UDDI Registry
+PUBLICUDDIREGISTRYTYPE_NAME_MICROSOFT_TEST=Microsoft UDDI Test Registry
 PUBLICUDDIREGISTRYTYPE_NAME_SAP=SAP UDDI Registry
 PUBLICUDDIREGISTRYTYPE_NAME_SAP_TEST=SAP UDDI Test Registry
 PUBLICUDDIREGISTRYTYPE_NAME_XMETHODS=XMethods Registry
diff --git a/bundles/org.eclipse.wst.ws.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.ws.ui/META-INF/MANIFEST.MF
index 02be52f..29a2412 100644
--- a/bundles/org.eclipse.wst.ws.ui/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.wst.ws.ui/META-INF/MANIFEST.MF
@@ -2,19 +2,19 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %PLUGIN_NAME
 Bundle-SymbolicName: org.eclipse.wst.ws.ui; singleton:=true
-Bundle-Version: 1.0.100.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-Activator: org.eclipse.wst.ws.internal.ui.plugin.WSUIPlugin
 Bundle-Vendor: %PLUGIN_PROVIDER
 Bundle-Localization: plugin
-Export-Package: org.eclipse.wst.ws.internal.ui;x-internal:=true,
- org.eclipse.wst.ws.internal.ui.plugin;x-internal:=true,
- org.eclipse.wst.ws.internal.ui.preferences;x-internal:=true,
- org.eclipse.wst.ws.internal.ui.wsi.preferences;x-internal:=true,
- org.eclipse.wst.ws.internal.ui.wsi.properties;x-internal:=true,
- org.eclipse.wst.ws.internal.ui.wsrt;x-internal:=true
+Export-Package: org.eclipse.wst.ws.internal.ui.wsrt,
+ org.eclipse.wst.ws.internal.ui.plugin,
+ org.eclipse.wst.ws.internal.ui.preferences,
+ org.eclipse.wst.ws.internal.ui.wsi.preferences,
+ org.eclipse.wst.ws.internal.ui.wsi.properties,
+ org.eclipse.wst.ws.internal.ui
 Require-Bundle: org.eclipse.ui,
  org.eclipse.core.runtime,
  org.eclipse.core.resources,
  org.eclipse.wst.command.env.ui,
  org.eclipse.wst.ws
-Eclipse-LazyStart: true
+Eclipse-AutoStart: true
diff --git a/bundles/org.eclipse.wst.ws.ui/src/org/eclipse/wst/ws/internal/ui/WstWSUIPlugin.properties b/bundles/org.eclipse.wst.ws.ui/src/org/eclipse/wst/ws/internal/ui/WstWSUIPlugin.properties
index 76f7380..44a8b7d 100644
--- a/bundles/org.eclipse.wst.ws.ui/src/org/eclipse/wst/ws/internal/ui/WstWSUIPlugin.properties
+++ b/bundles/org.eclipse.wst.ws.ui/src/org/eclipse/wst/ws/internal/ui/WstWSUIPlugin.properties
@@ -38,11 +38,11 @@
 TOOLTIP_PWSI_RADIO_IGNORE_NON_WSI=Silently allow choices that do not comply with WS-I.
 TOOLTIP_PWSI_RADIO_FOLLOW_WSI_PREFERENCE=Project would use WS-I compliance level set in Workspace Preference.
 
-LABEL_WSI_SSBP=WS-I S&SBP compliance level
+LABEL_WSI_SSBP=WS-I SSBP compliance level
 TOOLTIP_PWSI_SSBP_LABEL=WS-I Simple SOAP Binding Profile compliance level
 TOOLTIP_PWSI_SSBP_COMBO=Choose the WS-I Simple SOAP Binding Profile compliance level
 
-LABEL_WSI_AP=WS-I A&P compliance level
+LABEL_WSI_AP=WS-I AP compliance level
 TOOLTIP_PWSI_AP_LABEL=WS-I Attachment Profile compliance level
 TOOLTIP_PWSI_AP_COMBO=Choose the WS-I Attachment Profile compliance level
 
@@ -50,11 +50,11 @@
 #	WSDL Validation
 #
 LABEL_WSDLVAL=Select whether WSDL validation should be performed on wizards that consume WSDL files
-LABEL_WSDLVAL_NONE=&No wizard WSDL validation
-LABEL_WSDLVAL_REMOTE=Wizard WSDL validation for &remote files only
-LABEL_WSDLVAL_ALL=Wizard WSDL validation for &all WSDL files
+LABEL_WSDLVAL_NONE=No wizard WSDL validation
+LABEL_WSDLVAL_REMOTE=Wizard WSDL validation for remote files only
+LABEL_WSDLVAL_ALL=Wizard WSDL validation for all WSDL files
 LABEL_WAIT_FOR_WSDLVAL=Wait for WSDL validation to complete before moving along the wizards?
-BUTTON_WAIT_FOR_WSDLVAL=&Wait for pending WSDL validation to complete
+BUTTON_WAIT_FOR_WSDLVAL=Wait for pending WSDL validation to complete
 TOOLTIP_PWSI_RADIO_WSDLVAL_NONE=Do not perform WSDL validation on the WSDL file or URL input to the Web Services wizard
 TOOLTIP_PWSI_RADIO_WSDLVAL_REMOTE=Only perform WSDL validation on remote WSDL file or URL input to the Web Services wizard
 TOOLTIP_PWSI_RADIO_WSDLVAL_ALL=Perform WSDL validation on all WSDL file or URL input to the Web Services wizard
diff --git a/bundles/org.eclipse.wst.ws.ui/src/org/eclipse/wst/ws/internal/ui/wsi/preferences/WSICompliancePreferencePage.java b/bundles/org.eclipse.wst.ws.ui/src/org/eclipse/wst/ws/internal/ui/wsi/preferences/WSICompliancePreferencePage.java
index f2cd9af..32cdb63 100644
--- a/bundles/org.eclipse.wst.ws.ui/src/org/eclipse/wst/ws/internal/ui/wsi/preferences/WSICompliancePreferencePage.java
+++ b/bundles/org.eclipse.wst.ws.ui/src/org/eclipse/wst/ws/internal/ui/wsi/preferences/WSICompliancePreferencePage.java
@@ -1,15 +1,12 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
+ * Copyright (c) 2000, 2005 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060310   131352 pmoogk@ca.ibm.com - Peter Moogk
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.wst.ws.internal.ui.wsi.preferences;
 
@@ -27,7 +24,6 @@
 import org.eclipse.swt.widgets.Group;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Text;
 import org.eclipse.ui.IWorkbench;
 import org.eclipse.ui.IWorkbenchPreferencePage;
 import org.eclipse.ui.PlatformUI;
@@ -63,14 +59,14 @@
   
   private Group validationSelectionGroup_;
   
-  private Text wsdlValidationLabel_;
+  private Label wsdlValidationLabel_;
   /*CONTEXT_ID PWSI0009 for the No Wizard WSDL validation button on the Profile Compliance and Validation page*/
   private Button validateNoWsdlButton_;
   /*CONTEXT_ID PWSI00010 for the Wizard WSDL validation for remote files only button on the Profile Compliance and Validation page*/
   private Button validateRemoteWsdlButton_;
   /*CONTEXT_ID PWSI00011 for the Wizard WSDL validation for all files button on the Profile Compliance and Validation page*/
   private Button validateAllWsdlButton_;
-  private Text waitForWsdlValidationLabel_;
+  private Label waitForWsdlValidationLabel_;
   /*CONTEXT_ID PWSI00012 for the Wait for pending WSDL validation to complete checkbox on the Profile Compliance and Validation page*/
   private Button waitForWSDLValidationCheckbox_;
   
@@ -157,7 +153,7 @@
     GridData gd = new GridData(GridData.FILL_HORIZONTAL);
     validationSelectionGroup_.setLayoutData(gd);
     
-    wsdlValidationLabel_ = new Text(validationSelectionGroup_, SWT.READ_ONLY);
+    wsdlValidationLabel_ = new Label(validationSelectionGroup_, SWT.NONE);
     wsdlValidationLabel_.setText(WstWSUIPluginMessages.LABEL_WSDLVAL);
     wsdlValidationLabel_.setToolTipText(WstWSUIPluginMessages.TOOLTIP_PWSI_WSDLVAL_LABEL);
     helpSystem.setHelp(wsdlValidationLabel_, INFOPOP_PWSI_WSDLVAL_LABEL);
@@ -182,7 +178,7 @@
     
     new Label(validationSelectionGroup_, SWT.NONE);;
     
-    waitForWsdlValidationLabel_ = new Text(validationSelectionGroup_, SWT.READ_ONLY);
+    waitForWsdlValidationLabel_ = new Label(validationSelectionGroup_, SWT.NONE);
     waitForWsdlValidationLabel_.setText(WstWSUIPluginMessages.LABEL_WAIT_FOR_WSDLVAL);
     waitForWsdlValidationLabel_.setToolTipText(WstWSUIPluginMessages.TOOLTIP_PWSI_LABEL_WAIT_FOR_WSDLVAL);
     
diff --git a/bundles/org.eclipse.wst.ws/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.ws/META-INF/MANIFEST.MF
index 8385911..201b6b1 100644
--- a/bundles/org.eclipse.wst.ws/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.wst.ws/META-INF/MANIFEST.MF
@@ -2,35 +2,35 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %PLUGIN_NAME
 Bundle-SymbolicName: org.eclipse.wst.ws; singleton:=true
-Bundle-Version: 1.0.100.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-Activator: org.eclipse.wst.ws.internal.plugin.WSPlugin
 Bundle-Vendor: %PLUGIN_PROVIDER
 Bundle-Localization: plugin
-Export-Package: org.eclipse.wst.ws.internal;x-internal:=true,
- org.eclipse.wst.ws.internal.common;x-internal:=true,
- org.eclipse.wst.ws.internal.data;x-internal:=true,
- org.eclipse.wst.ws.internal.datamodel;x-internal:=true,
- org.eclipse.wst.ws.internal.ext;x-internal:=true,
- org.eclipse.wst.ws.internal.extensions;x-internal:=true,
- org.eclipse.wst.ws.internal.model.v10.registry;x-internal:=true,
- org.eclipse.wst.ws.internal.model.v10.registry.impl;x-internal:=true,
- org.eclipse.wst.ws.internal.model.v10.registry.util;x-internal:=true,
- org.eclipse.wst.ws.internal.model.v10.rtindex;x-internal:=true,
- org.eclipse.wst.ws.internal.model.v10.rtindex.impl;x-internal:=true,
- org.eclipse.wst.ws.internal.model.v10.rtindex.util;x-internal:=true,
- org.eclipse.wst.ws.internal.model.v10.taxonomy;x-internal:=true,
- org.eclipse.wst.ws.internal.model.v10.taxonomy.impl;x-internal:=true,
- org.eclipse.wst.ws.internal.model.v10.taxonomy.util;x-internal:=true,
- org.eclipse.wst.ws.internal.model.v10.uddiregistry;x-internal:=true,
- org.eclipse.wst.ws.internal.model.v10.uddiregistry.impl;x-internal:=true,
- org.eclipse.wst.ws.internal.model.v10.uddiregistry.util;x-internal:=true,
- org.eclipse.wst.ws.internal.monitor;x-internal:=true,
- org.eclipse.wst.ws.internal.plugin;x-internal:=true,
- org.eclipse.wst.ws.internal.preferences;x-internal:=true,
- org.eclipse.wst.ws.internal.registry;x-internal:=true,
- org.eclipse.wst.ws.internal.wsfinder;x-internal:=true,
- org.eclipse.wst.ws.internal.wsil;x-internal:=true,
- org.eclipse.wst.ws.internal.wsrt;x-internal:=true
+Export-Package: org.eclipse.wst.ws.internal,
+ org.eclipse.wst.ws.internal.common,
+ org.eclipse.wst.ws.internal.data,
+ org.eclipse.wst.ws.internal.datamodel,
+ org.eclipse.wst.ws.internal.ext,
+ org.eclipse.wst.ws.internal.extensions,
+ org.eclipse.wst.ws.internal.model.v10.registry,
+ org.eclipse.wst.ws.internal.model.v10.registry.impl,
+ org.eclipse.wst.ws.internal.model.v10.registry.util,
+ org.eclipse.wst.ws.internal.model.v10.rtindex,
+ org.eclipse.wst.ws.internal.model.v10.rtindex.impl,
+ org.eclipse.wst.ws.internal.model.v10.rtindex.util,
+ org.eclipse.wst.ws.internal.model.v10.taxonomy,
+ org.eclipse.wst.ws.internal.model.v10.taxonomy.impl,
+ org.eclipse.wst.ws.internal.model.v10.taxonomy.util,
+ org.eclipse.wst.ws.internal.model.v10.uddiregistry,
+ org.eclipse.wst.ws.internal.model.v10.uddiregistry.impl,
+ org.eclipse.wst.ws.internal.model.v10.uddiregistry.util,
+ org.eclipse.wst.ws.internal.monitor,
+ org.eclipse.wst.ws.internal.plugin,
+ org.eclipse.wst.ws.internal.preferences,
+ org.eclipse.wst.ws.internal.registry,
+ org.eclipse.wst.ws.internal.wsfinder,
+ org.eclipse.wst.ws.internal.wsil,
+ org.eclipse.wst.ws.internal.wsrt
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.wst.internet.monitor.core,
  org.eclipse.wst.server.core,
@@ -46,4 +46,4 @@
  org.eclipse.wst.common.environment,
  org.eclipse.emf.ecore,
  org.eclipse.emf.ecore.xmi
-Eclipse-LazyStart: true
+Eclipse-AutoStart: true
diff --git a/bundles/org.eclipse.wst.ws/plugin.properties b/bundles/org.eclipse.wst.ws/plugin.properties
index fbe1a74..691114c 100644
--- a/bundles/org.eclipse.wst.ws/plugin.properties
+++ b/bundles/org.eclipse.wst.ws/plugin.properties
@@ -19,11 +19,14 @@
 XP_WEB_SERVICE_LOCATOR=Web Service Locator
 X_WEB_SERVICE_LOCATOR_WORKSPACE=Workspace Web Service Locator
 X_WEB_SERVICE_LOCATOR_CATEGORY_WORKSPACE=Workspace WSDL documents
-X_WSIL_CONTENT_TYPE=Web Services Inspection Language Document
 
 MSG_ERROR_UNABLE_TO_START_MONITOR=IWAB0001E Unable to monitor port {0} of {1}.
 
 # Currently known public UDDI registries
+PUBLICUDDIREGISTRYTYPE_NAME_IBM=IBM UDDI Registry
+PUBLICUDDIREGISTRYTYPE_NAME_IBM_TEST=IBM UDDI Test Registry
+PUBLICUDDIREGISTRYTYPE_NAME_MICROSOFT=Microsoft UDDI Registry
+PUBLICUDDIREGISTRYTYPE_NAME_MICROSOFT_TEST=Microsoft UDDI Test Registry
 PUBLICUDDIREGISTRYTYPE_NAME_SAP=SAP UDDI Registry
 PUBLICUDDIREGISTRYTYPE_NAME_SAP_TEST=SAP UDDI Test Registry
 PUBLICUDDIREGISTRYTYPE_NAME_XMETHODS=XMethods Registry
diff --git a/bundles/org.eclipse.wst.ws/plugin.xml b/bundles/org.eclipse.wst.ws/plugin.xml
index cd686e3..99268cb 100644
--- a/bundles/org.eclipse.wst.ws/plugin.xml
+++ b/bundles/org.eclipse.wst.ws/plugin.xml
@@ -19,26 +19,9 @@
             id="org.eclipse.wst.ws.internal.wsfinder.WorkspaceWSDLLocator"
             category="org.eclipse.wst.ws.internal.wsfinder.category.workspace"
             label="%X_WEB_SERVICE_LOCATOR_WORKSPACE">
+         org.eclipse.wst.ws.internal.wsfinder
       </webServiceLocator>
 
    </extension>
-   
-   <!-- Extension to bind a file type to WSIL files -->
-   <extension point="org.eclipse.team.core.fileTypes">
-      <fileTypes
-            type="text"
-            extension="wsil"/>
-   </extension>
-
-   <!-- Extension to define a content type for WSIL files -->
-   <extension point="org.eclipse.core.runtime.contentTypes">
-      <content-type
-            priority="high"
-            name="%X_WSIL_CONTENT_TYPE"
-            id="wsilsource"
-            base-type="org.eclipse.core.runtime.xml"
-            default-charset="UTF-8"
-            file-extensions="wsil"/>
-   </extension>
     
 </plugin>
diff --git a/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/extensions/DeployClientFragment.java b/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/extensions/DeployClientFragment.java
index 6e37498..1cf5fe7 100644
--- a/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/extensions/DeployClientFragment.java
+++ b/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/extensions/DeployClientFragment.java
@@ -1,15 +1,12 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060221   119111 rsinha@ca.ibm.com - Rupam Kuehner
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 
 package org.eclipse.wst.ws.internal.extensions;
@@ -39,7 +36,7 @@
   {
 	ICommandFactory factory = null;
 	
-	if( webServiceClient_ == null || !context_.getDeploy())
+	if( webServiceClient_ == null )
 	{
 	  factory = new SimpleCommandFactory( new Vector() );
 	}
diff --git a/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/extensions/DeployServiceFragment.java b/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/extensions/DeployServiceFragment.java
index f1da8a4..3ad5ed7 100644
--- a/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/extensions/DeployServiceFragment.java
+++ b/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/extensions/DeployServiceFragment.java
@@ -1,15 +1,12 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060221   119111 rsinha@ca.ibm.com - Rupam Kuehner
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 
 package org.eclipse.wst.ws.internal.extensions;
@@ -39,7 +36,7 @@
   {
 	ICommandFactory factory = null;
 	
-	if( webService_ == null || !context_.getDeploy())
+	if( webService_ == null )
 	{
 	  factory = new SimpleCommandFactory( new Vector() );
 	}
diff --git a/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/wsfinder/AbstractWebServiceLocator.java b/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/wsfinder/AbstractWebServiceLocator.java
index 8c8080d..5c4c888 100644
--- a/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/wsfinder/AbstractWebServiceLocator.java
+++ b/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/wsfinder/AbstractWebServiceLocator.java
@@ -1,23 +1,20 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060317   127456 cbrealey@ca.ibm.com - Chris Brealey
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 
 package org.eclipse.wst.ws.internal.wsfinder;
 
-import java.util.Collections;
 import java.util.List;
-
-import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
 
 /**
  * @author joan
@@ -27,39 +24,30 @@
  * locator implementation with their plugin using the org.eclipse.wst.ws.locator extension point. 
  *
  */
+
+
 public abstract class AbstractWebServiceLocator implements IWebServiceLocator {
 
-	/**
-	 * Creates a new instance of this class.
-	 */
-	public AbstractWebServiceLocator ()
+	public AbstractWebServiceLocator()
 	{
 		super();
 	}
 
 	/**
-	 * Returns a list of WebServiceClientInfo objects.
-	 * Subclasses should override this method's
-	 * default behaviour of returning an empty list.
-	 * @param monitor A progress monitor,
-	 * or null if progress monitoring is not desired.
-	 * @return A non-null but possibly empty list of WebServiceClientInfo objects
+	 * Must return a list of WebServiceInfo objects.  Method will be called by WebServiceFinder.getWebServices()
+	 * 
+	 * @return list of WebServiceInfo objects
 	 */
-	public List getWebServiceClients (IProgressMonitor monitor)
-	{
-		return Collections.EMPTY_LIST;
-	}
-
+	public abstract List getWebServices();
+	
 	/**
-	 * Returns a list of WebServiceInfo objects. 
-	 * Subclasses should override this method's
-	 * default behaviour of returning an empty list.
-	 * @param monitor A progress monitor,
-	 * or null if progress monitoring is not desired.
-	 * @return A non-null but possibly empty list of WebServiceInfo objects
+	 * 
+	 * @return array of all projects in the workspace resource tree
 	 */
-	public List getWebServices (IProgressMonitor monitor)
+	public IProject[] getWorkspaceProjects()
 	{
-		return Collections.EMPTY_LIST; 
+	  IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
+      return root.getProjects();
 	}
+	
 }
diff --git a/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/wsfinder/IWebServiceLocator.java b/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/wsfinder/IWebServiceLocator.java
index ff8d715..980eb58 100644
--- a/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/wsfinder/IWebServiceLocator.java
+++ b/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/wsfinder/IWebServiceLocator.java
@@ -1,51 +1,27 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060317   127456 cbrealey@ca.ibm.com - Chris Brealey
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 
 package org.eclipse.wst.ws.internal.wsfinder;
 
 import java.util.List;
 
-import org.eclipse.core.runtime.IProgressMonitor;
-
 /**
  * @author joan
  *
- * Interface for Web service locators that will be retrieved
- * by the WebServiceFinder. This interface should not be
- * implemented directly. Instead, subclasses should extend
- * AbstractWebServiceLocator and implement the
- * getWebServices() and getWebServiceClients() methods. 
+ * Interface for web service locators that will be retrieved by the WebServiceFinder.  This interface must 
+ * not be implemented directly.  Subclasses should extend the AbstractWebServiceLocator and implement the 
+ * getWebServices() method.
  */
-public interface IWebServiceLocator
-{
-	/**
-	 * Returns a list of WebServiceClientInfo objects.
-	 * This operation may be long running.
-	 * @param monitor A progress monitor,
-	 * or null if progress monitoring is not desired.
-	 * @return A list of WebServiceClientInfo objects.
-	 * possibly empty, possibly null.
-	 */
-	public List getWebServiceClients ( IProgressMonitor monitor );
-	
-	/**
-	 * Returns a list of WebServiceInfo objects.
-	 * This operation may be long running.
-	 * @param monitor A progress monitor,
-	 * or null if progress monitoring is not desired.
-	 * @return A list of WebServiceInfo objects,
-	 * possibly empty, possibly null.
-	 */
-	public List getWebServices ( IProgressMonitor monitor );
+
+public interface IWebServiceLocator {
+
+	public List getWebServices();
 }
diff --git a/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/wsfinder/WebServiceCategory.java b/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/wsfinder/WebServiceCategory.java
deleted file mode 100644
index bc5853e..0000000
--- a/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/wsfinder/WebServiceCategory.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060317   127456 cbrealey@ca.ibm.com - Chris Brealey
- *******************************************************************************/
-
-package org.eclipse.wst.ws.internal.wsfinder;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-
-/**
- * @author cbrealey
- * A WebServiceCategory represents a defined category of
- * Web service locators plugged into the WebServiceFinder
- * framework. Each category has a non-translatable identifier,
- * an optional non-translatable parent category identifier
- * (absent for root categories), a translatable short label,
- * a translatable long description and an icon.
- * @see WebServiceFinder#getWebServiceCategories() 
- */
-public class WebServiceCategory
-{
-	private static final String ATTRIBUTE_ID = "id"; //$NON-NLS-1$
-	private static final String ATTRIBUTE_CATEGORY = "category"; //$NON-NLS-1$
-	private static final String ATTRIBUTE_LABEL = "label"; //$NON-NLS-1$
-	private static final String ATTRIBUTE_DESCRIPTION = "description"; //$NON-NLS-1$
-	private static final String ATTRIBUTE_ICON = "icon"; //$NON-NLS-1$
-	
-	private IConfigurationElement ice_;
-	
-	/**
-	 * Constructs a new WebServiceCategory for the given
-	 * configuration element from the extension registry.
-	 * @param ice The configuration element on which this
-	 * new WebServiceCategory is based. 
-	 */
-	public WebServiceCategory ( IConfigurationElement ice )
-	{
-		ice_ = ice;
-	}
-	
-	/**
-	 * Returns the non-translatable identifier of this category.
-	 * @return The non-translatable identifier of this category.
-	 * This should never be null.
-	 */
-	public String getId ()
-	{
-		return ice_.getAttributeAsIs(ATTRIBUTE_ID);
-	}
-	
-	/**
-	 * Returns the non-translatable identifier of this category's
-	 * immediate parent category, or null if this is a root category
-	 * and, as such, has no parent category.
-	 * @return The non-translatable identifier of this category's
-	 * parent, or null if there is none.
-	 */
-	public String getParentId ()
-	{
-		return ice_.getAttributeAsIs(ATTRIBUTE_CATEGORY);
-	}
-	
-	/**
-	 * Returns this category's immediate parent WebServiceCategory, or
-	 * null if this is a root category and, as such, has no parent category.
-	 * @return This category's immediate parent WebServiceCategory, or
-	 * null if there is none.
-	 */
-	public WebServiceCategory getParent ()
-	{
-		return WebServiceFinder.instance().getWebServiceCategoryById(getParentId());
-	}
-	
-	/**
-	 * Returns the internationalized short label of this category,
-	 * or null if there is none. Note that user interfaces may
-	 * choose to bypass categories that do not have a label.
-	 * @return The internationalized short label of this category,
-	 * or null if there is none.
-	 */
-	public String getLabel ()
-	{
-		return ice_.getAttributeAsIs(ATTRIBUTE_LABEL);
-	}
-	
-	/**
-	 * Returns the internationalized description of this category,
-	 * or null if there is none.
-	 * @return The internationalized description of this category,
-	 * or null if there is none.
-	 */
-	public String getDescription ()
-	{
-		return ice_.getAttributeAsIs(ATTRIBUTE_DESCRIPTION);
-	}
-	
-	/**
-	 * Returns the icon of this category, or null if there is none.
-	 * @return The icon of this category, or null if there is none.
-	 */
-	public String getIcon ()
-	{
-		return ice_.getAttributeAsIs(ATTRIBUTE_ICON);
-	}
-}
diff --git a/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/wsfinder/WebServiceFinder.java b/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/wsfinder/WebServiceFinder.java
index f46b2f8..4f970c3 100644
--- a/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/wsfinder/WebServiceFinder.java
+++ b/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/wsfinder/WebServiceFinder.java
@@ -1,15 +1,12 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060317   127456 cbrealey@ca.ibm.com - Chris Brealey
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 
 package org.eclipse.wst.ws.internal.wsfinder;
@@ -17,10 +14,8 @@
 import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
-
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IProgressMonitor;
 
 /**
  * @author joan
@@ -29,6 +24,7 @@
  * Finds web services by calling locators extending {@link org.eclipse.wst.ws.internal.wsfinder.AbstractWebServiceLocator} 
  * which have been registered with {@link org.eclipse.wst.ws.internal.wsfinder.WebServiceLocatorRegistry}.
  */
+
 public class WebServiceFinder {
 
 	private static WebServiceFinder instance = null;
@@ -46,7 +42,7 @@
 	 * Public construction is not allowed.
 	 * Use WebServiceFinder.instance().
 	 */
-	private WebServiceFinder ()	
+	private WebServiceFinder()	
 	{
 		super();
 	}
@@ -55,7 +51,7 @@
 	 * Returns the singleton of <code>WebServiceFinder</code>.
 	 * @return The singleton of <code>WebServiceFinder</code>.
 	 */
-	public static WebServiceFinder instance ()
+	public static WebServiceFinder instance()
 	{
 		if (instance == null)
 		{
@@ -68,45 +64,31 @@
 	 * Returns an iterator of WebServiceInfo objects which represent web services found by locators that
 	 * have registered using the org.eclipse.wst.ws.locator extension point.  Currently returns all web 
 	 * services found for all registered locators.  Locators must extend {@link AbstractWebServiceLocator}.
+	 * 
 	 * Callers can use the getter methods on the WebServiceInfo object to retrieve information on the 
 	 * web services found.  The WebServiceFinder cannot guarantee the level of detail contained in WebServiceInfo
 	 * objects returned.  This is left to the locator implementations.
-	 * @param monitor A progress monitor, or null if progress monitoring is not desired.
-	 * @return An iterator of WebServiceInfo objects, never null.
+	 *  
+	 * @return iterator of WebServiceInfo objects
 	 */
-	public Iterator getWebServices ( IProgressMonitor monitor )
+	public Iterator getWebServices()
 	{
-		return getWebServicesByCategoryId(null,monitor);
-	}
-	
-	/**
-	 * Returns an iterator of WebServiceInfo objects which represent web services found by locators that
-	 * have registered using the org.eclipse.wst.ws.locator extension point under the given category.
-	 * Locators must extend {@link AbstractWebServiceLocator}.
-	 * Callers can use the getter methods on the WebServiceInfo object to retrieve information on the 
-	 * web services found.  The WebServiceFinder cannot guarantee the level of detail contained in WebServiceInfo
-	 * objects returned.  This is left to the locator implementations.
-	 * @param category The category of locators to use.
-	 * @param monitor A progress monitor, or null if progress monitoring is not desired.
-	 * @return An iterator of WebServiceInfo objects, never null.
-	 */
-	public Iterator getWebServicesByCategory ( WebServiceCategory category, IProgressMonitor monitor  )
-	{
-		return getWebServicesByCategoryId(category == null ? null : category.getId(),monitor);
+		return getWebServices(null);
 	}
 
 	/**
 	 * Returns an iterator of WebServiceInfo objects which represent web services found by locators that
 	 * have registered using the org.eclipse.wst.ws.locator extension point under the given category.
 	 * Locators must extend {@link AbstractWebServiceLocator}.
+	 * 
 	 * Callers can use the getter methods on the WebServiceInfo object to retrieve information on the 
 	 * web services found.  The WebServiceFinder cannot guarantee the level of detail contained in WebServiceInfo
 	 * objects returned.  This is left to the locator implementations.
-	 * @param categoryId The category of locators to use.
-	 * @param monitor A progress monitor, or null if progress monitoring is not desired.
-	 * @return An iterator of WebServiceInfo objects, never null.
+	 *  
+	 * @return iterator of WebServiceInfo objects
+	 * @param category The category of locators to use
 	 */
-	public Iterator getWebServicesByCategoryId ( String categoryId, IProgressMonitor monitor )
+	public Iterator getWebServices(String category)
 	{
 		LinkedList webServices = new LinkedList();
 		WebServiceLocatorRegistry wslr = WebServiceLocatorRegistry.getInstance();
@@ -117,22 +99,18 @@
 			{
 				try
 				{
-					if (categoryId == null || categoryId.equals(regElements[i].getAttributeAsIs(ATTRIBUTE_CATEGORY)))
+					if (category == null || category.equals(regElements[i].getAttributeAsIs(ATTRIBUTE_CATEGORY)))
 					{
 						Object obj = regElements[i].createExecutableExtension(ATTRIBUTE_CLASS);
 						if (obj instanceof IWebServiceLocator)
 						{
 							IWebServiceLocator wsl = (IWebServiceLocator)obj;
-							List wsList = wsl.getWebServices(monitor);
-							if (wsList != null)
-							{
-								webServices.addAll(wsList);
-							}
+							List wsList = wsl.getWebServices();
+							webServices.addAll(wsList);
 						}
 					}
 				} 
-				catch (CoreException ex)
-				{
+				catch (CoreException ex){
 					// Quietly bypass any IWebServiceLocators that failed to be loaded.
 				}
 			}
@@ -141,108 +119,12 @@
 	} 
 
 	/**
-	 * Returns an iterator of WebServiceClientInfo objects which represent web service clients found by locators that
-	 * have registered using the org.eclipse.wst.ws.locator extension point.  Currently returns all web 
-	 * service clients found for all registered locators.  Locators must extend {@link AbstractWebServiceLocator}.
-	 * Callers can use the getter methods on the WebServiceClientInfo object to retrieve information on the 
-	 * web service clients found.  The WebServiceFinder cannot guarantee the level of detail contained in WebServiceClientInfo
-	 * objects returned.  This is left to the locator implementations.
-	 * @param monitor A progress monitor, or null if progress monitoring is not desired.
-	 * @return An iterator of WebServiceClientInfo objects, never null.
-	 */
-	public Iterator getWebServiceClients ( IProgressMonitor monitor )
-	{
-		return getWebServiceClientsByCategoryId(null,monitor);
-	}
-	
-	/**
-	 * Returns an iterator of WebServiceClientInfo objects which represent web service clients found by locators that
-	 * have registered using the org.eclipse.wst.ws.locator extension point under the given category.
-	 * Locators must extend {@link AbstractWebServiceLocator}. 
-	 * Callers can use the getter methods on the WebServiceClientInfo object to retrieve information on the 
-	 * web service clients found.  The WebServiceFinder cannot guarantee the level of detail contained in WebServiceClientInfo
-	 * objects returned.  This is left to the locator implementations.
-	 * @param category The category of locators to use.
-	 * @param monitor A progress monitor, or null if progress monitoring is not desired.
-	 * @return An iterator of WebServiceClientInfo objects, never null.
-	 */
-	public Iterator getWebServiceClientsByCategory ( WebServiceCategory category, IProgressMonitor monitor )
-	{
-		return getWebServiceClientsByCategoryId(category == null ? null : category.getId(),monitor);
-	}
-
-	/**
-	 * Returns an iterator of WebServiceClientInfo objects which represent web service clients found by locators that
-	 * have registered using the org.eclipse.wst.ws.locator extension point under the given category.
-	 * Locators must extend {@link AbstractWebServiceLocator}.
-	 * Callers can use the getter methods on the WebServiceClientInfo object to retrieve information on the 
-	 * web service clients found.  The WebServiceFinder cannot guarantee the level of detail contained in WebServiceClientInfo
-	 * objects returned.  This is left to the locator implementations.
-	 * @param categoryId The category of locators to use.
-	 * @param monitor A progress monitor, or null if progress monitoring is not desired.
-	 * @return An iterator of WebServiceClientInfo objects, never null.
-	 */
-	public Iterator getWebServiceClientsByCategoryId ( String categoryId, IProgressMonitor monitor )
-	{
-		LinkedList webServiceClients = new LinkedList();
-		WebServiceLocatorRegistry wslr = WebServiceLocatorRegistry.getInstance();
-		IConfigurationElement[] regElements = wslr.getConfigElements();
-		for (int i = 0; i < regElements.length; i++)
-		{
-			if (ELEMENT_LOCATOR.equals(regElements[i].getName()))
-			{
-				try
-				{
-					if (categoryId == null || categoryId.equals(regElements[i].getAttributeAsIs(ATTRIBUTE_CATEGORY)))
-					{
-						Object obj = regElements[i].createExecutableExtension(ATTRIBUTE_CLASS);
-						if (obj instanceof IWebServiceLocator)
-						{
-							IWebServiceLocator wsl = (IWebServiceLocator)obj;
-							List wsList = wsl.getWebServiceClients(monitor);
-							if (wsList != null)
-							{
-								webServiceClients.addAll(wsList);
-							}
-						}
-					}
-				} 
-				catch (CoreException ex)
-				{
-					// Quietly bypass any IWebServiceLocators that failed to be loaded.
-				}
-			}
-		} 
-		return webServiceClients.iterator();	
-	} 
-
-	/**
 	 * Returns an array of registered Web Service Category IDs.
-	 * @return An array, never null but possibly empty,
-	 * of registered Web Service Category descriptors.
-	 */
-	public WebServiceCategory[] getWebServiceCategories ()
-	{
-		LinkedList categories = new LinkedList();
-		WebServiceLocatorRegistry wslr = WebServiceLocatorRegistry.getInstance();
-		IConfigurationElement[] regElements = wslr.getConfigElements();
-		for (int i = 0; i < regElements.length; i++)
-		{
-			if (ELEMENT_CATEGORY.equals(regElements[i].getName()))
-			{
-				categories.add(new WebServiceCategory(regElements[i]));
-			}
-		}
-		return (WebServiceCategory[])categories.toArray(new WebServiceCategory[0]);
-
-	}	
-
-	/**
-	 * Returns an array of registered Web Service Category IDs.
+	 *  
 	 * @return An array, never null but possibly empty,
 	 * of registered Web Service Category IDs.
 	 */
-	public String[] getWebServiceCategoryIds ()
+	public String[] getCategoryIDs()
 	{
 		LinkedList categories = new LinkedList();
 		WebServiceLocatorRegistry wslr = WebServiceLocatorRegistry.getInstance();
@@ -261,31 +143,8 @@
 		return (String[])categories.toArray(new String[0]);
 	}
 	
-	/**
-	 * Returns the WebServiceCategory with the given ID,
-	 * or null if there is none.
-	 * @param categoryId The ID of the category to find.
-	 * @return The matching category descriptor, or null if there is none.
-	 */
-	public WebServiceCategory getWebServiceCategoryById ( String categoryId )
-	{
-		WebServiceCategory category = null;
-		if (categoryId != null)
-		{
-			WebServiceLocatorRegistry wslr = WebServiceLocatorRegistry.getInstance();
-			IConfigurationElement[] regElements = wslr.getConfigElements();
-			for (int i = 0; i < regElements.length; i++)
-			{
-				if (ELEMENT_CATEGORY.equals(regElements[i].getName()))
-				{
-					String id = regElements[i].getAttributeAsIs(ATTRIBUTE_ID);
-					if (categoryId.equals(id))
-					{
-						return new WebServiceCategory(regElements[i]);
-					}
-				}
-			}
-		}
-		return category;
-	}
+	//TODO: Need another method to return full Category objects,
+	//as in "public WebServiceLocatorCategory getCategories()"
+	//where WebServiceLocatorCategory is a new bean class with properties
+	//mirroring the attributes of a webServiceLocatorCategory extension.
 }
diff --git a/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/wsfinder/WorkspaceWSDLLocator.java b/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/wsfinder/WorkspaceWSDLLocator.java
index 64e787e..23a76e1 100644
--- a/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/wsfinder/WorkspaceWSDLLocator.java
+++ b/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/wsfinder/WorkspaceWSDLLocator.java
@@ -1,27 +1,22 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060317   127456 cbrealey@ca.ibm.com - Chris Brealey
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 
 package org.eclipse.wst.ws.internal.wsfinder;
 
 import java.util.List;
 import java.util.Vector;
-
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.IResourceVisitor;
 import org.eclipse.core.resources.IWorkspaceRoot;
 import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.wst.ws.internal.wsrt.WebServiceInfo;
 
 /**
@@ -50,10 +45,9 @@
 	 * use the WSDLVisitor to walk the entire resource tree.  That should only happen once.  After
 	 * that the resource tree can be monitored for modifications to .wsdl files and changes made to a cache. 
 	 * 
-	 * @param monitor A progress monitor, or null if progress monitoring is not desired.
 	 * @return list of WebServiceInfo objects
 	 */
-	public List getWebServices (IProgressMonitor monitor) {
+	public List getWebServices() {
 		
 		if (wsdlServices == null)
 		{
diff --git a/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/wsrt/WebServiceInfo.java b/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/wsrt/WebServiceInfo.java
index 517c44d..348a086 100644
--- a/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/wsrt/WebServiceInfo.java
+++ b/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/wsrt/WebServiceInfo.java
@@ -1,15 +1,12 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060221   128905 kathy@ca.ibm.com - Kathy Chan
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 
 package org.eclipse.wst.ws.internal.wsrt;
@@ -23,8 +20,6 @@
 	private java.lang.String wsdlURL;
 	private java.lang.String endPointURL;
 	private java.lang.String implURL;
-	private java.lang.String[] implURLs;
-	
 	public java.lang.String getEndPointURL()
 	{
 		return endPointURL;
@@ -81,13 +76,6 @@
 	{
 		this.wsdlURL = wsdlURL;
 	}
-	public java.lang.String[] getImplURLs()
-	{
-		return implURLs;
-	}
-	public void setImplURLs(java.lang.String[] implURLs)
-	{
-		this.implURLs = implURLs;
-	}
+	
 	
 }
diff --git a/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/wsrt/WebServiceScenario.java b/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/wsrt/WebServiceScenario.java
index 0eccf1d..fe68771 100644
--- a/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/wsrt/WebServiceScenario.java
+++ b/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/wsrt/WebServiceScenario.java
@@ -1,15 +1,12 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060324   116750 rsinha@ca.ibm.com - Rupam Kuehner
+ *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.wst.ws.internal.wsrt;
 
@@ -27,6 +24,10 @@
   public static final int TOPDOWN = 1;
   public static final int CLIENT = 2;
   
+  public static final String BOTTOMUP_LABEL = "BOTTOMUP_LABEL";
+  public static final String TOPDOWN_LABEL = "TOPDOWN_LABEL";
+  public static final String CLIENT_LABEL = "CLIENT_LABEL";
+  
   public static final WebServiceScenario BOTTOMUP_LITERAL = new WebServiceScenario(BOTTOMUP, "BOTTOMUP");
   public static final WebServiceScenario TOPDOWN_LITERAL = new WebServiceScenario(TOPDOWN, "TOPDOWN");
   public static final WebServiceScenario CLIENT_LITERAL = new WebServiceScenario(CLIENT, "CLIENT");
diff --git a/bundles/org.eclipse.wst.wsdl.ui/.classpath b/bundles/org.eclipse.wst.wsdl.ui/.classpath
index 9b3ddea..ed58bc2 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/.classpath
+++ b/bundles/org.eclipse.wst.wsdl.ui/.classpath
@@ -1,9 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="src" path="src-validation"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src-asd"/>
-	<classpathentry kind="src" path="src-asd-wsdl11"/>
-	<classpathentry kind="src" path="src-refactor"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/bundles/org.eclipse.wst.wsdl.ui/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.wst.wsdl.ui/.settings/org.eclipse.jdt.core.prefs
index b48794a..5c6c6e4 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/.settings/org.eclipse.jdt.core.prefs
+++ b/bundles/org.eclipse.wst.wsdl.ui/.settings/org.eclipse.jdt.core.prefs
@@ -1,17 +1,21 @@
-#Wed Mar 08 00:52:29 EST 2006
+#Mon Jan 30 18:57:13 EST 2006
 eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.4
 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
 org.eclipse.jdt.core.compiler.debug.localVariable=generate
 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
 org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
 org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
 org.eclipse.jdt.core.compiler.problem.deprecation=warning
 org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
 org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
 org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
 org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
 org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
 org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
@@ -30,7 +34,6 @@
 org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
 org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
 org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
 org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
@@ -45,10 +48,10 @@
 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
 org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
 org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
 org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
 org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
 org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
 org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.3
diff --git a/bundles/org.eclipse.wst.wsdl.ui/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.wst.wsdl.ui/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index bbf7ac8..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Mon Jan 30 23:38:15 EST 2006
-eclipse.preferences.version=1
-internal.default.compliance=default
diff --git a/bundles/org.eclipse.wst.wsdl.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.wsdl.ui/META-INF/MANIFEST.MF
index 538bf0c..06c1d68 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.wst.wsdl.ui/META-INF/MANIFEST.MF
@@ -3,48 +3,49 @@
 Bundle-Name: %_UI_PLUGIN_NAME
 Bundle-SymbolicName: org.eclipse.wst.wsdl.ui; singleton:=true
 Bundle-Version: 1.0.1.qualifier
-Bundle-Activator: org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin
-Bundle-Vendor: %providerName
+Bundle-Activator: org.eclipse.core.internal.compatibility.PluginActivator
+Bundle-Vendor: Eclipse.org
 Bundle-Localization: plugin
-Export-Package: org.eclipse.wst.wsdl.asd.design,
- org.eclipse.wst.wsdl.asd.design.connections,
- org.eclipse.wst.wsdl.asd.design.directedit,
- org.eclipse.wst.wsdl.asd.design.editparts,
- org.eclipse.wst.wsdl.asd.design.editparts.model,
- org.eclipse.wst.wsdl.asd.design.editpolicies,
- org.eclipse.wst.wsdl.asd.design.figures,
- org.eclipse.wst.wsdl.asd.design.layouts,
- org.eclipse.wst.wsdl.asd.editor,
- org.eclipse.wst.wsdl.asd.editor.actions,
- org.eclipse.wst.wsdl.asd.editor.outline,
- org.eclipse.wst.wsdl.asd.editor.properties.sections,
- org.eclipse.wst.wsdl.asd.editor.util,
- org.eclipse.wst.wsdl.asd.facade,
- org.eclipse.wst.wsdl.ui.internal;x-internal:=true,
- org.eclipse.wst.wsdl.ui.internal.actions;x-internal:=true,
- org.eclipse.wst.wsdl.ui.internal.adapters,
- org.eclipse.wst.wsdl.ui.internal.adapters.actions,
- org.eclipse.wst.wsdl.ui.internal.adapters.basic,
- org.eclipse.wst.wsdl.ui.internal.adapters.commands,
- org.eclipse.wst.wsdl.ui.internal.adapters.specialized,
- org.eclipse.wst.wsdl.ui.internal.adapters.visitor,
- org.eclipse.wst.wsdl.ui.internal.commands;x-internal:=true,
- org.eclipse.wst.wsdl.ui.internal.dialogs;x-internal:=true,
- org.eclipse.wst.wsdl.ui.internal.edit,
- org.eclipse.wst.wsdl.ui.internal.extensions,
- org.eclipse.wst.wsdl.ui.internal.filter;x-internal:=true,
- org.eclipse.wst.wsdl.ui.internal.icons;x-internal:=true,
- org.eclipse.wst.wsdl.ui.internal.label.providers,
- org.eclipse.wst.wsdl.ui.internal.properties.sections,
- org.eclipse.wst.wsdl.ui.internal.reconciler;x-internal:=true,
- org.eclipse.wst.wsdl.ui.internal.refactor;x-internal:=true,
- org.eclipse.wst.wsdl.ui.internal.refactor.actions;x-internal:=true,
- org.eclipse.wst.wsdl.ui.internal.search;x-internal:=true,
- org.eclipse.wst.wsdl.ui.internal.text;x-internal:=true,
- org.eclipse.wst.wsdl.ui.internal.util;x-internal:=true,
- org.eclipse.wst.wsdl.ui.internal.visitor;x-internal:=true,
- org.eclipse.wst.wsdl.ui.internal.wizards;x-internal:=true
+Export-Package: org.eclipse.wst.wsdl.ui.internal,
+ org.eclipse.wst.wsdl.ui.internal.actions,
+ org.eclipse.wst.wsdl.ui.internal.commands,
+ org.eclipse.wst.wsdl.ui.internal.contentgenerator,
+ org.eclipse.wst.wsdl.ui.internal.contentgenerator.ui,
+ org.eclipse.wst.wsdl.ui.internal.dialogs,
+ org.eclipse.wst.wsdl.ui.internal.dialogs.types,
+ org.eclipse.wst.wsdl.ui.internal.extension,
+ org.eclipse.wst.wsdl.ui.internal.filter,
+ org.eclipse.wst.wsdl.ui.internal.gef.util.editparts,
+ org.eclipse.wst.wsdl.ui.internal.gef.util.editpolicies,
+ org.eclipse.wst.wsdl.ui.internal.gef.util.figures,
+ org.eclipse.wst.wsdl.ui.internal.graph,
+ org.eclipse.wst.wsdl.ui.internal.graph.editparts,
+ org.eclipse.wst.wsdl.ui.internal.graph.editpolicies,
+ org.eclipse.wst.wsdl.ui.internal.graph.figures,
+ org.eclipse.wst.wsdl.ui.internal.graph.model,
+ org.eclipse.wst.wsdl.ui.internal.icons,
+ org.eclipse.wst.wsdl.ui.internal.model,
+ org.eclipse.wst.wsdl.ui.internal.nsedit,
+ org.eclipse.wst.wsdl.ui.internal.outline,
+ org.eclipse.wst.wsdl.ui.internal.parameters,
+ org.eclipse.wst.wsdl.ui.internal.properties.section,
+ org.eclipse.wst.wsdl.ui.internal.reconciler,
+ org.eclipse.wst.wsdl.ui.internal.text,
+ org.eclipse.wst.wsdl.ui.internal.typesystem,
+ org.eclipse.wst.wsdl.ui.internal.util,
+ org.eclipse.wst.wsdl.ui.internal.util.flatui,
+ org.eclipse.wst.wsdl.ui.internal.util.ui,
+ org.eclipse.wst.wsdl.ui.internal.validation,
+ org.eclipse.wst.wsdl.ui.internal.viewers,
+ org.eclipse.wst.wsdl.ui.internal.viewers.widgets,
+ org.eclipse.wst.wsdl.ui.internal.visitor,
+ org.eclipse.wst.wsdl.ui.internal.widgets,
+ org.eclipse.wst.wsdl.ui.internal.wizards,
+ org.eclipse.wst.wsdl.ui.internal.xsd,
+ org.eclipse.wst.wsdl.ui.internal.xsd.actions,
+ org.eclipse.wst.wsdl.ui.internal.xsd.graph.editparts
 Require-Bundle: org.eclipse.core.resources,
+ org.eclipse.core.runtime.compatibility,
  org.eclipse.emf.common,
  org.eclipse.emf.ecore,
  org.eclipse.gef,
@@ -63,17 +64,12 @@
  org.eclipse.wst.xml.ui,
  org.eclipse.xsd,
  org.eclipse.wst.wsdl,
- org.eclipse.wst.common.core,
+ org.eclipse.wst.common.ui.properties,
  org.eclipse.wst.xsd.ui,
  org.eclipse.emf.edit,
  org.eclipse.emf.edit.ui,
  org.eclipse.wst.validation,
  org.wsdl4j,
- org.eclipse.wst.wsdl.validation,
- org.eclipse.ltk.core.refactoring,
- org.eclipse.ltk.ui.refactoring,
- com.ibm.icu,
- org.eclipse.core.runtime,
- org.apache.xerces,
- org.eclipse.ui.views.properties.tabbed
-Eclipse-LazyStart: true
+ org.eclipse.wst.wsdl.validation
+Eclipse-AutoStart: true
+Plugin-Class: org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin
diff --git a/bundles/org.eclipse.wst.wsdl.ui/build.properties b/bundles/org.eclipse.wst.wsdl.ui/build.properties
index 480487c..2743386 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/build.properties
+++ b/bundles/org.eclipse.wst.wsdl.ui/build.properties
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2001, 2006 IBM Corporation and others.
+# Copyright (c) 2001, 2004 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
@@ -15,7 +15,6 @@
                META-INF/,\
                about.html
 jars.compile.order = .
-source.. = src-asd/,\
-           src-asd-wsdl11,\
-           src-refactor/
-output.. = bin/
\ No newline at end of file
+source.. = src/,\
+           src-validation
+output.. = bin/
diff --git a/bundles/org.eclipse.wst.wsdl.ui/plugin.properties b/bundles/org.eclipse.wst.wsdl.ui/plugin.properties
index 428c2c2..0cfcffe 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/plugin.properties
+++ b/bundles/org.eclipse.wst.wsdl.ui/plugin.properties
@@ -1,17 +1,16 @@
 ###############################################################################
-# Copyright (c) 2001, 2006 IBM Corporation and others.
+# Copyright (c) 2001, 2004 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
 ###############################################################################
 !
 ! Plugin
 !
-providerName                = Eclipse.org
 _UI_PLUGIN_NAME             = WSDL Editor
 _UI_EDITOR_NAME             = WSDL Editor
 _UI_WSDL_LABEL              = WSDL Files
@@ -300,6 +299,7 @@
 
 _UI_PREF_PAGE_DEFAULT_TARGET_NAMESPACE = Default Target Namespace:
 _UI_PREF_PAGE_AUTO_REGENERATE_BINDING  = Regenerate Binding on save
+_UI_PREF_PAGE_PROMPT_REGEN_BINDING_ON_SAVE = Prompt Regenerate Binding on save
 _UI_PREF_PAGE_CREATING_FILES		   = Creating files
 
 _UI_CREATE_MESSAGE_CHECKBOX_LABEL       = Create default messages
@@ -313,15 +313,6 @@
 _WARN_NAME_INVALID_CHAR       = IWAX1404W Name field contains invalid character ('
 _UI_NAME_INVALID_CHAR_END   = ')
 
-!======================================================================================
-!
-! refactoring
-!
-!======================================================================================
-refactoringActionSet.label=Refactor
-refactoring.menu.label=Refactor
-refactoring.renameAction.label=Re&name...
-
 ! Copied from sse
 23concat_EXC_=Resource {0} does not exist.
 32concat_EXC_=Editor could not be open on {0}
@@ -338,3 +329,4 @@
 
 !-- WSDL Validation UI Menu Items
 _UI_MENU_VALIDATE_WSDL                     = Validate WSDL File
+_UI_WSDL_VALIDATOR                         = WSDL Validator
diff --git a/bundles/org.eclipse.wst.wsdl.ui/plugin.xml b/bundles/org.eclipse.wst.wsdl.ui/plugin.xml
index a351aa7..d866198 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/plugin.xml
+++ b/bundles/org.eclipse.wst.wsdl.ui/plugin.xml
@@ -4,18 +4,88 @@
 
 	<extension point="org.eclipse.ui.editors">
 		<editor
-			name="WSDL Editor"
+			name="%_UI_EDITOR_NAME"
 			default="true"
 			icon="icons/wsdl_file_obj.gif"
-			class="org.eclipse.wst.wsdl.ui.internal.InternalWSDLMultiPageEditor"
-			contributorClass="org.eclipse.wst.wsdl.ui.internal.WSDLActionBarContributor"
+			class="org.eclipse.wst.wsdl.ui.internal.WSDLEditor"
+			contributorClass="org.eclipse.wst.wsdl.ui.internal.actions.WSDLActionBarContributor"
 			id="org.eclipse.wst.wsdl.ui.internal.WSDLEditor">
 			<contentTypeBinding
 				contentTypeId="org.eclipse.wst.wsdl.wsdlsource" />
 		</editor>
 	</extension>
-	
-		<extension point="org.eclipse.ui.newWizards">
+
+	<extension-point
+		id="internalEditorExtensions"
+		name="Internal Editor Extensions"
+		schema="schema/internalEditorExtensions.exsd" />
+		
+	<extension-point
+		id="extensibilityItemTreeProviders"
+		name="Extensibility Item Tree Providers"
+		schema="schema/extensibilityItemTreeProviders.exsd" />
+
+	<!-- This extension point is used to suplement WSDL 1.1 schemas in order to   -->
+	<!-- constrain the extensiblity elements that are allowed at the 'wsdl' level -->
+	<extension-point
+		id="extensibilityElementFilter"
+		name="Extensiblity Element Filter"
+		schema="schema/extensibilityElementFilter.exsd" />
+
+	<extension-point
+		id="propertyDescriptorProvider"
+		name="Property Descriptor Provider"
+		schema="schema/propertyDescriptorProvider.exsd" />
+
+	<extension
+		point="org.eclipse.wst.wsdl.ui.extensibilityItemTreeProviders">
+		<extensibilityItemTreeProvider
+			namespace="http://schemas.xmlsoap.org/wsdl/http/"
+			labelProviderClass="org.eclipse.wst.wsdl.ui.internal.outline.HTTPLabelProvider">
+		</extensibilityItemTreeProvider>
+	</extension>
+
+	<extension
+		point="org.eclipse.wst.wsdl.ui.extensibilityItemTreeProviders">
+		<extensibilityItemTreeProvider
+			namespace="http://schemas.xmlsoap.org/wsdl/soap/"
+			labelProviderClass="org.eclipse.wst.wsdl.ui.internal.outline.SOAPLabelProvider">
+		</extensibilityItemTreeProvider>
+	</extension>
+
+	<extension
+		point="org.eclipse.wst.wsdl.ui.extensibilityElementFilter">
+		<extensibilityElementFilter
+			namespace="http://schemas.xmlsoap.org/wsdl/soap/"
+			class="org.eclipse.wst.wsdl.ui.internal.filter.SoapExtensiblityElementFilter">
+		</extensibilityElementFilter>
+	</extension>
+
+	<extension
+		point="org.eclipse.wst.wsdl.ui.extensibilityElementFilter">
+		<extensibilityElementFilter
+			namespace="http://schemas.xmlsoap.org/wsdl/http/"
+			class="org.eclipse.wst.wsdl.ui.internal.filter.HttpExtensiblityElementFilter">
+		</extensibilityElementFilter>
+	</extension>
+
+	<extension
+		point="org.eclipse.wst.wsdl.ui.extensibilityElementFilter">
+		<extensibilityElementFilter
+			namespace="http://schemas.xmlsoap.org/wsdl/mime/"
+			class="org.eclipse.wst.wsdl.ui.internal.filter.MimeExtensiblityElementFilter">
+		</extensibilityElementFilter>
+	</extension>
+
+	<extension
+		point="org.eclipse.wst.wsdl.ui.extensibilityElementFilter">
+		<extensibilityElementFilter
+			namespace="http://www.w3.org/2001/XMLSchema"
+			class="org.eclipse.wst.wsdl.ui.internal.filter.XSDExtensiblityElementFilter">
+		</extensibilityElementFilter>
+	</extension>
+
+	<extension point="org.eclipse.ui.newWizards">
 		<category
 			id="org.eclipse.jst.ws.ui.new"
 			name="%_UI_LABEL_NEW_CATEGORY_NAME_WS" />
@@ -39,303 +109,11 @@
 			<selection class="org.eclipse.core.resources.IResource" />
 		</wizard>
 	</extension>
-	
-	<extension point="org.eclipse.ui.preferencePages">
-		<!-- place everything in "Web and XML" -->
-		<page
-			name="%_UI_WSDL_LABEL"
-			category="org.eclipse.wst.sse.ui.internal.provisional.preferences"
-			class="org.eclipse.wst.wsdl.ui.internal.WSDLPreferencePage"
-			id="org.eclipse.wst.wsdl.ui.internal.WSDLPreferencePage" />
-	</extension>
-
-	<!-- This extension point is used to suplement WSDL 1.1 schemas in order to   -->
-	<!-- constrain the extensiblity elements that are allowed at the 'wsdl' level -->
-	<extension-point
-		id="extensibilityElementFilter"
-		name="Extensiblity Element Filter"
-		schema="schema/extensibilityElementFilter.exsd" />
-		
-    <extension-point id="WSDLEditorExtensionConfiguration" name="WSDLEditorExtensionConfiguration"/>
-		
-	<extension-point id="ApplicationInformationDescription" name="ApplicationInformationDescription"/>
-	
-		<!--  Start of New WSDL Editor -->
-	<extension
-		point="org.eclipse.ui.views.properties.tabbed.propertyContributor">
-		<propertyContributor
-			contributorId="org.eclipse.wst.wsdl.ui.internal.WSDLEditor"
-
-			labelProvider="org.eclipse.wst.wsdl.asd.editor.ASDLabelProvider">			
-			<propertyCategory category="general"></propertyCategory>
-			<propertyCategory category="documentation"></propertyCategory>
-			<propertyCategory category="extensibility"></propertyCategory>
-		</propertyContributor>
-	</extension>
-	<extension
-		point="org.eclipse.ui.views.properties.tabbed.propertyTabs">
-		<propertyTabs
-			contributorId="org.eclipse.wst.wsdl.ui.internal.WSDLEditor">
-			<propertyTab
-				label="%_UI_LABEL_GENERAL"
-				category="general"
-				id="org.eclipse.wst.xmlwebservices.general">
-			</propertyTab>
-			<propertyTab
-				label="Extensibility"
-				category="extensibility"
-				id="org.eclipse.wst.xmlwebservices.extensibility">
-			</propertyTab>
-			<propertyTab
-				label="%_UI_LABEL_DOCUMENTATION"
-				category="documentation"
-				id="org.eclipse.wst.xmlwebservices.documentation">
-			</propertyTab>
-		</propertyTabs>
-	</extension>
-	
-	<extension point="org.eclipse.ui.views.properties.tabbed.propertySections">
-   <propertySections contributorId="org.eclipse.wst.wsdl.ui.internal.WSDLEditor">
-     <propertySection tab="org.eclipse.wst.xmlwebservices.documentation" 
-        class="org.eclipse.wst.wsdl.asd.editor.properties.sections.DocumentationSection"
-	 	id="prop.section.DocumentationSection">
-	    <input type="org.eclipse.wst.wsdl.asd.facade.IASDObject">
-	    </input>
-	 </propertySection>
-   
-   	 <propertySection tab="org.eclipse.wst.xmlwebservices.general" 
-        class="org.eclipse.wst.wsdl.asd.editor.properties.sections.NameSection"  
-	 	id="prop.section.NameSection">
-	    <input type="org.eclipse.wst.wsdl.asd.facade.IMessage">
-	    </input>
-	 </propertySection>
-	 
-   	 <propertySection tab="org.eclipse.wst.xmlwebservices.general" 
-        class="org.eclipse.wst.wsdl.asd.editor.properties.sections.ParameterSection"
-	 	id="prop.section.ParameterSection">
-	    <input type="org.eclipse.wst.wsdl.asd.facade.IParameter">
-	    </input>
-	 </propertySection>
-	 
-   	 <propertySection tab="org.eclipse.wst.xmlwebservices.general" 
-        class="org.eclipse.wst.wsdl.asd.editor.properties.sections.NameSection"  
-	 	id="prop.section.NameSection">
-	    <input type="org.eclipse.wst.wsdl.asd.facade.IOperation">
-	    </input>
-	 </propertySection>
-	 
-	 <propertySection tab="org.eclipse.wst.xmlwebservices.general" 
-        class="org.eclipse.wst.wsdl.asd.editor.properties.sections.NameSection"  
-	 	id="prop.section.NameSection">
-	    <input type="org.eclipse.wst.wsdl.asd.facade.IInterface">
-	    </input>
-	 </propertySection>
-
-	 <propertySection tab="org.eclipse.wst.xmlwebservices.general" 
-        class="org.eclipse.wst.wsdl.asd.editor.properties.sections.NameSection"  
-	 	id="prop.section.NameSection">
-	    <input type="org.eclipse.wst.wsdl.asd.facade.IService">
-	    </input>
-	 </propertySection>
-	 
-	 <propertySection tab="org.eclipse.wst.xmlwebservices.general" 
-        class="org.eclipse.wst.wsdl.asd.editor.properties.sections.EndPointSection"  
-	 	id="prop.section.EndPointSection">
-	    <input type="org.eclipse.wst.wsdl.asd.facade.IEndPoint">
-	    </input>
-	 </propertySection>
-
-	 <propertySection tab="org.eclipse.wst.xmlwebservices.general" 
-        class="org.eclipse.wst.wsdl.asd.editor.properties.sections.BindingSection"  
-	 	id="prop.section.BindingSection">
-	    <input type="org.eclipse.wst.wsdl.asd.facade.IBinding">
-	    </input>
-	 </propertySection>
-	 
-	 <propertySection tab="org.eclipse.wst.xmlwebservices.general" 
-        class="org.eclipse.wst.wsdl.asd.editor.properties.sections.ImportSection"  
-	 	id="prop.section.ImportSection">
-	    <input type="org.eclipse.wst.wsdl.asd.facade.IImport">
-	    </input>
-	 </propertySection>
-	 <!--
-	 <propertySection tab="org.eclipse.wst.xmlwebservices.general" 
-        class="org.eclipse.wst.wsdl.asd.editor.properties.sections.SchemaSection"  
-	 	id="prop.section.SchemaSection">
-	    <input type="org.eclipse.wst.wsdl.asd.facade.IType">
-	    </input>
-	 </propertySection>	 
-	-->
-
-	 <propertySection tab="org.eclipse.wst.xmlwebservices.general" 
-        class="org.eclipse.wst.wsdl.asd.editor.properties.sections.NamespaceSection"
-	 	id="prop.section.NamespaceSection">
-	    <input type="org.eclipse.wst.wsdl.asd.facade.IDescription">
-	    </input>
-	 </propertySection>
-	 
-
-	 
-	 <!-- move to wsdl specific plugin -->
-	 <propertySection tab="org.eclipse.wst.xmlwebservices.extensibility" 
-        class="org.eclipse.wst.wsdl.ui.internal.properties.sections.W11ApplicationInfoSection"
-	 	id="prop.section.W11ApplicationInfoSection">
-	    <input type="org.eclipse.wst.wsdl.ui.internal.adapters.WSDLBaseAdapter">
-	    </input>
-	 </propertySection>
-	 
-	 	 
-  </propertySections>
-</extension>
-
-   <extension point="org.eclipse.wst.wsdl.ui.ApplicationInformationDescription">
-     <ApplicationSpecificSchemaProperties
-     	displayName="http://schemas.xmlsoap.org/wsdl/http/"
-      	namespaceURI="http://schemas.xmlsoap.org/wsdl/http/"
-     	labelProviderClass="org.eclipse.wst.wsdl.ui.internal.label.providers.HTTPLabelProvider">
-     </ApplicationSpecificSchemaProperties>
-   </extension>
-
-   <extension point="org.eclipse.wst.wsdl.ui.ApplicationInformationDescription">
-     <ApplicationSpecificSchemaProperties
-     	displayName="http://schemas.xmlsoap.org/wsdl/soap/"
-      	namespaceURI="http://schemas.xmlsoap.org/wsdl/soap/"
-		labelProviderClass="org.eclipse.wst.wsdl.ui.internal.label.providers.SOAPLabelProvider">
-     </ApplicationSpecificSchemaProperties>
-   </extension>
-   
-   <extension point="org.eclipse.ui.popupMenus"> 
-      <objectContribution 
-         id="org.eclipse.wst.wsdl.ui.refactoring.menu.objectContrib" 
-         objectClass="org.eclipse.wst.wsdl.ui.internal.adapters.WSDLBaseAdapter">  
-         <action
-            id="org.eclipse.wst.wsdleditor.refactoring.menu.refactorGroup.object" 
-            enablesFor="1"
-            style="pulldown"
-            menubarPath="refactoring-slot-temp"
-            label="Refactor" 
-            class="org.eclipse.wst.wsdl.ui.internal.refactor.actions.WSDLRefactorGroupActionDelegate"> 
-         </action>          
-      </objectContribution>               
-    </extension>
-	
-		<!-- intialize wsdl source validator -->
-	<extension point="org.eclipse.wst.sse.ui.sourcevalidation">
-		<validator
-			scope="total"
-			class="org.eclipse.wst.wsdl.ui.internal.reconciler.DelegatingSourceValidatorForWSDL"
-			id="org.eclipse.wst.wsdl.ui.internal.reconciler.DelegatingSourceValidatorForWSDL">
-			<contentTypeIdentifier
-				id="org.eclipse.wst.wsdl.wsdlsource">
-				<partitionType id="org.eclipse.wst.xml.XML_DEFAULT">
-				</partitionType>
-			</contentTypeIdentifier>
-		</validator>
-	</extension>
-	
-		<extension point="org.eclipse.wst.sse.ui.editorConfiguration">
-		<!-- add preference pages to the context menu action (ID must correspond to the declared "path" above) -->
-<!--
-		<provisionalDefinition
-			type="preferencepages"
-			value="org.eclipse.wst.wsdl.ui.internal.util.WSDLPreferencePage"
-			target="org.eclipse.wst.wsdl.ui.internal.WSDLEditor.source" />
--->
-		<sourceViewerConfiguration
-			class="org.eclipse.wst.wsdl.ui.internal.StructuredTextViewerConfigurationWSDL"
-			target="org.eclipse.wst.wsdl.wsdlsource" />
-<!--			
-		<contentOutlineConfiguration
-			class="org.eclipse.wst.wsdl.ui.internal.outline.WSDLContentOutlineConfiguration"
-			target="org.eclipse.wst.wsdl.wsdlsource" />
--->
-	</extension>
-	
-		<!-- this extension point is used to augment the ModelQuery to provide WSDL specific guided editing -->
-	<extension point="org.eclipse.wst.xml.core.modelQueryExtensions">
-		<modelQueryExtension
-			class="org.eclipse.wst.wsdl.ui.internal.text.WSDLModelQueryExtension"
-			contentType="org.eclipse.wst.wsdl.wsdlsource">
-		</modelQueryExtension>
-	</extension>
-   
-        <!-- Search participant extension that supports XMLComponentSearchPatten on WSDL resources -->
-	 <extension   
-		point="org.eclipse.wst.common.core.searchParticipants">
-		<searchParticipant
-			id="org.eclipse.wst.wsdl.search.WSDLSearchParticipant"
-			class="org.eclipse.wst.wsdl.ui.internal.search.WSDLSearchParticipant">
-			<enablement>
-			   <or>
-			      <with variable="pattern">
-					<instanceof value="org.eclipse.wst.xml.core.internal.search.XMLComponentSearchPattern"/>			   
-				  </with>
-				</or>
-			</enablement>
-		</searchParticipant>
-	 </extension>
-	
 
 
-	<!-- Refactoring CORE -->
-	<extension
-		point="org.eclipse.ltk.core.refactoring.renameParticipants">
-		<renameParticipant
-			name="WSDL Rename Particpant"           
-			class="org.eclipse.wst.wsdl.ui.internal.refactor.WSDLComponentRenameParticipant"
-			id="org.eclipse.wst.wsdl.ui.refactoring.WSDLComponentRenameParticipant">
-			<enablement>
-			   <or>
-			   <with variable="element">
-					<instanceof value="org.eclipse.wst.wsdl.WSDLElement"/>			   
-				</with>
-			   <with variable="element">
-					<instanceof value="org.eclipse.xsd.XSDNamedComponent"/>								
-				</with>							
-				</or>
-			</enablement>			
-		</renameParticipant>
-	</extension>
-	
-	 	<!--  Refactoring UI extensions -->
-   <extension point="org.eclipse.ui.popupMenus"> 
-      <objectContribution 
-         id="org.eclipse.wst.wsdl.ui.refactoring.menu.objectContrib" 
-         objectClass="org.eclipse.wst.wsdl.WSDLElement"> 
-         <action
-            id="org.eclipse.wst.wsdl.ui.refactoring.menu.refactorGroup.object" 
-            enablesFor="1"
-            style="pulldown"
-            menubarPath="additions"
-            label="%refactoring.menu.label" 
-            class="org.eclipse.wst.wsdl.ui.internal.refactor.actions.WSDLRefactorGroupActionDelegate"> 
-         </action> 
-      </objectContribution>   
-   
-    <viewerContribution
-        id="org.eclipse.wst.xsd.ui.refactoring.menu.source"
-        targetID="org.eclipse.wst.wsdl.wsdlsource.source.EditorContext">
-	    <action id="org.eclipse.wst.wsdl.ui.refactoring.menu.refactorGroup.source"
-       		style="pulldown"
-            menubarPath="additions"
-            label="%refactoring.menu.label" 
-            class="org.eclipse.wst.wsdl.ui.internal.refactor.actions.WSDLRefactorGroupActionDelegate"> 
-  	    </action>
-       </viewerContribution>       
-     </extension>
-          
-     <extension point="org.eclipse.ui.commands">
-		<command
-			name="%command.wsdl.refactor.rename.element.name"
-			description="%command.wsdl.refactor.rename.element.description"
-			categoryId="org.eclipse.ui.category.edit"
-			id="org.eclipse.wst.wsdl.ui.refactor.rename.element">
-		</command>
-	</extension>   
-	
-		<extension point="org.eclipse.ui.editorActions">
+	<extension point="org.eclipse.ui.editorActions">
 		<editorContribution
-			id="org.eclipse.ui.articles.action.contribution.editor"
+			id="org.eclipse.ui.articles.action.contribution.editor2"
 			targetID="org.eclipse.wst.wsdl.ui.internal.WSDLEditor">
 
 			<menu
@@ -351,7 +129,7 @@
 				icon="icons/reloadgrammar.gif"
 				tooltip="Reload Dependencies"
 				menubarPath="WSDLEditor/group1"
-				class="org.eclipse.wst.wsdl.ui.internal.ReloadDependenciesActionDelegate">
+				class="org.eclipse.wst.wsdl.ui.internal.actions.ReloadDependenciesActionDelegate">
 			</action>
 
 			<!--
@@ -383,39 +161,166 @@
                id="org.eclipse.ui.texteditor.SelectRulerAction"/>
         </editorContribution>
 	</extension>
-   
-   <!-- ===================================================================== -->
-	
-	<extension
-		point="org.eclipse.wst.wsdl.ui.extensibilityElementFilter">
-		<extensibilityElementFilter
-			namespace="http://schemas.xmlsoap.org/wsdl/soap/"
-			class="org.eclipse.wst.wsdl.ui.internal.filter.SoapExtensiblityElementFilter">
-		</extensibilityElementFilter>
+
+	<extension point="org.eclipse.ui.preferencePages">
+		<!-- place everything in "Web and XML" -->
+		<page
+			name="%_UI_WSDL_LABEL"
+			category="org.eclipse.wst.sse.ui.internal.provisional.preferences"
+			class="org.eclipse.wst.wsdl.ui.internal.util.WSDLPreferencePage"
+			id="org.eclipse.wst.wsdl.ui.internal.util.WSDLPreferencePage" />
+	</extension>
+	<extension point="org.eclipse.wst.sse.ui.editorConfiguration">
+		<!-- add preference pages to the context menu action (ID must correspond to the declared "path" above) -->
+		<provisionalDefinition
+			type="preferencepages"
+			value="org.eclipse.wst.wsdl.ui.internal.util.WSDLPreferencePage"
+			target="org.eclipse.wst.wsdl.ui.internal.WSDLEditor.source" />
+		<sourceViewerConfiguration
+			class="org.eclipse.wst.wsdl.ui.internal.StructuredTextViewerConfigurationWSDL"
+			target="org.eclipse.wst.wsdl.wsdlsource" />
+		<contentOutlineConfiguration
+			class="org.eclipse.wst.wsdl.ui.internal.outline.WSDLContentOutlineConfiguration"
+			target="org.eclipse.wst.wsdl.wsdlsource" />
 	</extension>
 
 	<extension
-		point="org.eclipse.wst.wsdl.ui.extensibilityElementFilter">
-		<extensibilityElementFilter
-			namespace="http://schemas.xmlsoap.org/wsdl/http/"
-			class="org.eclipse.wst.wsdl.ui.internal.filter.HttpExtensiblityElementFilter">
-		</extensibilityElementFilter>
+		point="org.eclipse.wst.common.ui.properties.propertyContributor">
+		<propertyContributor
+			typeMapper="org.eclipse.wst.wsdl.ui.internal.properties.section.WSDLTypeMapper"
+			contributorId="org.eclipse.wst.wsdl.ui.internal.WSDLEditor"
+			sectionDescriptorProvider="org.eclipse.wst.wsdl.ui.internal.properties.section.WSDLSectionDescriptorProvider"
+			labelProvider="org.eclipse.wst.wsdl.ui.internal.properties.section.WSDLLabelProvider">
+			<propertyCategory category="general"></propertyCategory>
+			<propertyCategory category="namespace"></propertyCategory>
+			<propertyCategory category="other"></propertyCategory>
+			<propertyCategory category="attributes"></propertyCategory>
+			<propertyCategory category="enumerations">
+			</propertyCategory>
+			<propertyCategory category="documentation">
+			</propertyCategory>
+			<propertyCategory category="facets"></propertyCategory>
+		</propertyContributor>
+	</extension>
+	<extension
+		point="org.eclipse.wst.common.ui.properties.propertyTabs">
+		<propertyTabs
+			contributorId="org.eclipse.wst.wsdl.ui.internal.WSDLEditor">
+			<propertyTab
+				label="%_UI_LABEL_GENERAL"
+				category="general"
+				id="org.eclipse.wst.xmlwebservices.general">
+			</propertyTab>
+			<propertyTab
+				label="%_UI_LABEL_NAMESPACE"
+				category="namespace"
+				afterTab="org.eclipse.wst.xmlwebservices.general"
+				id="org.eclipse.wst.xmlwebservices.namespace">
+			</propertyTab>
+			<propertyTab
+				label="%_UI_LABEL_OTHER"
+				category="other"
+				id="org.eclipse.wst.xmlwebservices.other">
+			</propertyTab>
+			<propertyTab
+				label="%_UI_LABEL_ATTRIBUTES"
+				category="attributes"
+				id="org.eclipse.wst.xmlwebservices.attributes">
+			</propertyTab>
+			<propertyTab
+				label="%_UI_LABEL_ENUMERATIONS"
+				category="enumerations"
+				id="org.eclipse.wst.xmlwebservices.enumerations">
+			</propertyTab>
+			<propertyTab
+				label="%_UI_LABEL_DOCUMENTATION"
+				category="documentation"
+				id="org.eclipse.wst.xmlwebservices.documentation">
+			</propertyTab>
+			<propertyTab
+				label="%_UI_SECTION_ADVANCED_ATTRIBUTES"
+				category="facets"
+				id="org.eclipse.wst.xmlwebservices.facets">
+			</propertyTab>
+		</propertyTabs>
 	</extension>
 
 	<extension
-		point="org.eclipse.wst.wsdl.ui.extensibilityElementFilter">
-		<extensibilityElementFilter
-			namespace="http://schemas.xmlsoap.org/wsdl/mime/"
-			class="org.eclipse.wst.wsdl.ui.internal.filter.MimeExtensiblityElementFilter">
-		</extensibilityElementFilter>
+		point="org.eclipse.wst.wsdl.ui.internalEditorExtensions">
+		<internalEditorExtension
+			class="org.eclipse.wst.wsdl.ui.internal.xsd.XSDExtension" />
 	</extension>
 
-
 	<extension
-		point="org.eclipse.wst.wsdl.ui.extensibilityElementFilter">
-		<extensibilityElementFilter
+		point="org.eclipse.wst.wsdl.ui.extensibilityItemTreeProviders">
+		<extensibilityItemTreeProvider
 			namespace="http://www.w3.org/2001/XMLSchema"
-			class="org.eclipse.wst.wsdl.ui.internal.filter.XSDExtensiblityElementFilter">
-		</extensibilityElementFilter>
+			labelProviderClass="org.eclipse.wst.wsdl.ui.internal.xsd.XSDLabelProvider">
+		</extensibilityItemTreeProvider>
 	</extension>
+
+	<!-- intialize wsdl source validator -->
+	<extension point="org.eclipse.wst.sse.ui.sourcevalidation">
+		<validator
+			scope="total"
+			class="org.eclipse.wst.wsdl.ui.internal.reconciler.DelegatingSourceValidatorForWSDL"
+			id="org.eclipse.wst.wsdl.ui.internal.reconciler.DelegatingSourceValidatorForWSDL">
+			<contentTypeIdentifier
+				id="org.eclipse.wst.wsdl.wsdlsource">
+				<partitionType id="org.eclipse.wst.xml.XML_DEFAULT">
+				</partitionType>
+			</contentTypeIdentifier>
+		</validator>
+	</extension>
+
+	<!-- this extension point is used to augment the ModelQuery to provide WSDL specific guided editing -->
+	<extension point="org.eclipse.wst.xml.core.modelQueryExtensions">
+		<modelQueryExtension
+			class="org.eclipse.wst.wsdl.ui.internal.text.WSDLModelQueryExtension"
+			contentType="org.eclipse.wst.wsdl.wsdlsource">
+		</modelQueryExtension>
+	</extension>
+	
+   <!-- ====================================================== -->
+   <!-- Set the Validate WSDL File context menu item. This     -->
+   <!-- menu item should be removed once the validation        -->
+   <!-- framework is modified to create the item.              -->
+   <!-- ====================================================== -->
+   <extension
+         point="org.eclipse.ui.popupMenus">
+      <objectContribution
+            objectClass="org.eclipse.core.resources.IFile"
+            nameFilter="*.wsdl"
+            id="org.eclipse.wst.wsdl.validation.wsdlaction">
+         <action
+               label="%_UI_MENU_VALIDATE_WSDL"
+               class="org.eclipse.wst.wsdl.ui.internal.validation.ValidateWSDLActionDelegate"
+               enablesFor="1"
+               id="org.eclipse.wst.wsdl.ui.internal.validation.ValidateWSDLActionDelegate">
+         </action>
+      </objectContribution>
+   </extension>
+   
+   <!-- ====================================================== -->
+   <!-- An extension for adding the WSDL validator to the      -->
+   <!-- validation framework. 						           -->										   -->
+   <!-- ====================================================== -->
+   <extension
+         id="wsdlValidator"
+         name="%_UI_WSDL_VALIDATOR"
+         point="org.eclipse.wst.validation.validator">
+      <validator>
+         <filter
+               objectClass="org.eclipse.core.resources.IFile"
+               caseSensitive="false"
+               nameFilter="*.wsdl">
+         </filter>
+         <helper
+               class="org.eclipse.wst.xml.core.internal.validation.core.Helper">
+         </helper>
+         <run
+               class="org.eclipse.wst.wsdl.ui.internal.validation.Validator">
+         </run>
+      </validator>
+   </extension>
 </plugin>
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/ISelectionMapper.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/ISelectionMapper.java
deleted file mode 100644
index 2b6dafd..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/ISelectionMapper.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.viewers.ISelection;
-
-public interface ISelectionMapper {
-	ISelection mapSelection(ISelection selectedObject);
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/InternalWSDLMultiPageEditor.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/InternalWSDLMultiPageEditor.java
deleted file mode 100644
index 3119917..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/InternalWSDLMultiPageEditor.java
+++ /dev/null
@@ -1,353 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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 java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notifier;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.gef.ui.actions.ActionRegistry;
-import org.eclipse.jface.viewers.IPostSelectionProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.wsdl.Definition;
-import org.eclipse.wst.wsdl.asd.editor.ASDMultiPageEditor;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDAddMessageAction;
-import org.eclipse.wst.wsdl.asd.editor.actions.BaseSelectionAction;
-import org.eclipse.wst.wsdl.asd.editor.util.ASDEditPartFactoryHelper;
-import org.eclipse.wst.wsdl.asd.editor.util.IOpenExternalEditorHelper;
-import org.eclipse.wst.wsdl.asd.facade.IDescription;
-import org.eclipse.wst.wsdl.ui.internal.adapters.WSDLBaseAdapter;
-import org.eclipse.wst.wsdl.ui.internal.adapters.actions.W11AddPartAction;
-import org.eclipse.wst.wsdl.ui.internal.adapters.actions.W11SetExistingMessageAction;
-import org.eclipse.wst.wsdl.ui.internal.adapters.actions.W11SetNewMessageAction;
-import org.eclipse.wst.wsdl.ui.internal.adapters.basic.W11Description;
-import org.eclipse.wst.wsdl.ui.internal.edit.W11BindingReferenceEditManager;
-import org.eclipse.wst.wsdl.ui.internal.edit.W11InterfaceReferenceEditManager;
-import org.eclipse.wst.wsdl.ui.internal.edit.W11MessageReferenceEditManager;
-import org.eclipse.wst.wsdl.ui.internal.edit.WSDLXSDTypeReferenceEditManager;
-import org.eclipse.wst.wsdl.ui.internal.text.WSDLModelAdapter;
-import org.eclipse.wst.wsdl.ui.internal.util.ComponentReferenceUtil;
-import org.eclipse.wst.wsdl.ui.internal.util.W11OpenExternalEditorHelper;
-import org.eclipse.wst.wsdl.ui.internal.util.WSDLAdapterFactoryHelper;
-import org.eclipse.wst.wsdl.ui.internal.util.WSDLEditorUtil;
-import org.eclipse.wst.wsdl.ui.internal.util.WSDLResourceUtil;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xsd.editor.XSDTypeReferenceEditManager;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-
-public class InternalWSDLMultiPageEditor extends ASDMultiPageEditor
-{
-	ResourceSet resourceSet;
-	Resource wsdlResource;
-	
-	protected WSDLEditorResourceChangeHandler resourceChangeHandler;
-	
-	protected WSDLModelAdapter modelAdapter;
-	protected SourceEditorSelectionListener fSourceEditorSelectionListener;
-	protected WSDLSelectionManagerSelectionListener fWSDLSelectionListener;
-	
-	public IDescription buildModel(IFileEditorInput editorInput)
-	{   
-		try
-		{
-			Object obj = null;
-			Document document = ((IDOMModel) editor.getModel()).getDocument();
-			if (document instanceof INodeNotifier) {
-				INodeNotifier notifier = (INodeNotifier) document;
-				modelAdapter = (WSDLModelAdapter) notifier.getAdapterFor(WSDLModelAdapter.class);
-				if (modelAdapter == null) {
-					modelAdapter = new WSDLModelAdapter();
-					notifier.addAdapter(modelAdapter);
-					obj = modelAdapter.createDefinition(document.getDocumentElement(), document);
-				}
-				if (obj == null) {
-					obj = modelAdapter.createDefinition(document.getDocumentElement(), document);
-				}
-			}
-			
-			if (obj instanceof Definition)
-			{
-				Definition definition = (Definition) obj;
-				model = (IDescription) WSDLAdapterFactoryHelper.getInstance().adapt(definition); 
-			}
-			wsdlResource.setModified(false);
-//			}
-		}
-		catch (StackOverflowError e)
-		{
-		}
-		catch (Exception ex)
-		{
-		}
-		
-		return model;
-	}
-	
-	public Object getAdapter(Class type) {
-		if (type == ISelectionMapper.class)
-		{
-			return new WSDLSelectionMapper();
-		}
-        else if (type == Definition.class && model instanceof Adapter)
-        {
-          return ((Adapter)model).getTarget(); 
-        }
-        else if (type == XSDTypeReferenceEditManager.class)
-        {
-          IEditorInput editorInput = getEditorInput();
-          if (editorInput instanceof IFileEditorInput)
-          {
-            IFileEditorInput fileEditorInput = (IFileEditorInput) editorInput;
-            return new WSDLXSDTypeReferenceEditManager(fileEditorInput.getFile(), null);
-          }
-        }
-        else if (type == W11BindingReferenceEditManager.class) {
-            IEditorInput editorInput = getEditorInput();
-            if (editorInput instanceof IFileEditorInput)
-            {
-            	IFileEditorInput fileEditorInput = (IFileEditorInput) editorInput;
-            	return new W11BindingReferenceEditManager((W11Description) getModel(), fileEditorInput.getFile());
-            }
-        }
-        else if (type == W11InterfaceReferenceEditManager.class) {
-            IEditorInput editorInput = getEditorInput();
-            if (editorInput instanceof IFileEditorInput)
-            {
-            	IFileEditorInput fileEditorInput = (IFileEditorInput) editorInput;
-            	return new W11InterfaceReferenceEditManager((W11Description) getModel(), fileEditorInput.getFile());
-            }        	
-        }
-        else if (type == W11MessageReferenceEditManager.class) {
-            IEditorInput editorInput = getEditorInput();
-            if (editorInput instanceof IFileEditorInput)
-            {
-            	IFileEditorInput fileEditorInput = (IFileEditorInput) editorInput;
-            	return new W11MessageReferenceEditManager((W11Description) getModel(), fileEditorInput.getFile());
-            }        	
-        }
-		
-		return super.getAdapter(type);
-	}
-	
-	/**
-	 * Listener on SSE's source editor's selections that converts DOM
-	 * selections into xsd selections and notifies WSDL selection manager
-	 */
-	private class SourceEditorSelectionListener implements ISelectionChangedListener {
-		/**
-		 * Determines WSDL node based on object (DOM node)
-		 * 
-		 * @param object
-		 * @return
-		 */
-		private Object getWSDLNode(Object object) {
-			// get the element node
-			Element element = null;
-			if (object instanceof Node) {
-				Node node = (Node) object;
-				if (node != null) {
-					if (node.getNodeType() == Node.ELEMENT_NODE) {
-						element = (Element) node;
-					}
-					else if (node.getNodeType() == Node.ATTRIBUTE_NODE) {
-						element = ((Attr) node).getOwnerElement();
-					}
-				}
-			}
-			Object o = element;
-			if (element != null) {
-				Definition def = (Definition) ((W11Description) model).getTarget();
-				Object modelObject = WSDLEditorUtil.getInstance().findModelObjectForElement(def, element);
-				if (modelObject != null) {
-					o = WSDLAdapterFactoryHelper.getInstance().adapt((Notifier) modelObject);
-				}
-			}
-			return o;
-		}
-		
-		public void selectionChanged(SelectionChangedEvent event) {
-			
-			if (getActivePage() == 0)
-//				if (getSelectionManager().getEnableNotify() && getActivePage() == 1)
-			{
-				ISelection selection = event.getSelection();
-				if (selection instanceof IStructuredSelection)
-				{
-					List selections = new ArrayList();
-					for (Iterator i = ((IStructuredSelection) selection).iterator(); i.hasNext();)
-					{
-						Object domNode = i.next();
-						Object node = getWSDLNode(domNode);
-						if (node != null)
-						{
-							selections.add(node);
-						}
-					}
-					
-					if (!selections.isEmpty())
-					{
-						StructuredSelection wsdlSelection = new StructuredSelection(selections);
-						getSelectionManager().setSelection(wsdlSelection, editor.getSelectionProvider());
-					}
-				}
-			}
-		}
-	}
-	
-	/**
-	 * Listener on WSDL's selection manager's selections that converts WSDL
-	 * selections into DOM selections and notifies SSE's selection provider
-	 */
-	private class WSDLSelectionManagerSelectionListener implements ISelectionChangedListener {
-		/**
-		 * Determines DOM node based on object (wsdl node)
-		 * 
-		 * @param object
-		 * @return
-		 */
-		private Object getObjectForOtherModel(Object object) {
-			Node node = null;
-			
-			if (object instanceof Node) {
-				node = (Node) object;
-			}
-			else {
-				node = WSDLEditorUtil.getInstance().getNodeForObject(object);
-			}
-			
-			// the text editor can only accept sed nodes!
-			//
-			if (!(node instanceof IDOMNode)) {
-				node = null;
-			}
-			return node;
-		}
-		
-		public void selectionChanged(SelectionChangedEvent event) {
-			// do not fire selection in source editor if selection event came
-			// from source editor
-			if (event.getSource() != editor.getSelectionProvider()) {
-				ISelection selection = event.getSelection();
-				if (selection instanceof IStructuredSelection) {
-					List otherModelObjectList = new ArrayList();
-					for (Iterator i = ((IStructuredSelection) selection).iterator(); i.hasNext();) {
-						Object facadeObject = i.next();
-						if (facadeObject instanceof WSDLBaseAdapter) {
-							Object wsdlObject = ((WSDLBaseAdapter) facadeObject).getTarget();
-							Object otherModelObject = getObjectForOtherModel(wsdlObject);
-							if (otherModelObject != null) {
-								otherModelObjectList.add(otherModelObject);
-							}
-						}
-					}
-					if (!otherModelObjectList.isEmpty()) {
-						StructuredSelection nodeSelection = new StructuredSelection(otherModelObjectList);
-						editor.getSelectionProvider().setSelection(nodeSelection);
-					}
-				}
-			}
-		}
-	}
-	
-	protected void configureGraphicalViewer() {
-		super.configureGraphicalViewer();
-		setEditPartFactory(ASDEditPartFactoryHelper.getInstance().getEditPartFactory());
-	}
-	
-	protected void createPages() {
-		super.createPages();
-		
-		if (resourceChangeHandler == null) {
-			resourceChangeHandler = new WSDLEditorResourceChangeHandler(this);
-			resourceChangeHandler.attach();
-		}
-		
-		fSourceEditorSelectionListener = new SourceEditorSelectionListener();
-		ISelectionProvider provider = editor.getSelectionProvider();
-		if (provider instanceof IPostSelectionProvider) {
-			((IPostSelectionProvider) provider).addPostSelectionChangedListener(fSourceEditorSelectionListener);
-		}
-		else {
-			provider.addSelectionChangedListener(fSourceEditorSelectionListener);
-		}
-		
-		fWSDLSelectionListener = new WSDLSelectionManagerSelectionListener();
-		getSelectionManager().addSelectionChangedListener(fWSDLSelectionListener);
-	}
-	
-	public void dispose() {
-		if (resourceChangeHandler != null) {
-			resourceChangeHandler.dispose();
-		}
-	}
-	
-	public void reloadDependencies() {
-		try {
-			Definition definition = (Definition) ((W11Description) getModel()).getTarget();
-			if (definition != null) {
-				WSDLResourceUtil.reloadDirectives(definition);
-				ComponentReferenceUtil.updateBindingReferences(definition);
-				ComponentReferenceUtil.updatePortTypeReferences(definition);
-				ComponentReferenceUtil.updateMessageReferences(definition);
-				ComponentReferenceUtil.updateSchemaReferences(definition);
-				// the line below simply causes a notification in order to
-				// update our
-				// views
-				//
-				definition.setDocumentationElement(definition.getDocumentationElement());
-			}
-		}
-		finally {
-		}
-	}
-	
-	protected void createActions() {
-		super.createActions();
-	    ActionRegistry registry = getActionRegistry();
-
-	    BaseSelectionAction action = new ASDAddMessageAction(this);
-	    action.setSelectionProvider(getSelectionManager());
-	    registry.registerAction(action);
-
-	    action = new W11AddPartAction(this);
-	    action.setSelectionProvider(getSelectionManager());
-	    registry.registerAction(action);
-	    
-	    action = new W11SetNewMessageAction(this);
-	    action.setSelectionProvider(getSelectionManager());
-	    registry.registerAction(action);
-
-	    action = new W11SetExistingMessageAction(this);
-	    action.setSelectionProvider(getSelectionManager());
-	    registry.registerAction(action);
-	  }
-	
-  public IOpenExternalEditorHelper getOpenExternalEditorHelper() {
-    return new W11OpenExternalEditorHelper(((IFileEditorInput) getEditorInput()).getFile());
-  }
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/WSDLEditorPlugin.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/WSDLEditorPlugin.java
deleted file mode 100644
index aa86035..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/WSDLEditorPlugin.java
+++ /dev/null
@@ -1,436 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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 java.io.IOException;
-import java.net.URL;
-import java.text.MessageFormat;
-import java.util.HashMap;
-import java.util.Hashtable;
-
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.eclipse.wst.wsdl.ui.internal.extensions.NSKeyedExtensionRegistry;
-import org.eclipse.wst.wsdl.ui.internal.extensions.WSDLEditorConfiguration;
-import org.eclipse.wst.xsd.ui.common.properties.sections.appinfo.ApplicationInformationPropertiesRegistry;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
-
-public class WSDLEditorPlugin extends AbstractUIPlugin //, IPluginHelper
-{
-  public static final String DEFAULT_PAGE = "org.eclipse.wst.wsdl.ui.internal.defaultpage";
-  public static final String GRAPH_PAGE = "org.eclipse.wst.wsdl.ui.internal.graphpage";
-  public static final String SOURCE_PAGE = "org.eclipse.wst.wsdl.ui.internal.sourcepage";
-
-  public final static String PLUGIN_ID = "org.eclipse.wst.wsdl.ui";
-  public final static String XSD_EDITOR_ID = "org.eclipse.wst.xsd.ui.XSDEditor"; 
-  
-  public final static String DEFAULT_TARGET_NAMESPACE = "http://www.example.org";
-  
-  public static int DEPENDECIES_CHANGED_POLICY_PROMPT = 0;
-  public static int DEPENDECIES_CHANGED_POLICY_IGNORE = 1;
-  public static int DEPENDECIES_CHANGED_POLICY_RELOAD = 2;
-
-  protected static WSDLEditorPlugin instance;
-  private ApplicationInformationPropertiesRegistry registry;
-  private WSDLEditorConfiguration wsdlEditorConfiguration = null;
-
-  private NSKeyedExtensionRegistry extensiblityElementFilterRegistry;
-  private int dependenciesChangedPolicy = DEPENDECIES_CHANGED_POLICY_RELOAD;
-
-  public WSDLEditorConfiguration getWSDLEditorConfiguration()
-  {
-    if (wsdlEditorConfiguration == null)
-    {
-      wsdlEditorConfiguration = new WSDLEditorConfiguration();
-    }
-    return wsdlEditorConfiguration;
-  }
-  
-	public ApplicationInformationPropertiesRegistry getApplicationInformationPropertiesRegistry() {
-		if (registry == null) {
-			registry = new ApplicationInformationPropertiesRegistry("org.eclipse.wst.wsdl.ui.ApplicationInformationDescription");
-		}
-		
-		return registry;
-	}
-	
-  public static void logMessage(String message)
-  {
-  }
-
-  /**
-   * Resources helper.
-   */
-
-  public WSDLEditorPlugin()
-  {
-    super();
-    instance = this;
-
-    // TODO... remove this code when we add 'dependenciesChangedPolicy'
-    // to an editor preferences page
-    try
-    {
-      String string = getWSDLString("_DEBUG_UPDATE_POLICY");
-      int policy = Integer.parseInt(string);
-      if (policy >= 0 && policy <= DEPENDECIES_CHANGED_POLICY_RELOAD)
-      {
-        dependenciesChangedPolicy = policy;
-      }
-    }
-    catch (Exception e)
-    {
-    }
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
-   */
-  public void start(BundleContext context) throws Exception 
-  {
-	super.start(context);
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
-   */
-  public void stop(BundleContext context) throws Exception 
-  {
-	super.stop(context);
-  }
-
-  public NSKeyedExtensionRegistry getExtensiblityElementFilterRegistry()
-  {
-    if (extensiblityElementFilterRegistry == null)
-    {
-      extensiblityElementFilterRegistry = new NSKeyedExtensionRegistry();
-      new ElementContentFilterExtensionRegistryReader(extensiblityElementFilterRegistry).readRegistry();
-    }
-    return extensiblityElementFilterRegistry;
-  }
-
-  /**
-   * Get the Install URL
-   */
-  public static URL getInstallURL()
-  {
-	try
-	{
-	  return FileLocator.resolve(instance.getBundle().getEntry("/"));
-	}
-	catch (IOException e)
-	{
-	  return null;
-	}
-  }
-
-  /**
-   * Get resource string
-   */
-  public static String getWSDLString(String key)
-  {	  
-    return Platform.getResourceBundle(Platform.getBundle(PLUGIN_ID)).getString(key);
-  }
-
-  /**
-   * Get resource string
-   */
-  public static String getWSDLString(String key, String arg0)
-  {
-    return MessageFormat.format(getWSDLString(key), new Object [] { arg0 });
-  }
-  
-  /**
-   * Get resource string
-   */
-  public static String getWSDLString(String key, String arg0, String arg1)
-  {
-    return MessageFormat.format(getWSDLString(key), new Object [] { arg0, arg1 });
-  }
-
-  /**
-   * Return the plugin physical directory location
-   */
-  public static IPath getPluginLocation()
-  {
-    try
-    {
-      IPath installPath = new Path(getInstallURL().toExternalForm()).removeTrailingSeparator();
-      String installStr = FileLocator.toFileURL(new URL(installPath.toString())).getFile();
-      return new Path(installStr);
-    }
-    catch (IOException e)
-    {
-      //System.out.println("WSDLEditorPlugin.getPluginLocation() exception.." + e);
-    }
-    return null;
-  }
-
-  protected Hashtable imageDescriptorCache = new Hashtable();
-
-  protected ImageDescriptor internalGetImageDescriptor(String key)
-  {
-    ImageDescriptor imageDescriptor = (ImageDescriptor) imageDescriptorCache.get(key);
-    if (imageDescriptor == null)
-    {
-      imageDescriptor = ImageDescriptor.createFromFile(WSDLEditorPlugin.class, key);
-      if (imageDescriptor != null)
-      {
-        imageDescriptorCache.put(key, imageDescriptor);
-      }
-    }
-    return imageDescriptor;
-  }
-
-  public static ImageDescriptor getImageDescriptor(String key)
-  {
-    return getInstance().internalGetImageDescriptor(key);
-  }
-
-  public Image getImage(String iconName)
-  {
-    ImageRegistry imageRegistry = getImageRegistry();
-    
-    if (imageRegistry.get(iconName) != null)
-    {
-      return imageRegistry.get(iconName);
-    }
-    else
-    {
-      imageRegistry.put(iconName, ImageDescriptor.createFromFile(getClass(), iconName));
-      return imageRegistry.get(iconName);
-    }
-  }
-  
-  /*
-    public Image getImage(String key, boolean isGrayed)
-    { 
-      Image image = null;
-      if (!isGrayed)
-      {
-        image = super.getImage(key);
-      }                             
-      else
-      {
-        image = (Image)grayedImageMap.get(key);
-        if (image == null)
-        {
-          Image colorImage = super.getImage(key);
-          if (colorImage != null)
-          {
-            image = new Image(Display.getCurrent(), colorImage, SWT.IMAGE_GRAY);//SWT.IMAGE_DISABLE);
-            grayedImageMap.put(key, image);
-          }
-        }
-      }
-      return image;
-    }
-  */
-
-  /**
-   * Get the metadata directory for this plugin
-   */
-  public static String getMetaDataDirectory()
-  {
-    return getInstance().getStateLocation().toOSString();
-  }
-
-  /**
-   * Get the singleton instance.
-   */
-  public static WSDLEditorPlugin getInstance()
-  {
-    if (instance == null)
-    {
-	  new WSDLEditorPlugin();
-	}
-    
-    return instance;
-  }
-
-  public IWorkspace getWorkspace()
-  {
-    return ResourcesPlugin.getWorkspace();
-  }
-
-  public static Shell getShell()
-  {
-    return getInstance().getWorkbench().getActiveWorkbenchWindow().getShell();
-  }
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.plugin.AbstractUIPlugin#initializeDefaultPreferences(org.eclipse.jface.preference.IPreferenceStore)
-   */
-  protected void initializeDefaultPreferences(IPreferenceStore store)
-  {
-    store.setDefault(DEFAULT_PAGE, GRAPH_PAGE);
-    
-    // WSDLPreferencePage prefs
-    store.setDefault(WSDLEditorPlugin.getWSDLString("_UI_PREF_PAGE_DEFAULT_TARGET_NAMESPACE"), DEFAULT_TARGET_NAMESPACE);
-    store.setDefault(WSDLEditorPlugin.getWSDLString("_UI_PREF_PAGE_AUTO_REGENERATE_BINDING"), false);
-    store.setDefault("Prompt Regenerate Binding on save", false);	// TODO: Externalize
-    // Do we need this preference below?  Look at WSDLPreferencePage.java
-//    store.setDefault("Defualt Location:", "http://www.example.com");
-  }
-  
-  /**
-   * setDefaultPage
-   * Set the default page to open when the editor starts. Maintains the state
-   * when WSAD is shutdown and restarted.
-   * @param page
-   */
-  public void setDefaultPage(String page)
-  {
-    getPreferenceStore().setValue(DEFAULT_PAGE, page);
-  }
-
-  public String getDefaultPage()
-  {
-    return getPreferenceStore().getString(DEFAULT_PAGE);
-  }
-
-  public int getDependenciesChangedPolicy()
-  {
-    //return getPreferenceStore().getInt(DEPENDECIES_CHANGED_POLICY);
-    return dependenciesChangedPolicy;
-  }
-}
-
-class BaseRegistryReader
-{
-  protected static final String PLUGIN_ID = "org.eclipse.wst.wsdl.ui";
-
-  /**
-   * read from plugin registry and parse it.
-   */
-  public void readRegistry(String extensionPointId)
-  {
-	IExtensionRegistry extensionRegistry = Platform.getExtensionRegistry();
-	IExtensionPoint point = extensionRegistry.getExtensionPoint(PLUGIN_ID, extensionPointId);
-
-    if (point != null)
-    {
-      IConfigurationElement[] elements = point.getConfigurationElements();
-      for (int i = 0; i < elements.length; i++)
-      {
-        readElement(elements[i]);
-      }
-    }
-  }
-
-  protected void readElement(IConfigurationElement element)
-  {
-  }
-}
-
-/**
- * 
- */
-abstract class NSKeyedExtensionRegistryReader extends BaseRegistryReader
-{
-  protected static final String ATT_NAME_SPACE = "namespace";
-  protected String extensionPointId;
-  protected String tagName;
-  protected String[] attributeNames;
-  protected NSKeyedExtensionRegistry nsKeyedExtensionRegistry;
-
-  private NSKeyedExtensionRegistryReader(String extensionPointId, String tagName, NSKeyedExtensionRegistry nsKeyedExtensionRegistry)
-  {
-    this.extensionPointId = extensionPointId;
-    this.tagName = tagName;
-    this.nsKeyedExtensionRegistry = nsKeyedExtensionRegistry;
-  }
-
-  public NSKeyedExtensionRegistryReader(String extensionPointId, String tagName, String attributeName, NSKeyedExtensionRegistry nsKeyedExtensionRegistry)
-  {
-    this(extensionPointId, tagName, nsKeyedExtensionRegistry);
-    attributeNames = new String[1];
-    attributeNames[0] = attributeName;
-  }
-
-  public NSKeyedExtensionRegistryReader(String extensionPointId, String tagName, String[] attributeNames, NSKeyedExtensionRegistry nsKeyedExtensionRegistry)
-  {
-    this(extensionPointId, tagName, nsKeyedExtensionRegistry);
-    this.attributeNames = attributeNames;
-  }
-  /**
-   * read from plugin registry and parse it.
-   */
-  public void readRegistry()
-  {
-    super.readRegistry(extensionPointId);
-  }
-
-  /**
-   * readElement()
-   */
-  protected void readElement(IConfigurationElement element)
-  {
-    if (element.getName().equals(tagName))
-    {
-      String namespace = element.getAttribute(ATT_NAME_SPACE);
-      if (namespace != null)
-      {
-    	Bundle bundle = Platform.getBundle(element.getDeclaringExtension().getContributor().getName());
-        if (attributeNames.length == 1)
-        {
-          String className = element.getAttribute(attributeNames[0]);
-          if (className != null)
-          {
-            nsKeyedExtensionRegistry.put(namespace, className, bundle);
-          }
-        }
-        else
-        {
-          HashMap map = new HashMap();
-          for (int i = 0; i < attributeNames.length; i++)
-          {
-            String attributeName = attributeNames[i];
-            String className = element.getAttribute(attributeName);
-            if (className != null && className.length() > 0)
-            {
-              map.put(attributeName, className);
-            }
-          }
-          nsKeyedExtensionRegistry.put(namespace, map, bundle);
-        }
-      }
-    }
-  }
-}
-
-/**
- * 
- */
-class ElementContentFilterExtensionRegistryReader extends NSKeyedExtensionRegistryReader
-{
-  protected static final String EXTENSION_POINT_ID = "extensibilityElementFilter";
-  protected static final String TAG_NAME = "extensibilityElementFilter";
-
-  public ElementContentFilterExtensionRegistryReader(NSKeyedExtensionRegistry nsKeyedExtensionRegistry)
-  {
-    super(EXTENSION_POINT_ID, TAG_NAME, "class", nsKeyedExtensionRegistry);
-  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/WSDLSelectionMapper.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/WSDLSelectionMapper.java
deleted file mode 100644
index 5c888d3..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/WSDLSelectionMapper.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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 java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-
-public class WSDLSelectionMapper implements ISelectionMapper {
-
-	public ISelection mapSelection(ISelection selection) {
-		List list = new ArrayList();
-		if (selection instanceof StructuredSelection) {  
-			StructuredSelection structuredSelection = (StructuredSelection)selection;
-			for (Iterator i = structuredSelection.iterator(); i.hasNext(); ) {
-				Object o = i.next();
-				if (o instanceof Adapter) {
-					list.add(((Adapter)o).getTarget());
-				}  
-				else {
-					list.add(o);
-				}  
-			}  
-		}
-		return new StructuredSelection(list);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/WSDLAdapterFactory.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/WSDLAdapterFactory.java
deleted file mode 100644
index 6cac3c4..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/WSDLAdapterFactory.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.adapters;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notifier;
-import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
-import org.eclipse.wst.wsdl.Binding;
-import org.eclipse.wst.wsdl.BindingFault;
-import org.eclipse.wst.wsdl.BindingInput;
-import org.eclipse.wst.wsdl.BindingOperation;
-import org.eclipse.wst.wsdl.BindingOutput;
-import org.eclipse.wst.wsdl.Definition;
-import org.eclipse.wst.wsdl.ExtensibilityElement;
-import org.eclipse.wst.wsdl.Fault;
-import org.eclipse.wst.wsdl.Import;
-import org.eclipse.wst.wsdl.Input;
-import org.eclipse.wst.wsdl.Message;
-import org.eclipse.wst.wsdl.MessageReference;
-import org.eclipse.wst.wsdl.Operation;
-import org.eclipse.wst.wsdl.Output;
-import org.eclipse.wst.wsdl.Part;
-import org.eclipse.wst.wsdl.Port;
-import org.eclipse.wst.wsdl.PortType;
-import org.eclipse.wst.wsdl.Service;
-import org.eclipse.wst.wsdl.asd.facade.IMessageReference;
-import org.eclipse.wst.wsdl.binding.http.HTTPAddress;
-import org.eclipse.wst.wsdl.binding.soap.SOAPAddress;
-import org.eclipse.wst.wsdl.ui.internal.adapters.basic.W11Binding;
-import org.eclipse.wst.wsdl.ui.internal.adapters.basic.W11BindingMessageReference;
-import org.eclipse.wst.wsdl.ui.internal.adapters.basic.W11BindingOperation;
-import org.eclipse.wst.wsdl.ui.internal.adapters.basic.W11Description;
-import org.eclipse.wst.wsdl.ui.internal.adapters.basic.W11EndPoint;
-import org.eclipse.wst.wsdl.ui.internal.adapters.basic.W11Import;
-import org.eclipse.wst.wsdl.ui.internal.adapters.basic.W11Interface;
-import org.eclipse.wst.wsdl.ui.internal.adapters.basic.W11Message;
-import org.eclipse.wst.wsdl.ui.internal.adapters.basic.W11MessageReference;
-import org.eclipse.wst.wsdl.ui.internal.adapters.basic.W11Operation;
-import org.eclipse.wst.wsdl.ui.internal.adapters.basic.W11ParameterForPart;
-import org.eclipse.wst.wsdl.ui.internal.adapters.basic.W11Service;
-import org.eclipse.wst.wsdl.ui.internal.adapters.basic.W11Type;
-import org.eclipse.wst.wsdl.ui.internal.adapters.specialized.W11AddressExtensibilityElementAdapter;
-import org.eclipse.wst.wsdl.ui.internal.adapters.specialized.W11ExtensibilityElementAdapter;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDSchema;
-
-public class WSDLAdapterFactory extends AdapterFactoryImpl
-{
-  static WSDLAdapterFactory instance;
-  
-  public static WSDLAdapterFactory getInstance()
-  {
-    if (instance == null)
-    {
-      instance = new WSDLAdapterFactory();
-    }  
-    return instance;
-  }
-  
-  public Adapter createAdapter(Notifier target)
-  {
-	  Adapter adapter = null;
-
-	  if (target instanceof Definition) {
-		  adapter = new W11Description();
-	  }
-	  else if (target instanceof Service) {
-		  adapter = new W11Service();
-	  }
-	  else if (target instanceof Binding) {
-		  adapter = new W11Binding();
-	  }
-      else if (target instanceof BindingOperation) {
-          adapter = new W11BindingOperation();
-      }
-      else if (target instanceof BindingInput ||
-               target instanceof BindingOutput ||
-               target instanceof BindingFault)
-      {  
-		  adapter = new W11BindingMessageReference();
-	  }
-	  else if (target instanceof Port) {
-		  adapter = new W11EndPoint();
-	  }
-      else if (target instanceof PortType) {
-          adapter = new W11Interface();
-      }  
-	  else if (target instanceof Operation) {
-		  adapter = new W11Operation();
-	  }
-	  else if (target instanceof MessageReference)
-	  {
-	    int kind = -1;
-	    if (target instanceof Input)
-	    {
-	      kind = IMessageReference.KIND_INPUT;
-	    }
-	    else if (target instanceof Output)
-	    {
-	      kind = IMessageReference.KIND_OUTPUT;
-	    }
-	    else if (target instanceof Fault)
-	    {
-	      kind = IMessageReference.KIND_FAULT;
-	    }
-	    adapter = new W11MessageReference(kind);
-	  }
-	  else if (target instanceof Import) {
-		  adapter = new W11Import();
-	  }
-	  else if (target instanceof XSDSchema) {
-		  adapter = new W11Type();
-	  }
-	  else if (target instanceof Message) {
-		  adapter = new W11Message();
-	  }
-      else if (target instanceof Part)
-      {
-    	  adapter = new W11ParameterForPart(); 
-      }
-      else if (target instanceof Message || 
-               target instanceof XSDConcreteComponent)
-      {
-        // not we only need this adapter to serve as an 'otherThingsToListenTo' adapter
-        // for use by the W11MessageReference when computing a parameter list
-        adapter = new WSDLBaseAdapter();
-      }  
-      else if (target instanceof SOAPAddress ||
-               target instanceof HTTPAddress)
-      {
-        // TODO.. we need to enable the factory to delegate to extension language adapter factories
-        // there should be no references to SOAP or HTTP stuff from within this class
-        //
-        adapter = new W11AddressExtensibilityElementAdapter();        
-      }         
-      else if (target instanceof ExtensibilityElement)
-      {
-        adapter = new W11ExtensibilityElementAdapter();
-      }  
-	  if (adapter == null)
-	  {
-	    System.out.println("NO ADAPTER CREATED FOR " + target);   
-	    Thread.dumpStack();
-	  }
-
-	  return adapter;		  
-  }
-  
-  public Adapter adapt(Notifier target)
-  {
-    return adapt(target, this);
-  }
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/WSDLBaseAdapter.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/WSDLBaseAdapter.java
deleted file mode 100644
index 7a2a51c..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/WSDLBaseAdapter.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.adapters;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.Notifier;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.wst.wsdl.asd.design.editparts.model.IActionProvider;
-import org.eclipse.wst.wsdl.asd.facade.IASDObject;
-import org.eclipse.wst.wsdl.asd.facade.IASDObjectListener;
-import org.eclipse.wst.wsdl.ui.internal.adapters.commands.W11RenameCommand;
-import org.eclipse.wst.wsdl.ui.internal.util.WSDLAdapterFactoryHelper;
-
-public class WSDLBaseAdapter extends AdapterImpl implements IASDObject, IActionProvider {
-	protected List listenerList = new ArrayList();
-	protected WSDLBaseAdapter owner;
-	
-	public void registerListener(IASDObjectListener listener) {
-       if (!listenerList.contains(listener))
-       {
-		 listenerList.add(listener);
-       }  
-	}
-
-	public void unregisterListener(IASDObjectListener listener) {
-		listenerList.remove(listener);
-	}
-
-	public void populateAdapterList(List notifierList, List adapterList) {
-		for (Iterator i = notifierList.iterator(); i.hasNext();)   {
-            Object o = i.next();
-            if (o instanceof Notifier)
-            {  
-			Notifier component = (Notifier)o;      
-			Adapter adapter = WSDLAdapterFactoryHelper.getInstance().adapt(component);
-			adapterList.add(adapter);
-			
-			if (adapter instanceof WSDLBaseAdapter) {
-				((WSDLBaseAdapter) adapter).setOwner(this);
-			}
-            }
-            else
-            {
-              System.out.println("populateAdapterListError" + o);
-            }  
-		}
-	}
-	
-	public Adapter createAdapter(Notifier notifier) {
-		Adapter adapter = WSDLAdapterFactoryHelper.getInstance().adapt(notifier);
-
-		if (adapter instanceof WSDLBaseAdapter && ((WSDLBaseAdapter) adapter).owner == null) {
-			((WSDLBaseAdapter) adapter).setOwner(this);
-		}
-		
-		return adapter;
-	}
-	
-	public String getName() {
-		return null;
-	}
-	
-	public void setOwner(WSDLBaseAdapter owner) {
-		this.owner = owner;
-	}
-	
-	public boolean isAdapterForType(Object type) {
-		return type == WSDLAdapterFactoryHelper.getInstance().getWSDLAdapterFactory();
-	}
-	
-	public String[] getActions(Object object) {
-		String[] actionIDs = new String[0];
-		
-		return actionIDs;
-	}
-    
-	public void notifyChanged(Notification msg)
-	{
-	  super.notifyChanged(msg);
-	  notifyListeners(this, null);
-	}
-	
-	protected void notifyListeners(Object changedObject, String property)
-	{
-	  List clonedListenerList = new ArrayList();
-	  clonedListenerList.addAll(listenerList);
-	  for (Iterator i = clonedListenerList.iterator(); i.hasNext(); )
-	  {
-	    IASDObjectListener listener = (IASDObjectListener)i.next();
-	    listener.propertyChanged(this, null);
-	  }      
-	}
-	
-	public Command getSetNameCommand(String newName) {
-		return new W11RenameCommand(this, newName);
-	}
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/actions/W11AddPartAction.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/actions/W11AddPartAction.java
deleted file mode 100644
index 8b14388..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/actions/W11AddPartAction.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.adapters.actions;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.commands.CommandStack;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.wsdl.MessageReference;
-import org.eclipse.wst.wsdl.asd.editor.ASDEditorPlugin;
-import org.eclipse.wst.wsdl.asd.editor.actions.BaseSelectionAction;
-import org.eclipse.wst.wsdl.asd.facade.IMessage;
-import org.eclipse.wst.wsdl.asd.facade.IParameter;
-import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
-import org.eclipse.wst.wsdl.ui.internal.adapters.basic.W11MessageReference;
-import org.eclipse.wst.wsdl.ui.internal.util.WSDLAdapterFactoryHelper;
-
-public class W11AddPartAction extends BaseSelectionAction {
-	public static String ID = "ASDAddPartAction";
-	
-	public W11AddPartAction(IWorkbenchPart part)	{
-		super(part);
-		setId(ID);
-		setText("Add Part");
-		setImageDescriptor(WSDLEditorPlugin.getImageDescriptor("icons/part_obj.gif"));
-	}
-	
-	public void run() {
-		if (getSelectedObjects().size() > 0) {
-			Object o = getSelectedObjects().get(0);
-			IMessage message = null;
-			
-			if (o instanceof W11MessageReference) {
-				MessageReference messageRef = (MessageReference) ((W11MessageReference) o).getTarget();
-				message = (IMessage) WSDLAdapterFactoryHelper.getInstance().adapt(messageRef.getEMessage());
-			}
-			else if (o instanceof IParameter) {
-				IParameter param = (IParameter) o;
-				if (param.getOwner() instanceof IMessage) {
-					message = (IMessage) param.getOwner();
-				}
-				else if (param.getOwner() instanceof W11MessageReference) {
-					MessageReference messageRef = (MessageReference) ((W11MessageReference) param.getOwner()).getTarget();
-					message = (IMessage) WSDLAdapterFactoryHelper.getInstance().adapt(messageRef.getEMessage());
-				}
-			}
-			else if (o instanceof IMessage) {
-				message = (IMessage) o;
-			}
-			
-			if (message != null) {
-				Command command = message.getAddPartCommand();
-			    CommandStack stack = (CommandStack) ASDEditorPlugin.getActiveEditor().getAdapter(CommandStack.class);
-			    stack.execute(command);
-			}
-		}  
-	}
-	
-	protected boolean calculateEnabled() {
-		return true;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/actions/W11SetExistingMessageAction.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/actions/W11SetExistingMessageAction.java
deleted file mode 100644
index 4b7abdd..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/actions/W11SetExistingMessageAction.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.adapters.actions;
-
-import org.eclipse.jface.window.Window;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSpecification;
-import org.eclipse.wst.wsdl.asd.editor.ASDEditorPlugin;
-import org.eclipse.wst.wsdl.asd.editor.actions.BaseSelectionAction;
-import org.eclipse.wst.wsdl.asd.facade.IMessageReference;
-import org.eclipse.wst.wsdl.ui.internal.edit.W11MessageReferenceEditManager;
-import org.eclipse.wst.xsd.adt.edit.ComponentReferenceEditManager;
-import org.eclipse.wst.xsd.adt.edit.IComponentDialog;
-
-public class W11SetExistingMessageAction extends BaseSelectionAction {
-	public static String ID = "ASDSetMessageInterfaceAction";
-	protected IMessageReference messageReference;
-
-	
-	public W11SetExistingMessageAction(IWorkbenchPart part) {
-		super(part);
-		setId(ID);
-		setText("Set Existing Message...");
-//		setImageDescriptor(ASDEditorPlugin.getImageDescriptor("icons/message_obj.gif"));
-	}
-	
-	public void run() {
-		if (messageReference == null) {
-			if (getSelectedObjects().size() > 0) {
-				Object o = getSelectedObjects().get(0);
-				if (o instanceof IMessageReference) {
-					messageReference = (IMessageReference) o;
-				}
-			}
-		}
-		
-		if (messageReference != null) {
-			IEditorPart editor = ASDEditorPlugin.getActiveEditor();
-			ComponentReferenceEditManager refManager = (ComponentReferenceEditManager) editor.getAdapter(W11MessageReferenceEditManager.class);
-			IComponentDialog dialog = refManager.getBrowseDialog();
-			if (dialog.createAndOpen() == Window.OK) {
-				ComponentSpecification spec = dialog.getSelectedComponent();
-				refManager.modifyComponentReference(messageReference, spec);
-			}
-		}
-		
-		messageReference = null;
-	}
-	
-	protected boolean calculateEnabled() {
-		return true;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/actions/W11SetNewMessageAction.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/actions/W11SetNewMessageAction.java
deleted file mode 100644
index 1c58e2d..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/actions/W11SetNewMessageAction.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.adapters.actions;
-
-import org.eclipse.jface.window.Window;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSpecification;
-import org.eclipse.wst.wsdl.asd.editor.ASDEditorPlugin;
-import org.eclipse.wst.wsdl.asd.editor.actions.BaseSelectionAction;
-import org.eclipse.wst.wsdl.asd.facade.IMessageReference;
-import org.eclipse.wst.wsdl.ui.internal.edit.W11MessageReferenceEditManager;
-import org.eclipse.wst.xsd.adt.edit.ComponentReferenceEditManager;
-import org.eclipse.wst.xsd.adt.edit.IComponentDialog;
-
-public class W11SetNewMessageAction extends BaseSelectionAction {
-	public static String ID = "ASDSetNewMessageAction";
-	protected IMessageReference messageReference;
-	
-	public W11SetNewMessageAction(IWorkbenchPart part)	{
-		super(part);
-		setId(ID);
-		setText("Set New Message...");
-//		setImageDescriptor(WSDLEditorPlugin.getImageDescriptor("icons/service_obj.gif"));
-	}
-	
-	public void setIMessageReference(IMessageReference messageReference) {
-		this.messageReference = messageReference;
-	}
-	
-	public void run() {		
-		if (messageReference == null) {
-			if (getSelectedObjects().size() > 0) {
-				Object o = getSelectedObjects().get(0);
-				if (o instanceof IMessageReference) {
-					messageReference = (IMessageReference) o;
-				}
-			}
-		}
-		
-		if (messageReference != null) {
-			IEditorPart editor = ASDEditorPlugin.getActiveEditor();
-			ComponentReferenceEditManager refManager = (ComponentReferenceEditManager) editor.getAdapter(W11MessageReferenceEditManager.class);
-			IComponentDialog dialog = refManager.getNewDialog();
-			if (dialog.createAndOpen() == Window.OK) {
-				ComponentSpecification spec = dialog.getSelectedComponent();
-				refManager.modifyComponentReference(messageReference, spec);
-			}
-		}
-		
-		messageReference = null;
-	}
-	
-	protected boolean calculateEnabled() {
-		return true;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/basic/W11Binding.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/basic/W11Binding.java
deleted file mode 100644
index 1ec6b26..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/basic/W11Binding.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.adapters.basic;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.wsdl.Binding;
-import org.eclipse.wst.wsdl.BindingOperation;
-import org.eclipse.wst.wsdl.PortType;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDDeleteAction;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDGenerateBindingAction;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDSetExistingInterfaceAction;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDSetNewInterfaceAction;
-import org.eclipse.wst.wsdl.asd.editor.actions.BaseSelectionAction;
-import org.eclipse.wst.wsdl.asd.editor.outline.ITreeElement;
-import org.eclipse.wst.wsdl.asd.facade.IBinding;
-import org.eclipse.wst.wsdl.asd.facade.IDescription;
-import org.eclipse.wst.wsdl.asd.facade.IInterface;
-import org.eclipse.wst.wsdl.binding.http.HTTPBinding;
-import org.eclipse.wst.wsdl.binding.soap.SOAPBinding;
-import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
-import org.eclipse.wst.wsdl.ui.internal.adapters.WSDLBaseAdapter;
-import org.eclipse.wst.wsdl.ui.internal.adapters.commands.W11DeleteCommand;
-import org.eclipse.wst.wsdl.ui.internal.adapters.commands.W11GenerateBindingCommand;
-import org.eclipse.wst.wsdl.ui.internal.adapters.commands.W11SetInterfaceCommand;
-
-public class W11Binding extends WSDLBaseAdapter implements IBinding {
-
-	public IInterface getInterface() {
-        PortType portType = ((Binding) target).getEPortType();
-        if (portType != null)
-        {  
-	      return (IInterface) createAdapter(portType);
-		}		
-		return null;
-	}
-    
-    public List getBindingContentList()
-    {     
-      List list = new ArrayList();
-      for (Iterator i = ((Binding)target).getEBindingOperations().iterator(); i.hasNext(); )
-      {
-        BindingOperation bindingOperation = (BindingOperation)i.next();
-        list.add(bindingOperation);
-        if (bindingOperation.getEBindingInput() != null)
-        {
-          list.add(bindingOperation.getEBindingInput());
-        }  
-        if (bindingOperation.getEBindingOutput() != null)
-        {
-          list.add(bindingOperation.getEBindingOutput());
-        } 
-        list.addAll(bindingOperation.getEBindingFaults());
-      } 
-      List adapterList = new ArrayList();
-      populateAdapterList(list, adapterList);
-      return adapterList;
-    }
-
-	public List getExtensiblityObjects() {
-
-		return null;
-	}
-
-	public String getName() {
-		return ((Binding) target).getQName().getLocalPart();
-	}
-	
-	public String getProtocol() {
-		Iterator it = ((Binding) target).getEExtensibilityElements().iterator();
-		while (it.hasNext()) {
-			Object item = it.next();
-			if (item instanceof SOAPBinding) {
-				return "SOAP";
-			}
-			else if (item instanceof HTTPBinding) {
-				return "HTTP";
-			}
-		}
-		
-		return "";
-	}
-	
-	public IDescription getOwnerDescription() {
-		return (IDescription) owner;
-	}
-	
-	public String[] getActions(Object object) {
-		String[] actionIDs = new String[6];
-		actionIDs[0] = ASDGenerateBindingAction.ID;
-		actionIDs[1] = BaseSelectionAction.SUBMENU_START_ID + "Set PortType";
-		actionIDs[2] = ASDSetNewInterfaceAction.ID;
-		actionIDs[3] = ASDSetExistingInterfaceAction.ID;
-		actionIDs[4] = BaseSelectionAction.SUBMENU_END_ID;
-		actionIDs[5] = ASDDeleteAction.ID;
-		
-		return actionIDs;
-	}
-	
-	public Command getSetInterfaceCommand(IInterface newInterface) {
-		W11Interface w11Interface = (W11Interface) newInterface;
-		return new W11SetInterfaceCommand((Binding) target, (PortType) w11Interface.getTarget());
-	}
-	
-	public Command getGenerateBindingCommand() {
-		return new W11GenerateBindingCommand((Binding) this.getTarget());
-	}
-	
-	public Command getDeleteCommand() {
-		return new W11DeleteCommand(this);
-	}
-
-  public Image getImage()
-  {
-    // TODO (cs) this is evil code, we need an extension driven
-    // way to compute this stuff so don't hardcode HTTP or SOAP stuff
-    //
-    String protocol = getProtocol();
-    String imageName = "icons/binding_obj.gif";
-    if (protocol != null)
-    {  
-      if (protocol.equals("HTTP"))
-      {
-        imageName = "icons/httpbinding_obj.gif";
-      }  
-      else if (protocol.equals("SOAP"))
-      {
-        imageName = "icons/soapbinding_obj.gif";
-      }  
-    }
-    return WSDLEditorPlugin.getInstance().getImage(imageName);    
-  }
-
-  public String getText()
-  {
-    return "binding";
-  }
-  
-  public ITreeElement[] getChildren()
-  {
-    List list = getBindingOperations();
-    ITreeElement[] result = new ITreeElement[list.size()];
-    list.toArray(result);
-    return result;
-  }
-  
-  public boolean hasChildren() {
-	  if (getBindingOperations().size() > 0) {
-		  return true;
-	  }
-	  
-	  return false;
-  }
-  
-  public ITreeElement getParent() {
-	  return null;
-  }
-  
-  public List getBindingOperations()
-  {
-    List list = new ArrayList();
-    populateAdapterList(((Binding)target).getEBindingOperations(), list);
-    return list;
-  }
-  
-  public List getBindingOperations(boolean createMissingOperations, boolean showExtraOperations)
-  {
-    return getBindingOperations();
-  }
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/basic/W11BindingMessageReference.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/basic/W11BindingMessageReference.java
deleted file mode 100644
index 8514010..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/basic/W11BindingMessageReference.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.adapters.basic;
-
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.wsdl.BindingFault;
-import org.eclipse.wst.wsdl.BindingInput;
-import org.eclipse.wst.wsdl.BindingOutput;
-import org.eclipse.wst.wsdl.asd.editor.outline.ITreeElement;
-import org.eclipse.wst.wsdl.asd.facade.IBindingMessageReference;
-import org.eclipse.wst.wsdl.asd.facade.IMessageReference;
-import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
-import org.eclipse.wst.wsdl.ui.internal.adapters.WSDLBaseAdapter;
-import org.eclipse.wst.wsdl.ui.internal.util.ComponentReferenceUtil;
-
-
-public class W11BindingMessageReference extends WSDLBaseAdapter implements IBindingMessageReference, ITreeElement
-{
-  public ITreeElement[] getChildren()
-  {
-    return ITreeElement.EMPTY_LIST;
-  }
-  
-  public boolean hasChildren() {
-	  return false;
-  }
-  
-  public ITreeElement getParent() {
-	  return null;
-  }
-
-  public Image getImage()
-  {   
-    String imageName = null;
-    if (target instanceof BindingInput)
-    {
-      imageName = "icons/input_obj.gif";
-    }
-    else if (target instanceof BindingOutput)
-    {
-      imageName = "icons/output_obj.gif";      
-    } 
-    else //if (target instanceof BindingFault)
-    {
-      imageName = "icons/fault_obj.gif";
-    }  
-    return WSDLEditorPlugin.getInstance().getImage(imageName);
-  }
-  
-  public String getName()
-  {
-	  String name = "";
-	  if (target instanceof BindingInput)
-	  {
-		  name = "input";
-	  }
-	  else if (target instanceof BindingOutput)
-	  {
-		  name = "output";
-	  } 
-	  else //if (target instanceof BindingFault)
-	  {
-		  name = "fault";
-	  }  
-
-	  return name;
-  }
-
-  public String getText()
-  {
-    return getName();
-  }
-
-  public IMessageReference getMessageReference()
-  {
-    EObject resultNotifier = null;
-    if (target instanceof BindingInput)
-    {
-      resultNotifier = ComponentReferenceUtil.computeInput((BindingInput)target);
-    }
-    else if (target instanceof BindingOutput)
-    {
-      resultNotifier = ComponentReferenceUtil.computeOutput((BindingOutput)target);
-    }          
-    else if (target instanceof BindingFault)
-    {
-      resultNotifier = ComponentReferenceUtil.computeFault((BindingFault)target);
-    }               
-    return resultNotifier != null ? (IMessageReference)createAdapter(resultNotifier) : null;
-  }
-  
-  public List getExtensiblityObjects()
-  {
-    return Collections.EMPTY_LIST;
-  }  
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/basic/W11BindingOperation.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/basic/W11BindingOperation.java
deleted file mode 100644
index 1efe7ea..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/basic/W11BindingOperation.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.adapters.basic;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.wsdl.BindingOperation;
-import org.eclipse.wst.wsdl.Operation;
-import org.eclipse.wst.wsdl.asd.editor.outline.ITreeElement;
-import org.eclipse.wst.wsdl.asd.facade.IBindingOperation;
-import org.eclipse.wst.wsdl.asd.facade.IOperation;
-import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
-import org.eclipse.wst.wsdl.ui.internal.adapters.WSDLBaseAdapter;
-import org.eclipse.wst.wsdl.ui.internal.util.ComponentReferenceUtil;
-
-public class W11BindingOperation extends WSDLBaseAdapter implements IBindingOperation, ITreeElement
-{
-  
-  public IOperation getOperation()
-  {
-    BindingOperation bindingOperation = (BindingOperation)target;
-    Operation operation = ComponentReferenceUtil.computeOperation(bindingOperation);    
-    return operation != null ? (IOperation)createAdapter(operation) : null;
-  }
-  
-  public List getBindingMessages()
-  {
-    List list = new ArrayList();
-    BindingOperation bindingOperation = (BindingOperation)target;
-    if (bindingOperation.getEBindingInput() != null)
-    {  
-      list.add(bindingOperation.getEBindingInput());
-    }
-    if (bindingOperation.getEBindingOutput() != null)
-    {  
-      list.add(bindingOperation.getEBindingOutput());
-    }     
-    list.addAll(bindingOperation.getEBindingFaults());
-    List result = new ArrayList();
-    populateAdapterList(list, result);
-    return result;
-  }
-  
-  public String getName()
-  {
-	  BindingOperation bindingOperation = (BindingOperation)target;
-	  return bindingOperation.getEOperation().getName();
-  }
-
-  public List getExtensiblityObjects()
-  {
-    return Collections.EMPTY_LIST;
-  }
-
-  public ITreeElement[] getChildren()
-  {
-    List list = getBindingMessages();
-    ITreeElement[] result = new ITreeElement[list.size()];
-    list.toArray(result);
-    return result;
-  }
-  
-  public boolean hasChildren() {
-	  if (getBindingMessages().size() > 0) {
-		  return true;
-	  }
-	  
-	  return false;
-  }
-  
-  public ITreeElement getParent() {
-	  return null;
-  }
-
-  public Image getImage()
-  {
-    String imageName = "icons/operationbinding_obj.gif";
-    return WSDLEditorPlugin.getInstance().getImage(imageName);
-  }
-
-  public String getText()
-  {
-    return getName();
-  }
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/basic/W11CategoryAdapter.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/basic/W11CategoryAdapter.java
deleted file mode 100644
index c3239d5..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/basic/W11CategoryAdapter.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.adapters.basic;
-
-import java.util.ArrayList;
-import java.util.Collection;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.wsdl.Definition;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDAddBindingAction;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDAddImportAction;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDAddInterfaceAction;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDAddMessageAction;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDAddSchemaAction;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDAddServiceAction;
-import org.eclipse.wst.wsdl.asd.editor.outline.ICategoryAdapter;
-import org.eclipse.wst.wsdl.asd.editor.outline.ITreeElement;
-import org.eclipse.wst.wsdl.asd.facade.IDescription;
-import org.eclipse.wst.wsdl.ui.internal.adapters.WSDLBaseAdapter;
-
-public class W11CategoryAdapter extends WSDLBaseAdapter implements ICategoryAdapter, ITreeElement {
-	  public final static int IMPORTS = 1;
-	  public final static int TYPES = 2;
-	  public final static int SERVICES = 3;
-	  public final static int BINDINGS = 5;
-	  public final static int INTERFACES = 6;
-	  public final static int MESSAGES = 7;
-	  
-	  public static String IMPORTS_HEADER_TEXT = "Imports";
-	  public static String TYPES_HEADER_TEXT = "Types";
-	  public static String SERVICE_HEADER_TEXT = "Services";
-	  public static String BINDING_HEADER_TEXT = "Bindings";
-	  public static String INTERFACE_HEADER_TEXT = "Interfaces";
-	  public static String MESSAGE_HEADER_TEXT = "Messages";
-
-	  protected String text;
-	  protected Image image;
-	  protected int groupType;
-	  protected Collection children;
-	  protected IDescription description;
-	  
-	  public W11CategoryAdapter(IDescription description, String label, Image image, Collection children, int groupType) {
-	    this.text = label;
-	    this.image = image;
-	    this.description = description;
-	    this.target = ((W11Description) description).getTarget();
-	    this.children = children;
-	    this.groupType = groupType;
-	  }
-	  
-	  public Definition getDefinition() {
-	    return (Definition) target;
-	  }
-	  
-	  public IDescription getOwnerDescription() {
-		  return description;
-	  }
-
-	  public int getGroupType() {
-	    return groupType;
-	  }
-
-	  public Image getImage() {
-	    return image;
-	  }
-
-	  public String getText() {
-	    return text;
-	  }
-
-	  public ITreeElement[] getChildren() {
-	    return (ITreeElement[]) children.toArray(new ITreeElement[0]);
-	  }
-
-	  public void setChildren(Collection list) {
-	    children = list;
-	  }
-
-	  public Object getParent(Object element) {
-	    return null;
-	  }
-
-	  public boolean hasChildren(Object element) {
-	    return true;
-	  }
-	  
-	  public String[] getActions(Object object) {    
-	    Collection actionIDs = new ArrayList();
-	    
-	    switch (groupType) {
-	      case IMPORTS : {
-	        actionIDs.add(ASDAddImportAction.ID);
-	        break;
-	      }
-	      case TYPES : {
-	        actionIDs.add(ASDAddSchemaAction.ID);
-	        break;
-	      }
-	      case SERVICES : {
-	        actionIDs.add(ASDAddServiceAction.ID);
-	        break;
-	      }
-	      case BINDINGS : {
-	        actionIDs.add(ASDAddBindingAction.ID);
-	        break;
-	      }
-	      case INTERFACES : {
-	        actionIDs.add(ASDAddInterfaceAction.ID);
-	        break;
-	      }
-	      case MESSAGES : {
-	    	actionIDs.add(ASDAddMessageAction.ID);
-	        break;
-	      }
-	    }
-	    return (String [])actionIDs.toArray(new String[0]);
-	  }
-	  
-	  public void propertyChanged(Object object, String property) {
-	    if (getText().equals(property))
-	      notifyListeners(this, property);
-	  }
-	  
-	  public ITreeElement getParent() {
-		  return null;
-	  }
-	  
-	  public boolean hasChildren() {
-		  if (getChildren().length > 0) {
-			  return true;
-		  }
-		  
-		  return false;
-	  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/basic/W11Description.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/basic/W11Description.java
deleted file mode 100644
index 807f61a..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/basic/W11Description.java
+++ /dev/null
@@ -1,282 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.adapters.basic;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.NotificationImpl;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.wsdl.Definition;
-import org.eclipse.wst.wsdl.Types;
-import org.eclipse.wst.wsdl.WSDLPackage;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDAddBindingAction;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDAddInterfaceAction;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDAddServiceAction;
-import org.eclipse.wst.wsdl.asd.editor.outline.ITreeElement;
-import org.eclipse.wst.wsdl.asd.facade.IDescription;
-import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
-import org.eclipse.wst.wsdl.ui.internal.adapters.WSDLBaseAdapter;
-import org.eclipse.wst.wsdl.ui.internal.adapters.commands.W11AddBindingCommand;
-import org.eclipse.wst.wsdl.ui.internal.adapters.commands.W11AddImportCommand;
-import org.eclipse.wst.wsdl.ui.internal.adapters.commands.W11AddInterfaceCommand;
-import org.eclipse.wst.wsdl.ui.internal.adapters.commands.W11AddMessageCommand;
-import org.eclipse.wst.wsdl.ui.internal.adapters.commands.W11AddSchemaCommand;
-import org.eclipse.wst.wsdl.ui.internal.adapters.commands.W11AddServiceCommand;
-
-public class W11Description extends WSDLBaseAdapter implements IDescription {
-	private List categoryAdapters = new ArrayList();
-	
-	private W11CategoryAdapter getCategory(int categoryId) {
-		Iterator it = getCategoryAdapters().iterator();
-		while (it.hasNext()) {
-			W11CategoryAdapter adapter = (W11CategoryAdapter) it.next();
-			if (adapter.getGroupType() == categoryId) {
-				return adapter;
-			}
-		}
-		
-		return null;
-	}
-	
-	private List getCategoryAdapters() {
-		if (categoryAdapters.size() == 0) {
-			categoryAdapters = createCategoryAdapters();
-		}
-		
-		return categoryAdapters;
-	}
-	
-	private List createCategoryAdapters() {
-		List categories = new ArrayList();
-		
-		List importList = getImports();
-		List schemaList = getTypes();
-		List serviceList = getServices();
-		List bindingList = getBindings();
-		List interfaceList = getInterfaces();
-		List messageList = getMessages();
-		
-//	    boolean showGroups = !XSDEditorPlugin.getPlugin().getUseSimpleEditMode();
-
-		String categoryTitle = W11CategoryAdapter.IMPORTS_HEADER_TEXT;
-		Image categoryImage = WSDLEditorPlugin.getInstance().getImage("icons/importheader_obj.gif");
-		W11CategoryAdapter category = new W11CategoryAdapter(this, categoryTitle, categoryImage, importList, W11CategoryAdapter.IMPORTS);
-		categories.add(category);
-		
-		categoryTitle = W11CategoryAdapter.TYPES_HEADER_TEXT;
-		categoryImage = WSDLEditorPlugin.getInstance().getImage("icons/types_obj.gif");
-		category = new W11CategoryAdapter(this, categoryTitle, categoryImage, schemaList, W11CategoryAdapter.TYPES);
-		categories.add(category);
-		
-		categoryTitle = W11CategoryAdapter.SERVICE_HEADER_TEXT;
-		categoryImage = WSDLEditorPlugin.getInstance().getImage("icons/serviceheader_obj.gif");
-		category = new W11CategoryAdapter(this, categoryTitle, categoryImage, serviceList, W11CategoryAdapter.SERVICES);
-		categories.add(category);
-		
-		categoryTitle = W11CategoryAdapter.BINDING_HEADER_TEXT;
-		categoryImage = WSDLEditorPlugin.getInstance().getImage("icons/bindingheader_obj.gif");
-		category = new W11CategoryAdapter(this, categoryTitle, categoryImage, bindingList, W11CategoryAdapter.BINDINGS);
-		categories.add(category);
-		
-		categoryTitle = W11CategoryAdapter.INTERFACE_HEADER_TEXT;
-		categoryImage = WSDLEditorPlugin.getInstance().getImage("icons/porttypeheader_obj.gif");
-		category = new W11CategoryAdapter(this, categoryTitle, categoryImage, interfaceList, W11CategoryAdapter.INTERFACES);
-		categories.add(category);
-		
-		categoryTitle = W11CategoryAdapter.MESSAGE_HEADER_TEXT;
-		categoryImage = WSDLEditorPlugin.getInstance().getImage("icons/messageheader_obj.gif");
-		category = new W11CategoryAdapter(this, categoryTitle, categoryImage, messageList, W11CategoryAdapter.MESSAGES);
-		categories.add(category);
-		
-		return categories;
-	  }
-	
-	public String getTargetNamespace() {
-		return ((Definition) target).getTargetNamespace();
-	}
-	
-	public String getTargetNamespacePrefix() {
-		String tns = getTargetNamespace();
-		return ((Definition) target).getPrefix(tns);
-	}
-	
-	public List getServices() {
-		List adapterList = new ArrayList();
-		populateAdapterList(((Definition) target).getEServices(), adapterList);
-
-		return adapterList;
-	}
-
-	public List getBindings() {
-		List adapterList = new ArrayList();
-		populateAdapterList(((Definition) target).getEBindings(), adapterList);
-
-		return adapterList;
-	}
-
-	public List getInterfaces() {
-		List adapterList = new ArrayList();
-		populateAdapterList(((Definition) target).getEPortTypes(), adapterList);
-
-		return adapterList;
-	}
-	
-	public List getImports() {
-		List adapterList = new ArrayList();
-		populateAdapterList(((Definition) target).getEImports(), adapterList);
-
-		return adapterList;
-	}
-	
-	public List getTypes() {
-		List adapterList = new ArrayList();
-		Types types = ((Definition) target).getETypes();
-		populateAdapterList(types.getSchemas(), adapterList);
-
-		return adapterList;
-	}
-	
-	public List getMessages() {
-		List adapterList = new ArrayList();
-		populateAdapterList(((Definition) target).getEMessages(), adapterList);
-
-		return adapterList;
-	}
-	
-	public String getName() {
-		String name = "";
-		
-		Definition definition = ((Definition) target);
-		if (definition.getQName() != null) {
-			name = definition.getQName().getLocalPart();
-		}
-		return name;
-	}
-	
-	public String[] getActions(Object object) {
-		String[] actionIDs = new String[3];
-		actionIDs[0] = ASDAddServiceAction.ID;
-		actionIDs[1] = ASDAddBindingAction.ID;
-		actionIDs[2] = ASDAddInterfaceAction.ID;
-		
-		return actionIDs;
-	}
-	
-	public Command getAddImportCommand() {
-		return new W11AddImportCommand((Definition) target);
-	}
-	
-	public Command getAddSchemaCommand() {
-		return new W11AddSchemaCommand((Definition) target);
-	}
-	
-	public Command getAddServiceCommand() {
-		return new W11AddServiceCommand((Definition) target);
-	}
-	
-	public Command getAddBindingCommand() {
-		return new W11AddBindingCommand((Definition) target);
-	}
-	
-	public Command getAddInterfaceCommand() {
-		return new W11AddInterfaceCommand((Definition) target);	
-	}
-	
-	public Command getAddMessageCommand() {
-		return new W11AddMessageCommand((Definition) target);	
-	}
-	
-	public Image getImage() {
-		return null;
-	}
-	
-	public String getText() {
-		return "description";
-	}
-	
-	public ITreeElement[] getChildren() {
-		List children = getCategoryAdapters();
-		return (ITreeElement[]) children.toArray(new ITreeElement[0]);
-	}
-	
-	public boolean hasChildren() {
-		if (getChildren().length > 0) {
-			return true;
-		}
-		
-		return false;
-	}
-	
-	public ITreeElement getParent() {
-		return null;
-	}
-	
-	public void notifyChanged(final Notification msg) {
-		class CategoryNotification extends NotificationImpl {
-			protected Object category;
-			
-			public CategoryNotification(Object category) {
-				super(msg.getEventType(), msg.getOldValue(), msg.getNewValue(), msg.getPosition());
-				this.category = category;
-			}
-			
-			public Object getNotifier() {
-				return category;
-			}
-			
-			public Object getFeature() {
-				return msg.getFeature();
-			}
-		}
-
-		if (msg.getFeature() == WSDLPackage.eINSTANCE.getDefinition_EImports()) {
-			W11CategoryAdapter adapter = getCategory(W11CategoryAdapter.IMPORTS);
-			Assert.isTrue(adapter != null);
-			adapter.setChildren(getImports());
-			notifyListeners(new CategoryNotification(adapter), adapter.getText());
-		}
-		if (msg.getFeature() == WSDLPackage.eINSTANCE.getDefinition_ETypes()) {
-			W11CategoryAdapter adapter = getCategory(W11CategoryAdapter.IMPORTS);
-			Assert.isTrue(adapter != null);
-			adapter.setChildren(getImports());
-			notifyListeners(new CategoryNotification(adapter), adapter.getText());
-		}
-		if (msg.getFeature() == WSDLPackage.eINSTANCE.getDefinition_EServices()) {
-			W11CategoryAdapter adapter = getCategory(W11CategoryAdapter.SERVICES);
-			Assert.isTrue(adapter != null);
-			adapter.setChildren(getServices());
-			notifyListeners(new CategoryNotification(adapter), adapter.getText());
-		}
-		if (msg.getFeature() == WSDLPackage.eINSTANCE.getDefinition_EBindings()) {
-			W11CategoryAdapter adapter = getCategory(W11CategoryAdapter.BINDINGS);
-			Assert.isTrue(adapter != null);
-			adapter.setChildren(getBindings());
-			notifyListeners(new CategoryNotification(adapter), adapter.getText());
-		}
-		if (msg.getFeature() == WSDLPackage.eINSTANCE.getDefinition_EPortTypes()) {
-			W11CategoryAdapter adapter = getCategory(W11CategoryAdapter.INTERFACES);
-			Assert.isTrue(adapter != null);
-			adapter.setChildren(getInterfaces());
-			notifyListeners(new CategoryNotification(adapter), adapter.getText());
-		}
-		if (msg.getFeature() == WSDLPackage.eINSTANCE.getDefinition_EMessages()) {
-			W11CategoryAdapter adapter = getCategory(W11CategoryAdapter.MESSAGES);
-			Assert.isTrue(adapter != null);
-			adapter.setChildren(getMessages());
-			notifyListeners(new CategoryNotification(adapter), adapter.getText());
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/basic/W11EndPoint.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/basic/W11EndPoint.java
deleted file mode 100644
index eb31a09..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/basic/W11EndPoint.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.adapters.basic;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notifier;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.wsdl.Binding;
-import org.eclipse.wst.wsdl.Port;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDAddEndPointAction;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDDeleteAction;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDSetExistingBindingAction;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDSetNewBindingAction;
-import org.eclipse.wst.wsdl.asd.editor.actions.BaseSelectionAction;
-import org.eclipse.wst.wsdl.asd.editor.outline.ITreeElement;
-import org.eclipse.wst.wsdl.asd.facade.IASDObject;
-import org.eclipse.wst.wsdl.asd.facade.IASDObjectListener;
-import org.eclipse.wst.wsdl.asd.facade.IBinding;
-import org.eclipse.wst.wsdl.asd.facade.IEndPoint;
-import org.eclipse.wst.wsdl.asd.facade.IService;
-import org.eclipse.wst.wsdl.binding.http.HTTPAddress;
-import org.eclipse.wst.wsdl.binding.soap.SOAPAddress;
-import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
-import org.eclipse.wst.wsdl.ui.internal.adapters.WSDLBaseAdapter;
-import org.eclipse.wst.wsdl.ui.internal.adapters.commands.W11DeleteCommand;
-import org.eclipse.wst.wsdl.ui.internal.adapters.commands.W11SetAddressCommand;
-import org.eclipse.wst.wsdl.ui.internal.adapters.commands.W11SetBindingCommand;
-import org.eclipse.wst.wsdl.ui.internal.adapters.specialized.W11AddressExtensibilityElementAdapter;
-
-public class W11EndPoint extends WSDLBaseAdapter implements IEndPoint, IASDObjectListener {
- 
-    protected List addressExtensiblityElements = null;
-    protected List thingsToListenTo = null;
-    
-	public String getAddress() {
-        List list = getAddressExtensiblityElements();
-        if (list.size() > 0)
-        {
-          W11AddressExtensibilityElementAdapter addressEE = (W11AddressExtensibilityElementAdapter)list.get(0);
-          return addressEE.getLocationURI();
-        }	
-		return "";
-	}
-    
-    protected List getAddressExtensiblityElements()
-    {    
-      if (addressExtensiblityElements == null || addressExtensiblityElements.size() == 0)
-      {
-        addressExtensiblityElements = new ArrayList();
-        thingsToListenTo = new ArrayList();
-        Port port = (Port) getTarget();          
-        for (Iterator it = port.getEExtensibilityElements().iterator(); it.hasNext(); )
-        {   
-          Notifier item = (Notifier)it.next();
-          Adapter adapter = createAdapter(item);
-          if (adapter instanceof W11AddressExtensibilityElementAdapter)
-          {  
-            addressExtensiblityElements.add(adapter);
-          }             
-          if (adapter instanceof IASDObject)
-          {  
-            thingsToListenTo.add(adapter);
-          }  
-        }
-        for (Iterator i = thingsToListenTo.iterator(); i.hasNext(); )
-        {
-          IASDObject object = (IASDObject)i.next();
-          object.registerListener(this);
-        }  
-      }  
-      return addressExtensiblityElements;
-    }
-    
-    protected void clearAddressExtensiblityElements()
-    {    
-      if (thingsToListenTo != null)
-      {  
-        for (Iterator i = thingsToListenTo.iterator(); i.hasNext(); )
-        {
-          IASDObject object = (IASDObject)i.next();
-          object.unregisterListener(this);
-        }
-      }
-      thingsToListenTo = null;
-      addressExtensiblityElements = null;
-    }
-
-	public IBinding getBinding() {
-		if (getPort().getEBinding() != null) {
-			return (IBinding) createAdapter(getPort().getEBinding());
-		}
-		
-		return null;
-	}
-
-	public String getName() {
-		return getPort().getName();
-	}
-
-	public String getTypeName() {
-		String value = "";
-		List eeElements = getPort().getEExtensibilityElements();
-		if (eeElements.size() > 0) {
-			Object object = eeElements.get(0);
-			if (object instanceof SOAPAddress) {
-				value = ((SOAPAddress) object).getLocationURI();
-			}
-			else if (object instanceof HTTPAddress) {
-				value = ((HTTPAddress) object).getLocationURI();
-			}
-		}
-		
-		if (value == null || value.equals("")) {
-			value = "No Address";
-		}
-		
-		return value;
-	}
-	
-	public Object getType() {
-		return getBinding();
-	}
-
-	private Port getPort() {
-		return (Port) target;
-	}
-	
-	public IService getOwnerService() {
-		return (IService) owner;
-	}
-	
-	public String[] getActions(Object object) {
-		String[] actionIDs = new String[6];
-		actionIDs[0] = ASDAddEndPointAction.ID;
-		actionIDs[1] = BaseSelectionAction.SUBMENU_START_ID + "Set Binding";
-		actionIDs[2] = ASDSetNewBindingAction.ID;
-		actionIDs[3] = ASDSetExistingBindingAction.ID;
-		actionIDs[4] = BaseSelectionAction.SUBMENU_END_ID;
-		actionIDs[5] = ASDDeleteAction.ID;
-		
-		return actionIDs;
-	}
-	
-	public Command getSetBindingCommand(IBinding binding) {
-		W11Binding w11Binding = (W11Binding) binding;
-		return new W11SetBindingCommand((Port) target, (Binding) w11Binding.getTarget());
-	}
-	
-	public Command getSetAddressCommand(String newAddress) {
-		return new W11SetAddressCommand((Port) this.getTarget(), newAddress);
-	}
-	public Command getDeleteCommand() {
-		return new W11DeleteCommand(this);
-	}
-    
-    public void propertyChanged(Object object, String property)
-    {
-      // this is called when one of the 'address' extensibility element adapters we're listening to changes
-      //
-      clearAddressExtensiblityElements();      
-      notifyListeners(this, null);
-    }
-	
-	public Image getImage() {
-		return WSDLEditorPlugin.getInstance().getImage("icons/port_obj.gif");
-	}
-	
-	public String getText() {
-		return "port";
-	}
-	
-	public ITreeElement[] getChildren() {
-		return ITreeElement.EMPTY_LIST;
-	}
-	
-	public boolean hasChildren() {
-		return false;
-	}
-	
-	public ITreeElement getParent() {
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/basic/W11Import.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/basic/W11Import.java
deleted file mode 100644
index c1cf32b..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/basic/W11Import.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.adapters.basic;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.wsdl.Import;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDDeleteAction;
-import org.eclipse.wst.wsdl.asd.editor.outline.ITreeElement;
-import org.eclipse.wst.wsdl.asd.facade.IDescription;
-import org.eclipse.wst.wsdl.asd.facade.IImport;
-import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
-import org.eclipse.wst.wsdl.ui.internal.adapters.WSDLBaseAdapter;
-import org.eclipse.wst.wsdl.ui.internal.adapters.commands.W11DeleteCommand;
-
-public class W11Import extends WSDLBaseAdapter implements IImport {
-
-	public Import getImport() {
-		return (Import) target;
-	}
-	
-	public String getNamespace() {
-		return getImport().getNamespaceURI();
-	}
-	
-	public String getNamespacePrefix() {
-		return getImport().getEnclosingDefinition().getPrefix(getNamespace());
-	}
-	
-	public String getLocation() {
-		return getImport().getLocationURI();
-	}
-	
-	public IDescription getOwnerDescription() {
-		return (IDescription) owner;
-	}
-	
-	public String getName() {
-		Import theImport = (Import) target;
-		return theImport.getLocationURI();
-	}
-	
-	public String[] getActions(Object object) {
-		String[] actionIDs = new String[1];
-		actionIDs[0] = ASDDeleteAction.ID;
-		
-		return actionIDs;
-	}
-	
-	public Command getDeleteCommand() {
-		return new W11DeleteCommand(this);
-	}
-	
-	public Image getImage() {
-		return WSDLEditorPlugin.getInstance().getImage("icons/import_obj.gif");
-	}
-	
-	public String getText() {
-		return "import";
-	}
-	
-	public ITreeElement[] getChildren() {
-		return ITreeElement.EMPTY_LIST;
-	}
-	
-	public boolean hasChildren() {
-		return false;
-	}
-	
-	public ITreeElement getParent() {
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/basic/W11Interface.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/basic/W11Interface.java
deleted file mode 100644
index 3df03a7..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/basic/W11Interface.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.adapters.basic;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.wsdl.PortType;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDAddOperationAction;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDDeleteAction;
-import org.eclipse.wst.wsdl.asd.editor.outline.ITreeElement;
-import org.eclipse.wst.wsdl.asd.facade.IInterface;
-import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
-import org.eclipse.wst.wsdl.ui.internal.adapters.WSDLBaseAdapter;
-import org.eclipse.wst.wsdl.ui.internal.adapters.commands.W11AddOperationCommand;
-import org.eclipse.wst.wsdl.ui.internal.adapters.commands.W11DeleteCommand;
-
-public class W11Interface extends WSDLBaseAdapter implements IInterface {
-
-	public List getOperations() {
-		List adapterList = new ArrayList();
-		populateAdapterList(((PortType) target).getEOperations(), adapterList);
-
-		return adapterList;
-	}
-	
-	public String getName() {
-		return ((PortType) target).getQName().getLocalPart();
-	}
-	
-	public String[] getActions(Object object) {
-		String[] actionIDs = new String[2];
-		actionIDs[0] = ASDAddOperationAction.ID;
-		actionIDs[1] = ASDDeleteAction.ID;
-		
-		return actionIDs;
-	}
-	
-	public Command getAddOperationCommand() {
-		return new W11AddOperationCommand((PortType) target);
-	}
-	
-	public Command getDeleteCommand() {
-		return new W11DeleteCommand(this);
-	}
-	
-	public Image getImage() {
-		return WSDLEditorPlugin.getInstance().getImage("icons/porttype_obj.gif");
-	}
-	
-	public String getText() {
-		return "portType";
-	}
-	
-	public ITreeElement[] getChildren() {
-		List operations = getOperations();
-		ITreeElement[] treeElements = new ITreeElement[operations.size()];
-		
-		for (int index = 0; index < operations.size(); index++) {
-			treeElements[index] = (ITreeElement) operations.get(index);
-		}
-		
-		return treeElements;
-	}
-	
-	public boolean hasChildren() {
-		if (getChildren().length > 0) {
-			return true;
-		}
-		
-		return false;
-	}
-	
-	public ITreeElement getParent() {
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/basic/W11Message.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/basic/W11Message.java
deleted file mode 100644
index 65219c7..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/basic/W11Message.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.adapters.basic;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notifier;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.wsdl.Message;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDDeleteAction;
-import org.eclipse.wst.wsdl.asd.editor.outline.ITreeElement;
-import org.eclipse.wst.wsdl.asd.facade.IDescription;
-import org.eclipse.wst.wsdl.asd.facade.IMessage;
-import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
-import org.eclipse.wst.wsdl.ui.internal.adapters.WSDLBaseAdapter;
-import org.eclipse.wst.wsdl.ui.internal.adapters.actions.W11AddPartAction;
-import org.eclipse.wst.wsdl.ui.internal.adapters.commands.W11AddPartCommand;
-import org.eclipse.wst.wsdl.ui.internal.adapters.commands.W11DeleteCommand;
-import org.eclipse.wst.wsdl.ui.internal.util.WSDLAdapterFactoryHelper;
-
-
-public class W11Message extends WSDLBaseAdapter implements IMessage {
-
-	public List getParts() {
-		List adapterList = new ArrayList();
-//		populateAdapterList(((Message) target).getEParts(), adapterList);
-		Iterator parts = ((Message) target).getEParts().iterator();
-		while (parts.hasNext()) {
-			Notifier component = (Notifier) parts.next();
-			Adapter adapter = WSDLAdapterFactoryHelper.getInstance().adapt(component);
-			adapterList.add(adapter);			
-		}
-		
-		return adapterList;
-	}
-	
-	public IDescription getOwnerDescription() {
-		return (IDescription) owner;
-	}
-
-	public String getName() {
-		return ((Message) target).getQName().getLocalPart();
-	}
-	
-	public String[] getActions(Object object) {
-		String[] actionIDs = new String[2];
-		actionIDs[0] = W11AddPartAction.ID;
-		actionIDs[1] = ASDDeleteAction.ID;
-		
-		return actionIDs;
-	}
-	
-	public Command getAddPartCommand() {
-		return new W11AddPartCommand((Message) target);
-	}
-	
-	public Command getDeleteCommand() {
-		return new W11DeleteCommand(this);
-	}
-
-	public Command getSetNameCommand(String newName) {
-
-		return null;
-	}
-	
-	public Image getImage() {
-		return WSDLEditorPlugin.getInstance().getImage("icons/message_obj.gif");
-	}
-	
-	public String getText() {
-		return "message";
-	}
-	
-	public ITreeElement[] getChildren() {
-		List parts = getParts();
-		ITreeElement[] treeElements = new ITreeElement[parts.size()];
-		
-		for (int index = 0; index < parts.size(); index++) {
-			treeElements[index] = (ITreeElement) parts.get(index);
-		}
-		
-		return treeElements;
-	}
-
-	public boolean hasChildren() {
-		if (getChildren().length > 0) {
-			return true;
-		}
-		
-		return false;
-	}
-
-	public ITreeElement getParent() {
-		return null;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/basic/W11MessageReference.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/basic/W11MessageReference.java
deleted file mode 100644
index 93a7a80..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/basic/W11MessageReference.java
+++ /dev/null
@@ -1,276 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.adapters.basic;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.wsdl.Fault;
-import org.eclipse.wst.wsdl.Input;
-import org.eclipse.wst.wsdl.MessageReference;
-import org.eclipse.wst.wsdl.Output;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDAddFaultAction;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDAddOperationAction;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDDeleteAction;
-import org.eclipse.wst.wsdl.asd.editor.actions.BaseSelectionAction;
-import org.eclipse.wst.wsdl.asd.editor.outline.ITreeElement;
-import org.eclipse.wst.wsdl.asd.facade.IASDObject;
-import org.eclipse.wst.wsdl.asd.facade.IASDObjectListener;
-import org.eclipse.wst.wsdl.asd.facade.IMessageReference;
-import org.eclipse.wst.wsdl.asd.facade.IOperation;
-import org.eclipse.wst.wsdl.asd.facade.IParameter;
-import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
-import org.eclipse.wst.wsdl.ui.internal.adapters.WSDLBaseAdapter;
-import org.eclipse.wst.wsdl.ui.internal.adapters.actions.W11AddPartAction;
-import org.eclipse.wst.wsdl.ui.internal.adapters.actions.W11SetExistingMessageAction;
-import org.eclipse.wst.wsdl.ui.internal.adapters.actions.W11SetNewMessageAction;
-import org.eclipse.wst.wsdl.ui.internal.adapters.commands.W11DeleteCommand;
-import org.eclipse.wst.wsdl.ui.internal.visitor.WSDLVisitorForParameters;
-
-
-public class W11MessageReference extends WSDLBaseAdapter implements IMessageReference, IASDObjectListener
-{
-  protected int messageKind = -1;
-  protected List parameters = null;
-  protected List otherThingsToListenTo = null;
-
-  public W11MessageReference(int messageKind)
-  {
-    this.messageKind = messageKind;
-  }
-
-  public IOperation getOwnerOperation()
-  {
-    return (IOperation) owner;
-  }
-  
-  public String getPreview() {
-	  String previewString = "()";
-	  List params = getParameters();
-	  // For now, just look at the first Part for the preview
-	  if (params.size() > 0) {
-		  IParameter param = (IParameter) params.get(0);
-		  
-		  previewString = param.getPreview();
-	  }	  
-	  
-	  return previewString;
-  }
-  
-  // Convenience method
-  public MessageReference getMessageReference()
-  {
-    return (MessageReference) target;
-  }
-
-  protected void computeMessageKind()
-  {
-    if (getMessageReference() instanceof Input)
-    {
-      messageKind = KIND_INPUT;
-    }
-    else if (getMessageReference() instanceof Output)
-    {
-      messageKind = KIND_OUTPUT;
-    }
-    else if (getMessageReference() instanceof Fault)
-      messageKind = KIND_FAULT;
-  }
-
-  public int getKind()
-  {
-	  if (messageKind == -1)
-	  {
-		  computeMessageKind();
-	  }
-	  return messageKind;
-  }
-  
-  public String getName()
-  {
-    if (getKind() == KIND_INPUT)
-    {
-      return "input";
-    }
-    else if (getKind() == KIND_OUTPUT)
-    {
-      return "output";
-    }
-    else if (getKind() == KIND_FAULT)
-    {
-      return "fault";
-    }
-    return "NoName";
-  }
-
-  /*
-   * XSD Elements or WSDL Parts...
-   */
-  public List getParameters()
-  {
-	  List parameters = new ArrayList();
-	  List parts = new ArrayList();
-	  MessageReference messageRef = getMessageReference();
-	  if (messageRef != null) {
-		  if (messageRef.getEMessage() != null) {
-			  if (messageRef.getEMessage().getEParts() != null) {
-				  parts = messageRef.getEMessage().getEParts();
-			  }
-		  }
-	  }
-	  
-	  populateAdapterList(parts, parameters);
-	  
-	  otherThingsToListenTo = new ArrayList();
-      WSDLVisitorForParameters visitorForParameters = new WSDLVisitorForParameters();
-      visitorForParameters.visitMessageReference(messageRef);
-      populateAdapterList(visitorForParameters.concreteComponents, otherThingsToListenTo);
-      populateAdapterList(visitorForParameters.thingsToListenTo, otherThingsToListenTo);
-      
-      // now we listen to all the 'things we need to listen to'
-      //
-      for (Iterator i = otherThingsToListenTo.iterator(); i.hasNext();)
-      {
-        Adapter adapter = (Adapter) i.next();
-        if (adapter instanceof IASDObject)
-        {
-          IASDObject asdObject = (IASDObject) adapter;
-          asdObject.registerListener(this);
-        }
-      }
-	  
-	  return parameters;
-    }
-  
-  public void propertyChanged(Object object, String property)
-  {
-    // this method is called when one of the 'otherThingsToListenTo' has changed
-    // when one of these things changes it means our paramter list may have changes
-    // so we need to recompute it
-    Object notifier = null;
-    if (object instanceof Adapter)
-    {
-      notifier = ((Adapter)object).getTarget();
-    }  
-    //System.out.println("something in the 'otherThingsToListenTo' list has changed " + notifier);    
-    clearParameters();
-    notifyListeners(this, null);     
-  }
-  
-  protected void clearParameters()
-  {
-    if (otherThingsToListenTo != null)
-    {
-      for (Iterator i = otherThingsToListenTo.iterator(); i.hasNext();)
-      {
-        Adapter adapter = (Adapter) i.next();
-        if (adapter instanceof IASDObject)
-        {
-          IASDObject asdObject = (IASDObject) adapter;
-          asdObject.unregisterListener(this);
-        }
-      }
-    }
-    parameters = null;    
-    otherThingsToListenTo = null;
-  }
-  
-  public void notifyChanged(Notification msg)
-  {
-    clearParameters();    
-    super.notifyChanged(msg);    
-  }
-  
-  public String[] getActions(Object object)
-  {
-	  List actions = new ArrayList();
-	  actions.add(ASDAddOperationAction.ID);	  
-	  actions.addAll(((W11Operation) getOwnerOperation()).getValidInputOutpuActions()); 
-	  actions.add(ASDAddFaultAction.ID);
-	  actions.add(W11AddPartAction.ID);
-	  actions.add(ASDDeleteAction.ID);
-	  actions.add(BaseSelectionAction.SUBMENU_START_ID + "Set Message");
-	  actions.add(W11SetNewMessageAction.ID);
-	  actions.add(W11SetExistingMessageAction.ID);
-	  actions.add(BaseSelectionAction.SUBMENU_END_ID);
-	  
-	  String[] actionIDs = new String[actions.size()];
-	  for (int index = 0; index < actions.size(); index++) {
-		  actionIDs[index] = (String) actions.get(index);
-	  }
-	  
-	  return actionIDs;
-  }
-  
-  public Command getDeleteCommand() {
-	  return new W11DeleteCommand(this);
-  }
-  
-	public Image getImage() {
-	    if (getKind() == KIND_INPUT)
-	    {
-	    	return WSDLEditorPlugin.getInstance().getImage("icons/input_obj.gif");
-	    }
-	    else if (getKind() == KIND_OUTPUT)
-	    {
-	    	return WSDLEditorPlugin.getInstance().getImage("icons/output_obj.gif");
-	    }
-	    else if (getKind() == KIND_FAULT)
-	    {
-	    	return WSDLEditorPlugin.getInstance().getImage("icons/fault_obj.gif");
-	    }
-	    return null;
-	}
-	
-	public String getText() {
-	    if (getKind() == KIND_INPUT)
-	    {
-	      return "Input(s)";
-	    }
-	    else if (getKind() == KIND_OUTPUT)
-	    {
-	      return "Output(s)";
-	    }
-	    else if (getKind() == KIND_FAULT)
-	    {
-	      return "Fault(s)";
-	    }
-	    return "NoName";
-	}
-	
-	public ITreeElement[] getChildren() {
-		List parts = getParameters();
-		ITreeElement[] treeElements = new ITreeElement[parts.size()];
-		
-		for (int index = 0; index < parts.size(); index++) {
-			treeElements[index] = (ITreeElement) parts.get(index);
-		}
-		
-		return treeElements;
-	}
-
-	public boolean hasChildren() {
-		if (getChildren().length > 0) {
-			return true;
-		}
-		
-		return false;
-	}
-
-	public ITreeElement getParent() {
-		return null;
-	}
-  }
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/basic/W11Operation.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/basic/W11Operation.java
deleted file mode 100644
index 27c314f..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/basic/W11Operation.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.adapters.basic;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.wsdl.Fault;
-import org.eclipse.wst.wsdl.Operation;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDAddFaultAction;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDAddInputAction;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDAddOperationAction;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDAddOutputAction;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDDeleteAction;
-import org.eclipse.wst.wsdl.asd.editor.outline.ITreeElement;
-import org.eclipse.wst.wsdl.asd.facade.IInterface;
-import org.eclipse.wst.wsdl.asd.facade.IOperation;
-import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
-import org.eclipse.wst.wsdl.ui.internal.adapters.WSDLBaseAdapter;
-import org.eclipse.wst.wsdl.ui.internal.adapters.commands.W11AddFaultParameterCommand;
-import org.eclipse.wst.wsdl.ui.internal.adapters.commands.W11AddInputParameterCommand;
-import org.eclipse.wst.wsdl.ui.internal.adapters.commands.W11AddOutputParameterCommand;
-import org.eclipse.wst.wsdl.ui.internal.adapters.commands.W11DeleteCommand;
-
-public class W11Operation extends WSDLBaseAdapter implements IOperation {
-	public List getMessages()
-	{
-		List modelAdapterList = new ArrayList(getOperation().getEFaults().size() + 2);
-		if (getOperation().getEInput() != null)
-		{
-			modelAdapterList.add(createAdapter(getOperation().getEInput()));
-		}
-		if (getOperation().getEOutput() != null)
-		{
-			modelAdapterList.add(createAdapter(getOperation().getEOutput()));
-		}
-		for (Iterator i = getOperation().getEFaults().iterator(); i.hasNext();)
-		{
-			EObject o = (EObject) i.next();
-			modelAdapterList.add(createAdapter(o));
-		}
-		return modelAdapterList;
-	}
-	
-	// Convienence method
-	public Operation getOperation()
-	{
-		return (Operation) target;
-	}
-	
-	public String getName()
-	{
-		return getOperation().getName();
-	}
-	
-	public IInterface getOwnerInterface()
-	{
-		return (IInterface)owner;
-	}
-	
-	public String[] getActions(Object object) {
-		List actions = new ArrayList();
-		actions.add(ASDAddOperationAction.ID);
-		actions.addAll(getValidInputOutpuActions());
-		actions.add(ASDAddFaultAction.ID);
-		actions.add(ASDDeleteAction.ID);
-		
-		String[] actionIDs = new String[actions.size()];
-		for (int index = 0; index < actions.size(); index++) {
-			actionIDs[index] = (String) actions.get(index);
-		}
-		
-		return actionIDs;
-	}
-	
-	public Command getAddInputCommand() {
-		return new W11AddInputParameterCommand(getOperation());
-	}
-	
-	public Command getAddOutputCommand() {
-		return new W11AddOutputParameterCommand(getOperation());
-	}
-	
-	public Command getAddFaultCommand(Object fault) {
-		Fault aFault = null;
-		if (fault instanceof Fault) {
-			aFault = (Fault) fault;
-		}
-		return new W11AddFaultParameterCommand(getOperation(), aFault);
-	}
-	
-	public Command getDeleteCommand() {
-		return new W11DeleteCommand(this);
-	}
-	
-	public List getValidInputOutpuActions() {
-		List list = new ArrayList();
-		
-		if (getOperation().getEInput() == null) {
-			list.add(ASDAddInputAction.ID);
-		}
-		if (getOperation().getEOutput() == null) {
-			list.add(ASDAddOutputAction.ID);
-		}
-		
-		return list;
-	}
-	
-	public Image getImage() {
-		return WSDLEditorPlugin.getInstance().getImage("icons/operation_obj.gif");
-	}
-	
-	public String getText() {
-		return "operation";
-	}
-	
-	public ITreeElement[] getChildren() {
-		List messages = getMessages();
-		ITreeElement[] treeElements = new ITreeElement[messages.size()];
-		
-		for (int index = 0; index < messages.size(); index++) {
-			treeElements[index] = (ITreeElement) messages.get(index);
-		}
-		
-		return treeElements;
-	}
-
-	public boolean hasChildren() {
-		if (getChildren().length > 0) {
-			return true;
-		}
-		
-		return false;
-	}
-
-	public ITreeElement getParent() {
-		return null;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/basic/W11ParameterForPart.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/basic/W11ParameterForPart.java
deleted file mode 100644
index 174508b..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/basic/W11ParameterForPart.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.adapters.basic;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.part.MultiPageEditorPart;
-import org.eclipse.ui.views.contentoutline.ContentOutline;
-import org.eclipse.wst.wsdl.Message;
-import org.eclipse.wst.wsdl.Part;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDAddFaultAction;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDAddOperationAction;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDDeleteAction;
-import org.eclipse.wst.wsdl.asd.editor.outline.ITreeElement;
-import org.eclipse.wst.wsdl.asd.facade.IMessageReference;
-import org.eclipse.wst.wsdl.asd.facade.IOperation;
-import org.eclipse.wst.wsdl.asd.facade.IParameter;
-import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
-import org.eclipse.wst.wsdl.ui.internal.adapters.WSDLBaseAdapter;
-import org.eclipse.wst.wsdl.ui.internal.adapters.actions.W11AddPartAction;
-import org.eclipse.wst.wsdl.ui.internal.adapters.commands.W11DeleteCommand;
-import org.eclipse.wst.wsdl.ui.internal.adapters.commands.W11SetTypeCommand;
-import org.eclipse.wst.wsdl.ui.internal.visitor.WSDLVisitorForParameters;
-import org.eclipse.xsd.XSDAttributeUse;
-import org.eclipse.xsd.XSDElementDeclaration;
-
-
-public class W11ParameterForPart extends WSDLBaseAdapter implements IParameter
-{
-  protected Part getPart()
-  {
-    return (Part) target;
-  }
-
-  public String getName()
-  {
-    return getPart().getName();
-  }
-
-  public String getComponentName()
-  {
-    if (getPart().getElementDeclaration() != null)
-    {  
-      return "[Element] " + getPart().getElementDeclaration().getName();
-    }
-    else if (getPart().getTypeDefinition() != null)
-    {
-      return "[Type] " + getPart().getTypeDefinition().getName();
-    }
-    else
-    {
-      return "(no name specified)";
-    }  
-  }
-
-  public String getComponentNameQualifier()
-  {
-    if (getPart().getElementDeclaration() != null)
-    {  
-      return getPart().getElementDeclaration().getTargetNamespace();
-    }
-    else if (getPart().getTypeDefinition() != null)
-    {
-      return getPart().getTypeDefinition().getTargetNamespace();
-    }
-    else
-    {  
-      return "(no namespace specified)";
-    }  
-  }
-  
-  public String getPreview() {
-	  String preview = "";
-	  
-//      parameters = new ArrayList();
-//      otherThingsToListenTo = new ArrayList();
-      WSDLVisitorForParameters visitorForParameters = new WSDLVisitorForParameters();
-      visitorForParameters.visitMessage((Message) getPart().eContainer());
-      
-      Iterator it = visitorForParameters.concreteComponents.iterator();
-      while (it.hasNext()) {
-    	  String stringItem = null;
-    	  Object item = it.next();
-    	  if (item instanceof XSDElementDeclaration) {
-    		  XSDElementDeclaration xsdElement = (XSDElementDeclaration) item;
-    		  xsdElement = xsdElement.getResolvedElementDeclaration();
-    		  if (xsdElement.getTypeDefinition() != null) {
-    			  stringItem = xsdElement.getTypeDefinition().getName();
-    		  }
-     	  }
-    	  else if (item instanceof XSDAttributeUse) {
-    		  stringItem = ((XSDAttributeUse) item).getAttributeDeclaration().getName();
-    	  }
-    	  
-    	  else if (item instanceof Part) {
-    		  if (((Part) item).getTypeDefinition() != null) {
-    			  stringItem = ((Part) item).getTypeDefinition().getName();
-    		  }
-    	  }
-    	  
-    	  if (stringItem != null) {
-    		  preview = preview + stringItem + ", ";
-    	  }
-      }
-      
-      if (preview.length() -2 > 0) {
-    	  preview = preview.substring(0, preview.length() - 2);
-      }
-      
-      return "(" + preview + ")";
-  }
-  
-  public String[] getActions(Object object) {
-	  if (object instanceof MultiPageEditorPart) {
-		  IOperation operation = ((IMessageReference) getOwner()).getOwnerOperation();
-
-		  List actions = new ArrayList();
-		  actions.add(W11AddPartAction.ID);
-		  actions.add(ASDAddOperationAction.ID);
-		  actions.addAll(((W11Operation) operation).getValidInputOutpuActions());
-		  actions.add(ASDAddFaultAction.ID);
-		  actions.add(ASDDeleteAction.ID);
-		  
-		  String[] actionIDs = new String[actions.size()];
-		  for (int index = 0; index < actions.size(); index++) {
-			  actionIDs[index] = (String) actions.get(index);
-		  }
-	  
-		  return actionIDs;
-	  }
-	  if (object instanceof ContentOutline) {
-		  String[] actionIDs = new String[2];
-		  actionIDs[0] = W11AddPartAction.ID;
-		  actionIDs[1] = ASDDeleteAction.ID;
-		  
-		  return actionIDs;
-	  }
-	  
-	  return new String[0];
-  }
-
-  public Command getDeleteCommand()
-  {
-	  return new W11DeleteCommand(this);
-  }
-
-  public Object getOwner()
-  {
-	  return owner;
-  }
-  
-	public Image getImage() {
-		return WSDLEditorPlugin.getInstance().getImage("icons/part_obj.gif");
-	}
-	
-	public String getText() {
-		return "part";
-	}
-	
-	public ITreeElement[] getChildren() {
-		return new ITreeElement[0];
-	}
-
-	public boolean hasChildren() {
-		return false;
-	}
-
-	public ITreeElement getParent() {
-		return null;
-	}
-	
-	public Command getSetTypeCommand(String actionId) {
-		return new W11SetTypeCommand((Part) this.getTarget(), actionId);
-	}
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/basic/W11Service.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/basic/W11Service.java
deleted file mode 100644
index 45de33f..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/basic/W11Service.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.adapters.basic;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.wsdl.Service;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDAddEndPointAction;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDDeleteAction;
-import org.eclipse.wst.wsdl.asd.editor.outline.ITreeElement;
-import org.eclipse.wst.wsdl.asd.facade.IDescription;
-import org.eclipse.wst.wsdl.asd.facade.IService;
-import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
-import org.eclipse.wst.wsdl.ui.internal.adapters.WSDLBaseAdapter;
-import org.eclipse.wst.wsdl.ui.internal.adapters.commands.W11AddEndPointCommand;
-import org.eclipse.wst.wsdl.ui.internal.adapters.commands.W11DeleteCommand;
-
-public class W11Service extends WSDLBaseAdapter implements IService {
-
-	public List getEndPoints() {
-		List adapterList = new ArrayList();
-		populateAdapterList(((Service) target).getEPorts(), adapterList);
-
-		return adapterList;
-	}
-
-	public String getName() {
-		return ((Service) target).getQName().getLocalPart();
-	}
-	
-	public List getFields() {
-		return getEndPoints();
-	}
-	
-	public IDescription getOwnerDescription() {
-		return (IDescription) owner;
-	}
-	
-	public String[] getActions(Object object) {
-		String[] actionIDs = new String[2];
-		actionIDs[0] = ASDAddEndPointAction.ID;
-		actionIDs[1] = ASDDeleteAction.ID;
-
-		return actionIDs;
-	}
-    
-    public Command getAddEndPointCommand() {
-      return new W11AddEndPointCommand((Service)target);
-    }
-    
-    public Command getDeleteCommand() {
-    	return new W11DeleteCommand(this);
-    }
-    
-	public Image getImage() {
-		return WSDLEditorPlugin.getInstance().getImage("icons/service_obj.gif");
-	}
-	
-	public String getText() {
-		return "service";
-	}
-	
-	public ITreeElement[] getChildren() {
-		List endPoints = getEndPoints();
-		ITreeElement[] treeElements = new ITreeElement[endPoints.size()];
-		
-		for (int index = 0; index < endPoints.size(); index++) {
-			treeElements[index] = (ITreeElement) endPoints.get(index);
-		}
-		
-		return treeElements;
-	}
-
-	public boolean hasChildren() {
-		if (getChildren().length > 0) {
-			return true;
-		}
-		
-		return false;
-	}
-
-	public ITreeElement getParent() {
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/basic/W11Type.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/basic/W11Type.java
deleted file mode 100644
index f57ee87..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/basic/W11Type.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.adapters.basic;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDDeleteAction;
-import org.eclipse.wst.wsdl.asd.editor.outline.ITreeElement;
-import org.eclipse.wst.wsdl.asd.facade.IDescription;
-import org.eclipse.wst.wsdl.asd.facade.IType;
-import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
-import org.eclipse.wst.wsdl.ui.internal.adapters.WSDLBaseAdapter;
-import org.eclipse.xsd.XSDSchema;
-
-public class W11Type extends WSDLBaseAdapter implements IType {
-	public IDescription getOwnerDescription() {
-		return (IDescription) owner;
-	}
-
-	public String getName() {
-		XSDSchema schema= (XSDSchema) target;
-		return schema.getTargetNamespace();
-	}
-	
-	public String[] getActions(Object object) {
-		String[] actionIDs = new String[1];
-		actionIDs[0] = ASDDeleteAction.ID;
-		
-		return actionIDs;
-	}
-	
-	public Image getImage() {
-		return WSDLEditorPlugin.getInstance().getImage("icons/xsd_obj.gif");
-	}
-	
-	public String getText() {
-		return "schema";
-	}
-	public ITreeElement[] getChildren() {
-		return new ITreeElement[0];
-	}
-
-	public boolean hasChildren() {
-		return false;
-	}
-
-	public ITreeElement getParent() {
-		return null;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11AddBindingCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11AddBindingCommand.java
deleted file mode 100644
index d5075d7..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11AddBindingCommand.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.adapters.commands;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.wst.wsdl.Binding;
-import org.eclipse.wst.wsdl.Definition;
-import org.eclipse.wst.wsdl.ui.internal.commands.AddBindingCommand;
-import org.eclipse.wst.wsdl.ui.internal.util.NameUtil;
-
-public class W11AddBindingCommand extends Command {
-	private Definition definition;
-	private String newName;
-	private Binding newBinding;
-	
-	public W11AddBindingCommand(Definition definition) {
-		this.definition = definition;
-	}
-	
-	public void setNewBindingName(String newName) {
-		this.newName = newName;
-	}
-	
-	public Binding getNewBinding() {
-		return newBinding;
-	}
-	
-	public void execute() {
-		if (newName == null || newName.equals("")) {
-			newName = NameUtil.buildUniqueBindingName(definition, "NewBinding");
-		}
-		
-		AddBindingCommand command = new AddBindingCommand(definition, newName);
-		command.run();
-		
-		newBinding = (Binding) command.getWSDLElement();
-	}
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11AddEndPointCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11AddEndPointCommand.java
deleted file mode 100644
index 34fecb8..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11AddEndPointCommand.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.adapters.commands;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.wst.wsdl.Port;
-import org.eclipse.wst.wsdl.Service;
-import org.eclipse.wst.wsdl.ui.internal.commands.AddPortCommand;
-import org.eclipse.wst.wsdl.ui.internal.util.NameUtil;
-
-public class W11AddEndPointCommand extends Command
-{
-    private Service service;
-    
-    public W11AddEndPointCommand(Service service) {
-        this.service = service;
-    }
-    
-    public void execute() {
-        AddPortCommand command = new AddPortCommand(service, NameUtil.buildUniquePortName(service, "NewPort"));
-        command.run();
-        Port port = (Port) command.getWSDLElement();
-        
-		// Set a default address
-		String address = "http://www.example.org/";
-		W11SetAddressCommand addressCommand = new W11SetAddressCommand(port, address);
-		addressCommand.execute();
-    }  
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11AddFaultParameterCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11AddFaultParameterCommand.java
deleted file mode 100644
index dfaccaf..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11AddFaultParameterCommand.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.adapters.commands;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.wst.wsdl.Fault;
-import org.eclipse.wst.wsdl.Operation;
-import org.eclipse.wst.wsdl.ui.internal.commands.AddBaseParameterCommand;
-import org.eclipse.wst.wsdl.ui.internal.commands.AddFaultParameterCommand;
-
-public class W11AddFaultParameterCommand extends Command {
-	protected Operation operation;
-	protected Fault fault;
-	
-	public W11AddFaultParameterCommand(Operation operation, Fault fault) {
-		this.operation = operation;
-		this.fault = fault;
-	}
-	
-	public void execute() {
-		// Determine which Pattern we should use.  For example, ADDBaseParameterCommand.PART_ELEMENT_SEQ_ELEMENT
-//		int pattern = getParameterPattern();		
-		AddFaultParameterCommand command = new AddFaultParameterCommand(operation, fault);
-		command.setStyle(AddBaseParameterCommand.PART_ELEMENT_SEQ_ELEMENT);
-		command.run();
-	}
-	
-//	private int getParameterPattern() {
-//		int pattern = AddBaseParameterCommand.PART_ELEMENT_SEQ_ELEMENT;
-//		
-//		if (operation.getEInput() != null) {
-//			Input input = operation.getEInput();
-//			
-//			if (input.getEMessage() != null) {
-//				Message message = input.getEMessage();
-//				List parts = message.getEParts();
-//				
-//				if (parts.size() > 0) {
-//					Part part = (Part) parts.get(0);
-//					if (part.getTypeDefinition() != null) {
-//						pattern = AddBaseParameterCommand.PART_COMPLEXTYPE_SEQ_ELEMENT;
-//					}
-//				}
-//			}
-//		}
-//		
-//		return pattern;
-//	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11AddImportCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11AddImportCommand.java
deleted file mode 100644
index 79d0836..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11AddImportCommand.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.adapters.commands;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.wst.wsdl.Definition;
-import org.eclipse.wst.wsdl.ui.internal.commands.AddImportCommand;
-
-public class W11AddImportCommand extends Command {
-	private Definition definition;
-	
-	public W11AddImportCommand(Definition definition) {
-		this.definition = definition;
-	}
-	
-	public void execute() {
-		String namespace = "";
-		String location = "";
-		AddImportCommand command = new AddImportCommand(definition, namespace, location);
-		command.run();
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11AddInputParameterCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11AddInputParameterCommand.java
deleted file mode 100644
index 1b6aaad..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11AddInputParameterCommand.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.adapters.commands;
-
-import java.util.List;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.wst.wsdl.Input;
-import org.eclipse.wst.wsdl.Message;
-import org.eclipse.wst.wsdl.Operation;
-import org.eclipse.wst.wsdl.Part;
-import org.eclipse.wst.wsdl.ui.internal.commands.AddBaseParameterCommand;
-import org.eclipse.wst.wsdl.ui.internal.commands.AddInputParameterCommand;
-
-public class W11AddInputParameterCommand extends Command {
-	protected Operation operation;
-	
-	public W11AddInputParameterCommand(Operation operation) {
-		this.operation = operation;
-	}
-	
-	public void execute() {
-		// Determine which Pattern we should use.  For example, ADDBaseParameterCommand.PART_ELEMENT_SEQ_ELEMENT
-		int pattern = getParameterPattern();
-		AddInputParameterCommand command = new AddInputParameterCommand(operation, pattern);
-		command.run();
-	}
-	
-	private int getParameterPattern() {
-		int pattern = AddBaseParameterCommand.PART_ELEMENT_SEQ_ELEMENT;
-		
-		// TODO: rmah: Should we be checking if there's an existing Output.  If so, we should
-		// try to determine the pattern from there if we fail to get it from the Input???
-		if (operation.getEInput() != null) {
-			Input input = operation.getEInput();
-			
-			if (input.getEMessage() != null) {
-				Message message = input.getEMessage();
-				List parts = message.getEParts();
-				
-				if (parts.size() > 0) {
-					Part part = (Part) parts.get(0);
-					if (part.getTypeDefinition() != null) {
-						pattern = AddBaseParameterCommand.PART_COMPLEXTYPE_SEQ_ELEMENT;
-					}
-				}
-			}
-		}
-		
-		return pattern;
-	}
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11AddInterfaceCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11AddInterfaceCommand.java
deleted file mode 100644
index 4bc7597..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11AddInterfaceCommand.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.adapters.commands;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.wst.wsdl.Definition;
-import org.eclipse.wst.wsdl.PortType;
-import org.eclipse.wst.wsdl.asd.facade.IInterface;
-import org.eclipse.wst.wsdl.ui.internal.commands.AddPortTypeCommand;
-import org.eclipse.wst.wsdl.ui.internal.util.NameUtil;
-import org.eclipse.wst.wsdl.ui.internal.util.WSDLAdapterFactoryHelper;
-
-public class W11AddInterfaceCommand extends Command {
-	private Definition definition;
-	private String newName;
-	private PortType newPortType;
-	
-	public W11AddInterfaceCommand(Definition definition) {
-		this.definition = definition;
-	}
-	
-	public void setNewPortTypeName(String newName) {
-		this.newName = newName;
-	}
-	
-	public PortType getNewPortType() {
-		return newPortType;
-	}
-	
-	public void execute() {
-		if (newName == null || newName.equals("")) {
-			newName = NameUtil.buildUniquePortTypeName(definition, "NewPortType");
-		}
-		// Add the Port Type
-		AddPortTypeCommand command = new AddPortTypeCommand(definition, newName, false);
-		command.run();
-		
-		newPortType = (PortType) command.getWSDLElement();
-		
-		// Add the Operation
-		IInterface iInterface = (IInterface) WSDLAdapterFactoryHelper.getInstance().adapt(newPortType);
-		Command addOperationCommand = iInterface.getAddOperationCommand();
-		addOperationCommand.execute();
-	}
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11AddMessageCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11AddMessageCommand.java
deleted file mode 100644
index 9d71009..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11AddMessageCommand.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.adapters.commands;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.wst.wsdl.Definition;
-import org.eclipse.wst.wsdl.Message;
-import org.eclipse.wst.wsdl.ui.internal.commands.AddMessageCommand;
-import org.eclipse.wst.wsdl.ui.internal.util.NameUtil;
-
-public class W11AddMessageCommand extends Command {
-    private Definition definition;
-    private String newName;
-    private Message message;
-	
-    public W11AddMessageCommand(Definition definition) {
-        this.definition = definition;
-    }
-    
-	public void setNewMessageName(String newName) {
-		this.newName = newName;
-	}
-
-    public void execute() {
-		if (newName == null || newName.equals("")) {
-			newName = NameUtil.buildUniqueMessageName(definition, "NewMessage");
-		}
-
-    	AddMessageCommand command = new AddMessageCommand(definition, newName, true);
-        command.run();
-        message = (Message) command.getWSDLElement();
-    }
-    
-    public Message getNewMessage() {
-    	return message;
-    }
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11AddOperationCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11AddOperationCommand.java
deleted file mode 100644
index 5b54a29..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11AddOperationCommand.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.adapters.commands;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.wst.wsdl.Message;
-import org.eclipse.wst.wsdl.MessageReference;
-import org.eclipse.wst.wsdl.Operation;
-import org.eclipse.wst.wsdl.Part;
-import org.eclipse.wst.wsdl.PortType;
-import org.eclipse.wst.wsdl.asd.facade.IMessageReference;
-import org.eclipse.wst.wsdl.asd.facade.IParameter;
-import org.eclipse.wst.wsdl.ui.internal.commands.AddBaseParameterCommand;
-import org.eclipse.wst.wsdl.ui.internal.commands.AddFaultCommand;
-import org.eclipse.wst.wsdl.ui.internal.commands.AddInputCommand;
-import org.eclipse.wst.wsdl.ui.internal.commands.AddInputParameterCommand;
-import org.eclipse.wst.wsdl.ui.internal.commands.AddMessageCommand;
-import org.eclipse.wst.wsdl.ui.internal.commands.AddMessageReferenceCommand;
-import org.eclipse.wst.wsdl.ui.internal.commands.AddOperationCommand;
-import org.eclipse.wst.wsdl.ui.internal.commands.AddOutputCommand;
-import org.eclipse.wst.wsdl.ui.internal.commands.AddOutputParameterCommand;
-import org.eclipse.wst.wsdl.ui.internal.util.NameUtil;
-import org.eclipse.xsd.XSDTypeDefinition;
-
-public class W11AddOperationCommand extends Command {
-	private PortType portType;
-	
-	public W11AddOperationCommand(PortType portType) {
-		this.portType = portType;
-	}
-	
-	public void execute() {
-		String name = NameUtil.getOperationName(portType);
-		AddOperationCommand operationCommand = new AddOperationCommand(portType, name);
-		operationCommand.run();
-		Operation operation = (Operation) operationCommand.getWSDLElement();
-
-		createMessage(operation, IMessageReference.KIND_INPUT);
-		createMessage(operation, IMessageReference.KIND_OUTPUT);
-		
-		createParameter(operation, null, IMessageReference.KIND_INPUT);
-		createParameter(operation, null, IMessageReference.KIND_OUTPUT);
-	}
-	
-	private MessageReference createMessage(Operation operation, int messageKind) {
-		MessageReference messageRef = null;
-		AddMessageReferenceCommand messageRefCommand = null;
-	    if (messageKind == IMessageReference.KIND_INPUT)
-	    {
-	    	messageRefCommand = new AddInputCommand(operation, null);
-	    }
-	    else if (messageKind == IMessageReference.KIND_OUTPUT)
-	    {
-	    	messageRefCommand = new AddOutputCommand(operation, null);
-	    }
-	    else if (messageKind == IMessageReference.KIND_FAULT)
-	    {
-	    	messageRefCommand = new AddFaultCommand(operation, NameUtil.getFaultName(operation));
-	    }
-	    messageRefCommand.run();
-	    messageRef = (MessageReference) messageRefCommand.getWSDLElement();
-	    
-	    AddMessageCommand command = new AddMessageCommand(messageRef.getEnclosingDefinition(), NameUtil.getMessageName(messageRef));
-	    command.run();
-	    messageRef.setEMessage((Message) command.getWSDLElement());
-	    
-	    return messageRef;
-	}
-	
-	private void createParameter(Operation operation, Part part, int kind) {
-		  IParameter parameter = null;
-		  AddBaseParameterCommand addParameterCommand = null;
-		  
-		  if (kind == IMessageReference.KIND_INPUT) {
-			  addParameterCommand = new AddInputParameterCommand(operation, AddBaseParameterCommand.PART_ELEMENT_SEQ_ELEMENT);
-		  }
-		  else if (kind == IMessageReference.KIND_OUTPUT) {
-			  addParameterCommand = new AddOutputParameterCommand(operation, AddBaseParameterCommand.PART_ELEMENT_SEQ_ELEMENT);
-		  }
-		  
-		  /******************************************************************************************/
-		  if (part != null) {
-			  if (part.getTypeDefinition() instanceof XSDTypeDefinition) {
-				  addParameterCommand.setStyle(AddBaseParameterCommand.PART_COMPLEXTYPE_SEQ_ELEMENT);
-			  }
-			  
-			  addParameterCommand.run();
-		  }
-		  
-		  if (parameter == null && addParameterCommand != null) {
-			  // Create a Part --> Anonymous --> Sequence --> Element pattern
-			  addParameterCommand.run();
-		  }
-	}
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11AddOutputParameterCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11AddOutputParameterCommand.java
deleted file mode 100644
index f7ad437..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11AddOutputParameterCommand.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.adapters.commands;
-
-import java.util.List;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.wst.wsdl.Message;
-import org.eclipse.wst.wsdl.Operation;
-import org.eclipse.wst.wsdl.Output;
-import org.eclipse.wst.wsdl.Part;
-import org.eclipse.wst.wsdl.ui.internal.commands.AddBaseParameterCommand;
-import org.eclipse.wst.wsdl.ui.internal.commands.AddOutputParameterCommand;
-
-public class W11AddOutputParameterCommand extends Command {
-	protected Operation operation;
-	
-	public W11AddOutputParameterCommand(Operation operation) {
-		this.operation = operation;
-	}
-	
-	public void execute() {
-		// Determine which Pattern we should use.  For example, ADDBaseParameterCommand.PART_ELEMENT_SEQ_ELEMENT
-		int pattern = getParameterPattern();
-		AddOutputParameterCommand command = new AddOutputParameterCommand(operation, pattern);
-		command.run();		
-	}
-	
-	private int getParameterPattern() {
-		int pattern = AddBaseParameterCommand.PART_ELEMENT_SEQ_ELEMENT;
-		
-		// TODO: rmah: Should we be checking if there's an existing Input.  If so, we should
-		// try to determine the pattern from there if we fail to get it from the Output???
-		if (operation.getEOutput() != null) {
-			Output output = operation.getEOutput();
-			
-			if (output.getEMessage() != null) {
-				Message message = output.getEMessage();
-				List parts = message.getEParts();
-				
-				if (parts.size() > 0) {
-					Part part = (Part) parts.get(0);
-					if (part.getTypeDefinition() != null) {
-						pattern = AddBaseParameterCommand.PART_COMPLEXTYPE_SEQ_ELEMENT;
-					}
-				}
-			}
-		}
-		
-		return pattern;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11AddPartCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11AddPartCommand.java
deleted file mode 100644
index 32bf0b4..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11AddPartCommand.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.adapters.commands;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.wst.wsdl.Message;
-import org.eclipse.wst.wsdl.ui.internal.commands.AddPartCommand;
-import org.eclipse.wst.wsdl.ui.internal.util.NameUtil;
-
-public class W11AddPartCommand extends Command {
-    private Message message;
-    
-    public W11AddPartCommand(Message message) {
-        this.message = message;
-    }
-    
-    public void execute() {
-    	AddPartCommand command = new AddPartCommand(message, NameUtil.buildUniquePartName(message, "NewPart"));
-        command.run();
-    }  
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11AddSchemaCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11AddSchemaCommand.java
deleted file mode 100644
index 64f44b4..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11AddSchemaCommand.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.adapters.commands;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.wst.wsdl.Definition;
-import org.eclipse.wst.wsdl.XSDSchemaExtensibilityElement;
-import org.eclipse.wst.wsdl.ui.internal.commands.AddXSDSchemaCommand;
-import org.eclipse.wst.wsdl.ui.internal.util.NameUtil;
-
-public class W11AddSchemaCommand extends Command {
-	private Definition definition;
-	
-	public W11AddSchemaCommand(Definition definition) {
-		this.definition = definition;
-	}
-	
-	public void execute() {
-		String tns = definition.getTargetNamespace();
-		List existingNamespaces = new ArrayList();
-		Iterator eeIt = definition.getETypes().getEExtensibilityElements().iterator();
-		while (eeIt.hasNext()) {
-			Object item = eeIt.next();
-			if (item instanceof XSDSchemaExtensibilityElement) {
-				String ns = ((XSDSchemaExtensibilityElement) item).getSchema().getTargetNamespace();
-				existingNamespaces.add(ns);
-			}
-		}
-		tns = NameUtil.getUniqueNameHelper(tns, existingNamespaces);
-		
-		AddXSDSchemaCommand command = new AddXSDSchemaCommand(definition, tns);
-		command.run();
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11AddServiceCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11AddServiceCommand.java
deleted file mode 100644
index 3ba4337..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11AddServiceCommand.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.adapters.commands;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.wst.wsdl.Definition;
-import org.eclipse.wst.wsdl.Port;
-import org.eclipse.wst.wsdl.Service;
-import org.eclipse.wst.wsdl.ui.internal.commands.AddServiceCommand;
-import org.eclipse.wst.wsdl.ui.internal.util.NameUtil;
-
-public class W11AddServiceCommand extends Command {
-	private Definition definition;
-	
-	public W11AddServiceCommand(Definition definition) {
-		this.definition = definition;
-	}
-	
-	public void execute() {
-		String newName = NameUtil.buildUniqueServiceName(definition);
-		AddServiceCommand command = new AddServiceCommand(definition, newName, true);
-		command.run();
-		Service service = (Service) command.getWSDLElement();
-		if (service.getEPorts().size() > 0) {
-			Port port = (Port) service.getEPorts().get(0);
-			
-			// Set a default protocol
-			
-			
-			// Set a default address
-			String address = "http://www.example.org/";
-			W11SetAddressCommand addressCommand = new W11SetAddressCommand(port, address);
-			addressCommand.execute();			
-		}
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11DeleteCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11DeleteCommand.java
deleted file mode 100644
index 20d3efd..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11DeleteCommand.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.adapters.commands;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.wst.wsdl.Binding;
-import org.eclipse.wst.wsdl.Fault;
-import org.eclipse.wst.wsdl.Import;
-import org.eclipse.wst.wsdl.Input;
-import org.eclipse.wst.wsdl.Message;
-import org.eclipse.wst.wsdl.MessageReference;
-import org.eclipse.wst.wsdl.Operation;
-import org.eclipse.wst.wsdl.Output;
-import org.eclipse.wst.wsdl.Part;
-import org.eclipse.wst.wsdl.Port;
-import org.eclipse.wst.wsdl.PortType;
-import org.eclipse.wst.wsdl.Service;
-import org.eclipse.wst.wsdl.asd.facade.IImport;
-import org.eclipse.wst.wsdl.asd.facade.IMessage;
-import org.eclipse.wst.wsdl.asd.facade.IMessageReference;
-import org.eclipse.wst.wsdl.asd.facade.IParameter;
-import org.eclipse.wst.wsdl.asd.facade.IType;
-import org.eclipse.wst.wsdl.ui.internal.adapters.WSDLBaseAdapter;
-import org.eclipse.wst.wsdl.ui.internal.adapters.basic.W11Binding;
-import org.eclipse.wst.wsdl.ui.internal.adapters.basic.W11EndPoint;
-import org.eclipse.wst.wsdl.ui.internal.adapters.basic.W11Interface;
-import org.eclipse.wst.wsdl.ui.internal.adapters.basic.W11Operation;
-import org.eclipse.wst.wsdl.ui.internal.adapters.basic.W11Service;
-
-public class W11DeleteCommand extends Command {
-	protected WSDLBaseAdapter object;
-	
-	public W11DeleteCommand(WSDLBaseAdapter object) {
-		this.object = object;
-	}
-	
-	public void execute() {
-		if (object instanceof W11Service) {
-			Service service = (Service) object.getTarget();
-			service.getEnclosingDefinition().getEServices().remove(service);
-		}
-		else if (object instanceof W11EndPoint) {
-			Service service = (Service) ((W11Service) ((W11EndPoint) object).getOwnerService()).getTarget();
-			Port port = (Port) object.getTarget();
-			service.getEPorts().remove(port);
-		}
-		else if (object instanceof W11Binding) {
-			Binding binding = (Binding) object.getTarget();
-			binding.getEnclosingDefinition().getEBindings().remove(binding);
-		}
-		else if (object instanceof W11Interface) {
-			PortType portType = (PortType) object.getTarget();
-			portType.getEnclosingDefinition().getEPortTypes().remove(portType);
-		}
-		else if (object instanceof W11Operation) {
-			PortType portType = (PortType) ((W11Interface) ((W11Operation) object).getOwnerInterface()).getTarget();
-			Operation operation = (Operation) object.getTarget();
-			portType.getEOperations().remove(operation);
-		}
-		else if (object instanceof IParameter) {
-			Part part = (Part) object.getTarget();
-			Message message = (Message) part.eContainer();
-			message.getEParts().remove(part);
-		}
-		else if (object instanceof IImport) {
-			Import theImport = (Import) object.getTarget();
-			theImport.getEnclosingDefinition().getEImports().remove(theImport);
-		}
-		else if (object instanceof IType) {
-			
-		}
-		else if (object instanceof IMessageReference) {
-			MessageReference messageRef = (MessageReference) object.getTarget();
-			Operation operation = (Operation)messageRef.eContainer();
-			if (messageRef instanceof Input) {
-				operation.setEInput(null);
-			}
-			else if (messageRef instanceof Output) {
-				operation.setEOutput(null);
-			}
-			else if (messageRef instanceof Fault) {
-				operation.getEFaults().remove(messageRef);
-			}
-		}
-		else if (object instanceof IMessage) {
-			Message message = (Message) object.getTarget();
-			message.getEnclosingDefinition().getEMessages().remove(message);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11DeleteParameterCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11DeleteParameterCommand.java
deleted file mode 100644
index 871e823..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11DeleteParameterCommand.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.adapters.commands;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.wst.wsdl.Definition;
-import org.eclipse.wst.wsdl.Message;
-import org.eclipse.wst.wsdl.Part;
-import org.eclipse.wst.wsdl.asd.facade.IParameter;
-import org.eclipse.wst.wsdl.ui.internal.adapters.WSDLBaseAdapter;
-import org.eclipse.wst.wsdl.ui.internal.adapters.basic.W11MessageReference;
-import org.eclipse.wst.wsdl.ui.internal.adapters.basic.W11ParameterForPart;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDModelGroup;
-import org.eclipse.xsd.XSDParticle;
-import org.eclipse.xsd.XSDSchema;
-
-
-public class W11DeleteParameterCommand extends Command {
-	private IParameter parameter;
-	
-	public W11DeleteParameterCommand(IParameter paramter) {
-		this.parameter = paramter;
-	}
-	
-	public void execute() {
-	    delete();
-	}
-	
-	private void delete() {
-		Object object = ((WSDLBaseAdapter) parameter).getTarget();
-		
-		if (object instanceof XSDElementDeclaration) {
-			XSDConcreteComponent xsdComponent = ((XSDElementDeclaration) object).getContainer();
-			
-			if (xsdComponent instanceof XSDParticle) {
-				XSDParticle particle = (XSDParticle) xsdComponent;
-				if (particle.getContainer() instanceof XSDModelGroup) {
-					XSDModelGroup modelGroup = (XSDModelGroup) particle.getContainer();
-					if (modelGroup.getContents().size() >= 2) {
-						modelGroup.getContents().remove(particle);
-					}
-					else {
-						modelGroup.getContents().remove(particle);
-						// TODO: We need the line below to delete the Message and Part
-//						removeMessageAndPart(wParameter.getPart());
-						// TODO: Remove the XSD components as well.....
-					}
-				}
-			}
-			else if (xsdComponent instanceof XSDSchema){
-				// TODO: We need the line below to delete the Message and Part
-//				removeMessageAndPart(wParameter.getPart()); // Delete the part as well
-				XSDSchema xsdSchema = (XSDSchema) xsdComponent;
-				xsdSchema.getContents().remove(object);
-			}
-		}
-		else if (object instanceof Part) {
-			removeMessageAndPart((Part) object);
-		}
-		else if (object instanceof Message) {
-			removeMessageAndPart((Part) ((Message) object).getEParts().get(0));
-		}
-		
-		// Do we want to remove the Input/Output/Fault MessageReference as well if
-		// there are no more "inputs"?....
-	}
-	
-	protected void removeMessageAndPart(Part part) {
-		W11MessageReference  wMessage = null;
-		/*
-		if (parameter instanceof W11ParameterForElement) {
-			wMessage = (W11MessageReference) ((W11ParameterForElement) parameter).getOwner();	
-		}
-		else */if (parameter instanceof W11ParameterForPart) {
-			wMessage = (W11MessageReference) ((W11ParameterForPart) parameter).getOwner();
-		}
-		
-		Message message = wMessage.getMessageReference().getEMessage(); 
-		message.getEParts().remove(part);
-		
-		((Definition) part.getEnclosingDefinition()).getEMessages().remove(message);
-	}
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11GenerateBindingCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11GenerateBindingCommand.java
deleted file mode 100644
index 4849ec6..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11GenerateBindingCommand.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.adapters.commands;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.wst.wsdl.Binding;
-import org.eclipse.wst.wsdl.ui.internal.util.ComponentReferenceUtil;
-import org.eclipse.wst.wsdl.ui.internal.wizards.BindingWizard;
-
-public class W11GenerateBindingCommand extends Command {
-	protected Binding binding;
-	
-	public W11GenerateBindingCommand(Binding binding) {
-		this.binding = binding;
-	}
-	
-	public void execute() {
-		BindingWizard wizard = new BindingWizard(binding.getEnclosingDefinition(), binding, BindingWizard.KIND_REGENERATE_BINDING);
-		wizard.setBindingName(ComponentReferenceUtil.getName(binding));
-		wizard.setPortTypeName(ComponentReferenceUtil.getPortTypeReference(binding));
-		WizardDialog wizardDialog = new WizardDialog(Display.getCurrent().getActiveShell(), wizard);
-		wizardDialog.create();
-		wizardDialog.open();
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11RenameCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11RenameCommand.java
deleted file mode 100644
index 8c9e857..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11RenameCommand.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.adapters.commands;
-
-import javax.xml.namespace.QName;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.wst.wsdl.Binding;
-import org.eclipse.wst.wsdl.Definition;
-import org.eclipse.wst.wsdl.Operation;
-import org.eclipse.wst.wsdl.Part;
-import org.eclipse.wst.wsdl.Port;
-import org.eclipse.wst.wsdl.PortType;
-import org.eclipse.wst.wsdl.Service;
-import org.eclipse.wst.wsdl.ui.internal.adapters.WSDLBaseAdapter;
-import org.eclipse.wst.wsdl.ui.internal.adapters.basic.W11Binding;
-import org.eclipse.wst.wsdl.ui.internal.adapters.basic.W11Description;
-import org.eclipse.wst.wsdl.ui.internal.adapters.basic.W11EndPoint;
-import org.eclipse.wst.wsdl.ui.internal.adapters.basic.W11Interface;
-import org.eclipse.wst.wsdl.ui.internal.adapters.basic.W11MessageReference;
-import org.eclipse.wst.wsdl.ui.internal.adapters.basic.W11Operation;
-import org.eclipse.wst.wsdl.ui.internal.adapters.basic.W11ParameterForPart;
-import org.eclipse.wst.wsdl.ui.internal.adapters.basic.W11Service;
-
-public class W11RenameCommand extends Command {
-	protected WSDLBaseAdapter object;
-	protected String newName = "";
-	
-	public W11RenameCommand(WSDLBaseAdapter object, String newName) {
-		this.object = object;
-		this.newName = newName;
-	}
-	
-	public void execute() {
-		if (object instanceof W11Description) {
-			Definition definition = (Definition) object.getTarget();
-			String ns = definition.getQName().getNamespaceURI();
-			definition.setQName(new QName(ns, newName));
-		}
-		else if (object instanceof W11Service) {
-			Service service = (Service) object.getTarget();
-			String ns = service.getQName().getNamespaceURI();
-			service.setQName(new QName(ns, newName));
-		}
-		else if (object instanceof W11EndPoint) {
-			Port port = (Port) object.getTarget();
-			port.setName(newName);
-		}
-		else if (object instanceof W11Binding) {
-			Binding binding = (Binding) object.getTarget();
-			String ns = binding.getQName().getNamespaceURI();
-			binding.setQName(new QName(ns, newName));
-		}
-		else if (object instanceof W11Interface) {
-			PortType portType = (PortType) object.getTarget();
-			String ns = portType.getQName().getNamespaceURI();
-			portType.setQName(new QName(ns, newName));
-		}
-		else if (object instanceof W11Operation) {
-			Operation operation = (Operation) object.getTarget();
-			operation.setName(newName);
-		}
-		else if (object instanceof W11MessageReference) {
-			W11Operation w11Operation = (W11Operation) ((W11MessageReference) object).getOwnerOperation();
-			Operation operation = w11Operation.getOperation();
-			operation.setName(newName);					
-		}
-//		else if (object instanceof W11ParameterForElement) {
-//			W11ParameterForElement paramForElement = (W11ParameterForElement) object;
-//			XSDElementDeclaration xsdElement = (XSDElementDeclaration) paramForElement.getTarget();
-//			xsdElement.setName(newName);
-//		}
-		else if (object instanceof W11ParameterForPart) {
-			Part part = (Part) ((W11ParameterForPart) object).getTarget();
-			part.setName(newName);
-		}
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11SetAddressCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11SetAddressCommand.java
deleted file mode 100644
index 90857cc..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11SetAddressCommand.java
+++ /dev/null
@@ -1,200 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.adapters.commands;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.wst.wsdl.ExtensibilityElement;
-import org.eclipse.wst.wsdl.Port;
-import org.eclipse.wst.wsdl.binding.http.HTTPAddress;
-import org.eclipse.wst.wsdl.binding.soap.SOAPAddress;
-import org.eclipse.wst.wsdl.util.WSDLConstants;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQueryAction;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.DOMContentBuilder;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.DOMContentBuilderImpl;
-import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.provisional.format.FormatProcessorXML;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-public class W11SetAddressCommand extends Command {
-	private Port port;
-	private String newAddress;
-	
-	public W11SetAddressCommand(Port port, String newAddress) {
-		this.port = port;
-		this.newAddress = newAddress;
-	}
-	
-	public void execute() {
-		// Should the actual set address code live in it's 'own separate' command??
-		if (!setAddress()) {
-			createNewExtensibilityElement();
-			setAddress();
-		}
-	}
-	
-	private boolean setAddress() {
-		boolean success = false;
-		
-		if (port.getEExtensibilityElements().size() > 0) {
-			Iterator eeIt = port.getEExtensibilityElements().iterator();
-			while (eeIt.hasNext()) {
-				ExtensibilityElement ee = ((ExtensibilityElement) eeIt.next());
-				if (ee instanceof SOAPAddress) {
-					((SOAPAddress) ee).setLocationURI(newAddress);
-					success = true;
-				}
-				else if (ee instanceof HTTPAddress) {
-					((HTTPAddress) ee).setLocationURI(newAddress);
-					success = true;
-				}
-	//			ee.getElement().setAttribute("location", newAddress);
-			}
-		}
-		
-		return success;
-	}
-
-	/*
-	 * TODO: rmah: We need to clean the code below.....
-	 * Things should be wrapped up and placed in a common location.  Currently, this is
-	 * from the AddEEMenuActionContriubor.java class
-	 */
-	private void createNewExtensibilityElement() {
-		List modelQueryActionList = new ArrayList();
-		ModelQuery modelQuery = ModelQueryUtil.getModelQuery(port.getElement().getOwnerDocument());
-	    CMElementDeclaration ed = modelQuery.getCMElementDeclaration(port.getElement());
-	    
-	    if (ed != null)
-	    {
-	          // add insert child node actions
-	          //
-	          int ic = ModelQuery.INCLUDE_CHILD_NODES;
-	          int vc = ModelQuery.VALIDITY_STRICT;
-
-	          modelQuery.getInsertActions(port.getElement(), ed, -1, ic, vc, modelQueryActionList);
-	     }
-	    
-	    createNewExtensibilityElementHelper1(modelQueryActionList);
-	}
-	
-	private void createNewExtensibilityElementHelper1(List modelQueryActionList)
-	  {                          
-	    for (Iterator i = modelQueryActionList.iterator(); i.hasNext(); )
-	    {                                                   
-	      ModelQueryAction action = (ModelQueryAction)i.next();
-	      CMNode cmnode = action.getCMNode();
-	      if (cmnode != null)
-	      {                                       
-	        boolean isOtherNamespace = false;
-	        CMDocument cmDocument = (CMDocument)cmnode.getProperty("CMDocument");
-	        if (cmDocument != null)          
-	        {             
-	          String namespaceURI = (String)cmDocument.getProperty("http://org.eclipse.wst/cm/properties/targetNamespaceURI"); 
-	          isOtherNamespace = namespaceURI != null && !namespaceURI.equals(WSDLConstants.WSDL_NAMESPACE_URI);
-	        }
-
-	        if (isOtherNamespace)
-	        {
-	          int cmNodeType = cmnode.getNodeType();
-	          if (action.getKind() == ModelQueryAction.INSERT)
-	          {                                                 
-	            switch (cmNodeType)                             
-	            {
-	              case CMNode.ELEMENT_DECLARATION :
-	              {
-	            	  createNewExtensibilityElementHelper2((CMElementDeclaration)cmnode, action.getParent(), action.getStartIndex());
-	                return;
-	              }
-	            }
-	          }           
-	        }
-	      }   
-	    }
-	  }
-
-    public void createNewExtensibilityElementHelper2(CMNode cmnode, Node parent, int index)
-    {
-      if (cmnode != null && parent != null)
-      {
-        Document document = parent.getNodeType() == Node.DOCUMENT_NODE ? (Document)parent : parent.getOwnerDocument();        
-
-        DOMContentBuilder builder = new DOMContentBuilderImpl(document); 
-        builder.setProperty(DOMContentBuilder.PROPERTY_BUILD_BLANK_TEXT_NODES, Boolean.TRUE);
-        builder.setBuildPolicy(DOMContentBuilder.BUILD_ONLY_REQUIRED_CONTENT);
-        builder.build(parent, cmnode);
-        insertNodesAtIndex(parent, builder.getResult(), index, true);
-      }
-    } 
-
-    public void insertNodesAtIndex(Node parent, List list, int index, boolean format)
-    {                   
-      NodeList nodeList = parent.getChildNodes();
-      if (index == -1)
-      {
-        index = nodeList.getLength();
-      }
-      Node refChild = (index < nodeList.getLength()) ? nodeList.item(index) : null;
-    
-      // here we consider the case where the previous node is a 'white space' Text node
-      // we should really do the insert before this node
-      //
-      int prevIndex = index - 1;
-      Node prevChild = (prevIndex < nodeList.getLength()) ? nodeList.item(prevIndex) : null;
-	    if (isWhitespaceTextNode(prevChild)) 
-      {
-	  	  refChild = prevChild;
-	    }
-    
-      for (Iterator i = list.iterator(); i.hasNext(); )
-      {
-        Node newNode = (Node)i.next();
-    
-        if (newNode.getNodeType() == Node.ATTRIBUTE_NODE)
-        {
-          Element parentElement = (Element)parent;
-          parentElement.setAttributeNode((Attr)newNode);
-        }
-        else
-        {
-          parent.insertBefore(newNode, refChild);
-        }  
-      }
-    
-      for (Iterator i = list.iterator(); i.hasNext(); )
-      {
-        Node newNode = (Node)i.next();
-        if (format)
-        {                                                             
-		      FormatProcessorXML formatProcessorXML = new FormatProcessorXML();
-		      formatProcessorXML.formatNode((IDOMNode)newNode);
-        }  
-      }                      
-	    //setViewerSelection(list);
-    }   
-	
-    protected boolean isWhitespaceTextNode(Node node) 
-    {
-	    return (node != null) && (node.getNodeType() == Node.TEXT_NODE) && (node.getNodeValue().trim().length() == 0);
-    }
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11SetBindingCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11SetBindingCommand.java
deleted file mode 100644
index b83d7ce..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11SetBindingCommand.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.adapters.commands;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.wst.wsdl.Binding;
-import org.eclipse.wst.wsdl.Port;
-
-public class W11SetBindingCommand extends Command {
-	private Port port;
-	private Binding binding;
-	
-	public W11SetBindingCommand(Port port, Binding binding) {
-		this.port = port;
-		this.binding = binding;
-	}
-	
-	public void execute() {
-		port.setEBinding(binding);
-	}
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11SetInterfaceCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11SetInterfaceCommand.java
deleted file mode 100644
index 125d46c..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11SetInterfaceCommand.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.adapters.commands;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.wst.wsdl.Binding;
-import org.eclipse.wst.wsdl.PortType;
-
-public class W11SetInterfaceCommand extends Command {
-	private Binding binding;
-	private PortType portType;
-	
-	public W11SetInterfaceCommand(Binding binding, PortType portType) {
-		this.binding = binding;
-		this.portType = portType;
-	}
-	
-	public void execute() {
-		binding.setEPortType(portType);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11SetTypeCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11SetTypeCommand.java
deleted file mode 100644
index 9566883..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/commands/W11SetTypeCommand.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.adapters.commands;
-
-import java.util.List;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.jface.window.Window;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSpecification;
-import org.eclipse.wst.sse.core.internal.format.IStructuredFormatProcessor;
-import org.eclipse.wst.wsdl.Part;
-import org.eclipse.wst.wsdl.asd.editor.ASDEditorPlugin;
-import org.eclipse.wst.wsdl.ui.internal.InternalWSDLMultiPageEditor;
-import org.eclipse.wst.wsdl.ui.internal.adapters.basic.W11Type;
-import org.eclipse.wst.wsdl.ui.internal.edit.WSDLXSDTypeReferenceEditManager;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.provisional.format.FormatProcessorXML;
-import org.eclipse.wst.xsd.adt.edit.ComponentReferenceEditManager;
-import org.eclipse.wst.xsd.adt.edit.IComponentDialog;
-import org.eclipse.wst.xsd.editor.XSDTypeReferenceEditManager;
-import org.eclipse.wst.xsd.ui.common.actions.SetTypeAction;
-import org.eclipse.xsd.XSDSchema;
-import org.w3c.dom.Element;
-
-public class W11SetTypeCommand extends Command {
-	private Object parent;
-	private String action;
-	private boolean continueApply;
-	
-	public W11SetTypeCommand(Object parent, String action) {
-		this.parent = parent;
-		this.action = action;
-	}
-	
-	public void execute()
-	{
-		ComponentReferenceEditManager componentReferenceEditManager = getComponentReferenceEditManager();
-		continueApply = true; 
-		if (parent instanceof Part)
-		{
-			Part part = (Part) parent;
-			if (action.equals(SetTypeAction.SET_NEW_TYPE_ID))
-			{
-				ComponentSpecification newValue = (ComponentSpecification)invokeDialog(componentReferenceEditManager.getNewDialog());
-				
-				// Set the reference to the new type
-				if (continueApply)
-					componentReferenceEditManager.modifyComponentReference(part, newValue);
-			}
-			else
-			{
-				ComponentSpecification newValue = (ComponentSpecification)invokeDialog(componentReferenceEditManager.getBrowseDialog());
-				if (continueApply)
-					componentReferenceEditManager.modifyComponentReference(part, newValue);
-			}
-			formatChild(part.getElement());
-		}
-		
-	}
-	
-	private Object invokeDialog(IComponentDialog dialog)
-	{
-		Object newValue = null;
-		
-		if (dialog == null)
-		{
-			return null;
-		}
-		
-		if (dialog.createAndOpen() == Window.OK)
-		{
-			newValue = dialog.getSelectedComponent();
-		}
-		else
-		{
-			continueApply = false;
-		}
-		
-		return newValue;
-	}
-	
-	protected ComponentReferenceEditManager getComponentReferenceEditManager()
-	{
-		ComponentReferenceEditManager result = null;
-		IEditorPart editor = ASDEditorPlugin.getActiveEditor();
-		if (editor != null)
-		{
-			result = (ComponentReferenceEditManager)editor.getAdapter(XSDTypeReferenceEditManager.class);
-			
-			if (editor instanceof InternalWSDLMultiPageEditor)
-			{
-				InternalWSDLMultiPageEditor wsdlEditor = (InternalWSDLMultiPageEditor) editor;
-				
-				List types = wsdlEditor.getModel().getTypes();
-				XSDSchema[] schemas = new XSDSchema[types.size()];
-				for (int index = 0; index < types.size(); index++) {
-					W11Type type = (W11Type) types.get(index);
-					schemas[index] = (XSDSchema) type.getTarget();
-				}
-				
-				((WSDLXSDTypeReferenceEditManager) result).setSchemas(schemas);
-				
-				return result;
-			}
-		}  
-		return result;
-	}
-	
-	protected void formatChild(Element child)
-	{
-		if (child instanceof IDOMNode)
-		{
-			IDOMModel model = ((IDOMNode)child).getModel();
-			try
-			{
-				// tell the model that we are about to make a big model change
-				model.aboutToChangeModel();
-				
-				IStructuredFormatProcessor formatProcessor = new FormatProcessorXML();
-				formatProcessor.formatNode(child);
-			}
-			finally
-			{
-				// tell the model that we are done with the big model change
-				model.changedModel(); 
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/specialized/W11AddressExtensibilityElementAdapter.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/specialized/W11AddressExtensibilityElementAdapter.java
deleted file mode 100644
index cea279d..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/specialized/W11AddressExtensibilityElementAdapter.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.adapters.specialized;
-
-import org.eclipse.wst.wsdl.binding.http.HTTPAddress;
-import org.eclipse.wst.wsdl.binding.soap.SOAPAddress;
-
-public class W11AddressExtensibilityElementAdapter extends W11ExtensibilityElementAdapter
-{
-  // TODO... make this class abstract and provide concrete implementations in
-  // SOAP and HTTP packages. The WSDLAdapterFactory needs to know to delegate to extension
-  // adapters to support the addition of more extension languages
-  //
-  public String getLocationURI()
-  {
-    String address = null;
-    if (target instanceof SOAPAddress)
-    {
-      address = ((SOAPAddress) target).getLocationURI();
-    }
-    else if (target instanceof HTTPAddress)
-    {
-      address = ((HTTPAddress) target).getLocationURI();
-    }
-    return address;
-  }
-
-  public void setLocationURI(String address)
-  {
-    if (target instanceof SOAPAddress)
-    {
-      ((SOAPAddress) target).setLocationURI(address);
-    }
-    else if (target instanceof HTTPAddress)
-    {
-      ((HTTPAddress) target).setLocationURI(address);
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/specialized/W11ExtensibilityElementAdapter.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/specialized/W11ExtensibilityElementAdapter.java
deleted file mode 100644
index 0dd4fb9..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/specialized/W11ExtensibilityElementAdapter.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.adapters.specialized;
-
-import org.eclipse.wst.wsdl.ui.internal.adapters.WSDLBaseAdapter;
-
-public class W11ExtensibilityElementAdapter extends WSDLBaseAdapter
-{
-  
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/visitor/W11XSDVisitor.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/visitor/W11XSDVisitor.java
deleted file mode 100644
index 8ce9245..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/visitor/W11XSDVisitor.java
+++ /dev/null
@@ -1,212 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.adapters.visitor;
-
-import java.util.Iterator;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDAttributeUse;
-import org.eclipse.xsd.XSDComplexTypeContent;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDIdentityConstraintDefinition;
-import org.eclipse.xsd.XSDModelGroup;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDNotationDeclaration;
-import org.eclipse.xsd.XSDParticle;
-import org.eclipse.xsd.XSDParticleContent;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.XSDWildcard;
-
-public class W11XSDVisitor
-{
-  public W11XSDVisitor()
-  {
-  }
-  
-  protected XSDSchema schema;
-  
-  public void visitSchema(XSDSchema schema)
-  {
-    this.schema = schema;
-    for (Iterator iterator = schema.getAttributeDeclarations().iterator(); iterator.hasNext();)
-    {
-      XSDAttributeDeclaration attr = (XSDAttributeDeclaration) iterator.next();
-      visitAttributeDeclaration(attr);
-    }
-    for (Iterator iterator = schema.getTypeDefinitions().iterator(); iterator.hasNext();)
-    {
-      XSDTypeDefinition type = (XSDTypeDefinition) iterator.next();
-      visitTypeDefinition(type);
-    }
-    for (Iterator iterator = schema.getElementDeclarations().iterator(); iterator.hasNext();)
-    {
-      XSDElementDeclaration element = (XSDElementDeclaration) iterator.next();
-      visitElementDeclaration(element);
-    }
-    for (Iterator iterator = schema.getIdentityConstraintDefinitions().iterator(); iterator.hasNext();)
-    {
-      XSDIdentityConstraintDefinition identityConstraint = (XSDIdentityConstraintDefinition) iterator.next();
-      visitIdentityConstraintDefinition(identityConstraint);
-    }
-    for (Iterator iterator = schema.getModelGroupDefinitions().iterator(); iterator.hasNext();)
-    {
-      XSDModelGroupDefinition modelGroup = (XSDModelGroupDefinition) iterator.next();
-      visitModelGroupDefinition(modelGroup);
-    }
-    for (Iterator iterator = schema.getAttributeGroupDefinitions().iterator(); iterator.hasNext();)
-    {
-      XSDAttributeGroupDefinition attributeGroup = (XSDAttributeGroupDefinition) iterator.next();
-      visitAttributeGroupDefinition(attributeGroup);
-    }
-    for (Iterator iterator = schema.getNotationDeclarations().iterator(); iterator.hasNext();)
-    {
-      XSDNotationDeclaration element = (XSDNotationDeclaration) iterator.next();
-      visitNotationDeclaration(element);
-    }
-    
-  }
-  
-  public void visitAttributeDeclaration(XSDAttributeDeclaration attr)
-  {
-  }
-  
-  public void visitTypeDefinition(XSDTypeDefinition type)
-  {
-    if (type instanceof XSDSimpleTypeDefinition)
-    {
-      visitSimpleTypeDefinition((XSDSimpleTypeDefinition)type);
-    }
-    else if (type instanceof XSDComplexTypeDefinition)
-    {
-      visitComplexTypeDefinition((XSDComplexTypeDefinition)type);
-    }
-  }
-  
-  public void visitElementDeclaration(XSDElementDeclaration element)
-  {
-    if (element.isElementDeclarationReference())
-    {
-    }
-    else if (element.getAnonymousTypeDefinition() != null)
-    {
-      visitTypeDefinition(element.getAnonymousTypeDefinition());
-    }
-  }
-  
-  public void visitIdentityConstraintDefinition(XSDIdentityConstraintDefinition identityConstraint)
-  {
-  }
-  
-  public void visitModelGroupDefinition(XSDModelGroupDefinition modelGroupDef)
-  {
-    if (!modelGroupDef.isModelGroupDefinitionReference())
-    {
-      if (modelGroupDef.getModelGroup() != null)
-      {
-        visitModelGroup(modelGroupDef.getModelGroup());
-      }
-    }
-    else
-    {
-      XSDModelGroup modelGroup = modelGroupDef.getResolvedModelGroupDefinition().getModelGroup();
-      if (modelGroup != null)
-      {
-        visitModelGroup(modelGroup);
-      }
-    }
-  }
-
-  public void visitAttributeGroupDefinition(XSDAttributeGroupDefinition attributeGroup)
-  {
-    for (Iterator it = attributeGroup.getContents().iterator(); it.hasNext(); )
-    {
-      Object o = it.next();
-      if (o instanceof XSDAttributeUse)
-      {
-        XSDAttributeUse attrUse = (XSDAttributeUse)o;
-        visitAttributeDeclaration(attrUse.getContent());
-      }
-      else if (o instanceof XSDAttributeGroupDefinition)
-      {
-        XSDAttributeGroupDefinition attrGroup = (XSDAttributeGroupDefinition)o;
-        visitAttributeGroupDefinition(attrGroup);
-      }
-    }
-  }
-  
-  public void visitNotationDeclaration(XSDNotationDeclaration notation)
-  {
-  }
-  
-  public void visitSimpleTypeDefinition(XSDSimpleTypeDefinition type)
-  {
-  }
-  
-  public void visitComplexTypeDefinition(XSDComplexTypeDefinition type)
-  {
-    if (type.getContent() != null)
-    {
-      XSDComplexTypeContent complexContent = type.getContent();
-      if (complexContent instanceof XSDSimpleTypeDefinition)
-      {
-        visitSimpleTypeDefinition((XSDSimpleTypeDefinition)complexContent);
-      }
-      else if (complexContent instanceof XSDParticle)
-      {
-        visitParticle((XSDParticle) complexContent);
-      }
-    }
-  }
-  
-  public void visitParticle(XSDParticle particle)
-  {
-    visitParticleContent(particle.getContent());
-  }
-  
-  public void visitParticleContent(XSDParticleContent particleContent)
-  {
-    if (particleContent instanceof XSDModelGroupDefinition)
-    {
-      visitModelGroupDefinition((XSDModelGroupDefinition) particleContent);
-    }
-    else if (particleContent instanceof XSDModelGroup)
-    {
-      visitModelGroup((XSDModelGroup)particleContent);
-    }
-    else if (particleContent instanceof XSDElementDeclaration)
-    {
-      visitElementDeclaration((XSDElementDeclaration)particleContent);
-    }
-    else if (particleContent instanceof XSDWildcard)
-    {
-      visitWildcard((XSDWildcard)particleContent);
-    }
-  }
-  
-  public void visitModelGroup(XSDModelGroup modelGroup)
-  {
-    if (modelGroup.getContents() != null)
-    {
-      for (Iterator iterator = modelGroup.getContents().iterator(); iterator.hasNext();)
-      {
-        XSDParticle particle = (XSDParticle) iterator.next();
-        visitParticle(particle);
-      }
-    }
-  }
-  
-  public void visitWildcard(XSDWildcard wildcard)
-  {
-  }
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/visitor/W11XSDVisitorForFields.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/visitor/W11XSDVisitorForFields.java
deleted file mode 100644
index 02e6dd4..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/adapters/visitor/W11XSDVisitorForFields.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.adapters.visitor;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeGroupContent;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDAttributeUse;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDModelGroup;
-
-public class W11XSDVisitorForFields extends W11XSDVisitor
-{
-  public W11XSDVisitorForFields()
-  {
-  }
-
-  List concreteComponentList = new ArrayList();
-  List thingsWeNeedToListenTo = new ArrayList();
-  
-  public void visitComplexTypeDefinition(XSDComplexTypeDefinition type)
-  {
-    super.visitComplexTypeDefinition(type);
-    if (type.getAttributeContents() != null)
-    {
-      for (Iterator iter = type.getAttributeContents().iterator(); iter.hasNext(); )
-      {
-        XSDAttributeGroupContent attrGroupContent = (XSDAttributeGroupContent)iter.next();
-        if (attrGroupContent instanceof XSDAttributeUse)
-        {
-          XSDAttributeUse attrUse = (XSDAttributeUse)attrGroupContent;
-          concreteComponentList.add(attrUse);
-        }
-        else if (attrGroupContent instanceof XSDAttributeGroupDefinition)
-        {
-          XSDAttributeGroupDefinition attrGroup = (XSDAttributeGroupDefinition)attrGroupContent;
-          thingsWeNeedToListenTo.add(attrGroup);
-          visitAttributeGroupDefinition(attrGroup);          
-        }
-      }
-    }
-  }
-  
-  
-  public void visitModelGroup(XSDModelGroup modelGroup)
-  {
-    super.visitModelGroup(modelGroup);
-    thingsWeNeedToListenTo.add(modelGroup); 
-  }
-  
-  public void visitAttributeGroupDefinition(XSDAttributeGroupDefinition attributeGroup)
-  {
-    for (Iterator it = attributeGroup.getContents().iterator(); it.hasNext(); )
-    {
-      Object o = it.next();
-      if (o instanceof XSDAttributeUse)
-      {
-        XSDAttributeUse attributeUse = (XSDAttributeUse)o;
-        concreteComponentList.add(attributeUse);
-      }
-      else if (o instanceof XSDAttributeGroupDefinition)
-      {
-        XSDAttributeGroupDefinition attrGroup = (XSDAttributeGroupDefinition)o;
-        thingsWeNeedToListenTo.add(attrGroup);
-        if (attrGroup.isAttributeGroupDefinitionReference())
-        {
-          attrGroup = attrGroup.getResolvedAttributeGroupDefinition();
-          visitAttributeGroupDefinition(attrGroup);
-        }
-      }
-    }
-  }
-
-  public void visitElementDeclaration(XSDElementDeclaration element)
-  {
-    //super.visitElementDeclaration(element);
-    concreteComponentList.add(element);
-  }
-  
-  public void visitAttributeDeclaration(XSDAttributeDeclaration attr)
-  {
-    super.visitAttributeDeclaration(attr);
-    concreteComponentList.add(attr);
-  }
-
-
-  public List getConcreteComponentList()
-  {
-    return concreteComponentList;
-  }
-
-
-  public List getThingsWeNeedToListenTo()
-  {
-    return thingsWeNeedToListenTo;
-  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/dialogs/W11BrowseComponentDialog.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/dialogs/W11BrowseComponentDialog.java
deleted file mode 100644
index dddb18b..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/dialogs/W11BrowseComponentDialog.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.dialogs;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.common.core.search.pattern.QualifiedName;
-import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSearchListDialog;
-import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSearchListDialogConfiguration;
-import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSpecification;
-import org.eclipse.wst.common.ui.internal.search.dialogs.ScopedComponentSearchListDialog;
-import org.eclipse.wst.wsdl.Definition;
-import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
-import org.eclipse.wst.wsdl.ui.internal.adapters.basic.W11Description;
-import org.eclipse.wst.wsdl.ui.internal.edit.WSDLBindingSearchListProvider;
-import org.eclipse.wst.wsdl.ui.internal.edit.WSDLComponentDescriptionProvider;
-import org.eclipse.wst.wsdl.ui.internal.edit.WSDLInterfaceSearchListProvider;
-import org.eclipse.wst.wsdl.ui.internal.edit.WSDLMessageSearchListProvider;
-import org.eclipse.wst.wsdl.ui.internal.search.IWSDLSearchConstants;
-import org.eclipse.wst.xsd.adt.edit.IComponentDialog;
-
-public class W11BrowseComponentDialog implements IComponentDialog {
-	private QualifiedName qualifiedName;
-	private ComponentSpecification selection;
-	private W11Description description;
-	
-	public W11BrowseComponentDialog(QualifiedName qualifiedName, IFile iFile, W11Description description) {
-		this.qualifiedName = qualifiedName;
-		this.description = description;
-	}
-	
-	public void setInitialSelection(ComponentSpecification componentSpecification) {
-		// TODO Auto-generated method stub
-
-	}
-
-	public ComponentSpecification getSelectedComponent() {
-		return selection;
-	}
-
-	public int createAndOpen() {
-		Definition definition = (Definition) description.getTarget();
-		
-	    Shell shell = WSDLEditorPlugin.getInstance().getWorkbench().getActiveWorkbenchWindow().getShell();
-	    int returnValue = Window.CANCEL;
-	    ComponentSearchListDialog dialog = null;
-	    if (qualifiedName == IWSDLSearchConstants.BINDING_META_NAME)
-	    {
-	    	WSDLComponentDescriptionProvider descriptionProvider = new WSDLComponentDescriptionProvider();
-	    	final WSDLBindingSearchListProvider searchListProvider = new WSDLBindingSearchListProvider(definition);
-	    	ComponentSearchListDialogConfiguration configuration = new ComponentSearchListDialogConfiguration();
-	    	
-	        configuration.setDescriptionProvider(descriptionProvider);
-	        configuration.setSearchListProvider(searchListProvider);
-	        
-	        String dialogTitle = WSDLEditorPlugin.getWSDLString("_UI_TITLE_SPECIFY_BINDING");
-	        dialog = new ScopedComponentSearchListDialog(shell, dialogTitle, configuration);
-
-	        IFile file = getFile();
-	        if (file != null) {
-		        ((ScopedComponentSearchListDialog) dialog).setCurrentResource(file);
-	        }
-	    }
-	    else if (qualifiedName == IWSDLSearchConstants.PORT_TYPE_META_NAME)
-	    {
-	      WSDLComponentDescriptionProvider descriptionProvider = new WSDLComponentDescriptionProvider();
-	      final WSDLInterfaceSearchListProvider searchListProvider = new WSDLInterfaceSearchListProvider(definition);
-	     
-	      ComponentSearchListDialogConfiguration configuration = new ComponentSearchListDialogConfiguration();
-	      configuration.setDescriptionProvider(descriptionProvider);
-	      configuration.setSearchListProvider(searchListProvider);
-	      //configuration.setNewComponentHandler(new NewTypeButtonHandler());
-	      
-	      String dialogTitle = WSDLEditorPlugin.getWSDLString("_UI_TITLE_SPECIFY_PORTTYPE");
-	      dialog = new ScopedComponentSearchListDialog(shell, dialogTitle, configuration);
-	      
-	      IFile file = getFile();
-	      if (file != null) {
-	    	  ((ScopedComponentSearchListDialog) dialog).setCurrentResource(file);
-	      }
-	    }
-	    else if (qualifiedName == IWSDLSearchConstants.MESSAGE_META_NAME)
-	    {
-	      WSDLComponentDescriptionProvider descriptionProvider = new WSDLComponentDescriptionProvider();
-	      final WSDLMessageSearchListProvider searchListProvider = new WSDLMessageSearchListProvider(definition);
-	     
-	      ComponentSearchListDialogConfiguration configuration = new ComponentSearchListDialogConfiguration();
-	      configuration.setDescriptionProvider(descriptionProvider);
-	      configuration.setSearchListProvider(searchListProvider);
-	      //configuration.setNewComponentHandler(new NewTypeButtonHandler());
-	      
-	      String dialogTitle = WSDLEditorPlugin.getWSDLString("_UI_TITLE_SPECIFY_MESSAGE");
-	      dialog = new ScopedComponentSearchListDialog(shell, dialogTitle, configuration);
-	      
-	      IFile file = getFile();
-	      if (file != null) {
-	    	  ((ScopedComponentSearchListDialog) dialog).setCurrentResource(file);
-	      }
-	    }
-	    
-	    if (dialog != null)
-	    {
-	      dialog.setBlockOnOpen(true);
-	      dialog.create();
-	      returnValue = dialog.open();
-	      if (returnValue == Window.OK)
-	      {
-	        selection = dialog.getSelectedComponent();
-	      }
-	    }
-	    return returnValue;
-	}
-	
-	private IFile getFile() {
-		IFile file = null;
-		IEditorInput input = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor().getEditorInput();
-        if (input instanceof IFileEditorInput) {
-        	file = ((IFileEditorInput) input).getFile();
-        }
-        
-        return file;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/dialogs/W11NewComponentDialog.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/dialogs/W11NewComponentDialog.java
deleted file mode 100644
index 5726ed0..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/dialogs/W11NewComponentDialog.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.dialogs;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.emf.common.notify.Notifier;
-import org.eclipse.gef.commands.CommandStack;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.wst.common.core.search.pattern.QualifiedName;
-import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSpecification;
-import org.eclipse.wst.wsdl.Definition;
-import org.eclipse.wst.wsdl.asd.editor.ASDEditorPlugin;
-import org.eclipse.wst.wsdl.asd.facade.IASDObject;
-import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
-import org.eclipse.wst.wsdl.ui.internal.adapters.basic.W11Description;
-import org.eclipse.wst.wsdl.ui.internal.adapters.commands.W11AddBindingCommand;
-import org.eclipse.wst.wsdl.ui.internal.adapters.commands.W11AddInterfaceCommand;
-import org.eclipse.wst.wsdl.ui.internal.adapters.commands.W11AddMessageCommand;
-import org.eclipse.wst.wsdl.ui.internal.search.IWSDLSearchConstants;
-import org.eclipse.wst.wsdl.ui.internal.util.NameUtil;
-import org.eclipse.wst.wsdl.ui.internal.util.WSDLAdapterFactoryHelper;
-import org.eclipse.wst.xsd.adt.edit.IComponentDialog;
-import org.eclipse.wst.xsd.editor.internal.dialogs.NewComponentDialog;
-
-public class W11NewComponentDialog implements IComponentDialog {
-	protected NewComponentDialog dialog;
-	protected QualifiedName qualifiedName;
-	protected IFile iFile;
-	protected W11Description description;
-	protected IASDObject newObject;
-	
-	public W11NewComponentDialog(QualifiedName qualifiedName, IFile iFile, W11Description description) {
-		this.qualifiedName = qualifiedName;
-		this.iFile = iFile;
-		this.description = description;
-		
-		Shell shell = Display.getCurrent().getActiveShell();
-		if (qualifiedName == IWSDLSearchConstants.BINDING_META_NAME) {
-			String dialogTitle = WSDLEditorPlugin.getWSDLString("_UI_LABEL_NEW_BINDING");
-			String baseName = NameUtil.buildUniqueBindingName(getDefinition(), "NewBinding");
-			dialog = new NewComponentDialog(shell, dialogTitle, baseName);
-		}
-		else if (qualifiedName == IWSDLSearchConstants.PORT_TYPE_META_NAME) {
-			String dialogTitle = WSDLEditorPlugin.getWSDLString("_UI_LABEL_NEW_PORTTYPE");
-			String baseName = NameUtil.buildUniquePortTypeName(getDefinition(), "NewPortType");
-			dialog = new NewComponentDialog(shell, dialogTitle, baseName);
-		}
-		else if (qualifiedName == IWSDLSearchConstants.MESSAGE_META_NAME) {
-			String dialogTitle = WSDLEditorPlugin.getWSDLString("_UI_LABEL_NEW_MESSAGE");
-			String baseName = NameUtil.buildUniqueMessageName(getDefinition(), "NewMessage");
-			dialog = new NewComponentDialog(shell, dialogTitle, baseName);
-		}
-
-	}
-	
-	private Definition getDefinition() {
-		return (Definition) description.getTarget();
-	}
-	
-	public void setInitialSelection(ComponentSpecification componentSpecification) {
-	}
-
-	public ComponentSpecification getSelectedComponent() {
-		String qualifier = getDefinition().getPrefix(getDefinition().getTargetNamespace());
-		String name = dialog.getName();
-		ComponentSpecification spec = new ComponentSpecification(qualifier, name, iFile);
-		spec.setObject(newObject);
-		return spec;
-	}
-
-	public int createAndOpen() {
-		int rValue = dialog.createAndOpen();
-		
-		if (rValue == Window.OK) {
-			// Create the new Object
-			if (qualifiedName == IWSDLSearchConstants.BINDING_META_NAME) {
-				W11AddBindingCommand command = (W11AddBindingCommand) description.getAddBindingCommand();
-				command.setNewBindingName(dialog.getName());
-			    CommandStack stack = (CommandStack) ASDEditorPlugin.getActiveEditor().getAdapter(CommandStack.class);
-			    stack.execute(command);
-			    
-			    Object newWSDLObject = command.getNewBinding();
-			    newObject = (IASDObject) WSDLAdapterFactoryHelper.getInstance().adapt((Notifier) newWSDLObject);
-			}
-			else if (qualifiedName == IWSDLSearchConstants.PORT_TYPE_META_NAME) {
-				W11AddInterfaceCommand command = (W11AddInterfaceCommand) description.getAddInterfaceCommand();
-				command.setNewPortTypeName(dialog.getName());
-			    CommandStack stack = (CommandStack) ASDEditorPlugin.getActiveEditor().getAdapter(CommandStack.class);
-			    stack.execute(command);
-			    
-			    Object newWSDLObject = command.getNewPortType();
-			    newObject = (IASDObject) WSDLAdapterFactoryHelper.getInstance().adapt((Notifier) newWSDLObject);
-			}
-			else if (qualifiedName == IWSDLSearchConstants.MESSAGE_META_NAME) {
-				W11AddMessageCommand command = (W11AddMessageCommand) description.getAddMessageCommand();
-				command.setNewMessageName(dialog.getName());
-			    CommandStack stack = (CommandStack) ASDEditorPlugin.getActiveEditor().getAdapter(CommandStack.class);
-			    stack.execute(command);
-			    
-			    Object newWSDLObject = command.getNewMessage();
-			    newObject = (IASDObject) WSDLAdapterFactoryHelper.getInstance().adapt((Notifier) newWSDLObject);
-			}
-		}
-		
-		return rValue;
-	}
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/edit/W11BindingReferenceEditManager.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/edit/W11BindingReferenceEditManager.java
deleted file mode 100644
index 6e27336..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/edit/W11BindingReferenceEditManager.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.edit;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.commands.CommandStack;
-import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSpecification;
-import org.eclipse.wst.common.ui.internal.search.dialogs.IComponentDescriptionProvider;
-import org.eclipse.wst.wsdl.Definition;
-import org.eclipse.wst.wsdl.Port;
-import org.eclipse.wst.wsdl.asd.editor.ASDEditorPlugin;
-import org.eclipse.wst.wsdl.asd.facade.IBinding;
-import org.eclipse.wst.wsdl.ui.internal.adapters.basic.W11Description;
-import org.eclipse.wst.wsdl.ui.internal.adapters.basic.W11EndPoint;
-import org.eclipse.wst.wsdl.ui.internal.dialogs.W11BrowseComponentDialog;
-import org.eclipse.wst.wsdl.ui.internal.dialogs.W11NewComponentDialog;
-import org.eclipse.wst.wsdl.ui.internal.search.IWSDLSearchConstants;
-import org.eclipse.wst.wsdl.ui.internal.util.WSDLSetComponentHelper;
-import org.eclipse.wst.xsd.adt.edit.ComponentReferenceEditManager;
-import org.eclipse.wst.xsd.adt.edit.IComponentDialog;
-
-public class W11BindingReferenceEditManager implements ComponentReferenceEditManager {
-	protected W11Description description;
-	protected IFile iFile;
-	
-	public W11BindingReferenceEditManager(W11Description description, IFile iFile) {
-		this.description = description;
-		this.iFile = iFile;
-	}
-	
-	public IComponentDialog getBrowseDialog() {
-		return new W11BrowseComponentDialog(IWSDLSearchConstants.BINDING_META_NAME, iFile, description);
-	}
-
-	public IComponentDialog getNewDialog() {
-		return new W11NewComponentDialog(IWSDLSearchConstants.BINDING_META_NAME, iFile, description);
-	}
-	
-	private Definition getDefinition() {
-		return (Definition) description.getTarget();
-	}
-
-	public void modifyComponentReference(Object referencingObject, ComponentSpecification referencedComponent) {
-		W11EndPoint w11EndPoint = (W11EndPoint) referencingObject;
-		Object bindingObject = referencedComponent.getObject();
-		if (bindingObject == null) {
-			// Need to figure out the IBinding based on the information contained in the ComponentSpecification
-
-		}
-		
-		if (bindingObject instanceof ComponentSpecification) {
-			Port port = (Port) w11EndPoint.getTarget();
-			WSDLSetComponentHelper helper = new WSDLSetComponentHelper(iFile, getDefinition());
-			helper.setWSDLComponent(port, "binding", (ComponentSpecification) bindingObject);
-		}		
-		else if (bindingObject instanceof IBinding){
-			IBinding binding = (IBinding) bindingObject;
-			Command command = w11EndPoint.getSetBindingCommand(binding);
-			CommandStack stack = (CommandStack) ASDEditorPlugin.getActiveEditor().getAdapter(CommandStack.class);
-			stack.execute(command);
-		}
-	}
-
-	public IComponentDescriptionProvider getComponentDescriptionProvider() {
-		return null;
-	}
-
-	public ComponentSpecification[] getQuickPicks() {
-		List specList = new ArrayList();
-		
-		Iterator bindings = description.getBindings().iterator();
-		while (bindings.hasNext()) {
-			IBinding binding = (IBinding) bindings.next();
-			String qualifier = "";
-			String name = binding.getName();
-			IFile file = null;
-			
-			ComponentSpecification spec = new ComponentSpecification(qualifier, name, file);
-			spec.setObject(binding);
-			specList.add(spec);
-		}
-
-		ComponentSpecification[] specArray = new ComponentSpecification[specList.size()];
-		specList.toArray(specArray);
-		
-		return specArray;
-	}
-
-	public ComponentSpecification[] getHistory() {
-		ComponentSpecification[] history = new ComponentSpecification[0];
-		return history;
-	}
-
-	public void addToHistory(ComponentSpecification component) {
-
-	}
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/edit/W11InterfaceReferenceEditManager.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/edit/W11InterfaceReferenceEditManager.java
deleted file mode 100644
index d9d878d..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/edit/W11InterfaceReferenceEditManager.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.edit;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.commands.CommandStack;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSpecification;
-import org.eclipse.wst.common.ui.internal.search.dialogs.IComponentDescriptionProvider;
-import org.eclipse.wst.wsdl.Binding;
-import org.eclipse.wst.wsdl.Definition;
-import org.eclipse.wst.wsdl.asd.facade.IInterface;
-import org.eclipse.wst.wsdl.ui.internal.adapters.basic.W11Binding;
-import org.eclipse.wst.wsdl.ui.internal.adapters.basic.W11Description;
-import org.eclipse.wst.wsdl.ui.internal.dialogs.W11BrowseComponentDialog;
-import org.eclipse.wst.wsdl.ui.internal.dialogs.W11NewComponentDialog;
-import org.eclipse.wst.wsdl.ui.internal.search.IWSDLSearchConstants;
-import org.eclipse.wst.wsdl.ui.internal.util.WSDLSetComponentHelper;
-import org.eclipse.wst.xsd.adt.edit.ComponentReferenceEditManager;
-import org.eclipse.wst.xsd.adt.edit.IComponentDialog;
-
-public class W11InterfaceReferenceEditManager implements ComponentReferenceEditManager {
-	protected W11Description description;
-	protected IFile iFile;
-	
-	public W11InterfaceReferenceEditManager(W11Description description, IFile iFile) {
-		this.description = description;
-		this.iFile = iFile;
-	}
-	
-	public IComponentDialog getBrowseDialog() {
-		return new W11BrowseComponentDialog(IWSDLSearchConstants.PORT_TYPE_META_NAME, iFile, description);
-	}
-
-	public IComponentDialog getNewDialog() {
-		return new W11NewComponentDialog(IWSDLSearchConstants.PORT_TYPE_META_NAME, iFile, description);
-	}
-
-	private Definition getDefinition() {
-		return (Definition) description.getTarget();
-	}
-	
-	public void modifyComponentReference(Object referencingObject, ComponentSpecification referencedComponent) {
-		W11Binding w11Binding = (W11Binding) referencingObject;
-		Object interfaceObject = referencedComponent.getObject();
-		if (interfaceObject == null) {
-			// Need to figure out the IInterface based on the information contained in the ComponentSpecification
-
-		}
-		
-		if (interfaceObject instanceof ComponentSpecification) {
-			Binding binding = (Binding) w11Binding.getTarget();
-			WSDLSetComponentHelper helper = new WSDLSetComponentHelper(iFile, getDefinition());
-			helper.setWSDLComponent(binding, "type", (ComponentSpecification) interfaceObject);
-		}
-		else if (interfaceObject instanceof IInterface){
-			IInterface interfaze = (IInterface) interfaceObject;
-			Command command = w11Binding.getSetInterfaceCommand(interfaze);
-			CommandStack stack = (CommandStack) PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor().getAdapter(CommandStack.class);
-			stack.execute(command);
-		}
-	}
-
-	public IComponentDescriptionProvider getComponentDescriptionProvider() {
-
-		return null;
-	}
-
-	public ComponentSpecification[] getQuickPicks() {
-		List specList = new ArrayList();
-		
-		Iterator interfaces = description.getInterfaces().iterator();
-		while (interfaces.hasNext()) {
-			IInterface interfaze = (IInterface) interfaces.next();
-			String qualifier = "";
-			String name = interfaze.getName();
-			IFile file = null;
-			
-			ComponentSpecification spec = new ComponentSpecification(qualifier, name, file);
-			spec.setObject(interfaze);
-			specList.add(spec);
-		}
-
-		ComponentSpecification[] specArray = new ComponentSpecification[specList.size()];
-		specList.toArray(specArray);
-		
-		return specArray;
-	}
-
-	public ComponentSpecification[] getHistory() {
-		ComponentSpecification[] history = new ComponentSpecification[0];
-		return history;
-	}
-
-	public void addToHistory(ComponentSpecification component) {
-
-
-	}
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/edit/W11MessageReferenceEditManager.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/edit/W11MessageReferenceEditManager.java
deleted file mode 100644
index 815e1e2..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/edit/W11MessageReferenceEditManager.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.edit;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSpecification;
-import org.eclipse.wst.common.ui.internal.search.dialogs.IComponentDescriptionProvider;
-import org.eclipse.wst.wsdl.Definition;
-import org.eclipse.wst.wsdl.MessageReference;
-import org.eclipse.wst.wsdl.asd.facade.IMessage;
-import org.eclipse.wst.wsdl.ui.internal.adapters.basic.W11Description;
-import org.eclipse.wst.wsdl.ui.internal.adapters.basic.W11Message;
-import org.eclipse.wst.wsdl.ui.internal.adapters.basic.W11MessageReference;
-import org.eclipse.wst.wsdl.ui.internal.dialogs.W11BrowseComponentDialog;
-import org.eclipse.wst.wsdl.ui.internal.dialogs.W11NewComponentDialog;
-import org.eclipse.wst.wsdl.ui.internal.search.IWSDLSearchConstants;
-import org.eclipse.wst.wsdl.ui.internal.util.WSDLSetComponentHelper;
-import org.eclipse.wst.xsd.adt.edit.ComponentReferenceEditManager;
-import org.eclipse.wst.xsd.adt.edit.IComponentDialog;
-
-public class W11MessageReferenceEditManager implements ComponentReferenceEditManager {
-	protected W11Description description;
-	protected IFile iFile;
-	
-	public W11MessageReferenceEditManager(W11Description description, IFile iFile) {
-		this.description = description;
-		this.iFile = iFile;
-	}
-
-	public IComponentDialog getBrowseDialog() {
-		return new W11BrowseComponentDialog(IWSDLSearchConstants.MESSAGE_META_NAME, iFile, description);
-	}
-
-	public IComponentDialog getNewDialog() {
-		return new W11NewComponentDialog(IWSDLSearchConstants.MESSAGE_META_NAME, iFile, description);
-	}
-
-	private Definition getDefinition() {
-		return (Definition) description.getTarget();
-	}
-	
-	public void modifyComponentReference(Object referencingObject, ComponentSpecification referencedComponent) {
-		W11MessageReference w11MessageRef = (W11MessageReference) referencingObject;
-		Object messageObject = referencedComponent.getObject();
-		if (messageObject == null) {
-			// Need to figure out the IMessage based on the information contained in the ComponentSpecification
-
-		}
-		
-		if (messageObject instanceof ComponentSpecification) {
-			MessageReference messageRef= (MessageReference) w11MessageRef.getTarget();
-			WSDLSetComponentHelper helper = new WSDLSetComponentHelper(iFile, getDefinition());
-			helper.setWSDLComponent(messageRef, "message", (ComponentSpecification) messageObject);
-		}		
-		else if (messageObject instanceof W11Message){
-			// Below is a little complex.... The alternative was to have IMessage contain a
-			// getSetMessageCommand() which would handle all of this but does a getSetMessageCommand()
-			// make sense at the generic level.....
-			W11Message iMessage = (W11Message) messageObject;
-			ComponentSpecification specObject = new ComponentSpecification();
-			specObject.setName(iMessage.getName());
-			specObject.setMetaName(IWSDLSearchConstants.MESSAGE_META_NAME);
-			specObject.setQualifier(description.getTargetNamespace());
-			
-			String location = ((Definition) description.getTarget()).getLocation();
-			String platformResource = "platform:/resource";
-	        if (location != null && location.startsWith(platformResource))
-	        {
-	          Path path = new Path(location.substring(platformResource.length()));
-	          specObject.setFile(ResourcesPlugin.getWorkspace().getRoot().getFile(path));
-	        }  
-			
-			MessageReference messageRef= (MessageReference) w11MessageRef.getTarget();
-			WSDLSetComponentHelper helper = new WSDLSetComponentHelper(iFile, getDefinition());
-			helper.setWSDLComponent(messageRef, "message", (ComponentSpecification) specObject);
-		}
-	}
-
-	public IComponentDescriptionProvider getComponentDescriptionProvider() {
-
-		return null;
-	}
-
-	public ComponentSpecification[] getQuickPicks() {
-		List specList = new ArrayList();
-		
-		Iterator messages = description.getMessages().iterator();
-		while (messages.hasNext()) {
-			IMessage message = (IMessage) messages.next();
-			String qualifier = "";
-			String name = message.getName();
-			IFile file = null;
-			
-			ComponentSpecification spec = new ComponentSpecification(qualifier, name, file);
-			spec.setObject(message);
-			specList.add(spec);
-		}
-
-		ComponentSpecification[] specArray = new ComponentSpecification[specList.size()];
-		specList.toArray(specArray);
-		
-		return specArray;
-	}
-
-	public ComponentSpecification[] getHistory() {
-
-		return null;
-	}
-
-	public void addToHistory(ComponentSpecification component) {
-
-
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/edit/WSDLBaseSearchListProvider.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/edit/WSDLBaseSearchListProvider.java
deleted file mode 100644
index de924bf..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/edit/WSDLBaseSearchListProvider.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.edit;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.wst.common.core.search.pattern.QualifiedName;
-import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSpecification;
-import org.eclipse.wst.common.ui.internal.search.dialogs.IComponentList;
-import org.eclipse.wst.common.ui.internal.search.dialogs.IComponentSearchListProvider;
-import org.eclipse.wst.wsdl.WSDLElement;
-import org.eclipse.wst.wsdl.internal.impl.ImportImpl;
-
-public abstract class WSDLBaseSearchListProvider implements IComponentSearchListProvider {
-	protected void createWSDLComponentObjects(IComponentList list, List inputComponents, QualifiedName metaName) {
-		Iterator it = inputComponents.iterator();
-		while (it.hasNext()) {
-			WSDLElement wsdlElement = (WSDLElement) it.next();
-			String name = wsdlElement.getElement().getAttribute("name");
-			String qualifier = wsdlElement.getEnclosingDefinition().getTargetNamespace();
-			
-			ComponentSpecification componentSpec = new ComponentSpecification();
-			componentSpec.setMetaName(metaName);
-			componentSpec.setName(name);
-			componentSpec.setQualifier(qualifier);
-			
-			String location = wsdlElement.getEnclosingDefinition().getLocation();
-			String platformResource = "platform:/resource";
-			if (location != null && location.startsWith(platformResource)) {
-				Path path = new Path(location.substring(platformResource.length()));
-				IFile result = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
-				if (result != null) {
-					componentSpec.setFile(result);
-				}
-			}
-			
-			list.add(componentSpec);
-		}
-	}
-	
-	protected List getWSDLFileImports(List wsdlImports) {
-		List list = new ArrayList();
-		Iterator it = wsdlImports.iterator();
-		while (it.hasNext()) {
-			ImportImpl importItem = (ImportImpl) it.next();
-			importItem.importDefinitionOrSchema();          // Load if necessary
-			if (importItem.getESchema() == null) {
-				list.add(importItem);
-			}
-		}
-		
-		return list;
-	}
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/edit/WSDLBindingSearchListProvider.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/edit/WSDLBindingSearchListProvider.java
deleted file mode 100644
index 70499f9..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/edit/WSDLBindingSearchListProvider.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.edit;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.wst.common.core.search.scope.SearchScope;
-import org.eclipse.wst.common.ui.internal.search.dialogs.IComponentList;
-import org.eclipse.wst.wsdl.Definition;
-import org.eclipse.wst.wsdl.Import;
-import org.eclipse.wst.wsdl.ui.internal.search.IWSDLSearchConstants;
-
-public class WSDLBindingSearchListProvider extends WSDLBaseSearchListProvider {
-	private Definition definition;
-	
-	public WSDLBindingSearchListProvider(Definition definition) {
-		this.definition = definition;
-	}
-	
-	public void populateComponentList(IComponentList list, SearchScope scope, IProgressMonitor pm) {
-		// Grab explictly defined components
-		createWSDLComponentObjects(list, definition.getEBindings(), IWSDLSearchConstants.BINDING_META_NAME);
-		
-		// Grab directly imported components
-		Iterator importsIt = getWSDLFileImports(definition.getEImports()).iterator();
-		while (importsIt.hasNext()) {
-			Import importItem = (Import) importsIt.next();
-			Definition importDefinition = importItem.getEDefinition();
-			List importedComponents = importDefinition.getEBindings();
-			
-			createWSDLComponentObjects(list, importedComponents, IWSDLSearchConstants.BINDING_META_NAME);
-		}
-		
-		if (scope != null) {
-			WSDLComponentFinder finder = new WSDLComponentFinder(IWSDLSearchConstants.BINDING_META_NAME);
-			Iterator it = finder.getWorkbenchResourceComponents(scope).iterator();
-			while (it.hasNext()) {
-				list.add(it.next());
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/edit/WSDLComponentDescriptionProvider.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/edit/WSDLComponentDescriptionProvider.java
deleted file mode 100644
index ce897bb..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/edit/WSDLComponentDescriptionProvider.java
+++ /dev/null
@@ -1,174 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.edit;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.common.core.search.SearchMatch;
-import org.eclipse.wst.common.core.search.pattern.QualifiedName;
-import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSpecification;
-import org.eclipse.wst.common.ui.internal.search.dialogs.IComponentDescriptionProvider;
-import org.eclipse.wst.wsdl.Binding;
-import org.eclipse.wst.wsdl.Definition;
-import org.eclipse.wst.wsdl.Message;
-import org.eclipse.wst.wsdl.PortType;
-import org.eclipse.wst.wsdl.WSDLElement;
-import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
-import org.eclipse.wst.wsdl.ui.internal.search.IWSDLSearchConstants;
-
-public class WSDLComponentDescriptionProvider extends LabelProvider implements IComponentDescriptionProvider {
-	  private static final Image BINDING_IMAGE =  WSDLEditorPlugin.getInstance().getImage("icons/binding_obj.gif");
-	  private static final Image PORTTYPE_IMAGE = WSDLEditorPlugin.getInstance().getImage("icons/porttype_obj.gif");
-	  private static final Image MESSAGE_IMAGE = WSDLEditorPlugin.getInstance().getImage("icons/message_obj.gif");
-
-	public boolean isApplicable(Object component) {
-		return true;
-	}
-
-	public String getQualifier(Object component) {
-	    String result = null;
-	    if (component instanceof ComponentSpecification)
-	    {
-	      result = ((ComponentSpecification)component).getQualifier();
-	    }  
-	    else if (component instanceof WSDLElement)
-	    {
-	      result = ((WSDLElement) component).getEnclosingDefinition().getTargetNamespace(); 
-	    }  
-	    else if (component instanceof SearchMatch)
-	    {
-	      QualifiedName qualifiedName = getQualifiedNameForSearchMatch((SearchMatch)component);
-	      if (qualifiedName != null)
-	      {  
-	        result = qualifiedName.getNamespace();
-	      }    
-	    }  
-	    return result;
-	}
-
-	public String getName(Object component) {
-	    String result = null;
-	    if (component instanceof ComponentSpecification)
-	    {
-	      result = ((ComponentSpecification)component).getName();
-	    }  
-	    else if (component instanceof WSDLElement)
-	    {
-	      result = ((WSDLElement)component).getElement().getAttribute("name"); 
-	    }  
-	    else if (component instanceof SearchMatch)
-	    {
-	      QualifiedName qualifiedName = getQualifiedNameForSearchMatch((SearchMatch)component);
-	      if (qualifiedName != null)
-	      {  
-	        result = qualifiedName.getLocalName();
-	      }    
-	    }      
-	    return result;
-	}
-
-	public IFile getFile(Object component) {
-	    IFile result = null;
-	    if (component instanceof ComponentSpecification)
-	    {
-	      result = ((ComponentSpecification)component).getFile();
-	    }  
-	    else if (component instanceof SearchMatch)
-	    {
-	      result = ((SearchMatch)component).getFile();
-	    }  
-	    else if (component instanceof WSDLElement)
-	    {
-	      WSDLElement concreteComponent = (WSDLElement) component;
-	      Definition definition = concreteComponent.getEnclosingDefinition();
-	      if (definition != null)
-	      {
-	        // TODO (cs) revisit and test more
-	        //
-	        String location = definition.getLocation();
-	        String platformResource = "platform:/resource";
-	        if (location != null && location.startsWith(platformResource))
-	        {
-	          Path path = new Path(location.substring(platformResource.length()));
-	          result = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
-	        }
-	      }  
-	    }
-	    return result;
-	}
-
-	public ILabelProvider getLabelProvider() {
-		return this;
-	}
-	
-	  public String getText(Object element) {
-	    String result = "";
-	    String name = getName(element);
-	    if (name != null) {
-	      result += name;
-	    }
-	    return result;
-	  } 
-	  
-	  public Image getImage(Object component)
-	  {
-	    Image result = null;
-	    if (component instanceof ComponentSpecification)
-	    {
-	    	QualifiedName qualifiedName = ((ComponentSpecification) component).getMetaName();
-	    	if ( qualifiedName != null ){
-	    		if ( qualifiedName.equals(IWSDLSearchConstants.BINDING_META_NAME))
-	    			result = BINDING_IMAGE;
-	    		else if ( qualifiedName.equals(IWSDLSearchConstants.PORT_TYPE_META_NAME))
-	    			result = PORTTYPE_IMAGE;
-	    		else if ( qualifiedName.equals(IWSDLSearchConstants.MESSAGE_META_NAME))
-	    			result = MESSAGE_IMAGE;
-
-	    	}
-	    }
-	    else if (component instanceof SearchMatch)
-	    {
-	      SearchMatch searchMatch = (SearchMatch)component;
-	      QualifiedName qualifiedName = (QualifiedName)searchMatch.map.get("metaName");
-	      if ( qualifiedName != null ){
-	    	  if ( qualifiedName.equals(IWSDLSearchConstants.BINDING_META_NAME))
-	    		  result = BINDING_IMAGE;
-	    	  else if ( qualifiedName.equals(IWSDLSearchConstants.PORT_TYPE_META_NAME))
-	    		  result = PORTTYPE_IMAGE;
-	    		else if ( qualifiedName.equals(IWSDLSearchConstants.MESSAGE_META_NAME))
-	    			result = MESSAGE_IMAGE;
-
-	      }
-	    }      
-	    else if (component instanceof Binding)
-	      result = BINDING_IMAGE;      
-	    else if (component instanceof PortType)
-	      result = PORTTYPE_IMAGE;
-	    else if (component instanceof Message)
-		      result = MESSAGE_IMAGE;
-
-	    return result;
-	  }
-	
-	private QualifiedName getQualifiedNameForSearchMatch(SearchMatch match) {
-		QualifiedName qualifiedName = null;
-		Object o = match.map.get("name");
-		if (o != null && o instanceof QualifiedName)
-		{  
-			qualifiedName = (QualifiedName)o;
-		}      
-		return qualifiedName;
-	}
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/edit/WSDLComponentFinder.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/edit/WSDLComponentFinder.java
deleted file mode 100644
index 30bcb20..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/edit/WSDLComponentFinder.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.edit;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.wst.common.core.search.SearchEngine;
-import org.eclipse.wst.common.core.search.SearchMatch;
-import org.eclipse.wst.common.core.search.pattern.QualifiedName;
-import org.eclipse.wst.common.core.search.pattern.SearchPattern;
-import org.eclipse.wst.common.core.search.scope.SearchScope;
-import org.eclipse.wst.common.core.search.util.CollectingSearchRequestor;
-import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSpecification;
-import org.eclipse.wst.xml.core.internal.search.XMLComponentDeclarationPattern;
-
-public class WSDLComponentFinder {
-	QualifiedName metaName;
-    public WSDLComponentFinder(QualifiedName metaName) {
-    	this.metaName = metaName;
-    }
-    
-    
-    protected void findComponents(SearchEngine searchEngine, List list, SearchScope searchScope)
-    {
-      try {
-          CollectingSearchRequestor requestor = new CollectingSearchRequestor();
-          
-          XMLComponentDeclarationPattern pattern = new XMLComponentDeclarationPattern(new QualifiedName("*", "*"), metaName, SearchPattern.R_PATTERN_MATCH);
-          
-          // TODO (cs) rethink the commented out code below.  Is there some reason for narrowing to list of search particpants?
-          // It seems the only benefit may be to filter our xsd component declarations that aren't defined
-          // in stand alone wsdl documents.  Perhaps it's best to do this with an additional property arg on the
-          // declaration pattern or perhaps simply doing some 'post' filtering.
-          //
-          //String participantId = metaName.getNamespace().equals(WSDLConstants.WSDL_NAMESPACE_URI) ?
-          //    "org.eclipse.wst.wsdl.search.WSDLSearchParticipant" :
-          //    "org.eclipse.wst.xsd.search.XSDSearchParticipant";        		  
-          //SearchParticipant particpant = SearchPlugin.getDefault().getSearchParticipant(participantId);         
-          //SearchParticipant[] participants = { particpant };     
-          
-          // TODO (cs) I'm betting we'll need to provide some hook here to allow extenders to configure
-          // the search options.  Currently we just pass in null.
-          searchEngine.search(pattern, requestor, searchScope, null, new NullProgressMonitor());
-          
-          for (Iterator i = requestor.getResults().iterator(); i.hasNext(); )
-          {
-            SearchMatch match = (SearchMatch)i.next();
-            ComponentSpecification spec = new ComponentSpecification();
-            spec.setMetaName(metaName);
-            spec.setFile(match.getFile());
-            
-            Object o = match.map.get("name");
-            if (o != null && o instanceof QualifiedName)
-            {  
-              QualifiedName qualifiedName = (QualifiedName)o;
-              if (qualifiedName.getLocalName() != null)
-              {
-                spec.setName(qualifiedName.getLocalName());
-                spec.setQualifier(qualifiedName.getNamespace());
-                list.add(spec);
-              }  
-            }  
-          }  
-      } catch (CoreException e) {
-        e.printStackTrace();
-          //status.add(e.getStatus());
-      }      
-    }
-    
-    public List getWorkbenchResourceComponents(SearchScope scope) {
-
-        List list = new ArrayList();
-        SearchEngine searchEngine = new SearchEngine();
-        findComponents(searchEngine, list, scope);    
-        return list;       
-    }
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/edit/WSDLInterfaceSearchListProvider.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/edit/WSDLInterfaceSearchListProvider.java
deleted file mode 100644
index 1412c0a..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/edit/WSDLInterfaceSearchListProvider.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.edit;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.wst.common.core.search.scope.SearchScope;
-import org.eclipse.wst.common.ui.internal.search.dialogs.IComponentList;
-import org.eclipse.wst.wsdl.Definition;
-import org.eclipse.wst.wsdl.Import;
-import org.eclipse.wst.wsdl.ui.internal.search.IWSDLSearchConstants;
-
-public class WSDLInterfaceSearchListProvider extends WSDLBaseSearchListProvider {
-	private Definition definition;
-	
-	public WSDLInterfaceSearchListProvider(Definition definition) {
-		this.definition = definition;
-	}
-	
-	public void populateComponentList(IComponentList list, SearchScope scope, IProgressMonitor pm) {
-		// Grab explictly defined components
-		createWSDLComponentObjects(list, definition.getEPortTypes(), IWSDLSearchConstants.PORT_TYPE_META_NAME);
-		
-		// Grab directly imported components
-		Iterator importsIt = getWSDLFileImports(definition.getEImports()).iterator();
-		while (importsIt.hasNext()) {
-			Import importItem = (Import) importsIt.next();
-			Definition importDefinition = importItem.getEDefinition();
-			List importedComponents = importDefinition.getEPortTypes();
-			
-			createWSDLComponentObjects(list, importedComponents, IWSDLSearchConstants.PORT_TYPE_META_NAME);
-		}
-		
-		if (scope != null) {
-			WSDLComponentFinder finder = new WSDLComponentFinder(IWSDLSearchConstants.PORT_TYPE_META_NAME);
-			Iterator it = finder.getWorkbenchResourceComponents(scope).iterator();
-			while (it.hasNext()) {
-				list.add(it.next());
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/edit/WSDLMessageSearchListProvider.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/edit/WSDLMessageSearchListProvider.java
deleted file mode 100644
index 0fa2855..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/edit/WSDLMessageSearchListProvider.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.edit;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.wst.common.core.search.scope.SearchScope;
-import org.eclipse.wst.common.ui.internal.search.dialogs.IComponentList;
-import org.eclipse.wst.wsdl.Definition;
-import org.eclipse.wst.wsdl.Import;
-import org.eclipse.wst.wsdl.ui.internal.search.IWSDLSearchConstants;
-
-public class WSDLMessageSearchListProvider extends WSDLBaseSearchListProvider {
-	private Definition definition;
-	
-	public WSDLMessageSearchListProvider(Definition definition) {
-		this.definition = definition;
-	}
-	public void populateComponentList(IComponentList list, SearchScope scope, IProgressMonitor pm) {
-		// Grab explictly defined components
-		createWSDLComponentObjects(list, definition.getEMessages(), IWSDLSearchConstants.MESSAGE_META_NAME);
-		
-		// Grab directly imported components
-		Iterator importsIt = getWSDLFileImports(definition.getEImports()).iterator();
-		while (importsIt.hasNext()) {
-			Import importItem = (Import) importsIt.next();
-			Definition importDefinition = importItem.getEDefinition();
-			List importedComponents = importDefinition.getEMessages();
-			
-			createWSDLComponentObjects(list, importedComponents, IWSDLSearchConstants.MESSAGE_META_NAME);
-		}
-		
-		if (scope != null) {
-			WSDLComponentFinder finder = new WSDLComponentFinder(IWSDLSearchConstants.MESSAGE_META_NAME);
-			Iterator it = finder.getWorkbenchResourceComponents(scope).iterator();
-			while (it.hasNext()) {
-				list.add(it.next());
-			}
-		}
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/edit/WSDLXSDTypeReferenceEditManager.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/edit/WSDLXSDTypeReferenceEditManager.java
deleted file mode 100644
index df9026c..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/edit/WSDLXSDTypeReferenceEditManager.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.edit;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSpecification;
-import org.eclipse.wst.wsdl.Part;
-import org.eclipse.wst.wsdl.asd.editor.ASDEditorPlugin;
-import org.eclipse.wst.wsdl.ui.internal.commands.AddXSDTypeDefinitionCommand;
-import org.eclipse.wst.wsdl.ui.internal.util.WSDLSetComponentHelper;
-import org.eclipse.wst.xsd.editor.XSDTypeReferenceEditManager;
-import org.eclipse.wst.xsd.ui.internal.search.IXSDSearchConstants;
-import org.eclipse.xsd.XSDSchema;
-
-public class WSDLXSDTypeReferenceEditManager extends XSDTypeReferenceEditManager {
-	
-	public WSDLXSDTypeReferenceEditManager(IFile currentFile, XSDSchema[] schemas) {
-		super(currentFile, schemas);
-	}
-	
-	public void modifyComponentReference(Object referencingObject, ComponentSpecification component) {
-		if (referencingObject instanceof Adapter) {
-			Adapter adapter = (Adapter) referencingObject;
-			referencingObject = adapter.getTarget();
-		}
-		
-		if (referencingObject instanceof Part) {
-			Part part = (Part) referencingObject;
-			IFile file = null;
-			if (ASDEditorPlugin.getActiveEditor().getEditorInput() instanceof IFileEditorInput) {
-				file = ((IFileEditorInput) ASDEditorPlugin.getActiveEditor().getEditorInput()).getFile();
-			}
-			
-			if (component.isNew()) {  
-				if (component.getMetaName() == IXSDSearchConstants.COMPLEX_TYPE_META_NAME) {
-					AddXSDTypeDefinitionCommand command = new AddXSDTypeDefinitionCommand(part.getEnclosingDefinition(), component.getName());
-					command.isComplexType(true);
-					command.run();
-					String tns = command.getXSDElement().getTargetNamespace();
-					component.setQualifier(tns);
-				}
-				else {
-					AddXSDTypeDefinitionCommand command = new AddXSDTypeDefinitionCommand(part.getEnclosingDefinition(), component.getName());
-					command.isComplexType(false);
-					command.run();
-					String tns = command.getXSDElement().getTargetNamespace();
-					component.setQualifier(tns);
-				}
-			}
-			
-			WSDLSetComponentHelper helper = new WSDLSetComponentHelper(file, part.getEnclosingDefinition());
-			helper.setXSDTypeComponent(part, component);
-		}
-	}
-
-	public void setSchemas(XSDSchema[] schemas) {
-		this.schemas = schemas;
-	}
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/extensions/WSDLEditorConfiguration.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/extensions/WSDLEditorConfiguration.java
deleted file mode 100644
index 7b3e2a5..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/extensions/WSDLEditorConfiguration.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.extensions;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.gef.EditPartFactory;
-import org.eclipse.wst.wsdl.ui.internal.actions.IWSDLToolbarAction;
-
-public class WSDLEditorConfiguration {
-	  public static final String WSDLEDITORCONFIGURATIONEXTENSIONID = "org.eclipse.wst.wsdl.ui.WSDLEditorExtensionConfiguration";
-	  public static final String CLASSNAME = "class";
-	  public static final String ADAPTERFACTORY = "adapterFactory";
-	  public static final String TOOLBARACTION = "toolbarAction";
-	  public static final String FIGUREFACTORY = "figureFactory";
-	  public static final String EDITPARTFACTORY = "editPartFactory";
-
-	  List definedExtensionsList = null;
-
-	  public WSDLEditorConfiguration()
-	  {
-
-	  }
-
-	  public AdapterFactory getAdapterFactory()
-	  {
-	    if (definedExtensionsList == null)
-	    {
-	      readWSDLConfigurationRegistry();
-	    }
-	    if (!definedExtensionsList.isEmpty())
-	    {
-	      return ((WSDLEditorExtensionProperties) definedExtensionsList.get(0)).getAdapterFactory();
-	    }
-	    return null;
-	  }
-
-	  public EditPartFactory getEditPartFactory()
-	  {
-	    if (definedExtensionsList == null)
-	    {
-	      readWSDLConfigurationRegistry();
-	    }
-	    if (!definedExtensionsList.isEmpty())
-	    {
-	      return ((WSDLEditorExtensionProperties) definedExtensionsList.get(0)).getEditPartFactory();
-	    }
-	    return null;
-	  }
-
-//	  public IExtendedFigureFactory getFigureFactory()
-//	  {
-//	    if (definedExtensionsList == null)
-//	    {
-//	      readWSDLConfigurationRegistry();
-//	    }
-//	    if (!definedExtensionsList.isEmpty())
-//	    {
-//	      return ((WSDLEditorExtensionProperties) definedExtensionsList.get(0)).getFigureFactory();
-//	    }
-//	    return null;
-//	  }
-
-	  public List getToolbarActions()
-	  {
-	    if (definedExtensionsList == null)
-	    {
-	      readWSDLConfigurationRegistry();
-	    }
-	    if (!definedExtensionsList.isEmpty())
-	    {
-	      return ((WSDLEditorExtensionProperties) definedExtensionsList.get(0)).getActionList();
-	    }
-	    return Collections.EMPTY_LIST;
-	  }
-
-	  protected Object loadClass(IConfigurationElement element, String classString)
-	  {
-	    String pluginId = element.getDeclaringExtension().getContributor().getName();
-
-	    try
-	    {
-	      Class theClass = Platform.getBundle(pluginId).loadClass(classString);
-	      Object instance = theClass.newInstance();
-
-	      return instance;
-	    }
-	    catch (Exception e)
-	    {
-
-	    }
-	    return null;
-	  }
-
-	  public void readWSDLConfigurationRegistry()
-	  {
-	    IConfigurationElement[] wsdlEditorExtensionList = Platform.getExtensionRegistry().getConfigurationElementsFor(WSDLEDITORCONFIGURATIONEXTENSIONID);
-
-	    boolean definedExtensionsExist = (wsdlEditorExtensionList != null && wsdlEditorExtensionList.length > 0);
-
-	    definedExtensionsList = new ArrayList();
-
-	    if (definedExtensionsExist)
-	    {
-	      for (int i = 0; i < wsdlEditorExtensionList.length; i++)
-	      {
-	        WSDLEditorExtensionProperties properties = new WSDLEditorExtensionProperties();
-	        definedExtensionsList.add(properties);
-
-	        IConfigurationElement element = wsdlEditorExtensionList[i];
-	        String adapterFactoryClass = element.getAttribute(ADAPTERFACTORY);
-	        if (adapterFactoryClass != null)
-	        {
-	          Object object = loadClass(element, adapterFactoryClass);
-	          if (object instanceof AdapterFactory)
-	          {
-	            properties.setAdapterFactory((AdapterFactory) object);
-	          }
-	        }
-
-//	        String figureFactoryClass = element.getAttribute(FIGUREFACTORY);
-//	        if (figureFactoryClass != null)
-//	        {
-//	          Object object = loadClass(element, figureFactoryClass);
-//	          IExtendedFigureFactory figureFactory = null;
-//	          if (object instanceof IExtendedFigureFactory)
-//	          {
-//	            figureFactory = (IExtendedFigureFactory) object;
-//	            properties.setFigureFactoryList(figureFactory);
-//	          }
-//	        }
-	        
-	        String editPartFactoryClass = element.getAttribute(EDITPARTFACTORY);
-	        if (editPartFactoryClass != null)
-	        {
-	          Object object = loadClass(element, editPartFactoryClass);
-	          EditPartFactory editPartFactory = null;
-	          if (object instanceof EditPartFactory)
-	          {
-	            editPartFactory = (EditPartFactory) object;
-	            properties.setEditPartFactoryList(editPartFactory);
-	          }
-	        }
-
-	        IConfigurationElement[] toolbarActions = element.getChildren(TOOLBARACTION);
-	        List actionList = new ArrayList();
-	        if (toolbarActions != null)
-	        {
-	          for (int j = 0; j < toolbarActions.length; j++)
-	          {
-	            IConfigurationElement actionElement = toolbarActions[j];
-	            String actionClass = actionElement.getAttribute(CLASSNAME);
-	            IWSDLToolbarAction action = null;
-	            if (actionClass != null)
-	            {
-	              Object object = loadClass(actionElement, actionClass);
-	              if (object instanceof IWSDLToolbarAction)
-	              {
-	                action = (IWSDLToolbarAction) object;
-	                actionList.add(action);
-	              }
-	            }
-	          }
-	        }
-	        properties.setActionList(actionList);
-
-
-
-	      }
-	    }
-	  }
-	}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/extensions/WSDLEditorExtensionProperties.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/extensions/WSDLEditorExtensionProperties.java
deleted file mode 100644
index 9d8459a..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/extensions/WSDLEditorExtensionProperties.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.extensions;
-
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.gef.EditPartFactory;
-
-public class WSDLEditorExtensionProperties
-{
-  AdapterFactory adapterFactory;
-//  IExtendedFigureFactory figureFactory;
-  EditPartFactory editPartFactory;
-  List actionList;
-
-  public WSDLEditorExtensionProperties()
-  {
-
-  }
-
-  public void setActionList(List actionList)
-  {
-    this.actionList = actionList;
-  }
-
-  public void setAdapterFactory(AdapterFactory adapterFactory)
-  {
-    this.adapterFactory = adapterFactory;
-  }
-
-  public void setEditPartFactoryList(EditPartFactory editPartFactory)
-  {
-    this.editPartFactory = editPartFactory;
-  }
-
-//  public void setFigureFactoryList(IExtendedFigureFactory figureFactory)
-//  {
-//    this.figureFactory = figureFactory;
-//  }
-
-  public List getActionList()
-  {
-    return actionList;
-  }
-
-  public AdapterFactory getAdapterFactory()
-  {
-    return adapterFactory;
-  }
-
-  public EditPartFactory getEditPartFactory()
-  {
-    return editPartFactory;
-  }
-
-//  public IExtendedFigureFactory getFigureFactory()
-//  {
-//    return figureFactory;
-//  }
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/delete_obj.gif b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/delete_obj.gif
deleted file mode 100644
index b6922ac..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/delete_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/properties/sections/W11ApplicationInfoSection.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/properties/sections/W11ApplicationInfoSection.java
deleted file mode 100644
index e2ef9f2..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/properties/sections/W11ApplicationInfoSection.java
+++ /dev/null
@@ -1,553 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.properties.sections;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.SashForm;
-import org.eclipse.swt.events.MouseTrackAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Image;
-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.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.part.PageBook;
-import org.eclipse.wst.wsdl.ExtensibleElement;
-import org.eclipse.wst.wsdl.WSDLElement;
-import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
-import org.eclipse.wst.wsdl.ui.internal.adapters.WSDLBaseAdapter;
-import org.eclipse.wst.xsd.ui.common.commands.AddAppInfoCommand;
-import org.eclipse.wst.xsd.ui.common.commands.AddAppInfoElementCommand;
-import org.eclipse.wst.xsd.ui.common.commands.AddExtensibilityElementCommand;
-import org.eclipse.wst.xsd.ui.common.commands.RemoveAppInfoElementCommand;
-import org.eclipse.wst.xsd.ui.common.properties.sections.AbstractSection;
-import org.eclipse.wst.xsd.ui.common.properties.sections.appinfo.AddApplicationInfoDialog;
-import org.eclipse.wst.xsd.ui.common.properties.sections.appinfo.ApplicationInformationPropertiesRegistry;
-import org.eclipse.wst.xsd.ui.common.properties.sections.appinfo.ApplicationInformationTableTreeViewer;
-import org.eclipse.wst.xsd.ui.common.properties.sections.appinfo.SpecificationForAppinfoSchema;
-import org.eclipse.xsd.XSDAnnotation;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-public class W11ApplicationInfoSection extends AbstractSection
-{
-  protected ApplicationInformationTableTreeViewer tableTree;
-  protected TableViewer extensibilityElementsTable;
-  protected Label extensibilityElementsLabel, contentLabel;
-  protected ISelectionChangedListener elementSelectionChangedListener;
-
-  private Text simpleText;
-  private Composite page, pageBook1, pageBook2;
-  private Button textRadioButton, structureRadioButton;
-  private Button addButton, removeButton;
-  private PageBook pageBook;
-
-  /**
-   * 
-   */
-  public W11ApplicationInfoSection()
-  {
-    super();
-  }
-
-  public ExtensibleElement getInputExtensibleElement() {
-	  ExtensibleElement eElement = null;
-	  
-	  if (input instanceof WSDLBaseAdapter && ((WSDLBaseAdapter) input).getTarget() instanceof ExtensibleElement) {
-		  eElement = (ExtensibleElement) ((WSDLBaseAdapter) input).getTarget();
-	  }
-
-	  return eElement;
-  }
-  
-  public void createContents(Composite parent)
-  {
-    composite = getWidgetFactory().createFlatFormComposite(parent);
-
-    GridLayout gridLayout = new GridLayout();
-    gridLayout.marginTop = 0;
-    gridLayout.marginBottom = 0;
-    gridLayout.numColumns = 1;
-    composite.setLayout(gridLayout);
-
-    GridData gridData = new GridData();
-
-    page = getWidgetFactory().createComposite(composite);
-    gridLayout = new GridLayout();
-    gridLayout.marginTop = 0;
-    gridLayout.marginBottom = 0;
-    gridLayout.numColumns = 1;
-    page.setLayout(gridLayout);
-
-    gridData = new GridData();
-    gridData.grabExcessHorizontalSpace = true;
-    gridData.grabExcessVerticalSpace = true;
-    gridData.verticalAlignment = GridData.FILL;
-    gridData.horizontalAlignment = GridData.FILL;
-    page.setLayoutData(gridData);
-
-    pageBook = new PageBook(page, SWT.FLAT);
-    gridData = new GridData();
-    gridData.grabExcessHorizontalSpace = true;
-    gridData.grabExcessVerticalSpace = true;
-    gridData.verticalAlignment = GridData.FILL;
-    gridData.horizontalAlignment = GridData.FILL;
-    pageBook.setLayoutData(gridData);
-
-    pageBook2 = getWidgetFactory().createComposite(pageBook, SWT.FLAT);
-
-    gridLayout = new GridLayout();
-    gridLayout.marginHeight = 2;
-    gridLayout.marginWidth = 2;
-    gridLayout.numColumns = 1;
-    pageBook2.setLayout(gridLayout);
-
-    gridData = new GridData();
-    gridData.grabExcessHorizontalSpace = true;
-    gridData.grabExcessVerticalSpace = true;
-    gridData.verticalAlignment = GridData.FILL;
-    gridData.horizontalAlignment = GridData.FILL;
-    pageBook2.setLayoutData(gridData);
-
-    SashForm sashForm = new SashForm(pageBook2, SWT.HORIZONTAL);
-    gridData = new GridData();
-    gridData.grabExcessHorizontalSpace = true;
-    gridData.grabExcessVerticalSpace = true;
-    gridData.verticalAlignment = GridData.FILL;
-    gridData.horizontalAlignment = GridData.FILL;
-    sashForm.setLayoutData(gridData);
-
-    Composite leftContent = getWidgetFactory().createComposite(sashForm, SWT.FLAT);
-    gridLayout = new GridLayout();
-    gridLayout.numColumns = 1;
-    leftContent.setLayout(gridLayout);
-
-    extensibilityElementsLabel = getWidgetFactory().createLabel(leftContent, "Application Information Elements");
-    extensibilityElementsTable = new TableViewer(leftContent, SWT.FLAT | SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.LINE_SOLID);
-    gridLayout = new GridLayout();
-    gridLayout.numColumns = 1;
-    extensibilityElementsTable.getTable().setLayout(gridLayout);
-    gridData = new GridData();
-    gridData.grabExcessHorizontalSpace = true;
-    gridData.grabExcessVerticalSpace = true;
-    gridData.verticalAlignment = GridData.FILL;
-    gridData.horizontalAlignment = GridData.FILL;
-    extensibilityElementsTable.getTable().setLayoutData(gridData);
-    extensibilityElementsTable.setContentProvider(new ElementTableContentProvider());
-    extensibilityElementsTable.setLabelProvider(new ElementTableLabelProvider());
-    elementSelectionChangedListener = new ElementSelectionChangedListener();
-    extensibilityElementsTable.addSelectionChangedListener(elementSelectionChangedListener);
-    extensibilityElementsTable.getTable().addMouseTrackListener(new MouseTrackAdapter()
-    {
-      public void mouseHover(org.eclipse.swt.events.MouseEvent e)
-      {
-        ISelection selection = extensibilityElementsTable.getSelection();
-        if (selection instanceof StructuredSelection)
-        {
-          Object obj = ((StructuredSelection) selection).getFirstElement();
-          if (obj instanceof Element)
-          {
-            Element element = (Element) obj;
-            ApplicationInformationPropertiesRegistry registry = WSDLEditorPlugin.getInstance().getApplicationInformationPropertiesRegistry();
-            List properties = registry.getAllApplicationSpecificSchemaProperties();
-            int length = properties.size();
-            for (int i = 0; i < length; i++)
-            {
-              SpecificationForAppinfoSchema spec = (SpecificationForAppinfoSchema)properties.get(i);
-              if (spec.getNamespaceURI().equals(element.getNamespaceURI()))
-              {
-                extensibilityElementsTable.getTable().setToolTipText(spec.getDescription());
-                break;
-              }
-            }
-          }
-        }
-      };
-
-    });
-
-    Composite rightContent = getWidgetFactory().createComposite(sashForm, SWT.FLAT);
-
-    contentLabel = getWidgetFactory().createLabel(rightContent, "Content");
-
-    Composite testComp = getWidgetFactory().createComposite(rightContent, SWT.FLAT);
-
-    gridLayout = new GridLayout();
-    gridLayout.marginTop = 0;
-    gridLayout.marginBottom = 0;
-    gridLayout.marginLeft = 0;
-    gridLayout.marginRight = 0;
-    gridLayout.numColumns = 1;
-    gridLayout.marginHeight = 3;
-    gridLayout.marginWidth = 3;
-    rightContent.setLayout(gridLayout);
-
-    gridData = new GridData();
-    gridData.grabExcessHorizontalSpace = true;
-    gridData.grabExcessVerticalSpace = true;
-    gridData.verticalAlignment = GridData.FILL;
-    gridData.horizontalAlignment = GridData.FILL;
-    rightContent.setLayoutData(gridData);
-
-    gridLayout = new GridLayout();
-    gridLayout.marginTop = 0;
-    gridLayout.marginLeft = 0;
-    gridLayout.marginRight = 0;
-    gridLayout.marginBottom = 0;
-    gridLayout.marginHeight = 3;
-    gridLayout.marginWidth = 3;
-    gridLayout.numColumns = 1;
-    testComp.setLayout(gridLayout);
-
-    gridData = new GridData();
-    gridData.grabExcessHorizontalSpace = true;
-    gridData.grabExcessVerticalSpace = true;
-    gridData.verticalAlignment = GridData.FILL;
-    gridData.horizontalAlignment = GridData.FILL;
-    testComp.setLayoutData(gridData);
-
-    createElementContentWidget(testComp);
-
-    int[] weights = { 30, 70 };
-    sashForm.setWeights(weights);
-
-    Composite buttonComposite = getWidgetFactory().createComposite(pageBook2, SWT.FLAT);
-    gridLayout = new GridLayout();
-    gridLayout.marginTop = 0;
-    gridLayout.marginBottom = 0;
-    gridLayout.numColumns = 2;
-    gridLayout.makeColumnsEqualWidth = true;
-    buttonComposite.setLayout(gridLayout);
-    addButton = getWidgetFactory().createButton(buttonComposite, "Add...", SWT.FLAT);
-    addButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-    addButton.addSelectionListener(this);
-    addButton.setToolTipText("Add Application Specific Information");
-    removeButton = getWidgetFactory().createButton(buttonComposite, "Remove", SWT.FLAT);
-    removeButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-    removeButton.addSelectionListener(this);
-    removeButton.setToolTipText("Remove Application Specific Information");
-    
-    pageBook.showPage(pageBook2);
-  }
-
-  protected void createElementContentWidget(Composite parent)
-  {
-    tableTree = new ApplicationInformationTableTreeViewer(parent);
-    GridData gridData = new GridData();
-    gridData.grabExcessHorizontalSpace = true;
-    gridData.grabExcessVerticalSpace = true;
-    gridData.verticalAlignment = GridData.FILL;
-    gridData.horizontalAlignment = GridData.FILL;
-
-    tableTree.getControl().setLayoutData(gridData);
-  }
-
-  /*
-   * @see org.eclipse.wst.common.ui.properties.internal.provisional.view.ITabbedPropertySection#refresh()
-   */
-  public void refresh()
-  {
-    setListenerEnabled(false);
-    ExtensibleElement extensibleElement = getInputExtensibleElement();
-    if (extensibleElement != null)
-    {
-      tableTree.setInput(null);
-      tableTree.getTree().removeAll();
-      extensibilityElementsTable.getTable().removeAll();
-
-      extensibilityElementsLabel.setText("Extensibility Elements");
-      extensibilityElementsTable.setInput(extensibleElement);
-      
-      // TODO (cs)need to revist this... not sure why these were hardcoded to be disabled 
-      //addButton.setEnabled(false);
-      //removeButton.setEnabled(false);
-
-      if (extensibilityElementsTable.getTable().getSelectionCount() == 0)
-      {
-        Object o = extensibilityElementsTable.getElementAt(0);
-        if (o != null)
-        {
-          extensibilityElementsTable.setSelection(new StructuredSelection(o));
-          if (o instanceof Element)
-          {
-            tableTree.setInput(((Element) o).getParentNode());
-          }
-          else if (o instanceof WSDLElement)
-          {
-            tableTree.setInput(((WSDLElement) o).getElement().getParentNode());
-          }
-        }
-        tableTree.refresh();
-      }
-
-    }
-    setListenerEnabled(true);
-
-  }
-
-  public Composite getPage()
-  {
-    return page;
-  }
-
-  public void widgetSelected(SelectionEvent event)
-  {
-    if (event.widget == addButton)
-    {
-      ApplicationInformationPropertiesRegistry registry = WSDLEditorPlugin.getInstance().getApplicationInformationPropertiesRegistry();
-      AddApplicationInfoDialog dialog = new AddApplicationInfoDialog(composite.getShell(), registry);
-      List properties = registry.getAllApplicationSpecificSchemaProperties();
-
-      dialog.setInput(properties);
-      dialog.setBlockOnOpen(true);
-
-      int rc = dialog.open();
-      if (rc == dialog.OK)
-      {
-        Object[] result = dialog.getResult();
-        if (result != null)
-        {
-          XSDElementDeclaration element = (XSDElementDeclaration) result[0];
-          SpecificationForAppinfoSchema property = (SpecificationForAppinfoSchema) result[1];
-
-          // The case below will never happen..... What scenario makes sense?
-          if (input instanceof XSDConcreteComponent)
-          {
-            AddAppInfoCommand addAppInfo = new AddAppInfoElementCommand("Add AppInfo", (XSDConcreteComponent) input, element);
-            addAppInfo.setSchemaProperties(property);
-
-            if (getCommandStack() != null)
-            {
-              getCommandStack().execute(addAppInfo);
-            }
-          }
-          else if (getInputExtensibleElement() instanceof WSDLElement)
-          {
-            // TODO getCommandStack
-            AddExtensibilityElementCommand addEECommand = new AddExtensibilityElementCommand("Add Extensibility Element", ((WSDLElement) getInputExtensibleElement()).getElement(), element.getElement());
-            addEECommand.setSchemaProperties(property);
-            addEECommand.execute();
-          }
-
-        }
-        extensibilityElementsTable.refresh();
-        refresh();
-      }
-
-    }
-    else if (event.widget == removeButton)
-    {
-      ISelection selection = extensibilityElementsTable.getSelection();
-      XSDAnnotation xsdAnnotation = (XSDAnnotation) extensibilityElementsTable.getInput();
-
-      if (selection instanceof StructuredSelection)
-      {
-        Object o = ((StructuredSelection) selection).getFirstElement();
-        if (o instanceof Element)
-        {
-          Node appInfoElement = ((Element) o).getParentNode();
-          RemoveAppInfoElementCommand command = new RemoveAppInfoElementCommand("Remove AppInfo", xsdAnnotation, appInfoElement);
-          if (getCommandStack() != null)
-          {
-            getCommandStack().execute(command);
-            extensibilityElementsTable.setInput(xsdAnnotation);
-            extensibilityElementsTable.refresh();
-
-            if (extensibilityElementsTable.getTable().getItemCount() > 0)
-            {
-              Object object = extensibilityElementsTable.getElementAt(0);
-              if (object != null)
-              {
-                extensibilityElementsTable.setSelection(new StructuredSelection(object));
-              }
-            }
-            else
-            {
-              tableTree.setInput(null);
-            }
-          }
-        }
-      }
-
-    }
-    else if (event.widget == extensibilityElementsTable.getTable())
-    {
-      System.out.println("ee table selected");
-    }
-  }
-
-  public void widgetDefaultSelected(SelectionEvent event)
-  {
-
-  }
-
-  public boolean shouldUseExtraSpace()
-  {
-    return true;
-  }
-
-  public void dispose()
-  {
-
-  }
-
-  class ElementTableContentProvider implements IStructuredContentProvider
-  {
-    protected String facet;
-
-    public void inputChanged(Viewer viewer, Object oldInput, Object newInput)
-    {
-    }
-
-    public java.lang.Object[] getElements(java.lang.Object inputElement)
-    {
-      if (inputElement instanceof XSDAnnotation)
-      {
-        XSDAnnotation xsdAnnotation = (XSDAnnotation) inputElement;
-        List appInfoList = xsdAnnotation.getApplicationInformation();
-        List elementList = new ArrayList();
-        for (Iterator it = appInfoList.iterator(); it.hasNext();)
-        {
-          Object obj = it.next();
-          if (obj instanceof Element)
-          {
-            Element appInfo = (Element) obj;
-            NodeList nodeList = appInfo.getChildNodes();
-            int length = nodeList.getLength();
-            for (int i = 0; i < length; i++)
-            {
-              Node node = nodeList.item(i);
-              if (node instanceof Element)
-              {
-                elementList.add(node);
-              }
-            }
-          }
-        }
-        return elementList.toArray();
-      }
-      else if (inputElement instanceof ExtensibleElement)
-      {
-        ExtensibleElement extensibleElement = (ExtensibleElement) inputElement;
-        // List elementList = new ArrayList();
-        // for (Iterator it =
-        // extensibleElement.getExtensibilityElements().iterator();
-        // it.hasNext(); )
-        // {
-        // Object obj = it.next();
-        // elementList.add(obj);
-        // }
-        // return elementList.toArray();
-        return extensibleElement.getExtensibilityElements().toArray();
-      }
-
-      return Collections.EMPTY_LIST.toArray();
-    }
-
-    public void dispose()
-    {
-
-    }
-  }
-
-  class ElementTableLabelProvider extends LabelProvider implements ITableLabelProvider
-  {
-    public Image getColumnImage(Object element, int columnIndex)
-    {
-      ApplicationInformationPropertiesRegistry registry = WSDLEditorPlugin.getInstance().getApplicationInformationPropertiesRegistry();
-
-      if (element instanceof WSDLElement)
-      {
-        ILabelProvider provider = registry.getLabelProvider(((WSDLElement) element).getElement());
-        if (provider != null)
-        {
-          return provider.getImage(((WSDLElement) element).getElement());
-        }
-      }
-
-      return null;
-    }
-
-    public String getColumnText(Object element, int columnIndex)
-    {
-      ApplicationInformationPropertiesRegistry registry = WSDLEditorPlugin.getInstance().getApplicationInformationPropertiesRegistry();
-
-      if (element instanceof Element)
-      {
-        Element domElement = (Element) element;
-        return domElement.getLocalName();
-
-      }
-      else if (element instanceof WSDLElement)
-      {
-        ILabelProvider provider = registry.getLabelProvider(((WSDLElement) element).getElement());
-        if (provider != null)
-        {
-          return provider.getText(((WSDLElement) element).getElement());
-        }
-        return ((WSDLElement) element).getElement().getNodeName();
-      }
-      return "";
-    }
-  }
-
-  Element selectedElement;
-
-  class ElementSelectionChangedListener implements ISelectionChangedListener
-  {
-    public void selectionChanged(SelectionChangedEvent event)
-    {
-      ISelection selection = event.getSelection();
-      if (selection instanceof StructuredSelection)
-      {
-        Object obj = ((StructuredSelection) selection).getFirstElement();
-        if (obj instanceof Element)
-        {
-          selectedElement = (Element) obj;
-          tableTree.setInput(selectedElement.getParentNode());
-          tableTree.setASIElement(selectedElement);
-          tableTree.setCommandStack(getCommandStack());
-          contentLabel.setText("Structure of " + selectedElement.getLocalName());
-          contentLabel.getParent().layout();
-        }
-        else if (obj instanceof WSDLElement)
-        {
-          selectedElement = ((WSDLElement) obj).getElement();
-          tableTree.setInput(selectedElement.getParentNode());
-          tableTree.setASIElement(selectedElement);
-          tableTree.setCommandStack(getCommandStack());
-          contentLabel.setText("Structure of " + selectedElement.getLocalName());
-          contentLabel.getParent().layout();
-        }
-      }
-    }
-
-  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/text/BaseHyperlinkDetector.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/text/BaseHyperlinkDetector.java
deleted file mode 100644
index acf7b06..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/text/BaseHyperlinkDetector.java
+++ /dev/null
@@ -1,263 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.text;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.Region;
-import org.eclipse.jface.text.hyperlink.IHyperlink;
-import org.eclipse.jface.text.hyperlink.IHyperlinkDetector;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.utils.StringUtils;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-
-/**
- * Base class for hyperlinks detectors. Provides a framework and common code for
- * hyperlink detectors. TODO: Can we pull this class further up the inheritance
- * hierarchy?
- */
-public abstract class BaseHyperlinkDetector implements IHyperlinkDetector
-{
-  /*
-   * (non-Javadoc)
-   */
-  public IHyperlink[] detectHyperlinks(ITextViewer textViewer, IRegion region, boolean canShowMultipleHyperlinks)
-  {
-    if (region == null || textViewer == null)
-    {
-      return null;
-    }
-
-    List hyperlinks = new ArrayList(0);
-    IDocument document = textViewer.getDocument();
-    int offset = region.getOffset();
-
-    IDOMNode node = getCurrentNode(document, offset);
-
-    // This call allows us to determine whether an attribute is linkable,
-    // without incurring the cost of asking for the target component.
-
-    if (!isLinkable(node))
-    {
-      return null;
-    }
-
-    IRegion hyperlinkRegion = getHyperlinkRegion(node);
-
-    // createHyperlink is a template method. Derived classes, should override.
-
-    IHyperlink hyperlink = createHyperlink(document, node, hyperlinkRegion);
-
-    if (hyperlink != null)
-    {
-      hyperlinks.add(hyperlink);
-    }
-
-    if (hyperlinks.size() == 0)
-    {
-      return null;
-    }
-
-    return (IHyperlink[]) hyperlinks.toArray(new IHyperlink[0]);
-  }
-
-  /**
-   * Determines whether a node is "linkable" that is, the component it refers to
-   * can be the target of a "go to definition" navigation.
-   * 
-   * @param node the node to test, must not be null;
-   * @return true if the node is linkable, false otherwise.
-   */
-  private boolean isLinkable(IDOMNode node)
-  {
-    if (node == null)
-    {
-      return false;
-    }
-
-    short nodeType = node.getNodeType();
-
-    boolean isLinkable = false;
-
-    if (nodeType == Node.ATTRIBUTE_NODE)
-    {
-      IDOMAttr attr = (IDOMAttr) node;
-      String name = attr.getName();
-
-      // isLinkableAttribute is a template method. Derived classes should
-      // override.
-
-      isLinkable = isLinkableAttribute(name);
-    }
-
-    return isLinkable;
-  }
-
-  /**
-   * Determines whether an attribute is "linkable" that is, the component it
-   * points to can be the target of a "go to definition" navigation. Derived
-   * classes should override.
-   * 
-   * @param name the attribute name. Must not be null.
-   * @return true if the attribute is linkable, false otherwise.
-   */
-  protected abstract boolean isLinkableAttribute(String name);
-
-  /**
-   * Creates a hyperlink based on the selected node. Derived classes should
-   * override.
-   * 
-   * @param document the source document.
-   * @param node the node under the cursor.
-   * @param region the text region to use to create the hyperlink.
-   * @return a new IHyperlink for the node or null if one cannot be created.
-   */
-  protected abstract IHyperlink createHyperlink(IDocument document, IDOMNode node, IRegion region);
-
-  /**
-   * Locates the attribute node under the cursor.
-   * 
-   * @param offset the cursor offset.
-   * @param parent the parent node
-   * @return an IDOMNode representing the attribute if one is found at the
-   *         offset or null otherwise.
-   */
-  protected IDOMNode getAttributeNode(int offset, IDOMNode parent)
-  {
-    IDOMAttr attrNode = null;
-    NamedNodeMap map = parent.getAttributes();
-
-    for (int index = 0; index < map.getLength(); index++)
-    {
-      attrNode = (IDOMAttr) map.item(index);
-      boolean located = attrNode.contains(offset);
-      if (located)
-      {
-        if (attrNode.hasNameOnly())
-        {
-          attrNode = null;
-        }
-        break;
-      }
-    }
-
-    if (attrNode == null)
-    {
-      return parent;
-    }
-    return attrNode;
-  }
-
-  /**
-   * Returns the node the cursor is currently on in the document or null if no
-   * node is selected
-   * 
-   * @param offset the current cursor offset.
-   * @return IDOMNode either element, doctype, text, attribute or null
-   */
-  private IDOMNode getCurrentNode(IDocument document, int offset)
-  {
-    IndexedRegion inode = null;
-    IStructuredModel sModel = null;
-
-    try
-    {
-      sModel = StructuredModelManager.getModelManager().getExistingModelForRead(document);
-      inode = sModel.getIndexedRegion(offset);
-      if (inode == null)
-        inode = sModel.getIndexedRegion(offset - 1);
-    }
-    finally
-    {
-      if (sModel != null)
-        sModel.releaseFromRead();
-    }
-
-    if (inode instanceof IDOMNode)
-    {
-      IDOMNode node = (IDOMNode) inode;
-
-      if (node.hasAttributes())
-      {
-        node = getAttributeNode(offset, node);
-      }
-      return node;
-    }
-
-    return null;
-  }
-
-  /**
-   * Get the text region corresponding to an IDOMNode.
-   * 
-   * @param node the node for which we want the text region. Must not be null.
-   * @return an IRegion for the node, or null if the node is not recognized.
-   */
-  protected IRegion getHyperlinkRegion(IDOMNode node)
-  {
-    if (node == null)
-    {
-      return null;
-    }
-
-    IRegion hyperRegion = null;
-    short nodeType = node.getNodeType();
-
-    switch (nodeType)
-    {
-      case Node.ELEMENT_NODE : 
-        {
-          hyperRegion = new Region(node.getStartOffset(), node.getEndOffset() - node.getStartOffset());
-        }
-      break;
-      case Node.ATTRIBUTE_NODE : 
-        {
-          IDOMAttr att = (IDOMAttr) node;
-  
-          int regOffset = att.getValueRegionStartOffset();
-  
-          // ISSUE: We are using a deprecated method here. Is there
-          // a better way to get what we need?
-  
-          ITextRegion valueRegion = att.getValueRegion();
-          if (valueRegion != null)
-          {
-            int regLength = valueRegion.getTextLength();
-            String attValue = att.getValueRegionText();
-  
-            // Do not include quotes in attribute value region.
-            if (StringUtils.isQuoted(attValue))
-            {
-              regOffset = ++regOffset;
-              regLength = regLength - 2;
-            }
-            hyperRegion = new Region(regOffset, regLength);
-          }
-        }
-        break;
-      default :
-        // Do nothing.
-        break;
-    }
- 
-    return hyperRegion;
-  }
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/text/WSDLHyperlink.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/text/WSDLHyperlink.java
deleted file mode 100644
index 757fa31..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/text/WSDLHyperlink.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.text;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.hyperlink.IHyperlink;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.IDE;
-
-/**
- * WSDLHyperlink knows how to open links from wsdl files.
- * 
- * @see WSDLHyperlinkDetector
- */
-public class WSDLHyperlink implements IHyperlink
-{
-  private IRegion fRegion;
-  private String fResource;
-  private String fSpec;
-
-  public WSDLHyperlink(IRegion region, String resource, String spec)
-  {
-    fRegion = region;
-    fResource = resource;
-    fSpec = spec;
-  }
-
-  public IRegion getHyperlinkRegion()
-  {
-    return fRegion;
-  }
-
-  public String getTypeLabel()
-  {
-    return null;
-  }
-
-  public String getHyperlinkText()
-  {
-    return null;
-  }
-
-  public void open()
-  {
-    /*
-     * ISSUE: There are cleaner ways to find the right file based on a URI
-     * string and cleaner ways to find which editor to open for the file. See
-     * other IHyperlink and IHyperlinkDetector implementors for examples.
-     */
-    String pattern = "platform:/resource";
-    if (fResource != null && fResource.startsWith(pattern))
-    {
-      Path path = new Path(fResource.substring(pattern.length()));
-      IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
-
-      IWorkbenchPage workbenchPage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
-
-      IEditorPart editorPart = workbenchPage.getActiveEditor();
-
-      // When using the cursor or the mouse to move around in the text
-      // editor, the location history is not updated, so we make sure we keep
-      // a reference to where we are. If we use other navigation means, like the
-      // outline view, this call will not add a new location history entry, as
-      // it is the same as the last location set through the outline driven
-      // navigation.
-
-      boolean sameEditor = editorPart.getEditorInput() instanceof IFileEditorInput && ((IFileEditorInput) editorPart.getEditorInput()).getFile().equals(file);
-
-      workbenchPage.getNavigationHistory().markLocation(editorPart);
-
-      if (!sameEditor)
-      {
-        try
-        {
-          // The target is in a different file, so open the target's enclosing
-          // resource in it's own editor. Let the workbench decide what editor
-          // to open based on the file's content type.
-
-          editorPart = IDE.openEditor(workbenchPage, file, true);
-        }
-        catch (PartInitException e)
-        {
-//          Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-          return;
-        }
-      }
-
-      // Attempt to retrieve the target editor's selection manager and try to
-      // change the selection to the thing (schema component, wsdl element, etc)
-      // pointed to by fSpec.
-
-      ISelectionProvider selectionProvider = (ISelectionProvider) editorPart.getAdapter(ISelectionProvider.class);
-
-      if (selectionProvider != null)
-      {
-        selectionProvider.setSelection(new StructuredSelection(fSpec));
-      }
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/text/WSDLHyperlinkDetector.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/text/WSDLHyperlinkDetector.java
deleted file mode 100644
index 93ac09d..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/text/WSDLHyperlinkDetector.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.text;
-
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.hyperlink.IHyperlink;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.wsdl.Definition;
-import org.eclipse.wst.wsdl.ui.internal.util.OpenOnSelectionHelper;
-import org.eclipse.wst.wsdl.util.WSDLConstants;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-/**
- * Detects hyperlinks for WSDL files. Used by the WSDL text editor to provide a
- * "Go to declaration" functionality similar with the one provided by the Java
- * editor.
- */
-public class WSDLHyperlinkDetector extends BaseHyperlinkDetector
-{
-  /*
-   * (non-Javadoc)
-   */
-  protected IHyperlink createHyperlink(IDocument document, IDOMNode node, IRegion region)
-  {
-    // Here we're trying to find the target component's resource and spec.
-
-    Definition definition = getDefinition(document);
-    OpenOnSelectionHelper helper = new OpenOnSelectionHelper(definition);
-    String[] targetData = helper.computeSpecification(node);
-
-    if (targetData != null)
-    {
-      String resource = targetData[0];
-      String spec = targetData[1];
-      return new WSDLHyperlink(region, resource, spec);
-    }
-
-    return null;
-  }
-
-  /**
-   * Gets the definition from document
-   * 
-   * @param document
-   * @return Definition
-   */
-  private Definition getDefinition(IDocument document)
-  {
-    Definition definition = null;
-    IStructuredModel model = StructuredModelManager.getModelManager().getExistingModelForRead(document);
-    if (model != null)
-    {
-      try
-      {
-        if (model instanceof IDOMModel)
-        {
-          IDOMDocument domDoc = ((IDOMModel) model).getDocument();
-          if (domDoc != null)
-          {
-            WSDLModelAdapter modelAdapter = (WSDLModelAdapter) domDoc.getAdapterFor(WSDLModelAdapter.class);
-            // ISSUE: if adapter does not already exist for domDoc getAdapterFor
-            // will create one. So why is this null check/creation needed?
-            if (modelAdapter == null)
-            {
-              modelAdapter = new WSDLModelAdapter();
-              domDoc.addAdapter(modelAdapter);
-              modelAdapter.createDefinition(domDoc.getDocumentElement(), domDoc);
-            }
-            definition = modelAdapter.getDefinition();
-          }
-        }
-      }
-      finally
-      {
-        model.releaseFromRead();
-      }
-    }
-    return definition;
-  }
-
-  /*
-   * (non-Javadoc)
-   */
-  protected boolean isLinkableAttribute(String name)
-  {
-    boolean isLinkable = name.equals(WSDLConstants.BINDING_ATTRIBUTE) || 
-    name.equals(WSDLConstants.ELEMENT_ATTRIBUTE) || 
-    name.equals(WSDLConstants.TYPE_ATTRIBUTE) || 
-    name.equals(WSDLConstants.MESSAGE_ATTRIBUTE); 
-    return isLinkable;
-  }
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/util/W11OpenExternalEditorHelper.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/util/W11OpenExternalEditorHelper.java
deleted file mode 100644
index f719912..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/util/W11OpenExternalEditorHelper.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.util;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorReference;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.common.uriresolver.internal.util.URIHelper;
-import org.eclipse.wst.wsdl.Part;
-import org.eclipse.wst.wsdl.asd.editor.util.IOpenExternalEditorHelper;
-import org.eclipse.wst.wsdl.asd.facade.IParameter;
-import org.eclipse.wst.wsdl.ui.internal.adapters.WSDLBaseAdapter;
-import org.eclipse.wst.xsd.editor.InternalXSDMultiPageEditor;
-import org.eclipse.wst.xsd.editor.XSDFileEditorInput;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-
-public class W11OpenExternalEditorHelper implements IOpenExternalEditorHelper {
-	private Object object;
-	private IFile wsdlFile;
-	
-	public W11OpenExternalEditorHelper(IFile wsdlFile)
-	{
-		this.wsdlFile = wsdlFile;
-	}
-	
-	public void setModel(Object object) {
-		this.object = object;
-	}
-	
-	public void openExternalEditor() {
-		if (object instanceof WSDLBaseAdapter) {
-			Object notifier = ((WSDLBaseAdapter) object).getTarget();
-			Object openOnModel = getModelToOpenOn(notifier);
-			
-			if (openOnModel != null) {
-				openXSDEditor((XSDConcreteComponent) openOnModel);
-			}
-		}
-	}
-	
-	protected XSDSchema getSchema(XSDConcreteComponent xsdComponent) {
-		XSDSchema schema = xsdComponent.getSchema();
-		if (schema == null) {
-			Object notifier = ((WSDLBaseAdapter) object).getTarget();
-			if (notifier instanceof XSDConcreteComponent) {
-				schema = ((XSDConcreteComponent) notifier).getSchema();
-			}
-		}
-		
-		return schema;
-	}
-	
-	protected void openXSDEditor(XSDConcreteComponent xsdComponent) {
-		XSDSchema schema = getSchema(xsdComponent);
-		if (schema != null) {
-			String schemaLocation = URIHelper.removePlatformResourceProtocol(schema.getSchemaLocation());
-			IPath schemaPath = new Path(schemaLocation);
-			IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(schemaPath);
-			if (file != null && file.exists()) {
-				IWorkbenchWindow workbenchWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-				if (workbenchWindow != null) {
-					IWorkbenchPage page = workbenchWindow.getActivePage();
-					try {
-						XSDFileEditorInput editorInput = new XSDFileEditorInput(file, schema);
-						
-						IEditorPart editorPart = null;
-						
-						if (isInlineSchema(file)) {
-							editorInput.setEditorName("Inline Schema of " + file.getName());
-							IEditorReference [] refs = page.getEditorReferences();
-							int length = refs.length;
-							for (int i = 0; i < length; i++)
-							{
-								IEditorInput input = refs[i].getEditorInput();
-								if (input instanceof XSDFileEditorInput)
-								{
-									IFile aFile = ((XSDFileEditorInput)input).getFile();
-									if (aFile.getFullPath().equals(file.getFullPath()))
-									{
-										if (((XSDFileEditorInput)input).getSchema() == schema)
-										{
-											editorPart = refs[i].getEditor(true);
-											page.activate(refs[i].getPart(true));
-											break;
-										}
-									}
-								}
-							}
-							
-							if (editorPart == null)
-							{
-								editorPart = page.openEditor(editorInput, "org.eclipse.wst.xsd.editor.InternalXSDMultiPageEditor", true, 0);
-							}
-						}
-						else {
-							editorPart = page.openEditor(editorInput, "org.eclipse.wst.xsd.editor.InternalXSDMultiPageEditor", true);
-						}
-						
-						if (editorPart instanceof InternalXSDMultiPageEditor)
-						{
-							InternalXSDMultiPageEditor xsdEditor = (InternalXSDMultiPageEditor)editorPart;
-							xsdEditor.openOnGlobalReference(xsdComponent);
-						}						
-					}
-					catch (PartInitException pie) {
-//						Logger.log(Logger.WARNING_DEBUG, pie.getMessage(), pie);
-					}
-				}
-			}
-		}	        
-	}
-	
-	public boolean linkApplicable() {
-		boolean applicable = true;
-		
-		if (object instanceof IParameter) {
-			IParameter param = (IParameter) object;
-			String prefix = param.getComponentNameQualifier();
-			if (prefix != null && prefix.equals(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001)) {
-				applicable = false;
-			}
-		}
-		
-		return applicable;
-	}
-	
-	protected Object getModelToOpenOn(Object object) {
-		if (object instanceof XSDElementDeclaration) {
-			return ((XSDElementDeclaration) object).getTypeDefinition();
-		}
-		else if (object instanceof Part) {
-			Object elementOrType = ((Part) object).getElementDeclaration();
-			if (elementOrType == null) {
-				elementOrType = ((Part) object).getTypeDefinition();
-			}
-			
-			return elementOrType;
-		}
-		
-		return null;
-	}
-	
-	/**
-	 * @param file
-	 * @return
-	 */
-	protected boolean isInlineSchema(IFile file) {
-		// Should there be a better test for this?  The IFiles are different so we can't use file == wsdlFile.
-		return file.getFullPath().equals(wsdlFile.getFullPath());
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/util/WSDLAdapterFactoryHelper.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/util/WSDLAdapterFactoryHelper.java
deleted file mode 100644
index 7874c27..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/util/WSDLAdapterFactoryHelper.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.util;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notifier;
-import org.eclipse.wst.wsdl.ui.internal.adapters.WSDLAdapterFactory;
-
-public class WSDLAdapterFactoryHelper {
-	private static WSDLAdapterFactoryHelper instance;
-	
-	private AdapterFactory adapterFactory;
-	
-	public static WSDLAdapterFactoryHelper getInstance() {
-		if (instance == null) {
-			instance = new WSDLAdapterFactoryHelper();
-		}
-		
-		return instance;
-	}
-	
-	public Adapter adapt(Notifier target) {
-		AdapterFactory factory = getWSDLAdapterFactory();
-		return factory.adapt(target, factory);
-	}
-	
-	public AdapterFactory getWSDLAdapterFactory() {
-		if (adapterFactory == null) {
-			adapterFactory = new WSDLAdapterFactory();
-		}
-		return adapterFactory;
-	}
-	
-	public void setWSDLAdapterFactory(AdapterFactory factory) {
-		adapterFactory = factory;
-	}
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/visitor/WSDLVisitorForParameters.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/visitor/WSDLVisitorForParameters.java
deleted file mode 100644
index 9498e61..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/visitor/WSDLVisitorForParameters.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.visitor;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.wst.wsdl.Message;
-import org.eclipse.wst.wsdl.MessageReference;
-import org.eclipse.wst.wsdl.Part;
-import org.eclipse.wst.wsdl.ui.internal.adapters.visitor.W11XSDVisitorForFields;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.XSDTypeDefinition;
-
-public class WSDLVisitorForParameters
-{
-    public List concreteComponents = new ArrayList();
-    public List thingsToListenTo = new ArrayList();
-
-    public void visitMessageReference(MessageReference messageReference)
-    {
-      if (messageReference.getEMessage() != null)
-      {
-        visitMessage(messageReference.getEMessage());
-      }
-    }
-    
-    public void visitMessage(Message message)
-    {
-      // for now we assume that the first part is the only one that
-      // should be used to deduce the parameters
-      // TODO (cs) we need to revist this, multiple parts need to be considered
-      //
-    	if (message != null) {
-    		thingsToListenTo.add(message);
-    		List parts = message.getEParts();
-    		if (parts.size() > 0) {
-    			visitPart((Part) parts.get(0));
-    		}
-    	}
-    }
-
-    void visitPart(Part part)
-    {
-      thingsToListenTo.add(part);      
-      if (part.getElementDeclaration() != null)
-      {
-        visitXSDElementDeclaration(part.getElementDeclaration());
-      }
-      else if (part.getTypeDefinition() instanceof XSDComplexTypeDefinition)
-      {
-        visitXSDComplextTypeDefinition((XSDComplexTypeDefinition) part.getTypeDefinition());
-      }
-      else
-      // if (part.getTypeDefinition() instanceof XSDSimpleTypeDefinition)
-      {
-        concreteComponents.add(part);
-      }
-    }
-
-    void visitXSDElementDeclaration(XSDElementDeclaration ed)
-    {
-      XSDTypeDefinition td = ed.getTypeDefinition();
-      if (td instanceof XSDSimpleTypeDefinition)
-      {
-        concreteComponents.add(ed);
-      }
-      else if (td instanceof XSDComplexTypeDefinition)
-      {
-        thingsToListenTo.add(ed);
-        visitXSDComplextTypeDefinition((XSDComplexTypeDefinition) td);
-      }
-    }
-
-    void visitXSDComplextTypeDefinition(XSDComplexTypeDefinition td)
-    {
-      // TODO (cs) revisit to see if it makes sense for the WSDL editor to redisplay
-      // the 'Fields' (in XSD editor lingo) as paramters
-      // perhaps the WSDL Editor should simply reuse the XSD Editor's
-      // ComplexType edit part when displaying these sections?
-      W11XSDVisitorForFields fieldVisitor = new W11XSDVisitorForFields();
-      fieldVisitor.visitComplexTypeDefinition(td);
-      concreteComponents.addAll(fieldVisitor.getConcreteComponentList());
-      thingsToListenTo.addAll(fieldVisitor.getThingsWeNeedToListenTo());
-    }
-  }
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/DesignViewContextMenuProvider.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/DesignViewContextMenuProvider.java
deleted file mode 100644
index aa1ca8b..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/DesignViewContextMenuProvider.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.design;
-
-import org.eclipse.gef.ContextMenuProvider;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPartViewer;
-import org.eclipse.gef.commands.CommandStack;
-import org.eclipse.gef.ui.actions.ActionRegistry;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.wsdl.asd.design.editparts.ColumnEditPart;
-import org.eclipse.wst.wsdl.asd.design.editparts.model.IActionProvider;
-import org.eclipse.wst.wsdl.asd.editor.ASDEditorPlugin;
-import org.eclipse.wst.wsdl.asd.editor.actions.BaseSelectionAction;
-
-
-public class DesignViewContextMenuProvider extends ContextMenuProvider
-{
-  ISelectionProvider selectionProvider;
-
-  /**
-   * Constructor for GraphContextMenuProvider.
-   * 
-   * @param selectionProvider
-   * @param editor
-   */
-  public DesignViewContextMenuProvider(EditPartViewer viewer, ISelectionProvider selectionProvider)
-  {
-    super(viewer);
-    this.selectionProvider = selectionProvider;
-  }
-  
-  protected Object getAppropriateSelection(Object selection) {
-	  if (selection instanceof ColumnEditPart) {
-		  return ((EditPart) selection).getParent();
-	  }
-	  
-	  return selection;
-  }
-
-  /**
-   * @see org.eclipse.gef.ui.parts.ContextMenuProvider#buildContextMenu(org.eclipse.jface.action.IMenuManager,
-   *      org.eclipse.gef.EditPartViewer)
-   */
-  public void buildContextMenu(IMenuManager menu)
-  {
-	IMenuManager currentMenu = menu;
-    currentMenu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-    ActionRegistry registry = getEditorActionRegistry();
-    ISelection selection = selectionProvider.getSelection();
-    
-    Object activePart = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActivePart();
-    
-    if (selection != null)
-    {
-      Object selectedObject = ((StructuredSelection) selection).getFirstElement();
-      selectedObject = getAppropriateSelection(selectedObject);
-      if (selectedObject instanceof IActionProvider)
-      {
-        IActionProvider actionProvider = (IActionProvider) selectedObject;
-        String[] actions = actionProvider.getActions(activePart);
-        for (int i = 0; i < actions.length; i++)
-        {
-        	String id = actions[i];
-        	if (id.startsWith(BaseSelectionAction.SUBMENU_START_ID)) {
-        		String text = id.substring(BaseSelectionAction.SUBMENU_START_ID.length());
-        		IMenuManager subMenu = new MenuManager(text);
-        		currentMenu.add(subMenu);
-        		currentMenu = subMenu;
-        	}
-        	else if (id.startsWith(BaseSelectionAction.SUBMENU_END_ID)) {
-        		currentMenu = getParentMenu(menu, currentMenu);
-        	}
-        	else {
-	            IAction action = registry.getAction(id);
-	            if (action != null)
-	            {  
-	              currentMenu.add(action);
-	            }
-        	}
-        }
-        
-        menu.add(new Separator());       
-        menu.add(new Separator("refactoring-slot-temp")); 
-        menu.add(new Separator());       
-        menu.add(new Separator("search_slot_temp"));       
-        menu.add(new Separator());
-      }
-    }    
-    menu.add(new Separator());
-  }
-
-  protected IMenuManager getParentMenu(IMenuManager root, IMenuManager child) {
-	  IMenuManager parent = null;
-	  
-	  IContributionItem[] kids = root.getItems();
-	  int index = 0;
-	  while (index < kids.length && parent == null) {
-		  IContributionItem item = kids[index];
-		  if (item.equals(child)) {
-			  parent = root;
-		  }
-		  else {
-			  if (item instanceof IMenuManager) {
-				  parent = getParentMenu((IMenuManager) item, child);
-			  }
-		  }
-		  index++;
-	  }
-	  
-	  return parent;
-  }
-  
-  protected ActionRegistry getEditorActionRegistry()
-  {
-    return (ActionRegistry) ASDEditorPlugin.getActiveEditor().getAdapter(ActionRegistry.class);
-  }
-  protected CommandStack commandStack;
-
-  protected CommandStack getCommandStack()
-  {
-    if (commandStack == null)
-      commandStack = getViewer().getEditDomain().getCommandStack();
-    return commandStack;
-  }
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/DesignViewGraphicalViewer.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/DesignViewGraphicalViewer.java
deleted file mode 100644
index 4a1ad6d..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/DesignViewGraphicalViewer.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.design;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.ui.parts.ScrollingGraphicalViewer;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.wst.wsdl.asd.editor.ASDSelectionManager;
-
-public class DesignViewGraphicalViewer extends ScrollingGraphicalViewer implements ISelectionChangedListener
-{
-  protected ASDSelectionChangedListener internalSelectionProvider = new ASDSelectionChangedListener();
-
-	  public DesignViewGraphicalViewer(IEditorPart editor, ASDSelectionManager manager)
-	  {
-	    super();
-	    setContextMenu(new DesignViewContextMenuProvider(this, this));
-	    editor.getEditorSite().registerContextMenu("org.eclipse.wst.wsdl.editor.popup.graph", getContextMenu(), internalSelectionProvider, false);
-
-	    // make the internalSelectionProvider listen to graph view selection changes
-	    addSelectionChangedListener(internalSelectionProvider);    
-	    internalSelectionProvider.addSelectionChangedListener(manager);
-	    manager.addSelectionChangedListener(this);  
-	  }
-	  
-	  // this method is called when something changes in the selection manager
-	  // (e.g. a selection occured from another view)
-	  public void selectionChanged(SelectionChangedEvent event)
-	  {
-	    Object selectedObject = ((StructuredSelection) event.getSelection()).getFirstElement();
-	    if (event.getSource() != internalSelectionProvider)
-	    {
-	    	EditPart editPart = getEditPart(getRootEditPart(), selectedObject);
-	    	if (editPart != null)
-	    	{
-	    		setSelection(new StructuredSelection(editPart));
-	    	}   
-	    }
-	  }
-	  
-	  protected EditPart getEditPart(EditPart editPart, Object model)  
-	  {                     
-	    EditPart result = null;
-	    if (editPart.getModel() == model)
-	    {
-	      result = editPart;      
-	    }                   
-	    else
-	    {
-	      for (Iterator i = editPart.getChildren().iterator(); i.hasNext(); )
-	      {
-	        result = getEditPart((EditPart)i.next(), model);
-	        if (result != null)
-	        {
-	          break;
-	        }
-	      }
-	    }
-	    return result;
-	  }
-	  
-	  /*
-	   * We need to convert from edit part selections to model object selections
-	   */
-	  class ASDSelectionChangedListener implements ISelectionProvider, ISelectionChangedListener
-	  {
-	    protected List listenerList = new ArrayList();
-	    protected ISelection selection = new StructuredSelection();
-
-	    public void addSelectionChangedListener(ISelectionChangedListener listener)
-	    {
-	      listenerList.add(listener);
-	    }
-
-	    public void removeSelectionChangedListener(ISelectionChangedListener listener)
-	    {
-	      listenerList.remove(listener);
-	    }
-
-	    public ISelection getSelection()
-	    {
-	      return selection;
-	    }
-
-	    protected void notifyListeners(SelectionChangedEvent event)
-	    {
-	      for (Iterator i = listenerList.iterator(); i.hasNext();)
-	      {
-	        ISelectionChangedListener listener = (ISelectionChangedListener) i.next();
-	        listener.selectionChanged(event);
-	      }
-	    }
-
-	    public StructuredSelection convertSelectionFromEditPartToModel(ISelection editPartSelection)
-	    {
-	      List selectedModelObjectList = new ArrayList();
-	      if (editPartSelection instanceof IStructuredSelection)
-	      {
-	        for (Iterator i = ((IStructuredSelection) editPartSelection).iterator(); i.hasNext();)
-	        {
-	          Object obj = i.next();
-	          Object model = null;
-	          if (obj instanceof EditPart)
-	          {
-	            EditPart editPart = (EditPart) obj;
-	            model = editPart.getModel();          
-	          }
-	          if (model != null)
-	          {
-	            selectedModelObjectList.add(model);
-	          }
-	        }
-	      }
-	      return new StructuredSelection(selectedModelObjectList);
-	    }
-
-	    public void setSelection(ISelection selection)
-	    {
-	      this.selection = selection;
-	    }
-
-	    public void selectionChanged(SelectionChangedEvent event)
-	    {
-	      ISelection newSelection = convertSelectionFromEditPartToModel(event.getSelection());
-	      this.selection = newSelection;
-	      SelectionChangedEvent newEvent = new SelectionChangedEvent(this, newSelection);
-	      notifyListeners(newEvent);
-	    }
-	  } 
-	}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/connections/CenteredConnectionAnchor.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/connections/CenteredConnectionAnchor.java
deleted file mode 100644
index 6af87b6..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/connections/CenteredConnectionAnchor.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.design.connections;
-
-import org.eclipse.draw2d.AbstractConnectionAnchor;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.Rectangle;
-
-public class CenteredConnectionAnchor extends AbstractConnectionAnchor
-{
-  public static final int TOP = 0;
-  public static final int BOTTOM = 1;
-  public static final int LEFT = 2;
-  public static final int RIGHT = 3;
-  
-  // These two are custom for rectangles with header blocks
-  public static final int HEADER_LEFT = 4;
-  public static final int HEADER_RIGHT = 5;
-
-  private int location;
-  private int inset;
-  private int offset = 0;
-  
-  public CenteredConnectionAnchor(IFigure owner, int location, int inset) {
-    super(owner);
-    this.location = location;
-    this.inset = inset;
-  }
-  
-  public CenteredConnectionAnchor(IFigure owner, int location, int inset, int offset) {
-    this(owner, location, inset);
-    this.offset = offset;
-  }
-  
-  public Point getLocation(Point reference) {
-    Rectangle r = getOwner().getBounds();
-    int x, y;
-    switch (location) {
-      case TOP:
-        x = r.right() - r.width / 2 + offset;
-        y = r.y + inset;
-        break;
-      case BOTTOM:
-        x = r.right() - r.width / 2 + offset;
-        y = r.bottom() - inset;
-        break;
-      case LEFT:
-        x = r.x + inset;
-        y = r.bottom() - r.height / 2 + offset;
-        break;
-      case RIGHT:
-        x = r.right() - inset;
-        y = r.bottom() - r.height / 2 + offset;
-        break;
-      case HEADER_LEFT:
-        x = r.x + inset;
-        y = r.y + offset;
-        break;
-      case HEADER_RIGHT:
-        x = r.right() - inset;
-        y = r.y + offset;
-        break;        
-        
-      default:
-        // Something went wrong. Attach the anchor to the middle
-        x = r.right() - r.width / 2;
-        y = r.bottom() - r.height / 2;
-    }
-    Point p = new Point(x,y);
-
-    getOwner().translateToAbsolute(p);
-    return p;
-  }
-  
-  public Point getReferencePoint() {
-    return getLocation(null);
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/connections/TopLeftConnectionAnchor.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/connections/TopLeftConnectionAnchor.java
deleted file mode 100644
index dfc8a08..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/connections/TopLeftConnectionAnchor.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.design.connections;
-
-import org.eclipse.draw2d.AbstractConnectionAnchor;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.geometry.Point;
-
-public class TopLeftConnectionAnchor extends AbstractConnectionAnchor
-{ 
-  IFigure label;
-  public TopLeftConnectionAnchor(IFigure owner, IFigure label) {
-    super(owner);
-    this.label = label;
-  }
-  public Point getLocation(Point reference) {
-    int x = getOwner().getBounds().x;
-    int y = label.getBounds().y + label.getBounds().height / 2;
-    Point p = new Point(x,y);
-    getOwner().translateToAbsolute(p);
-    return p;
-  }
-  
-  public Point getReferencePoint() {
-    return getLocation(null);
-  }
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/directedit/ASDComboBoxCellEditor.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/directedit/ASDComboBoxCellEditor.java
deleted file mode 100644
index 2c53fe4..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/directedit/ASDComboBoxCellEditor.java
+++ /dev/null
@@ -1,300 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.design.directedit;
-
-import java.text.MessageFormat;
-
-import org.eclipse.jface.util.Assert;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.events.FocusAdapter;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.TraverseEvent;
-import org.eclipse.swt.events.TraverseListener;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.wst.xsd.adt.edit.ComponentReferenceEditManager;
-import org.eclipse.wst.xsd.adt.edit.IComponentDialog;
-
-/*
- * This is a copy of ComboBoxCellEditor.
- * We need to apply and deactivate the combo on a single click (not on a double click like
- * the ComboBoxCellEditor).
- */
-public class ASDComboBoxCellEditor extends CellEditor {
-
-    /**
-     * The list of items to present in the combo box.
-     */
-    private String[] items;
-
-    /**
-     * The zero-based index of the selected item.
-     */
-    int selection;
-
-    /**
-     * The custom combo box control.
-     */
-    CCombo comboBox;
-    
-    /**
-     * Used to determine if the value should be applied to the cell.
-     */
-    private boolean continueApply;    
-    private Object selectedValue;
-    private ComponentReferenceEditManager componentReferenceEditManager;
-
-    /**
-     * Default ComboBoxCellEditor style
-     */
-    private static final int defaultStyle = SWT.NONE;
-
-    /**
-     * Creates a new cell editor with a combo containing the given 
-     * list of choices and parented under the given control. The cell
-     * editor value is the zero-based index of the selected item.
-     * Initially, the cell editor has no cell validator and
-     * the first item in the list is selected. 
-     *
-     * @param parent the parent control
-     * @param items the list of strings for the combo box
-     */
-    public ASDComboBoxCellEditor(Composite parent, String[] items, ComponentReferenceEditManager editManager) {
-        super(parent, defaultStyle);
-        setItems(items);
-        componentReferenceEditManager = editManager;
-    }
-
-    /**
-     * Returns the list of choices for the combo box
-     *
-     * @return the list of choices for the combo box
-     */
-    public String[] getItems() {
-        return this.items;
-    }
-
-    /**
-     * Sets the list of choices for the combo box
-     *
-     * @param items the list of choices for the combo box
-     */
-    public void setItems(String[] items) {
-        Assert.isNotNull(items);
-        this.items = items;
-        populateComboBoxItems();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on CellEditor.
-     */
-    protected Control createControl(Composite parent) {
-
-        comboBox = new CCombo(parent, getStyle());
-        comboBox.setFont(parent.getFont());
-        
-        comboBox.addKeyListener(new KeyAdapter() {
-            // hook key pressed - see PR 14201  
-            public void keyPressed(KeyEvent e) {
-                keyReleaseOccured(e);
-            }
-        });
-
-        comboBox.addSelectionListener(new SelectionAdapter() {
-            public void widgetDefaultSelected(SelectionEvent event) {
-                applyEditorValueAndDeactivate();
-            }
-
-            public void widgetSelected(SelectionEvent event) {
-            	Object newValue = null;
-            	continueApply = true;
-            	selection = comboBox.getSelectionIndex();
-            	String stringSelection = items[selection];
-            	
-            	if (stringSelection.equals("Browse...")) {
-            		newValue = invokeDialog(componentReferenceEditManager.getBrowseDialog());
-            	}
-            	else if (stringSelection.equals("New...")) {
-            		newValue = invokeDialog(componentReferenceEditManager.getNewDialog());
-            	}
-
-            	if (continueApply) {
-            		if (newValue == null) {
-            			int index = comboBox.getSelectionIndex();              
-            			if (index != -1) {
-            				selectedValue = comboBox.getItem(index);
-            			}
-            		}
-            		else {
-            			selectedValue = newValue;
-            		}
-
-            		applyEditorValueAndDeactivate();
-            	}
-            }
-        });
-
-        comboBox.addTraverseListener(new TraverseListener() {
-            public void keyTraversed(TraverseEvent e) {
-                if (e.detail == SWT.TRAVERSE_ESCAPE
-                        || e.detail == SWT.TRAVERSE_RETURN) {
-                    e.doit = false;
-                }
-            }
-        });
-
-        comboBox.addFocusListener(new FocusAdapter() {
-            public void focusLost(FocusEvent e) {
-                ASDComboBoxCellEditor.this.focusLost();
-            }
-        });
-        return comboBox;
-    }
-    
-    private Object invokeDialog(IComponentDialog dialog) {
-  	  Object newValue = null;
-  	  
-  	  if (dialog == null) {
-  		  return null;
-  	  }
-  	  
-  	  if (dialog.createAndOpen() == Window.OK) {
-  		  newValue = dialog.getSelectedComponent();
-  	  }
-  	  else {
-  		  continueApply = false;
-  	  }
-
-  	  return newValue;
-    }  
-
-    /**
-     * The <code>ComboBoxCellEditor</code> implementation of
-     * this <code>CellEditor</code> framework method returns
-     * the zero-based index of the current selection.
-     *
-     * @return the zero-based index of the current selection wrapped
-     *  as an <code>Integer</code>
-     */
-    protected Object doGetValue() {
-        return new Integer(selection);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on CellEditor.
-     */
-    protected void doSetFocus() {
-        comboBox.setFocus();
-    }
-
-    /**
-     * The <code>ComboBoxCellEditor</code> implementation of
-     * this <code>CellEditor</code> framework method sets the 
-     * minimum width of the cell.  The minimum width is 10 characters
-     * if <code>comboBox</code> is not <code>null</code> or <code>disposed</code>
-     * eles it is 60 pixels to make sure the arrow button and some text is visible.
-     * The list of CCombo will be wide enough to show its longest item.
-     */
-    public LayoutData getLayoutData() {
-        LayoutData layoutData = super.getLayoutData();
-        if ((comboBox == null) || comboBox.isDisposed())
-            layoutData.minimumWidth = 60;
-        else {
-            // make the comboBox 10 characters wide
-            GC gc = new GC(comboBox);
-            layoutData.minimumWidth = (gc.getFontMetrics()
-                    .getAverageCharWidth() * 10) + 10;
-            gc.dispose();
-        }
-        return layoutData;
-    }
-
-    /**
-     * The <code>ComboBoxCellEditor</code> implementation of
-     * this <code>CellEditor</code> framework method
-     * accepts a zero-based index of a selection.
-     *
-     * @param value the zero-based index of the selection wrapped
-     *   as an <code>Integer</code>
-     */
-    protected void doSetValue(Object value) {
-        Assert.isTrue(comboBox != null && (value instanceof Integer));
-        selection = ((Integer) value).intValue();
-        comboBox.select(selection);
-    }
-
-    /**
-     * Updates the list of choices for the combo box for the current control.
-     */
-    private void populateComboBoxItems() {
-        if (comboBox != null && items != null) {
-            comboBox.removeAll();
-            for (int i = 0; i < items.length; i++)
-                comboBox.add(items[i], i);
-
-            setValueValid(true);
-            selection = 0;
-        }
-    }
-
-    /**
-     * Applies the currently selected value and deactiavates the cell editor
-     */
-    void applyEditorValueAndDeactivate() {
-        //	must set the selection before getting value
-        selection = comboBox.getSelectionIndex();
-        Object newValue = doGetValue();
-        markDirty();
-        boolean isValid = isCorrect(newValue);
-        setValueValid(isValid);
-        if (!isValid) {
-            // try to insert the current value into the error message.
-            setErrorMessage(MessageFormat.format(getErrorMessage(),
-                    new Object[] { items[selection] }));
-        }
-        fireApplyEditorValue();
-        deactivate();
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.jface.viewers.CellEditor#focusLost()
-     */
-    protected void focusLost() {
-        if (isActivated()) {
-            applyEditorValueAndDeactivate();
-        }
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.jface.viewers.CellEditor#keyReleaseOccured(org.eclipse.swt.events.KeyEvent)
-     */
-    protected void keyReleaseOccured(KeyEvent keyEvent) {
-        if (keyEvent.character == '\u001b') { // Escape character
-            fireCancelEditor();
-        } else if (keyEvent.character == '\t') { // tab key
-            applyEditorValueAndDeactivate();
-        }
-    }
-    
-    public Object getSelectedValue() {
-    	return selectedValue;
-    }
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/directedit/ComboBoxCellEditorManager.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/directedit/ComboBoxCellEditorManager.java
deleted file mode 100644
index 02af45a..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/directedit/ComboBoxCellEditorManager.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.design.directedit;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.tools.CellEditorLocator;
-import org.eclipse.gef.tools.DirectEditManager;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ComboBoxCellEditor;
-import org.eclipse.jface.viewers.ICellEditorListener;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-
-public abstract class ComboBoxCellEditorManager extends DirectEditManager
-{
-  protected Label label;
-
-  public ComboBoxCellEditorManager(GraphicalEditPart source, Label label)
-  {
-	  super(source, ComboBoxCellEditor.class, new InternalCellEditorLocator(label));
-    this.label = label;                        
-  }
-
-  protected void initCellEditor() 
-  {                                             
-  	String initialLabelText = label.getText();   
-
-    CCombo combo = (CCombo)getCellEditor().getControl();
-   	combo.setFont(label.getFont());
-    combo.setForeground(label.getForegroundColor());
-    combo.setBackground(label.getBackgroundColor());
-    combo.setVisibleItemCount(20);
-    combo.setEditable(false);
-
-  ICellEditorListener cellEditorListener = new ICellEditorListener()
-  {
-    public void cancelEditor()
-    {
-    }
-    public void applyEditorValue()
-    {
-    }
-    public void editorValueChanged(boolean old, boolean newState)
-    {
-    }
-  };
-  getCellEditor().addListener(cellEditorListener);
-
-    String[] item = combo.getItems();
-    for (int i = 0; i < item.length; i++)
-    {
-      if (item[i].equals(initialLabelText))
-      {
-	      getCellEditor().setValue(new Integer(i));
-        break;
-      }
-    } 	
-  }	 
-         
-  // hack... for some reason the ComboBoxCellEditor does't fire an editorValueChanged to set the dirty flag
-  // unless we overide this method to return true, the manager is not notified of changes made in the cell editor
-  protected boolean isDirty()
-  {
-	  return true;
-  }
-
-  protected CellEditor createCellEditorOn(Composite composite)
-  { 
-    boolean isLabelTextInList = false;                                       
-    List list = computeComboContent();
-    for (Iterator i = list.iterator(); i.hasNext(); )
-    {
-      String string = (String)i.next();
-      if (string.equals(label.getText()))
-      {                               
-         isLabelTextInList = true;
-         break;
-      }
-    } 
-         
-    if (!isLabelTextInList)
-    {
-      list.add(label.getText());
-    }
-                                               
-    List sortedList = computeSortedList(list);
-    String[] stringArray = new String[sortedList.size()];
-    for (int i = 0; i < stringArray.length; i++)
-    {
-      stringArray[i] = (String)sortedList.get(i);
-    }
-    return createCellEditor(composite, stringArray);
-  }
-  
-  protected CellEditor createCellEditor(Composite composite, String[] stringArray)
-  {
-    return new ComboBoxCellEditor(composite, stringArray);    
-  }
-
-  protected List computeSortedList(List list)
-  {
-    return list;
-  }
-
-  protected abstract List computeComboContent(); 
-
-  protected abstract void performModify(Object value);
-
-  public static class InternalCellEditorLocator implements CellEditorLocator
-  {
-    protected Label label;
-
-    public InternalCellEditorLocator(Label label)
-    {
-      this.label = label;
-    }                   
-
-    public void relocate(CellEditor celleditor) 
-    {
-        CCombo combo = (CCombo)celleditor.getControl();  
-	    Rectangle labelParentBounds = label.getParent().getBounds().getCopy();
-	    label.translateToAbsolute(labelParentBounds);
-	    
-	    int x = labelParentBounds.x;
-	    int y = labelParentBounds.y;
-	    int widthK = labelParentBounds.width;
-	    int height = labelParentBounds.height;
-	    combo.setBounds(x, y + 1, widthK, height - 2);
-    }
-  } 
-   
-  public void performEdit(CellEditor cellEditor)
-  {
-	  ASDComboBoxCellEditor comboCellEditor = (ASDComboBoxCellEditor) cellEditor;
-	  CCombo combo = (CCombo)getCellEditor().getControl();
-	  int index = combo.getSelectionIndex();              
-	  if (index != -1)
-	  {
-		  Object value = combo.getItem(index);
-		  if (comboCellEditor.getSelectedValue() != null) {
-			  value = comboCellEditor.getSelectedValue();
-		  }
-		  
-		  performModify(value);
-	  }
-	  else
-	  {
-		  String typedValue = combo.getText();	
-		  if (combo.indexOf(typedValue) != -1)
-		  {	      
-			  performModify(typedValue);
-		  }      	
-		  else
-		  {
-			  String closeMatch = getCloseMatch(typedValue, combo.getItems());
-			  if (closeMatch != null)
-			  {
-				  performModify(closeMatch);      	
-			  }
-			  else
-			  {      	
-				  Display.getCurrent().beep();
-			  }
-		  }
-	  }    	                                                
-  }
-  
-  protected String getCloseMatch(String value, String[] items)
-  {
-    int matchIndex = -1;
-
-    for (int i = 0; i < items.length; i++)
-    {
-    	String item = items[i];
-    	String a = getLocalName(value);
-    	String b = getLocalName(item);
-		  if (a.equalsIgnoreCase(b))
-		  { 
-			  matchIndex = i;
-			  break;				
-		  }	    	     
-    }  
-    return matchIndex != -1 ? items[matchIndex] : null;
-  }
-  
-  protected String getLocalName(String string)
-  {
-		int index = string.indexOf(":");
-	  return (index != -1) ? string.substring(index + 1) : string;  
-  }
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/directedit/DirectEditSelectionTool.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/directedit/DirectEditSelectionTool.java
deleted file mode 100644
index 43d5e47..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/directedit/DirectEditSelectionTool.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.design.directedit;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPartViewer;
-import org.eclipse.gef.Tool;
-import org.eclipse.gef.tools.SelectionTool;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.wst.wsdl.asd.design.editparts.INamedEditPart;
-
-/**
- * Extends the default GEF selection tools to send the
- * mouse events
- */
-public class DirectEditSelectionTool extends SelectionTool {
-	protected INamedEditPart partUnderCursor = null;
-	
-	public void mouseDown(MouseEvent me, EditPartViewer viewer) {
-		EditPart focusEditPartOld = viewer.getFocusEditPart();
-		setViewer(viewer);
-		super.mouseDown(me,viewer);
-		EditPart focusEditPart = viewer.getFocusEditPart();
-		if(focusEditPart instanceof INamedEditPart) {
-			Tool tool = focusEditPart.getViewer().getEditDomain().getActiveTool();
-			if(!(tool instanceof DirectEditTool)) {
-				tool = new DirectEditTool();
-				viewer.getEditDomain().setActiveTool(tool);
-			}
-			if(focusEditPartOld != focusEditPart) {
-				tool.mouseDown(me,viewer);
-			}
-		}
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/directedit/DirectEditTool.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/directedit/DirectEditTool.java
deleted file mode 100644
index 710e296..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/directedit/DirectEditTool.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.design.directedit;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.draw2d.FigureCanvas;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.EditDomain;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPartViewer;
-import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
-import org.eclipse.gef.tools.AbstractTool;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.wst.wsdl.asd.design.editparts.INamedEditPart;
-
-public class DirectEditTool extends AbstractTool {
-	public DirectEditTool() {}
-	/* (non-Javadoc)
-	 * @see org.eclipse.gef.tools.AbstractTool#getCommandName()
-	 */
-	protected String getCommandName() {
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.gef.tools.AbstractTool#getDebugName()
-	 */
-	protected String getDebugName() {
-		return null;
-	}
-	
-	protected INamedEditPart getSelectedPart() {
-		if(getCurrentViewer() == null)
-			return null;
-		EditPart ep = getCurrentViewer().getFocusEditPart();
-		if(ep instanceof INamedEditPart && ep.isActive())
-			return (INamedEditPart)ep;
-		return null;
-	}
-
-	protected boolean handleFocusGained() {
-		return false;
-	}
-	
-	protected boolean handleFocusLost() {
-		return false;
-	}	
-	
-	protected boolean handleButtonDown(int button) {
-		INamedEditPart selectedPart = getSelectedPart();
-		
-		if(selectedPart != null) {
-			Input i = getCurrentInput();
-			Point l = translateLocation(i.getMouseLocation());
-			
-			IFigure f = ((AbstractGraphicalEditPart) selectedPart).getFigure();
-			Rectangle bounds = f.getBounds();
-			if(bounds.contains(l.x,l.y)) {
-				selectedPart.performDirectEdit(translateLocation(new Point(l.x, l.y)));
-				return true;
-			}
-		}
-		return true;
-	}
-	
-	public void mouseDown(MouseEvent me, EditPartViewer viewer) {
-		super.mouseDown(me,viewer);
-
-		IFigure f = null;
-		Point loc = translateLocation(new Point(me.x,me.y));
-		if(f == null || !f.getBounds().contains(loc) || childContains(f,loc)) {
-			EditDomain ed = getDomain();
-			ed.loadDefaultTool();
-			ed.getActiveTool().mouseDown(me,viewer);
-		}
-	}
-	private boolean childContains(IFigure f,Point loc) {
-		if(f == null)
-			return false;
-		List children = f.getChildren();
-		for (Iterator iter = children.iterator(); iter.hasNext();) {
-			IFigure child = (IFigure) iter.next();
-			if(child.getBounds().contains(loc) || childContains(child,loc))
-				return true;
-		}
-		return false;
-	}
-
-	protected Point translateLocation(Point mouseLocation) {
-		FigureCanvas canvas = (FigureCanvas)getCurrentViewer().getControl();
-		Point viewLocation = canvas.getViewport().getViewLocation();
-		return new Point(mouseLocation.x + viewLocation.x,mouseLocation.y + viewLocation.y);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/directedit/LabelCellEditorLocator.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/directedit/LabelCellEditorLocator.java
deleted file mode 100644
index e44d603..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/directedit/LabelCellEditorLocator.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.design.directedit;
-
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.tools.CellEditorLocator;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.wst.wsdl.asd.design.editparts.INamedEditPart;
-
-public class LabelCellEditorLocator implements CellEditorLocator {
-	private INamedEditPart namedEditPart;
-	private Point cursorLocation;
-
-	public LabelCellEditorLocator(INamedEditPart namedEditPart, Point cursorLocation) {
-		this.namedEditPart = namedEditPart;
-		this.cursorLocation = cursorLocation;
-	}
-	
-	public void relocate(CellEditor celleditor) {
-		Text text = (Text)celleditor.getControl();
-		if (text.getBounds().x <= 0 && namedEditPart.getLabelFigure() != null) {
-			Label label = namedEditPart.getLabelFigure();
-			Rectangle boundingRect = label.getTextBounds();
-
-			// Reduce the width by the amount we shifted along the x-axis
-			int delta = Math.abs(boundingRect.x - label.getParent().getBounds().x);
-//			boundingRect.width = tableCellFigure.getPreferredSize().width - delta;
-			
-			label.getParent().translateToAbsolute(boundingRect);
-			org.eclipse.swt.graphics.Rectangle trim = text.computeTrim(0, 0, 0, 0);
-			boundingRect.translate(trim.x, trim.y);
-//			boundingRect.width = boundingRect.width - trim.x;
-			boundingRect.height = boundingRect.height - trim.y;
-			
-			boundingRect.width = label.getParent().getBounds().width - delta;
-			text.setBounds(boundingRect.x, boundingRect.y, boundingRect.width, boundingRect.height);
-			
-			// Translate point
-			Point translatedPoint = new Point(cursorLocation.x - boundingRect.x,cursorLocation.y - boundingRect.y);
-			
-			// Calculate text offset corresponding to the translated point
-			text.setSelection(0, 0);
-			int xCaret = text.getCaretLocation().x;
-			int offset = text.getCaretPosition();
-			while (xCaret < translatedPoint.x) {
-				text.setSelection(offset + 1, offset + 1);			
-				xCaret = text.getCaretLocation().x;
-				int newOffset = text.getCaretPosition();
-				if (newOffset == offset) {
-					break;
-				}
-				offset++;
-			}
-			text.setSelection(offset, offset);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/directedit/LabelEditManager.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/directedit/LabelEditManager.java
deleted file mode 100644
index 1128db0..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/directedit/LabelEditManager.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.design.directedit;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.tools.CellEditorLocator;
-import org.eclipse.gef.tools.DirectEditManager;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.part.CellEditorActionHandler;
-import org.eclipse.wst.wsdl.asd.design.DesignViewGraphicsConstants;
-import org.eclipse.wst.wsdl.asd.design.editparts.INamedEditPart;
-import org.eclipse.wst.wsdl.asd.editor.ASDEditorPlugin;
-
-public class LabelEditManager extends DirectEditManager {
-
-	private IActionBars actionBars;
-	private CellEditorActionHandler actionHandler;
-	private IAction copy, cut, paste, undo, redo, find, selectAll, delete;
-	private Font scaledFont;
-
-	public LabelEditManager(GraphicalEditPart source, CellEditorLocator locator) {
-		super(source, null, locator);
-	}
-
-	/**
-	 * @see org.eclipse.gef.tools.DirectEditManager#bringDown()
-	 */
-	protected void bringDown() {
-		if (actionHandler != null) {
-			actionHandler.dispose();
-			actionHandler = null;
-		}
-		if (actionBars != null) {
-			restoreSavedActions(actionBars);
-			actionBars.updateActionBars();
-			actionBars = null;
-		}
-
-		Font disposeFont = scaledFont;
-		scaledFont = null;
-		super.bringDown();
-		if (disposeFont != null)
-			disposeFont.dispose();
-	}
-	
-	public void showFeedback() {
-		getEditPart().showSourceFeedback(getDirectEditRequest());
-	}
-
-	protected CellEditor createCellEditorOn(Composite composite) {
-		return new TextCellEditor(composite, SWT.SINGLE | SWT.WRAP);
-	}
-
-	protected void initCellEditor() {
-		Text text = (Text)getCellEditor().getControl();
-		Label label = ((INamedEditPart) getEditPart()).getLabelFigure();
-		
-		if (label != null) {
-			scaledFont = label.getFont();
-			
-			// TODO: rmah:  hack here to set the background color of the
-			// direct edit Text.  Solution is to make the Text transparent...
-			Color color = label.getBackgroundColor();
-			if (color.equals(DesignViewGraphicsConstants.tableCellSelectionColor)) {
-				text.setBackground(color);
-			}
-			else {
-				text.setBackground(ColorConstants.lightBlue);
-			}
-			
-			String initialLabelText = label.getText();
-			getCellEditor().setValue(initialLabelText);
-		}
-		else {
-			scaledFont = label.getParent().getFont();
-			text.setBackground(label.getParent().getBackgroundColor());
-		}
-		
-		FontData data = scaledFont.getFontData()[0];
-		Dimension fontSize = new Dimension(0, data.getHeight());
-		label.getParent().translateToAbsolute(fontSize);
-		data.setHeight(fontSize.height);
-		scaledFont = new Font(null, data);
-		
-		text.setFont(scaledFont);
-//		text.selectAll();
-
-		// Hook the cell editor's copy/paste actions to the actionBars so that they can
-		// be invoked via keyboard shortcuts.
-		actionBars = ASDEditorPlugin.getActiveEditor().getEditorSite().getActionBars();
-		saveCurrentActions(actionBars);
-		actionHandler = new CellEditorActionHandler(actionBars);
-		actionHandler.addCellEditor(getCellEditor());
-		actionBars.updateActionBars();
-	}
-
-	private void restoreSavedActions(IActionBars actionBars){
-		actionBars.setGlobalActionHandler(ActionFactory.COPY.getId(), copy);
-		actionBars.setGlobalActionHandler(ActionFactory.PASTE.getId(), paste);
-		actionBars.setGlobalActionHandler(ActionFactory.DELETE.getId(), delete);
-		actionBars.setGlobalActionHandler(ActionFactory.SELECT_ALL.getId(), selectAll);
-		actionBars.setGlobalActionHandler(ActionFactory.CUT.getId(), cut);
-		actionBars.setGlobalActionHandler(ActionFactory.FIND.getId(), find);
-		actionBars.setGlobalActionHandler(ActionFactory.UNDO.getId(), undo);
-		actionBars.setGlobalActionHandler(ActionFactory.REDO.getId(), redo);
-	}
-
-	private void saveCurrentActions(IActionBars actionBars) {
-		copy = actionBars.getGlobalActionHandler(ActionFactory.COPY.getId());
-		paste = actionBars.getGlobalActionHandler(ActionFactory.PASTE.getId());
-		delete = actionBars.getGlobalActionHandler(ActionFactory.DELETE.getId());
-		selectAll = actionBars.getGlobalActionHandler(ActionFactory.SELECT_ALL.getId());
-		cut = actionBars.getGlobalActionHandler(ActionFactory.CUT.getId());
-		find = actionBars.getGlobalActionHandler(ActionFactory.FIND.getId());
-		undo = actionBars.getGlobalActionHandler(ActionFactory.UNDO.getId());
-		redo = actionBars.getGlobalActionHandler(ActionFactory.REDO.getId());
-	}
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/directedit/TypeReferenceDirectEditManager.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/directedit/TypeReferenceDirectEditManager.java
deleted file mode 100644
index 37be106..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/directedit/TypeReferenceDirectEditManager.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.design.directedit;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.draw2d.Label;
-import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSpecification;
-import org.eclipse.wst.wsdl.asd.editor.ASDEditorPlugin;
-import org.eclipse.wst.wsdl.asd.editor.ASDMultiPageEditor;
-import org.eclipse.wst.wsdl.asd.facade.IParameter;
-import org.eclipse.wst.xsd.adt.edit.ComponentReferenceEditManager;
-
-public class TypeReferenceDirectEditManager extends ComboBoxCellEditorManager
-{
-  protected AbstractGraphicalEditPart editPart;                                                
-  protected IParameter setObject;
-  
-  public TypeReferenceDirectEditManager(IParameter parameter, AbstractGraphicalEditPart source, Label label)
-  {
-    super(source, label);
-    editPart = source;
-    setObject = parameter;
-  }
-  
-  protected CellEditor createCellEditorOn(Composite composite)
-  {
-	  return super.createCellEditorOn(composite);
-  }
-
-  protected List computeComboContent()
-  {
-	    List list = new ArrayList();
-	    ComponentReferenceEditManager editManager = getComponentReferenceEditManager();
-	    if (editManager != null)
-	    {
-	       list.add("Browse...");
-	       list.add("New...");
-	       ComponentSpecification[] quickPicks = editManager.getQuickPicks();
-	       if (quickPicks != null)
-	       {
-	         for (int i=0; i < quickPicks.length; i++)
-	         {
-	           ComponentSpecification componentSpecification = quickPicks[i];
-	           list.add(componentSpecification.getName());
-	         }  
-	       }
-	       ComponentSpecification[] history = editManager.getHistory();
-	       if (history != null)
-	       {
-	         for (int i=0; i < history.length; i++)
-	         {
-	           ComponentSpecification componentSpecification = history[i];
-	           list.add(componentSpecification.getName());
-	         }  
-	       }
-	    } 
-	    return list; 
-  }
-
-  public void performModify(Object value)
-  {
-	    ComponentReferenceEditManager editManager = getComponentReferenceEditManager();
-	    if (editManager == null)
-	    {
-	      return;
-	    }
-	    
-	    // our crude combo box can only work with 'String' objects
-	    // if we get a String back we need to do some clever mapping to get the ComponentSpecification 
-	    //    
-	    if (value instanceof String)
-	    {
-	      value = getComponentSpecificationForValue((String)value);     
-	    }  
-	    // we assume the selected value is always of the form of a ComponentSpecification
-	    // 
-	    if (value instanceof ComponentSpecification)      
-	    {
-			editManager.modifyComponentReference(getEditPart().getModel(), (ComponentSpecification) value);
-	    }
-  } 
-
-  protected List computeSortedList(List list)
-  {
-//    return TypesHelper.sortList(list);
-	  return list;
-  }
-  
-  protected CellEditor createCellEditor(Composite composite, String[] stringArray)
-  {
-    ASDComboBoxCellEditor cellEditor = new ASDComboBoxCellEditor(composite, stringArray, getComponentReferenceEditManager());
-    //((ADTComboBoxCellEditor) cellEditor).setObjectToModify(setObject);
-    return cellEditor;
-  }
-
-	public ComponentReferenceEditManager getComponentReferenceEditManager() {
-		ASDMultiPageEditor editor = (ASDMultiPageEditor) ASDEditorPlugin.getActiveEditor();
-		return (ComponentReferenceEditManager) editor.getAdapter(ComponentReferenceEditManager.class);
-	}
-	
-	// TODO: rmah: This code should live in a common place..... This code is also used in other UI scenarios when
-	// a similar combo box is used.  For example in the properties...(ParameterSection)  Also used in the XSDEditor...
-	protected ComponentSpecification getComponentSpecificationForValue(String value)
-	{
-		ComponentReferenceEditManager editManager = getComponentReferenceEditManager();
-		if (editManager != null)
-		{  
-			ComponentSpecification[] quickPicks = editManager.getQuickPicks();
-			if (quickPicks != null)
-			{
-				for (int i=0; i < quickPicks.length; i++)
-				{
-					ComponentSpecification componentSpecification = quickPicks[i];
-					if (value.equals(componentSpecification.getName()))
-					{
-						return componentSpecification;
-					}                
-				}  
-			}
-			ComponentSpecification[] history = editManager.getHistory();
-			if (history != null)
-			{
-				for (int i=0; i < history.length; i++)
-				{
-					ComponentSpecification componentSpecification = history[i];
-					if (value.equals(componentSpecification.getName()))
-					{  
-						return componentSpecification;
-					}
-				}  
-			}
-		}
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/ASDEditPartFactory.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/ASDEditPartFactory.java
deleted file mode 100644
index ca56ab0..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/ASDEditPartFactory.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.design.editparts;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPartFactory;
-import org.eclipse.jface.util.Assert;
-import org.eclipse.wst.wsdl.asd.design.editparts.model.AbstractModelCollection;
-import org.eclipse.wst.wsdl.asd.design.editparts.model.BindingColumn;
-import org.eclipse.wst.wsdl.asd.facade.IBinding;
-import org.eclipse.wst.wsdl.asd.facade.IBindingMessageReference;
-import org.eclipse.wst.wsdl.asd.facade.IBindingOperation;
-import org.eclipse.wst.wsdl.asd.facade.IDescription;
-import org.eclipse.wst.wsdl.asd.facade.IEndPoint;
-import org.eclipse.wst.wsdl.asd.facade.IInterface;
-import org.eclipse.wst.wsdl.asd.facade.IMessageReference;
-import org.eclipse.wst.wsdl.asd.facade.IOperation;
-import org.eclipse.wst.wsdl.asd.facade.IParameter;
-import org.eclipse.wst.wsdl.asd.facade.IService;
-
-public class ASDEditPartFactory implements EditPartFactory
-{
-  public EditPart createEditPart(EditPart context, Object model)
-  {
-    EditPart child = null;
-    if (model instanceof IDescription)
-    {
-      child = new DefinitionsEditPart();
-    }
-    else if (model instanceof AbstractModelCollection)
-    {
-      AbstractModelCollection collection = (AbstractModelCollection)model;
-      if (collection instanceof BindingColumn)
-      {
-        child = new BindingColumnEditPart();
-      }
-      else
-      {  
-        child = new ColumnEditPart();
-      }  
-    }
-    else if (model instanceof IEndPoint)
-    {
-      child = new EndPointEditPart();
-    }
-    else if (model instanceof IService)
-    {
-      child = new ServiceEditPart();
-    }
-    else if (model instanceof IBinding)
-    {
-      child = new BindingEditPart();
-    }
-    else if (model instanceof IBindingOperation ||
-             model instanceof IBindingMessageReference)
-    {
-      child = new BindingContentEditPart();
-    }  
-    else if (model instanceof IInterface)
-    {
-      child = new InterfaceEditPart();
-    }
-    else if (model instanceof IMessageReference)
-    {
-      child = new MessageReferenceEditPart();
-    }
-    else if (model instanceof IOperation)
-    {
-      child = new OperationEditPart();
-    }
-    else if (model instanceof IParameter && context instanceof ParameterEditPart) {
-    	child = new ParameterTypeEditPart();
-    }
-    else if (model instanceof IParameter && context instanceof MessageReferenceEditPart)
-    {
-      child = new ParameterEditPart();
-    }
-    if (child == null)
-    {
-      System.out.println("\nCould not create editpart for model: " + model);
-      Thread.dumpStack();
-    }
-    Assert.isNotNull(child);
-    child.setModel(model);
-    return child;
-  }
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/ASDRootEditPart.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/ASDRootEditPart.java
deleted file mode 100644
index 574c085..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/ASDRootEditPart.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.design.editparts;
-
-import org.eclipse.draw2d.BendpointConnectionRouter;
-import org.eclipse.draw2d.ConnectionLayer;
-import org.eclipse.gef.LayerConstants;
-import org.eclipse.gef.editparts.ScalableRootEditPart;
-
-public class ASDRootEditPart extends ScalableRootEditPart implements org.eclipse.gef.RootEditPart
-{  
-  public void activate()
-  {
-    super.activate();
-    // Set up Connection layer with a router, if it doesn't already have one
-    ConnectionLayer connectionLayer = (ConnectionLayer) getLayer(LayerConstants.CONNECTION_LAYER);
-    if (connectionLayer != null)
-    {  
-//      connectionLayer.setConnectionRouter(new ManhattanConnectionRouter());
-      connectionLayer.setConnectionRouter(new BendpointConnectionRouter());
-    }
-    refresh();
-  }
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/AbstractBoxtEditPart.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/AbstractBoxtEditPart.java
deleted file mode 100644
index 1492f13..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/AbstractBoxtEditPart.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.design.editparts;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.LineBorder;
-import org.eclipse.draw2d.ToolbarLayout;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.tools.DirectEditManager;
-import org.eclipse.wst.wsdl.asd.design.directedit.LabelCellEditorLocator;
-import org.eclipse.wst.wsdl.asd.design.directedit.LabelEditManager;
-import org.eclipse.wst.wsdl.asd.design.editpolicies.LabelDirectEditPolicy;
-import org.eclipse.wst.wsdl.asd.design.editpolicies.WSDLSelectionEditPolicy;
-import org.eclipse.wst.wsdl.asd.design.figures.BoxComponentFigure;
-import org.eclipse.wst.wsdl.asd.design.layouts.ColumnData;
-import org.eclipse.wst.wsdl.ui.internal.adapters.WSDLBaseAdapter;
-
-public abstract class AbstractBoxtEditPart extends BaseEditPart implements INamedEditPart
-{
-  protected ColumnData columnData = new ColumnData();
-  protected BoxComponentFigure figure;
-  
-  protected IFigure createFigure()
-  {
-    figure = new BoxComponentFigure();
-    figure.setBorder(new LineBorder(1));
-    ToolbarLayout toolbarLayout = new ToolbarLayout();
-    toolbarLayout.setStretchMinorAxis(true);
-    // toolbarLayout.setMinorAlignment(ToolbarLayout.ALIGN_BOTTOMRIGHT);
-    figure.setLayoutManager(toolbarLayout);
-    // if(isScrollable())
-    // figure.setScrollingActionListener(this);
-    return figure;
-  }
-
-  public IFigure getContentPane()
-  {
-    return ((BoxComponentFigure) getFigure()).getContentPane();
-  }
-
-  protected void createEditPolicies()
-  {
-	  installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new LabelDirectEditPolicy());
-	  installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, new WSDLSelectionEditPolicy());
-  }
-
-  private DirectEditManager manager;
-  
-  public void performDirectEdit(Point cursorLocation){
-	  if (hitTest(figure.getLabel(), cursorLocation)) {
-		  manager = new LabelEditManager(this, new LabelCellEditorLocator(this, cursorLocation));
-		  manager.show();
-	  }
-  }
-  
-  public Label getLabelFigure() {
-	  return figure.getLabel();
-  }
-
-  protected void refreshChildren()
-  {
-    super.refreshChildren();
-    // getFigure().invalidateTree();
-  }
-
-  protected void refreshVisuals()
-  {
-    super.refreshVisuals();
-    WSDLBaseAdapter box = (WSDLBaseAdapter) getModel();
-    ((BoxComponentFigure) getFigure()).getLabel().setText(box.getName());
-  }
-
-  public void addFeedback()
-  {
-	  LineBorder boxFigureLineBorder = (LineBorder) figure.getBorder();
-	  boxFigureLineBorder.setWidth(2);
-	  boxFigureLineBorder.setColor(ColorConstants.darkBlue);
-	  figure.setSelected(true);
-	  figure.repaint();
-  }
-
-  public void removeFeedback()
-  {
-	  LineBorder boxFigureLineBorder = (LineBorder) figure.getBorder();
-	  boxFigureLineBorder.setWidth(1);
-	  boxFigureLineBorder.setColor(ColorConstants.black);
-	  figure.setSelected(false);
-	  figure.repaint();
-  }
-
-  public ColumnData getColumnData()
-  {
-    return columnData;
-  }
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/BaseEditPart.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/BaseEditPart.java
deleted file mode 100644
index c180195..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/BaseEditPart.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.design.editparts;
-
-import java.util.List;
-
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
-import org.eclipse.wst.wsdl.asd.design.editparts.model.IActionProvider;
-import org.eclipse.wst.wsdl.asd.facade.IASDObject;
-import org.eclipse.wst.wsdl.asd.facade.IASDObjectListener;
-
-
-public abstract class BaseEditPart extends AbstractGraphicalEditPart implements IActionProvider, IASDObjectListener, IFeedbackHandler
-{
-  protected static final String[] EMPTY_ACTION_ARRAY = {};
-  public String[] getActions(Object object)
-  {
-    Object model = getModel();
-    if (model instanceof IActionProvider)
-    {
-      return ((IActionProvider)model).getActions(object);
-    }  
-    return EMPTY_ACTION_ARRAY;
-  }
-  
-  protected void addActionsToList(List list, String[] actions)
-  {
-    for (int i = 0; i < actions.length; i++)
-    {
-      list.add(actions[i]);
-    }  
-  }
-  
-  public void activate()
-  {
-    super.activate();
-    Object model = getModel();    
-    if (model instanceof IASDObject)
-    {
-      IASDObject object = (IASDObject)model;
-      object.registerListener(this);
-    }      
-  }
-  
-  public void deactivate()
-  {
-    Object model = getModel();
-    if (model instanceof IASDObject)
-    {
-      IASDObject object = (IASDObject)model;
-      object.unregisterListener(this);
-    }   
-    super.deactivate();
-  }  
-  
-  public void propertyChanged(Object object, String property)
-  {
-    //System.out.println("propertyChanged " + this.getClass().getName());
-    refresh();
-  }
-  
-  public void addFeedback() {
-	  
-  }
-  public void removeFeedback() {
-	  
-  }
-  
-  protected boolean hitTest(Label target, Point location) {
-	  Rectangle origB = target.getTextBounds().getCopy();
-	  Rectangle transB = target.getTextBounds().getCopy();
-
-	  target.translateToAbsolute(transB);
-
-	  int newX = origB.x + Math.abs(transB.x - origB.x);
-	  int newY = origB.y + Math.abs(transB.y - origB.y);	  
-	  Rectangle finalB = new Rectangle(newX, newY, origB.width, origB.height);
-
-	  return finalB.contains(location);
-  }
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/BindingColumnEditPart.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/BindingColumnEditPart.java
deleted file mode 100644
index 5ec4cda..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/BindingColumnEditPart.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.design.editparts;
-
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.LayoutAnimator;
-import org.eclipse.wst.wsdl.asd.design.layouts.BindingColumnLayout;
-
-public class BindingColumnEditPart extends ColumnEditPart
-{
-  protected IFigure createFigure()
-  {
-    Figure figure = new Figure();
-    //figure.setOpaque(true);
-    //figure.setBackgroundColor(ColorConstants.yellow);
-    // custom layout that can do animation
-    //
-    BindingColumnLayout layout = new BindingColumnLayout();
-    figure.setLayoutManager(layout);
-    return figure;
-  }  
-  
-  protected void register()
-  {
-    super.register();
-    getFigure().addLayoutListener(LayoutAnimator.getDefault());    
-  }
-  
-  protected void unregister()
-  {
-    getFigure().removeLayoutListener(LayoutAnimator.getDefault());   
-    super.unregister();
-  }
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/BindingContentEditPart.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/BindingContentEditPart.java
deleted file mode 100644
index 50e4a18..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/BindingContentEditPart.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.design.editparts;
-
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.MarginBorder;
-import org.eclipse.draw2d.ToolbarLayout;
-import org.eclipse.wst.wsdl.asd.facade.IBindingOperation;
-
-// This class is used to represent a BindingOperation, BindingInput, BindingOutput and BindingFault
-//
-public class BindingContentEditPart extends BaseEditPart
-{  
-  Label label;
-  protected IFigure createFigure()
-  {
-    Figure figure = new Figure();
-    figure.setOpaque(true);
-    figure.setBackgroundColor(ColorConstants.tooltipBackground);
-    ToolbarLayout toolbarLayout = new ToolbarLayout(true);
-    toolbarLayout.setStretchMinorAxis(true);
-    figure.setLayoutManager(toolbarLayout);
-    label = new Label();
-    label.setBorder(new MarginBorder(5, 5, 2, 2));    
-    figure.add(label);
-    return figure;
-  }
-  
-  
-  protected List getModelChildren()
-  {
-    return Collections.EMPTY_LIST;
-  }  
-  
-  protected void refreshVisuals()
-  {
-    if (getModel() instanceof IBindingOperation)
-    {  
-      IBindingOperation bindingOperation = (IBindingOperation) getModel();
-      label.setIcon(bindingOperation.getImage());
-      label.setText(bindingOperation.getName());
-    }  
-    super.refreshVisuals();    
-  }  
-  
-  protected void createEditPolicies()
-  {    
-  }
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/BindingEditPart.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/BindingEditPart.java
deleted file mode 100644
index d1f120a..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/BindingEditPart.java
+++ /dev/null
@@ -1,292 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.design.editparts;
-
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.LayoutManager;
-import org.eclipse.draw2d.LineBorder;
-import org.eclipse.draw2d.MarginBorder;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.LayerConstants;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.RequestConstants;
-import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
-import org.eclipse.wst.wsdl.asd.design.connections.CenteredConnectionAnchor;
-import org.eclipse.wst.wsdl.asd.design.connections.TopLeftConnectionAnchor;
-import org.eclipse.wst.wsdl.asd.design.editpolicies.WSDLSelectionEditPolicy;
-import org.eclipse.wst.wsdl.asd.design.figures.BoxComponentFigure;
-import org.eclipse.wst.wsdl.asd.design.figures.ComponentReferenceConnection;
-import org.eclipse.wst.wsdl.asd.design.layouts.BindingColumnLayout;
-import org.eclipse.wst.wsdl.asd.design.layouts.BindingContentLayout;
-import org.eclipse.wst.wsdl.asd.design.layouts.BindingLayout;
-import org.eclipse.wst.wsdl.asd.editor.outline.ITreeElement;
-import org.eclipse.wst.wsdl.asd.facade.IBinding;
-
-public class BindingEditPart extends BaseEditPart
-{
-  protected ComponentReferenceConnection connectionFigure;
-  protected BoxComponentFigure figure;
-  protected boolean isExpanded = false;
-
-  protected IFigure createFigure()
-  {
-    figure = new BoxComponentFigure();
-    figure.getLabel().setBorder(new MarginBorder(2, 2, 1, 2));
-    figure.setBorder(new LineBorder(0));
-    figure.getContentPane().setLayoutManager(new BindingContentLayout(this));
-    figure.getContentPane().setOpaque(true);
-    figure.getContentPane().setBackgroundColor(ColorConstants.yellow);
-    figure.setLayoutManager(new BindingLayout(this));
-    // if(isScrollable())
-    // figure.setScrollingActionListener(this);
-    return figure;
-  }
-
-  public IFigure getContentPane()
-  {
-    return ((BoxComponentFigure) getFigure()).getContentPane();
-  }
-
-  protected List getModelChildren()
-  {
-    IBinding binding = (IBinding) getModel();  
-    return isExpanded ? binding.getBindingContentList() : Collections.EMPTY_LIST;
-  }
-
-  public void activate()
-  {
-    super.activate();
-    activateConnection();
-  }
-
-  public void deactivate()
-  {
-    super.deactivate();
-    deactivateConnection();
-  }
-
-  public void addFeedback()
-  {
-    super.addFeedback();
-    LineBorder boxFigureLineBorder = (LineBorder) figure.getBorder();
-    boxFigureLineBorder.setWidth(2);
-    boxFigureLineBorder.setColor(ColorConstants.darkBlue);
-    figure.setSelected(true);
-    figure.repaint();
-    if (connectionFigure != null)
-    {
-      connectionFigure.setHighlight(true);
-      getLayer(LayerConstants.FEEDBACK_LAYER).add(connectionFigure);
-    }
-  }
-
-  public void removeFeedback()
-  {
-    super.removeFeedback();
-    LineBorder boxFigureLineBorder = (LineBorder) figure.getBorder();
-    boxFigureLineBorder.setWidth(1);
-    boxFigureLineBorder.setColor(ColorConstants.black);
-    figure.setSelected(false);
-    figure.repaint();
-    if (connectionFigure != null)
-    {
-      connectionFigure.setHighlight(false);
-      getLayer(LayerConstants.CONNECTION_LAYER).add(connectionFigure);
-    }
-  }
-
-
-  protected void activateConnection()
-  {
-    // If appropriate, create our connectionFigure and add it to the appropriate
-    // layer
-    if (createConnectionFigure() != null)
-    {
-      // Add our editpolicy as a listener on the connection, so it can stay in
-      // synch
-      // connectionFigure.addPropertyChangeListener((AttributeSelectionFeedbackPolicy)
-      // getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE));
-      // connectionFigure.addMouseListener(this);
-      getLayer(LayerConstants.CONNECTION_LAYER).add(connectionFigure);
-    }
-  }
-
-  protected void deactivateConnection()
-  {
-    if (connectionFigure != null)
-    {
-      boolean removed = false;
-      removed = removeConnectionFigure(getLayer(LayerConstants.CONNECTION_LAYER));
-      if (!removed)
-      {
-        removeConnectionFigure(getLayer(LayerConstants.FEEDBACK_LAYER));
-      }
-    }
-  }
-  
-
-  private boolean removeConnectionFigure(IFigure parent)
-  {
-    boolean contains = false;
-    Iterator it = parent.getChildren().iterator();
-    while (it.hasNext())
-    {
-      IFigure fig = (IFigure) it.next();
-      if (fig.equals(connectionFigure))
-      {
-        contains = true;
-        break;
-      }
-    }
-    if (contains)
-    {
-      parent.remove(connectionFigure);
-    }
-    return contains;
-  }
-
-  public ComponentReferenceConnection createConnectionFigure()
-  {
-    if (connectionFigure == null && shouldDrawConnection())
-    {
-      IBinding binding = (IBinding) getModel();
-      Object typeBeingRef = binding.getInterface();
-      if (typeBeingRef != null)
-      {
-        AbstractGraphicalEditPart referenceTypePart = (AbstractGraphicalEditPart) getViewer().getEditPartRegistry().get(typeBeingRef);
-        if (referenceTypePart != null)
-        {
-          connectionFigure = new ComponentReferenceConnection();
-          refreshConnections();
-        }
-      }
-    }
-    return connectionFigure;
-  }
-
-  protected boolean shouldDrawConnection()
-  {
-    if (isExpanded)
-    {  
-      return false;
-    }  
-    IBinding binding = (IBinding) getModel();
-    Object typeBeingRef = binding.getInterface();
-    if (typeBeingRef != null)
-    {
-      AbstractGraphicalEditPart referenceTypePart = (AbstractGraphicalEditPart) getViewer().getEditPartRegistry().get(typeBeingRef);
-      if (referenceTypePart != null)
-      {
-        return true;
-      }
-    }
-    return false;
-  }
-
-  protected void refreshVisuals()
-  {
-    refreshConnections();
-    if (getModel() instanceof ITreeElement)
-    {  
-      ITreeElement treeElement = (ITreeElement)getModel();
-      figure.getLabel().setIcon(treeElement.getImage());
-    }  
-    //getViewer().getEditPartRegistry().put(Lay.class, controller);
-    super.refreshVisuals();    
-  }
-  
-  protected AbstractGraphicalEditPart getConnectionTargetEditPart()
-  {
-    IBinding binding = (IBinding) getModel();
-    Object typeBeingRef = binding.getInterface();
-    if (connectionFigure != null)
-    {
-      AbstractGraphicalEditPart referenceTypePart = (AbstractGraphicalEditPart) getViewer().getEditPartRegistry().get(typeBeingRef);
-      return referenceTypePart;
-    }
-    return null;
-  }
-
-  protected void refreshConnections()
-  {
-    if (shouldDrawConnection())
-    {
-      IBinding binding = (IBinding) getModel();
-      Object typeBeingRef = binding.getInterface();
-      if (connectionFigure != null)
-      {
-        AbstractGraphicalEditPart referenceTypePart = (AbstractGraphicalEditPart) getViewer().getEditPartRegistry().get(typeBeingRef);
-        BoxComponentFigure boxComponentFigure = (BoxComponentFigure) referenceTypePart.getFigure();
-        connectionFigure.setSourceAnchor(new CenteredConnectionAnchor(getFigure(), CenteredConnectionAnchor.RIGHT, 0));
-        connectionFigure.setTargetAnchor(new TopLeftConnectionAnchor(boxComponentFigure, boxComponentFigure.getLabel()));
-        connectionFigure.setHighlight(false);
-        connectionFigure.setVisible(true);
-      }
-      else
-      {
-        activateConnection();
-      }
-    }
-    else if (connectionFigure != null)
-    {
-      connectionFigure.setVisible(false);
-    }
-  }
-
-  protected void createEditPolicies()
-  {
-     installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, new WSDLSelectionEditPolicy());
-  }
-
-  public boolean isExpanded()
-  {
-    return isExpanded;
-  }
-
-  public void setExpanded(boolean isExpanded)
-  {
-    this.isExpanded = isExpanded;
-  }
-  
-  public void performRequest(Request request)
-  {  
-	  if (request.getType() == RequestConstants.REQ_OPEN)
-    {                                         
-		  isExpanded = !isExpanded;
-	      LayoutManager layoutManager = getFigure().getParent().getLayoutManager();
-	      AbstractGraphicalEditPart snapToEditPart = getConnectionTargetEditPart();
-	      if (layoutManager instanceof BindingColumnLayout && snapToEditPart != null)
-	      {           
-	        BindingColumnLayout animatedBindingLayout = (BindingColumnLayout)layoutManager;
-	        if (!isExpanded)
-	        {
-	          animatedBindingLayout.setExpandedBindingFigure(null);
-	        }
-	        else
-	        {  
-	          animatedBindingLayout.setExpandedBindingFigure(getFigure());
-	        }          
-	        animatedBindingLayout.setSnapToFigure(snapToEditPart.getFigure());
-	      }  
-	      //Animation.markBegin();                
-	      //Animation.run(700);        
-	      refresh();
-	      getFigure().invalidate();
-	      getFigure().getParent().invalidateTree();           
-	      getFigure().getParent().revalidate();
-    }
-  } 
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/ColumnEditPart.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/ColumnEditPart.java
deleted file mode 100644
index b6b1e8d..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/ColumnEditPart.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.design.editparts;
-
-import java.util.List;
-
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.ToolbarLayout;
-import org.eclipse.wst.wsdl.asd.design.editparts.model.AbstractModelCollection;
-import org.eclipse.wst.wsdl.asd.facade.IDescription;
-
-public class ColumnEditPart extends BaseEditPart
-{   
-  protected IFigure createFigure()
-  {
-    Figure figure = new Figure();
-    ToolbarLayout layout = new ToolbarLayout(false);
-    layout.setStretchMinorAxis(false);
-    layout.setSpacing(20);
-    figure.setLayoutManager(layout);
-    return figure;
-  }
-  
-  public IDescription getDescription()
-  {
-    return (IDescription)getModel();   
-  }
-
-  protected void createEditPolicies()
-  {
-    // TODO Auto-generated method stub
-  }
-  
-  protected List getModelChildren()
-  { 
-    AbstractModelCollection collection = (AbstractModelCollection)getModel();
-    return collection.getChildren();
-  }
-  
-  public void addFeedback() {
-	  
-  }
-  
-  public void removeFeedback() {
-	  
-  }
-}
-
-
-
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/DefinitionsEditPart.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/DefinitionsEditPart.java
deleted file mode 100644
index bb9c6d8..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/DefinitionsEditPart.java
+++ /dev/null
@@ -1,285 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.design.editparts;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.draw2d.AbstractLayout;
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Panel;
-import org.eclipse.draw2d.ToolbarLayout;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.wst.wsdl.asd.design.editparts.model.BindingColumn;
-import org.eclipse.wst.wsdl.asd.design.editparts.model.InterfaceColumn;
-import org.eclipse.wst.wsdl.asd.design.editparts.model.ServiceColumn;
-import org.eclipse.wst.wsdl.asd.facade.IDescription;
-import org.eclipse.wst.xsd.editor.internal.design.figures.SpacingFigure;
-
-public class DefinitionsEditPart extends BaseEditPart {
-	  List collections = null;
-	  Figure contentPane;
-	  
-	  protected IFigure createFigure()
-	  {    
-	    Panel panel = new Panel();    
-	    // why do we need to use a container layout?  can we just set a
-	    // margin border and get the same effect?
-	    ContainerLayout clayout = new ContainerLayout();
-	    clayout.setBorder(60);
-	    panel.setLayoutManager(clayout);
-	    
-	    // issue (cs) : why did we need a free form layer?
-	    contentPane = new Figure();
-	    panel.add(contentPane);
-	        
-	    ToolbarLayout layout = new ToolbarLayout(true);
-	    layout.setStretchMinorAxis(true);
-	    layout.setSpacing(0);
-	    contentPane.setLayoutManager(layout);
-	    return panel;
-	  }
-	  
-	  public IFigure getContentPane()
-	  {
-	    return contentPane;
-	  }
-	  
-
-	  protected void createEditPolicies()
-	  {
-	    // TODO Auto-generated method stub
-	  }
-	  
-	  protected List getModelChildren()
-	  { 
-	    if (collections == null)
-	    {
-	      collections = new ArrayList();
-	      
-	      IDescription description = (IDescription) getModel();
-	      if (description != null)
-	      {  
-	        collections.add(new ServiceColumn(description));
-	        collections.add(new BindingColumn(description));
-	        collections.add(new InterfaceColumn(description));
-	      }  
-	    }  
-	    return collections;
-	  }
-	  
-	  public void setInput(Object object)
-	  {    
-	  }
-	  
-	  // TODO: See if we really need this class.  See above.  If so, where should we
-	  // put this class?
-	  public class ContainerLayout extends AbstractLayout
-	  {                                         
-	    protected boolean isHorizontal;
-	    protected int spacing = 0;
-	    protected int border = 0; 
-
-	    public ContainerLayout()
-	    { 
-	      this(true, 0); 
-	    }             
-
-	    public ContainerLayout(boolean isHorizontal, int spacing)
-	    {
-	      this.isHorizontal = isHorizontal;   
-	      this.spacing = spacing;
-	    }  
-
-	    public void setHorizontal(boolean isHorizontal)
-	    {
-	      this.isHorizontal = isHorizontal;
-	    }  
-
-	    public void setSpacing(int spacing)
-	    {
-	      this.spacing = spacing;
-	    }  
-
-	    public void setBorder(int border)
-	    {
-	      this.border = border;
-	    }  
-
-	    protected int alignFigure(IFigure parent, IFigure child)
-	    { 
-	      return -1;
-	    }
-
-	    /**
-	     * Calculates and returns the preferred size of the container 
-	     * given as input.
-	     * 
-	     * @param figure  Figure whose preferred size is required.
-	     * @return  The preferred size of the passed Figure.
-	     * @since 2.0
-	     */
-	    protected Dimension calculatePreferredSizeHelper(IFigure parent)
-	    { 
-	      Dimension	preferred = new Dimension();
-	    	List children = parent.getChildren();
-	  		                                        
-	  	  for (int i=0; i < children.size(); i++)
-	      {
-	  		  IFigure child = (IFigure)children.get(i);      
-	      
-	        Dimension	childSize = child.getPreferredSize();
-	  	  
-	        if (isHorizontal)
-	        {
-	  		    preferred.width += childSize.width;
-	  		    preferred.height = Math.max(preferred.height, childSize.height);
-	        }
-	        else
-	        {  
-	          preferred.height += childSize.height;
-	          preferred.width = Math.max(preferred.width, childSize.width);
-	        }
-	  	  }   
-
-	      int childrenSize = children.size();
-	      if (childrenSize > 1)
-	      {                      
-	        if (isHorizontal)    
-	        {
-	          preferred.width += spacing * (childrenSize - 1);
-	        }
-	        else
-	        {
-	  		    preferred.height += spacing * (childrenSize - 1);
-	        } 
-	      }
-	                            
-	      preferred.width += border * 2;
-	      preferred.height += border * 2;
-	  	  preferred.width += parent.getInsets().getWidth();
-	  	  preferred.height += parent.getInsets().getHeight();       
-	    
-	    	return preferred;
-	    }
-
-	    protected Dimension calculatePreferredSize(IFigure parent, int width, int height)
-	    {    
-	      Dimension	preferred = null;                                              
-	                                    
-	      // Here we ensure that an unexpanded container is given a size of (0,0)
-	      //
-//	      if (parent instanceof IExpandable)
-//	      {
-//	        IExpandable expandableFigure = (IExpandable)parent;
-//	        if (!expandableFigure.isExpanded())
-//	        {
-//	          preferred = new Dimension(); 
-//	        }
-//	      }   
-//	      
-	      if (preferred == null)
-	      {
-	  	    preferred = calculatePreferredSizeHelper(parent);    
-	      }
-	      
-	      return preferred;
-	    }
-	       
-
-	    protected void adjustLayoutLocation(IFigure parent, Dimension dimension)
-	    {     
-	    }   
-
-	    public void layout(IFigure parent)
-	    {       
-	    	List children = parent.getChildren();
-	   
-	      int rx = 0;
-	      Dimension	dimension = new Dimension();                                          
-
-
-	  	  for (int i=0; i < children.size(); i++)
-	      {
-	  		  IFigure child = (IFigure)children.get(i);
-	  		  Dimension	childSize = child.getPreferredSize();
-	        if (isHorizontal)
-	        {   
-	          dimension.height = Math.max(dimension.height, childSize.height);
-	          rx += childSize.width;
-	        }
-	        else
-	        {
-	          dimension.width = Math.max(dimension.width, childSize.width);
-	        }
-	      }
-
-	  	  //dimension.width += parent.getInsets().left;
-	      //dimension.height += parent.getInsets().top;
-
-	      if (isHorizontal)
-	      {
-	        dimension.height += border*2;
-	      	dimension.width += border;
-	      }
-	      else
-	      {
-	        dimension.width += border*2;
-	      	dimension.height += border;
-	      }
-	      adjustLayoutLocation(parent, dimension);    
-
-	      for (int i=0; i < children.size(); i++)
-	      {
-	        IFigure child = (IFigure)children.get(i);
-	  	    Dimension	childSize = child.getPreferredSize();
-	          
-	        if (isHorizontal)
-	        {   
-	          int y = -1; 
-	      
-	          y = alignFigure(parent, child);
-	      
-	          if (y == -1)
-	          {
-	             y = (dimension.height - childSize.height) / 2;                                      
-	          }                      
-	                                                     
-	          Rectangle rectangle = new Rectangle(dimension.width, y, childSize.width, childSize.height);
-	          rectangle.translate(parent.getClientArea().getLocation());                           
-
-
-	          child.setBounds(rectangle);                           
-	  	      dimension.width += childSize.width; 
-	          dimension.width += spacing;       
-
-	          if (child instanceof SpacingFigure)
-	          {          
-	            int availableHorizontalSpace = parent.getClientArea().width - rx;
-	            dimension.width += availableHorizontalSpace;
-	          }           
-	        }
-	        else
-	        {
-	          Rectangle rectangle = new Rectangle(0, dimension.height, childSize.width, childSize.height);
-	  	      rectangle.translate(parent.getClientArea().getLocation());                          
-	          
-
-	          child.setBounds(rectangle);  
-	          dimension.height += childSize.height;
-	          dimension.height += spacing;
-	        }
-	  	  }	      
-	    }                                      
-	  }
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/EndPointEditPart.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/EndPointEditPart.java
deleted file mode 100644
index 68abf7f..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/EndPointEditPart.java
+++ /dev/null
@@ -1,306 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.design.editparts;
-
-import java.util.Iterator;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.FigureCanvas;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.MarginBorder;
-import org.eclipse.draw2d.Panel;
-import org.eclipse.draw2d.RectangleFigure;
-import org.eclipse.draw2d.ToolbarLayout;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.EditPartViewer;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.GraphicalViewer;
-import org.eclipse.gef.LayerConstants;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
-import org.eclipse.gef.tools.DirectEditManager;
-import org.eclipse.wst.wsdl.asd.design.DesignViewGraphicsConstants;
-import org.eclipse.wst.wsdl.asd.design.connections.CenteredConnectionAnchor;
-import org.eclipse.wst.wsdl.asd.design.directedit.LabelCellEditorLocator;
-import org.eclipse.wst.wsdl.asd.design.directedit.LabelEditManager;
-import org.eclipse.wst.wsdl.asd.design.editpolicies.LabelDirectEditPolicy;
-import org.eclipse.wst.wsdl.asd.design.editpolicies.WSDLSelectionEditPolicy;
-import org.eclipse.wst.wsdl.asd.design.figures.ComponentReferenceConnection;
-import org.eclipse.wst.wsdl.asd.editor.ASDEditorPlugin;
-import org.eclipse.wst.wsdl.asd.editor.ASDMultiPageEditor;
-import org.eclipse.wst.wsdl.asd.facade.IEndPoint;
-
-public class EndPointEditPart extends BaseEditPart implements IFeedbackHandler, INamedEditPart
-{
-  protected Label nameLabel;
-  protected Label addressLabel;
-  protected Figure addressBoxFigure;
-  protected ComponentReferenceConnection connectionFigure;
-  protected final static int MAX_ADDRESS_WIDTH = 150;
-
-  protected IFigure createFigure()
-  {
-    figure = new Panel();
-    figure.setBorder(new MarginBorder(4));
-    ToolbarLayout layout = new ToolbarLayout(false);
-    // layout.setMinorAlignment(ToolbarLayout.ALIGN_TOPLEFT);
-    layout.setStretchMinorAxis(true);
-    figure.setLayoutManager(layout);
-    nameLabel = new Label();
-    nameLabel.setIcon(((IEndPoint) getModel()).getImage());
-    nameLabel.setLabelAlignment(Label.LEFT);
-    // nameLabel.setTextPlacement(PositionConstants.WEST);
-    figure.add(nameLabel);
-    Figure f1 = new Figure();
-    f1.setBorder(new MarginBorder(0, 20, 0, 0));
-    f1.setLayoutManager(new ToolbarLayout());
-    figure.add(f1);
-    addressBoxFigure = new RectangleFigure();
-    addressBoxFigure.setForegroundColor(ColorConstants.lightGray);
-    addressBoxFigure.setLayoutManager(new ToolbarLayout()
-    {
-      // here' we tweak the layout so that address labels aren't sized too wide
-      // the Label class automatically handles the addition of the '...' 
-      //
-      protected Dimension calculatePreferredSize(IFigure container, int wHint, int hHint)
-      {
-        Dimension d = super.calculatePreferredSize(container, wHint, hHint);
-        d.width = Math.min(d.width, MAX_ADDRESS_WIDTH);
-        return d;
-      }
-    });
-    f1.add(addressBoxFigure);
-    addressLabel = new Label();
-
-    addressLabel.setForegroundColor(ColorConstants.black);
-    addressLabel.setBorder(new MarginBorder(2, 6, 2, 6));
-    addressLabel.setLabelAlignment(Label.LEFT);
-    addressBoxFigure.add(addressLabel);
-    return figure;
-  }
-
-  protected void createEditPolicies()
-  {
-    installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new LabelDirectEditPolicy());
-    installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, new WSDLSelectionEditPolicy());
-  }
-  private DirectEditManager manager;
-  private Point cursorLocation;
-
-  public void performDirectEdit(Point cursorLocation)
-  {
-    this.cursorLocation = cursorLocation;
-    if (hitTest(getLabelFigure(), cursorLocation)) {
-    	manager = new LabelEditManager(this, new LabelCellEditorLocator(this, cursorLocation));
-    	manager.show();
-    }
-  }
-
-  public Label getLabelFigure()
-  {
-    if (translateBounds(nameLabel.getBounds()).contains(cursorLocation))
-    {
-      return nameLabel;
-    }
-    else if (translateBounds(addressLabel.getBounds()).contains(cursorLocation))
-    {
-      return addressLabel;
-    }
-    return null;
-  }
-  
-  protected Rectangle translateBounds(Rectangle bounds) {
-	  
-		ASDMultiPageEditor editor = (ASDMultiPageEditor) ASDEditorPlugin.getActiveEditor();
-		FigureCanvas canvas = (FigureCanvas) ((EditPartViewer) editor.getAdapter(GraphicalViewer.class)).getControl();
-		Point viewLocation = canvas.getViewport().getViewLocation();
-		
-		return new Rectangle(bounds.x + viewLocation.x, bounds.y + viewLocation.y, bounds.width, bounds.height);
-  }
-
-  protected Object getReferencedModel()
-  {
-    IEndPoint endPoint = (IEndPoint) getModel();
-    return endPoint.getBinding();
-  }
-
-  protected void refreshVisuals()
-  {
-    IEndPoint endPoint = (IEndPoint) getModel();
-    nameLabel.setText(endPoint.getName());
-    addressLabel.setText(endPoint.getAddress());
-    refreshConnections();
-    super.refreshVisuals();
-  }
-
-  public void activate()
-  {
-    super.activate();
-    activateConnection();
-  }
-  
-  public void deactivate()
-  {
-	  super.deactivate();
-	  deactivateConnection();
-  }
-
-  protected void activateConnection()
-  {
-    if (createConnectionFigure() != null)
-    {
-      getLayer(LayerConstants.CONNECTION_LAYER).add(connectionFigure);
-    }
-  }
-
-  protected void deactivateConnection()
-  {
-    if (connectionFigure != null)
-    {
-      boolean removed = false;
-      removed = removeConnectionFigure(getLayer(LayerConstants.CONNECTION_LAYER));
-      
-      if (!removed) {
-    	  removeConnectionFigure(getLayer(LayerConstants.FEEDBACK_LAYER));
-      }
-    }
-  }
-  
-  private boolean removeConnectionFigure(IFigure parent) {
-	  boolean contains = false;
-	  Iterator it = parent.getChildren().iterator();
-	  while (it.hasNext()) {
-		  IFigure fig = (IFigure) it.next();
-		  if (fig.equals(connectionFigure)) {
-			  contains = true;
-			  break;
-		  }
-	  }
-	  
-	  if (contains) {
-		  parent.remove(connectionFigure);
-	  }
-	  
-	  return contains;
-  }
-
-  protected boolean shouldDrawConnection()
-  {
-	  Object typeBeingRef = getReferencedModel();
-      if (typeBeingRef != null)
-      {
-        AbstractGraphicalEditPart referenceTypePart = (AbstractGraphicalEditPart) getViewer().getEditPartRegistry().get(typeBeingRef);
-        if (referenceTypePart != null)
-        {
-        	return true;
-        }
-      }
-      
-      return false;
-  }
-
-  public ComponentReferenceConnection createConnectionFigure()
-  {
-	  if (connectionFigure == null && shouldDrawConnection())
-	    {
-	      Object typeBeingRef = getReferencedModel();
-	      if (typeBeingRef != null)
-	      {
-	        AbstractGraphicalEditPart referenceTypePart = (AbstractGraphicalEditPart) getViewer().getEditPartRegistry().get(typeBeingRef);
-	        if (referenceTypePart != null)
-	        {
-	          // We do reference another Type. Build a connection. We can make
-	          // assumptions about anchor positioning since an attribute can only
-	          // have a "reference" relationship, no "inheritance", no
-	          // "is-referenced-by"
-	          connectionFigure = new ComponentReferenceConnection();
-	          refreshConnections();
-	        }
-	      }
-	    }
-	    return connectionFigure;
-  }
-
-  protected void refreshConnections() {
-	  if (shouldDrawConnection()) {
-		  Object typeBeingRef = getReferencedModel();
-		  if (connectionFigure != null) {
-			  AbstractGraphicalEditPart referenceTypePart = (AbstractGraphicalEditPart) getViewer().getEditPartRegistry().get(typeBeingRef);
-	          connectionFigure.setSourceAnchor(new CenteredConnectionAnchor(addressBoxFigure, CenteredConnectionAnchor.RIGHT, 0, 0));
-	          IFigure targetFigure = referenceTypePart.getFigure();
-	          connectionFigure.setTargetAnchor(new CenteredConnectionAnchor(targetFigure, CenteredConnectionAnchor.HEADER_LEFT, 0, 10));
-	          connectionFigure.setHighlight(false);
-	          connectionFigure.setVisible(true);
-		  }
-		  else {
-			  activateConnection();
-		  }
-	  }
-	  else if (connectionFigure != null){
-		  connectionFigure.setVisible(false);
-	  }
-  }
-
-  private IFigure getFigureForFeedback()
-  {
-    return figure;
-  }
-
-  public void addFeedback()
-  {
-    IFigure figure = getFigureForFeedback();
-    figure.setBackgroundColor(DesignViewGraphicsConstants.tableCellSelectionColor);
-    
-    if (connectionFigure != null) {
-    	connectionFigure.setHighlight(true);
-    	getLayer(LayerConstants.FEEDBACK_LAYER).add(connectionFigure);
-    }
-  }
-
-  public void removeFeedback()
-  {
-    IFigure figure = getFigureForFeedback();
-    figure.setBackgroundColor(figure.getParent().getBackgroundColor());
-    
-    if (connectionFigure != null) {
-    	connectionFigure.setHighlight(false);
-    	getLayer(LayerConstants.CONNECTION_LAYER).add(connectionFigure);
-    }
-  }
-
-  // TODO: rmah: VERY UGLY HACK.... I don't see any other way to solve this
-  // issue at this time.
-  // EndPointEditPart contains two labels which can be direct edited. The facade
-  // driving EndPointEditPart
-  // contains a getSetNameCommand() and a getSetAddressCommand()... however,
-  // this class (LabelDirectEditPolicy)
-  // only knows about getSetNameCommand()..... This is the problem we face when
-  // combining two labels into
-  // one EditPart.....
-  // See LabelDirectEditPolicy.getDirectEditCommand(DirectEditRequest)
-  public Command getSetProperLabelCommand(String newValue)
-  {
-    // TODO: rmah: We need to translate the point...
-    if (translateBounds(nameLabel.getBounds()).contains(cursorLocation))
-    {
-      return ((IEndPoint) getModel()).getSetNameCommand(newValue);
-    }
-    else if (translateBounds(addressLabel.getBounds()).contains(cursorLocation))
-    {
-      return ((IEndPoint) getModel()).getSetAddressCommand(newValue);
-    }
-    return null;
-  }
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/IFeedbackHandler.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/IFeedbackHandler.java
deleted file mode 100644
index 851338e..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/IFeedbackHandler.java
+++ /dev/null
@@ -1,16 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.design.editparts;
-
-public interface IFeedbackHandler {
-	public void addFeedback();
-	public void removeFeedback();
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/INamedEditPart.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/INamedEditPart.java
deleted file mode 100644
index 03865aa..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/INamedEditPart.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.design.editparts;
-
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.geometry.Point;
-
-public interface INamedEditPart {
-	public Label getLabelFigure();
-	public void performDirectEdit(Point cursorLocation);
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/InterfaceEditPart.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/InterfaceEditPart.java
deleted file mode 100644
index 0d86574..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/InterfaceEditPart.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.design.editparts;
-
-import java.util.List;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.LineBorder;
-import org.eclipse.draw2d.ToolbarLayout;
-import org.eclipse.gef.EditPart;
-import org.eclipse.wst.wsdl.asd.design.figures.BoxComponentFigure;
-import org.eclipse.wst.wsdl.asd.design.layouts.RowLayout;
-import org.eclipse.wst.wsdl.asd.facade.IInterface;
-
-public class InterfaceEditPart extends AbstractBoxtEditPart implements IFeedbackHandler
-{     
-  public InterfaceEditPart()
-  {
-    columnData.setColumnWeight("MessageLabel", 0);
-    columnData.setColumnWeight("MessageContentPane", 100);
-    columnData.setColumnWeight("parameterName", 50);
-    columnData.setColumnWeight("parameterType", 50);        
-  }
-  
-  protected IFigure createFigure()
-  {
-    BoxComponentFigure figure = (BoxComponentFigure)super.createFigure();
-    figure.getLabel().setIcon(((IInterface) getModel()).getImage());
-    figure.setBackgroundColor(ColorConstants.orange);
-    figure.setBorder(new LineBorder(1));
-    ToolbarLayout toolbarLayout = new ToolbarLayout(false);
-    toolbarLayout.setStretchMinorAxis(true);
-    figure.setLayoutManager(toolbarLayout);
-    return figure;
-  }
-  
-  public static void attachToInterfaceEditPart(EditPart editPart, RowLayout rowLayout)
-  {
-    for (EditPart parent = editPart.getParent(); parent != null; parent = parent.getParent())
-    {
-      if (parent instanceof InterfaceEditPart)
-      {
-        InterfaceEditPart interfaceEditPart = (InterfaceEditPart)parent;
-        rowLayout.setColumnData(interfaceEditPart.columnData);
-        break;
-      }  
-    }    
-  }
-  
-  protected void refreshChildren()
-  {
-    super.refreshChildren();
-  }
-  
-  protected void refreshVisuals()
-  {
-    super.refreshVisuals();
-  }
-
-  protected List getModelChildren()
-  {
-    IInterface theInterface = (IInterface)getModel();
-    return theInterface.getOperations();   
-  }
-  
-  public void addFeedback() {
-	  super.addFeedback();
-  }
-
-  public void removeFeedback() {
-	  super.removeFeedback();
-  } 
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/MessageReferenceEditPart.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/MessageReferenceEditPart.java
deleted file mode 100644
index 7d62376..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/MessageReferenceEditPart.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.design.editparts;
-
-import java.util.List;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.MarginBorder;
-import org.eclipse.draw2d.ToolbarLayout;
-import org.eclipse.wst.wsdl.asd.design.figures.ListFigure;
-import org.eclipse.wst.wsdl.asd.design.layouts.RowLayout;
-import org.eclipse.wst.wsdl.asd.facade.IMessageReference;
-
-public class MessageReferenceEditPart extends BaseEditPart implements IFeedbackHandler
-{   
-  protected Figure contentPane;  
-  protected Label label;
-  protected RowLayout rowLayout;
-  
-  protected IFigure createFigure()
-  {
-    ListFigure figure = new ListFigure(true);
-    figure.setOpaque(true);
-    figure.setPaintFirstLine(false);
-    figure.setBackgroundColor(ColorConstants.tooltipBackground);
-    
-    rowLayout = new RowLayout();
-    figure.setLayoutManager(rowLayout); 
-    label = new Label();
-    //label.setFont(DesignViewGraphicsConstants.mediumFont); 
-    label.setBorder(new MarginBorder(2, 16, 2 ,10));
-    figure.add(label);  
-    
-    /*
-    RectangleFigure partsList = new RectangleFigure();
-    partsList.setLayoutManager(new ToolbarLayout(false));
-    partsList.add(new Label("parts1"));
-    partsList.add(new Label("parst2"));
-    figure.add(partsList);
-    */
-    contentPane = new ListFigure();
-    contentPane.setForegroundColor(ColorConstants.lightGray);
-    ((ListFigure)contentPane).setOpaque(true);
-    contentPane.setBackgroundColor(ColorConstants.listBackground);
-    ToolbarLayout toolbarLayout = new ToolbarLayout(false);
-    /*
-    ToolbarLayout toolbarLayout = new ToolbarLayout(false)
-    {
-       // TODO (cs) consider minor tweak here to ensure that the row fills up the available space             
-       // vertically... without this a bit of trim is visible at the bottom of the list
-       // when the param labels are given a margin width top and bottom <  '4' 
-       public void layout(IFigure parent)
-       {
-         super.layout(parent);
-         if (children.size() == 1)
-         {
-            Figure child = (Figure)children.get(0);
-            //child.getBounds().height = parent.getClientArea().height;
-         }  
-       }
-    };     
-     */
-    toolbarLayout.setStretchMinorAxis(true);
-    contentPane.setLayoutManager(toolbarLayout);
-    figure.add(contentPane);
-    
-    rowLayout.setConstraint(label, "MessageLabel");
-    //rowLayout.setConstraint(partsList, "PartsList");
-    rowLayout.setConstraint(contentPane, "MessageContentPane");
-    return figure;
-  }
-  
-  protected void createEditPolicies()
-  {
-
-  }
-  
-  public IFigure getContentPane()
-  {
-    return contentPane;
-  }
-  
-  protected void refreshVisuals()
-  {   
-    super.refreshVisuals();
-    
-    IMessageReference message = (IMessageReference)getModel();    
-    label.setText(message.getText());
-    label.setIcon(message.getImage());
-  }
-
-  protected List getModelChildren()
-  {
-    IMessageReference theMessage = (IMessageReference)getModel();
-    return theMessage.getParameters();   
-  }
-
-  public void addNotify()
-  {
-    InterfaceEditPart.attachToInterfaceEditPart(this, rowLayout);
-    super.addNotify();    
-  }
-  
-  public void addFeedback() {
-	  	
-  }
-
-  public void removeFeedback() {
-	  
-  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/OperationEditPart.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/OperationEditPart.java
deleted file mode 100644
index e7c01b3..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/OperationEditPart.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.design.editparts;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.MarginBorder;
-import org.eclipse.draw2d.Panel;
-import org.eclipse.draw2d.ToolbarLayout;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.tools.DirectEditManager;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.wst.wsdl.asd.design.DesignViewGraphicsConstants;
-import org.eclipse.wst.wsdl.asd.design.directedit.LabelCellEditorLocator;
-import org.eclipse.wst.wsdl.asd.design.directedit.LabelEditManager;
-import org.eclipse.wst.wsdl.asd.design.editpolicies.LabelDirectEditPolicy;
-import org.eclipse.wst.wsdl.asd.design.editpolicies.WSDLSelectionEditPolicy;
-import org.eclipse.wst.wsdl.asd.design.figures.ListFigure;
-import org.eclipse.wst.wsdl.asd.facade.IMessageReference;
-import org.eclipse.wst.wsdl.asd.facade.IOperation;
-
-
-public class OperationEditPart extends BaseEditPart implements INamedEditPart
-{ 
-  protected Figure contentPane;
-  protected Label label;
-  protected Label previewLabel;
-  private Color unselectedColor;
-  private Figure labelHolder;
-  
-  public OperationEditPart()
-  {
-  }
-  
-  protected IFigure createFigure()
-  {
-    Figure figure = new Figure();
-    figure.setBackgroundColor(DesignViewGraphicsConstants.tableOperationHeadingColor);
-    ToolbarLayout toolbarLayout = new ToolbarLayout(false);   
-    toolbarLayout.setStretchMinorAxis(true);   
-    toolbarLayout.setMinorAlignment(ToolbarLayout.ALIGN_TOPLEFT);
-    figure.setLayoutManager(toolbarLayout);
-    
-    labelHolder = new Panel();
-    labelHolder.setBackgroundColor(DesignViewGraphicsConstants.tableOperationHeadingColor);
-    labelHolder.setLayoutManager(new ToolbarLayout(true));
-    figure.add(labelHolder);
-    
-    label = new Label("Operation");
-//    label.setFont(DesignViewGraphicsConstants.smallBoldFont);
-    label.setBorder(new MarginBorder(2, 2,2,2));
-    label.setTextAlignment(Label.LEFT);  
-    labelHolder.add(label);
-    
-    previewLabel = new Label("preivew");
-//    previewLabel.setFont(DesignViewGraphicsConstants.smallBoldFont);
-    previewLabel.setForegroundColor(ColorConstants.gray);
-    previewLabel.setBorder(new MarginBorder(2, 2,2,2));
-    previewLabel.setTextAlignment(Label.LEFT);  
-    labelHolder.add(previewLabel);
-    
-    
-    contentPane = new ListFigure();  
-    ToolbarLayout toolbarLayout2 = new ToolbarLayout(false);
-    toolbarLayout2.setStretchMinorAxis(true);
-    contentPane.setLayoutManager(toolbarLayout2);
-    figure.add(contentPane);
-        
-    return figure;
-  }
-  
-  protected void createEditPolicies()
-  {
-	  installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new LabelDirectEditPolicy());
-	  installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, new WSDLSelectionEditPolicy());
-  }
-  
-  private DirectEditManager manager;
-    
-  public void performDirectEdit(Point cursorLocation){
-	  if (hitTest(label, cursorLocation)) {
-		  manager = new LabelEditManager(this, new LabelCellEditorLocator(this, cursorLocation));
-		  manager.show();
-	  }
-  }
-  
-  public Label getLabelFigure() {
-	  return label;
-  }
-  
-  protected void refreshVisuals()
-  {   
-    super.refreshVisuals();
-    IOperation operation = (IOperation)getModel();
-    label.setText(operation.getName());// + "---" + getModel());
-    label.setIcon(operation.getImage());
-    
-    previewLabel.setText(getOperationPreview());
-  }
-  
-  protected String getOperationPreview() {
-	  String inputPreview = "()";
-	  String outputPreview = "()";
-	  
-	  Iterator kids = getModelChildren().iterator();
-	  while (kids.hasNext()) {
-		  Object kid = kids.next();
-		  if (kid instanceof IMessageReference) {
-			  IMessageReference messageRef = (IMessageReference) kid;
-			  if (messageRef.getKind() == IMessageReference.KIND_INPUT) {
-				  inputPreview = messageRef.getPreview();
-			  }
-			  else if (messageRef.getKind() == IMessageReference.KIND_OUTPUT) {
-				  outputPreview = messageRef.getPreview();
-			  }
-		  }
-	  }
-	  
-	  return inputPreview + " --> " + outputPreview;
-  }
-  
-  public IFigure getContentPane()
-  {
-    return contentPane;
-  }
-
-  protected List getModelChildren()
-  {
-    IOperation theOperation = (IOperation)getModel();
-    return theOperation.getMessages();
-  }
-  
-  public void addFeedback() {
-	  unselectedColor = labelHolder.getBackgroundColor();
-//	  getFigure().setBackgroundColor(DesignViewGraphicsConstants.tableCellSelectionColor);
-	  labelHolder.setBackgroundColor(DesignViewGraphicsConstants.tableCellSelectionColor);
-  }
-  
-  public void removeFeedback() {
-	  if (unselectedColor != null) {
-		  labelHolder.setBackgroundColor(unselectedColor);
-	  }
-  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/ParameterEditPart.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/ParameterEditPart.java
deleted file mode 100644
index 1d1ab95..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/ParameterEditPart.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.design.editparts;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.Graphics;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.MarginBorder;
-import org.eclipse.draw2d.Panel;
-import org.eclipse.draw2d.ToolbarLayout;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.tools.DirectEditManager;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.wsdl.asd.design.DesignViewGraphicsConstants;
-import org.eclipse.wst.wsdl.asd.design.directedit.LabelCellEditorLocator;
-import org.eclipse.wst.wsdl.asd.design.directedit.LabelEditManager;
-import org.eclipse.wst.wsdl.asd.design.editpolicies.LabelDirectEditPolicy;
-import org.eclipse.wst.wsdl.asd.design.editpolicies.WSDLSelectionEditPolicy;
-import org.eclipse.wst.wsdl.asd.design.layouts.RowLayout;
-import org.eclipse.wst.wsdl.asd.facade.IParameter;
-
-public class ParameterEditPart extends BaseEditPart implements IFeedbackHandler, INamedEditPart
-{   
-  protected Figure contentPane;
-  protected Label parameterName;
-  protected RowLayout rowLayout = new RowLayout();
-  protected Image labelImage;
-  
-  protected IFigure createFigure()
-  {
-    IFigure figure = new Figure()
-    {
-      public void paint(Graphics graphics)
-      {
-        super.paint(graphics);        
-        // this bit of code is used to draw the dividing line between
-        // the parameter name and the parameter type
-        // we might want to consider moving this line drawing into the 
-        // message reference's figure where the horizontal lines are down's
-        Rectangle r = parameterName.getBounds();
-        int x= r.x +  r.width -1;
-        graphics.setForegroundColor(ColorConstants.lightGray);
-        graphics.drawLine(x, r.y, x, r.y + r.height);
-      }
-    };        
-    //toolbarLayout.setMinorAlignment(ToolbarLayout.ALIGN_CENTER);
-    figure.setForegroundColor(ColorConstants.black);
-    figure.setLayoutManager(rowLayout); 
-    /*
-    String x = "";
-    int size = (int)(Math.random()*50);
-    for (int i = 0; i < size; i++)
-    {
-      x += "x";
-    }  
-    String y = "";
-    int sizey = (int)(Math.random()*50);
-    for (int i = 0; i < sizey; i++)
-    {
-      y += "y";
-    } */
-    
-    contentPane = new Figure();
-    ToolbarLayout toolbarLayout2 = new ToolbarLayout(false);
-    toolbarLayout2.setStretchMinorAxis(true);   
-    contentPane.setLayoutManager(toolbarLayout2);
-
-    IFigure parameterNamePane = new Panel();
-    toolbarLayout2 = new ToolbarLayout(false);  
-    toolbarLayout2.setStretchMinorAxis(true);   
-    parameterNamePane.setLayoutManager(toolbarLayout2);
-    
-    parameterName = new Label();
-    parameterName.setLabelAlignment(Label.LEFT);
-    parameterName.setBorder(new MarginBorder(4,10,4,10));
-    
-    parameterNamePane.add(parameterName);
-    figure.add(parameterNamePane);
-    figure.add(contentPane);
-    rowLayout.setConstraint(parameterNamePane, "parameterName");
-    rowLayout.setConstraint(contentPane, "parameterType");
-    
-    labelImage = ((IParameter) getModel()).getImage();
-    
-    return figure;
-  }
-  
-  public void addNotify()
-  {
-    InterfaceEditPart.attachToInterfaceEditPart(this, rowLayout);
-    super.addNotify();
-  }
-  
-  private DirectEditManager manager;
-  
-  public void performDirectEdit(Point cursorLocation){
-	  if (hitTest(parameterName, cursorLocation)) {
-		manager = new LabelEditManager(this, new LabelCellEditorLocator(this, cursorLocation));
-		manager.show();
-	  }
-  }
-  
-  protected void createEditPolicies()
-  {
-	  installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new LabelDirectEditPolicy());
-	  installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, new WSDLSelectionEditPolicy());
-  }
-  
-  public Label getLabelFigure() {
-	  return parameterName;
-  }
-  
-  protected void refreshVisuals()
-  {   
-    super.refreshVisuals();
-    IParameter parameter = (IParameter)getModel();
-    parameterName.setText(parameter.getName());
-    if (labelImage != null) {
-    	parameterName.setIcon(labelImage);
-    }
-  }
-  
-  protected List getModelChildren()
-  {
-	  // On the facade level, one IParameter will have two editable values.
-	  // A name and a type reference.  To make direct editing and selection
-	  // feedback easier, we show this one facade object as two edit parts.
-	  // The approach is to the same facade model, to drive the second (child
-	  // EditPart.
-
-      // TODO (cs) Rich consider creating 2 hard code edit parts
-      // the first for the parameter name
-      // the second for the paramter type
-	  List kids = new ArrayList();
-	  kids.add(getModel());
-	  return kids;
-  }
-  
-  public IFigure getContentPane()
-  {
-    return contentPane;
-  }
-  
-  public void addFeedback() {	
-	  parameterName.getParent().setBackgroundColor(DesignViewGraphicsConstants.tableCellSelectionColor);
-  }
-
-  public void removeFeedback() {
-      parameterName.getParent().setBackgroundColor(figure.getBackgroundColor());
-  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/ParameterTypeEditPart.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/ParameterTypeEditPart.java
deleted file mode 100644
index f9c5d05..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/ParameterTypeEditPart.java
+++ /dev/null
@@ -1,259 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.design.editparts;
-
-import java.util.Iterator;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.MarginBorder;
-import org.eclipse.draw2d.MouseEvent;
-import org.eclipse.draw2d.MouseListener;
-import org.eclipse.draw2d.Panel;
-import org.eclipse.draw2d.Polygon;
-import org.eclipse.draw2d.XYLayout;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.PointList;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.LayerConstants;
-import org.eclipse.wst.wsdl.asd.design.DesignViewGraphicsConstants;
-import org.eclipse.wst.wsdl.asd.design.editpolicies.WSDLSelectionEditPolicy;
-import org.eclipse.wst.wsdl.asd.design.layouts.RowLayout;
-import org.eclipse.wst.wsdl.asd.editor.ASDEditorPlugin;
-import org.eclipse.wst.wsdl.asd.editor.ASDMultiPageEditor;
-import org.eclipse.wst.wsdl.asd.editor.util.IOpenExternalEditorHelper;
-import org.eclipse.wst.wsdl.asd.facade.IParameter;
-
-import org.eclipse.draw2d.MouseMotionListener.Stub;
-
-public class ParameterTypeEditPart extends BaseEditPart implements IFeedbackHandler, INamedEditPart
-{   
-	  protected Label parameterType;
-	  protected RowLayout rowLayout = new RowLayout();
-
-	  protected MyMouseEventListener mouseEventListener;
-	  
-	  protected IFigure createFigure()
-	  {
-	    IFigure figure = new Panel();
-	    figure.setLayoutManager(rowLayout); 
-
-	    parameterType = new Label();
-	    parameterType.setLabelAlignment(Label.LEFT);
-	    parameterType.setBorder(new MarginBorder(4,12,4,12));
-        figure.add(parameterType);
-        
-	    return figure;
-	  }
-
-	  protected void refreshVisuals()
-	  {   
-	    super.refreshVisuals();
-	    IParameter param = (IParameter) getModel();
-	    String name = param.getComponentName();
-	    parameterType.setText(name);
-	  }
-	  
-	  public void addFeedback() {	 		          
-		  figure.setBackgroundColor(DesignViewGraphicsConstants.tableCellSelectionColor);
-	  }
-
-	  public void removeFeedback() {
-         figure.setBackgroundColor(figure.getParent().getBackgroundColor());
-	  }
-	  
-	  public Label getLabelFigure() {
-		  return parameterType;
-	  }
-
-	  protected void createEditPolicies()
-	  {
-		  installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, new WSDLSelectionEditPolicy());
-	  }
-	  
-	  public void performDirectEdit(Point cursorLocation) {
-	  }
-	  
-	  public void activate() {
-		  super.activate();
-		  
-		  // Setup a MouseMotionListener so we know when to display the 'open in XSD Editor' figure
-		  IFigure feedBackLayer = getLayer(LayerConstants.FEEDBACK_LAYER);
-		  if (!(feedBackLayer.getLayoutManager() instanceof XYLayout)) {
-			  feedBackLayer.setLayoutManager(new XYLayout());					// We could probably move this line elsewhere
-		  }
-		  
-		  IFigure primaryLayer = getLayer(LayerConstants.PRIMARY_LAYER);
-		  mouseEventListener = new MyMouseEventListener(getModel());
-		  primaryLayer.addMouseMotionListener(mouseEventListener);
-		  primaryLayer.addMouseListener(mouseEventListener);
-	  }
-	  
-	  public void deactivate() {
-		  if (mouseEventListener != null) {
-			  mouseEventListener.discardLinkFigure();
-			  IFigure primaryLayer = getLayer(LayerConstants.PRIMARY_LAYER);
-			  primaryLayer.removeMouseMotionListener(mouseEventListener);
-			  primaryLayer.removeMouseListener(mouseEventListener);
-		  }
-	  }
-	  
-	  private class MyLinkFigure extends Polygon {
-		  private PointList points = new PointList();
-		  public int horizontalBuffer = 4;
-		  public int verticalBuffer = 6;
-
-		  public MyLinkFigure() {
-			  // Draw the arrow
-			  points.addPoint(new Point(horizontalBuffer + 0, 4 + verticalBuffer));
-			  points.addPoint(new Point(horizontalBuffer + 9, 4 + verticalBuffer));
-			  points.addPoint(new Point(horizontalBuffer + 9, 0 + verticalBuffer));
-			  points.addPoint(new Point(horizontalBuffer + 14, 5 + verticalBuffer));
-			  points.addPoint(new Point(horizontalBuffer + 9, 10 + verticalBuffer));
-			  points.addPoint(new Point(horizontalBuffer + 9, 6 + verticalBuffer));
-			  points.addPoint(new Point(horizontalBuffer + 0, 6 + verticalBuffer));
-			  points.addPoint(new Point(horizontalBuffer + 0, 4 + verticalBuffer));
-			  setFill(true);
-		  }
-
-		  public void setLocation(Point newLocation) {
-			  PointList translatedPoints = new PointList();
-			  
-			  for (int index = 0; index < points.size(); index++) {
-				  Point origPoint = points.getPoint(index);
-				  translatedPoints.addPoint(origPoint.translate(newLocation));
-			  }
-			  
-			  setPoints(translatedPoints);
-		  }
-	  }
-	  
-	  private class MyMouseEventListener extends Stub implements MouseListener {
-		  private MyLinkFigure linkFigure;
-		  private Object object;
-		  private IOpenExternalEditorHelper openExternalEditorHelper;
-		  
-		  public MyMouseEventListener(Object object) {
-			  this.object = object;
-			  linkFigure = new MyLinkFigure();
-			  unemphasizeLinkFigure();
-		  }
-		  
-		  public void mouseMoved(MouseEvent me) {
-			  Point pointer = me.getLocation();
-			  Rectangle figBounds = getFigure().getParent().getParent().getBounds();
-			  
-			  if (getExternalEditorOpener().linkApplicable()) {
-				  getLayer(LayerConstants.FEEDBACK_LAYER).add(linkFigure);
-				  setLinkFigureLocation();
-				  if (pointerInRange(figBounds, pointer)) {
-					  emphasizeLinkFigure();
-				  }
-				  else {
-					  unemphasizeLinkFigure();
-				  }
-			  }
-			  else {
-				  if (containsLinkFigure()) {
-					  getLayer(LayerConstants.FEEDBACK_LAYER).remove(linkFigure);
-				  }
-			  }
-		  }
-		  
-		  private boolean containsLinkFigure() {
-			  IFigure figure = getLayer(LayerConstants.FEEDBACK_LAYER);
-			  Iterator it = figure.getChildren().iterator();
-			  while (it.hasNext()) {
-				  Object item = it.next();
-				  if (item.equals(linkFigure)) {
-					  return true;
-				  }
-			  }
-			  
-			  return false;
-		  }
-		  
-		  private Rectangle getLinkFigureBounds() {
-			  if (containsLinkFigure()) {
-			  return linkFigure.getBounds();
-			  }
-			  else {
-				  return null;
-			  }
-		  }
-		  
-		  private boolean pointerInRange(Rectangle figBounds, Point pointer) {
-			  Rectangle linkBounds = getLinkFigureBounds();
-			  
-			  int entireX = figBounds.x;
-			  int entireY = figBounds.y;
-			  int entireWidth = figBounds.width + linkBounds.width + linkFigure.horizontalBuffer;
-			  int entireHeight = figBounds.height;
-			  Rectangle entireBounds = new Rectangle(entireX, entireY, entireWidth, entireHeight);
-
-			  return entireBounds.contains(pointer);
-		  }
-		  
-		  protected void setLinkFigureLocation() {
-			    Rectangle figureBounds = getFigure().getBounds();
-			    int xStart = figureBounds.x + figureBounds.width;
-			    int yStart = figureBounds.y;
-				  
-			    Point aPoint = new Point(xStart, yStart);
-			    linkFigure.setLocation(aPoint);
-		  }
-		  
-		  public void discardLinkFigure() {
-			  if (containsLinkFigure()) {
-				  getLayer(LayerConstants.FEEDBACK_LAYER).remove(linkFigure);
-			  }
-		  }
-		  
-		  protected void emphasizeLinkFigure() {
-			  linkFigure.setForegroundColor(ColorConstants.blue);
-			  linkFigure.setBackgroundColor(ColorConstants.blue);
-		  }
-		  
-		  protected void unemphasizeLinkFigure() {
-			  linkFigure.setForegroundColor(ColorConstants.lightGray);
-			  linkFigure.setBackgroundColor(ColorConstants.lightGray);
-		  }
-
-		  public void mouseReleased(MouseEvent me) { }
-		  public void mouseDoubleClicked(MouseEvent me) { }
-		  public void mousePressed(MouseEvent me) {
-			  Point pointer = me.getLocation();
-			  Rectangle linkFigBounds = getLinkFigureBounds();
-			  if (linkFigBounds == null) {
-				  return;
-			  }
-			  
-			  Rectangle testbounds = new Rectangle(linkFigBounds.x, linkFigBounds.y, 0, linkFigBounds.height);
-			  
-			  if (getExternalEditorOpener().linkApplicable() && pointerInRange(testbounds, pointer)) {
-				  setLinkFigureLocation();
-				  // Open in XSD Editor
-				  getExternalEditorOpener().openExternalEditor();				  
-			  }
-		  }
-		  
-		  private IOpenExternalEditorHelper getExternalEditorOpener() {
-			  if (openExternalEditorHelper == null) {
-				  openExternalEditorHelper = ((ASDMultiPageEditor) ASDEditorPlugin.getActiveEditor()).getOpenExternalEditorHelper();
-				  openExternalEditorHelper.setModel(object);
-			  }
-			  
-			  return openExternalEditorHelper;
-		  }
-	  }
-	}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/ServiceEditPart.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/ServiceEditPart.java
deleted file mode 100644
index c9ff765..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/ServiceEditPart.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.design.editparts;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.Graphics;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.LineBorder;
-import org.eclipse.draw2d.ToolbarLayout;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.tools.DirectEditManager;
-import org.eclipse.wst.wsdl.asd.design.directedit.LabelCellEditorLocator;
-import org.eclipse.wst.wsdl.asd.design.directedit.LabelEditManager;
-import org.eclipse.wst.wsdl.asd.design.editpolicies.LabelDirectEditPolicy;
-import org.eclipse.wst.wsdl.asd.design.editpolicies.WSDLSelectionEditPolicy;
-import org.eclipse.wst.wsdl.asd.design.figures.HeadingFigure;
-import org.eclipse.wst.wsdl.asd.facade.IService;
-
-public class ServiceEditPart extends BaseEditPart implements INamedEditPart
-{
-  IFigure contentPane;
-  HeadingFigure headingFigure;
-  
-  public void addFeedback()
-  {
-	  LineBorder boxFigureLineBorder = (LineBorder) figure.getBorder();
-	  boxFigureLineBorder.setWidth(2);
-	  boxFigureLineBorder.setColor(ColorConstants.darkBlue);
-	  headingFigure.setSelected(true);	  
-	  figure.repaint();
-  }
-  
-  public void removeFeedback()
-  {
-	  LineBorder boxFigureLineBorder = (LineBorder) figure.getBorder();
-	  boxFigureLineBorder.setWidth(1);
-	  boxFigureLineBorder.setColor(ColorConstants.black);
-	  headingFigure.setSelected(false);
-	  figure.repaint();
-  }
-
-  protected IFigure createFigure()
-  {
-    Figure figure = new Figure();
-    figure.setBorder(new LineBorder(1));
-    ToolbarLayout toolbarLayout = new ToolbarLayout(false);
-    toolbarLayout.setStretchMinorAxis(true);
-    figure.setLayoutManager(toolbarLayout);    
-    headingFigure = new HeadingFigure();
-   	headingFigure.getLabel().setIcon(((IService) getModel()).getImage());	
-
-    figure.add(headingFigure);
-        
-    contentPane = new Figure()
-    {
-      public void paint(Graphics graphics) 
-      {
-        super.paint(graphics);
-      boolean isFirst = false;
-      for (Iterator i = getChildren().iterator(); i.hasNext(); )
-      {
-        Figure figure = (Figure)i.next();              
-        if (isFirst)
-        {
-          isFirst = false;
-        }  
-        else
-        {  
-          Rectangle r = figure.getBounds();              
-          graphics.drawLine(r.x, r.y +1, r.x + r.width, r.y + 1);
-        }  
-      }
-      }
-    };
-    ToolbarLayout toolbarLayout2 = new ToolbarLayout(false);
-    toolbarLayout2.setStretchMinorAxis(true);   
-    contentPane.setLayoutManager(toolbarLayout2);
-    figure.add(contentPane);
-    return figure;
-  }
-  
-  public IFigure getContentPane()
-  {
-    return contentPane;
-  }
-
-  protected void createEditPolicies()
-  {
-	  installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new LabelDirectEditPolicy());
-	  installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, new WSDLSelectionEditPolicy());
-  }
-  
-  private DirectEditManager manager;
-  
-  public void performDirectEdit(Point cursorLocation){
-	  if (hitTest(headingFigure.getLabel(), cursorLocation)) {
-		  manager = new LabelEditManager(this, new LabelCellEditorLocator(this, cursorLocation));
-		  manager.show();
-	  }
-  }
-  
-  public Label getLabelFigure() {
-	  return headingFigure.getLabel();
-  }
-
-  protected List getModelChildren()
-  {
-    IService service = (IService)getModel();
-    return service.getEndPoints();
-  }
-  
-  protected void refreshVisuals()
-  { 
-    IService service = (IService)getModel();
-    headingFigure.getLabel().setText(service.getName());
-    super.refreshVisuals();
-  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/model/AbstractModelCollection.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/model/AbstractModelCollection.java
deleted file mode 100644
index ec31b65..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/model/AbstractModelCollection.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.design.editparts.model;
-
-import java.util.List;
-import org.eclipse.wst.wsdl.asd.facade.IASDObject;
-import org.eclipse.wst.wsdl.asd.facade.IASDObjectListener;
-
-public abstract class AbstractModelCollection implements IASDObject
-{
-  IASDObject model;
-  String kind;
-  
-  public AbstractModelCollection(IASDObject model, String kind)
-  {
-    this.model = model;
-    this.kind = kind;
-  }
-
-  public Object getModel()
-  {
-    return model;
-  }
-
-  public void setModel(IASDObject model)
-  {
-    this.model = model;
-  }
-
-  public String getKind()
-  {
-    return kind;
-  }
-
-  public void setKind(String kind)
-  {
-    this.kind = kind;
-  }
-  
-  public abstract List getChildren();
-  
-  public void registerListener(IASDObjectListener listener)
-  {
-    model.registerListener(listener);
-  }
-  
-  public void unregisterListener(IASDObjectListener listener)
-  {
-    model.unregisterListener(listener);
-  }
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/model/BindingColumn.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/model/BindingColumn.java
deleted file mode 100644
index ff5f850..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/model/BindingColumn.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.design.editparts.model;
-
-import java.util.List;
-
-import org.eclipse.wst.wsdl.asd.facade.IDescription;
-
-public class BindingColumn extends AbstractModelCollection {
-	  public BindingColumn(IDescription description) {
-	    super(description, "BindingColumn");
-	  }
-	  
-	  public List getChildren() {
-	    return ((IDescription)model).getBindings();
-	  }
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/model/IActionProvider.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/model/IActionProvider.java
deleted file mode 100644
index 88dcce7..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/model/IActionProvider.java
+++ /dev/null
@@ -1,16 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.design.editparts.model;
-
-public interface IActionProvider
-{
-  public String[] getActions(Object object);
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/model/InterfaceColumn.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/model/InterfaceColumn.java
deleted file mode 100644
index 30e7e0f..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/model/InterfaceColumn.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.design.editparts.model;
-
-import java.util.List;
-import org.eclipse.wst.wsdl.asd.facade.IDescription;
-
-public class InterfaceColumn extends AbstractModelCollection
-{
-  public InterfaceColumn(IDescription description)
-  {
-    super(description, "InterfaceColumn");
-  }
-  
-  public List getChildren()
-  {
-    return ((IDescription)model).getInterfaces();
-  }
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/model/ServiceColumn.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/model/ServiceColumn.java
deleted file mode 100644
index e4fa2e7..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editparts/model/ServiceColumn.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.design.editparts.model;
-
-import java.util.List;
-
-import org.eclipse.wst.wsdl.asd.facade.IDescription;
-
-public class ServiceColumn extends AbstractModelCollection {
-	  public ServiceColumn(IDescription description) {
-	    super(description, "ServiceColumn");
-	  }
-	  
-	  public List getChildren()
-	  {
-	    return ((IDescription)model).getServices();
-	  }
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editpolicies/LabelDirectEditPolicy.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editpolicies/LabelDirectEditPolicy.java
deleted file mode 100644
index aa9d530..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editpolicies/LabelDirectEditPolicy.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.design.editpolicies;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.editpolicies.DirectEditPolicy;
-import org.eclipse.gef.requests.DirectEditRequest;
-import org.eclipse.wst.wsdl.asd.design.editparts.EndPointEditPart;
-import org.eclipse.wst.wsdl.asd.facade.INamedObject;
-
-public class LabelDirectEditPolicy extends DirectEditPolicy {
-	protected Command getDirectEditCommand(DirectEditRequest request) {
-		Command command = null;
-		String labelText = (String) request.getCellEditor().getValue();
-		EditPart editPart= getHost();
-
-		// TODO: rmah:  Start VERY UGLY HACK....  I don't see any other way to solve this issue at this time.
-		// EndPointEditPart contains two labels which can be direct edited.  The facade driving EndPointEditPart
-		// contains a getSetNameCommand() and a getSetAddressCommand()... however, this class (LabelDirectEditPolicy)
-		// only knows about getSetNameCommand().....  This is the problem we face when combining two labels into
-		// one EditPart.....
-		if (editPart instanceof EndPointEditPart) {
-			command = ((EndPointEditPart) editPart).getSetProperLabelCommand(labelText);
-		}
-		// End VERY UGLY HACK
-		else if (editPart.getModel() instanceof INamedObject) {
-			command = ((INamedObject) editPart.getModel()).getSetNameCommand(labelText);
-		}
-
-		return command;
-	}
-
-	protected void showCurrentEditValue(DirectEditRequest request) {
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editpolicies/WSDLSelectionEditPolicy.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editpolicies/WSDLSelectionEditPolicy.java
deleted file mode 100644
index 215dd35..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/editpolicies/WSDLSelectionEditPolicy.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.design.editpolicies;
-
-import org.eclipse.gef.editpolicies.SelectionEditPolicy;
-import org.eclipse.wst.wsdl.asd.design.editparts.IFeedbackHandler;
-
-public class WSDLSelectionEditPolicy extends SelectionEditPolicy {
-	protected void hideSelection() {
-		if (getHost() instanceof IFeedbackHandler) {
-				((IFeedbackHandler) getHost()).removeFeedback();
-		}
-	}
-
-	protected void showSelection() {
-		if (getHost() instanceof IFeedbackHandler) {
-			((IFeedbackHandler) getHost()).addFeedback();
-		}
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/figures/BoxComponentFigure.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/figures/BoxComponentFigure.java
deleted file mode 100644
index 432694a..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/figures/BoxComponentFigure.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.design.figures;
-
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.ToolbarLayout;
-
-public class BoxComponentFigure extends Figure
-{
-  HeadingFigure headingFigure;
-  Figure contentPane;
-  protected boolean isSelected = false;
-  protected boolean isReadOnly = false;
-
-  public void setSelected(boolean isSelected)
-  {
-    headingFigure.setSelected(isSelected);
-  }
-
-  public void setIsReadOnly(boolean isReadOnly)
-  {
-    this.isReadOnly = isReadOnly;
-  }
-
-  public BoxComponentFigure()
-  {
-    super();
-    headingFigure = new HeadingFigure();
-    add(headingFigure);
-    contentPane = new ListFigure();
-    contentPane.setLayoutManager(new ToolbarLayout());
-    add(contentPane);
-  }
-
-  public Figure getContentPane()
-  {
-    return contentPane;
-  }
-
-  public Label getLabel()
-  {
-    return headingFigure.getLabel();
-  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/figures/ComponentReferenceConnection.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/figures/ComponentReferenceConnection.java
deleted file mode 100644
index 6020cd7..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/figures/ComponentReferenceConnection.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.design.figures;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.ConnectionRouter;
-import org.eclipse.draw2d.PolygonDecoration;
-import org.eclipse.draw2d.PolylineConnection;
-import org.eclipse.swt.graphics.Color;
-
-public class ComponentReferenceConnection extends PolylineConnection
-{
-  protected boolean highlight = false;
-  protected static final Color activeConnection = ColorConstants.black;
-  protected static final Color inactiveConnection = new Color(null, 198, 195, 198);
-
-  /**
-   * Default constructor
-   */
-  public ComponentReferenceConnection()
-  {
-    super();
-    setTargetDecoration(new PolygonDecoration());
-  }
-
-  public void setConnectionRouter(ConnectionRouter cr)
-  {
-    if (cr != null && getConnectionRouter() != null)// TODO:.... && !(getConnectionRouter() instanceof BOManhattanConnectionRouter))
-      super.setConnectionRouter(cr);
-  }
-
-  /**
-   * @return Returns the current highlight status.
-   */
-  public boolean isHighlighted()
-  {
-    return highlight;
-  }
-
-  /**
-   * @param highlight
-   *          The highlight to set.
-   */
-  public void setHighlight(boolean highlight)
-  {
-    this.highlight = highlight;
-    setForegroundColor(highlight ? activeConnection : inactiveConnection);
-    setOpaque(highlight);
-  }
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/figures/HeadingFigure.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/figures/HeadingFigure.java
deleted file mode 100644
index 03ae8cf..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/figures/HeadingFigure.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.design.figures;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.Graphics;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.MarginBorder;
-import org.eclipse.draw2d.ToolbarLayout;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.swt.graphics.Color;
-
-public class HeadingFigure extends Figure
-{
-  Label label;
-  protected Color[] gradientColor = {ColorConstants.white,  
-            ColorConstants.lightGray,
-            ColorConstants.lightBlue,
-            ColorConstants.gray};
-  protected boolean isSelected = false;
-  protected boolean isReadOnly = false;
-  
-  public HeadingFigure()
-  {
-    label = new Label();
-    label.setBorder(new MarginBorder(2));
-    ToolbarLayout toolbarLayout = new ToolbarLayout(false);
-    toolbarLayout.setMinorAlignment(ToolbarLayout.ALIGN_CENTER);
-    setLayoutManager(toolbarLayout);
-    add(label);
-  }
-  
-  public void setSelected(boolean isSelected)
-  {
-    this.isSelected = isSelected;
-  }
-  
-  public void setIsReadOnly(boolean isReadOnly)
-  {
-    this.isReadOnly = isReadOnly;
-  }
-  
-  public void paint(Graphics graphics)
-  {
-    super.paint(graphics);
-//    Color oldForeground =  graphics.getForegroundColor();
-    // Fill for the header section
-    //
-    Rectangle r = getBounds().getCopy();
-    graphics.setBackgroundColor(ColorConstants.lightGray);
-    //graphics.fillRectangle(r.x+1, r.y+1, r.width-1, barYcoordinate - r.y - 1);
-    Color gradient1 = isSelected ? (isReadOnly ? gradientColor[3] : gradientColor[2]) : gradientColor[1];
-    Color gradient2 = gradientColor[0];
-    graphics.setForegroundColor(gradient1);
-    graphics.setBackgroundColor(gradient2);
-    Rectangle labelBounds = label.getBounds();
-    graphics.fillGradient(r.x+1, r.y+1, r.width-2, labelBounds.height , true);
-    graphics.setForegroundColor(ColorConstants.darkGray);
-    label.paint(graphics);    
-    graphics.setForegroundColor(isSelected ? gradientColor[1] : gradientColor[3]);
-    //graphics.drawLine(r.x+1, r.y + 15, r.x + r.width, r.y + 15);
-    //graphics.drawLine(r.x+1, r.y + labelBounds.height, r.x + r.width, r.y + labelBounds.height);
-  }
-
-  public Label getLabel()
-  {
-    return label;
-  }  
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/figures/ListFigure.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/figures/ListFigure.java
deleted file mode 100644
index 389be61..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/figures/ListFigure.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.design.figures;
-
-import java.util.Iterator;
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.Graphics;
-import org.eclipse.draw2d.geometry.Rectangle;
-
-public class ListFigure extends Figure
-{
-  boolean isOpaque = false;
-  boolean isHorizontal = false;
-  boolean paintFirstLine = true;
-  
-  public ListFigure(boolean isHorizontal)
-  {
-    this.isHorizontal = isHorizontal; 
-  }
-  
-  public ListFigure()
-  {
-    this(false);
-  }
-
-  public void paint(Graphics graphics)
-  {
-    super.paint(graphics);
-    boolean isFirst = true;
-    for (Iterator i = getChildren().iterator(); i.hasNext();)
-    {
-      Figure figure = (Figure) i.next();
-      if (isFirst && !paintFirstLine)
-      {
-        isFirst = false;
-      }
-      else
-      {
-        Rectangle r = figure.getBounds();
-        if (isHorizontal)
-        {  
-          graphics.drawLine(r.x, r.y, r.x, r.y + r.height);
-        }
-        else
-        {  
-          graphics.drawLine(r.x, r.y, r.x + r.width, r.y);
-        }            
-      }
-    }
-  }
-
-  public boolean isOpaque()
-  {
-    return isOpaque;
-  }
-
-  public void setOpaque(boolean isOpaque)
-  {
-    this.isOpaque = isOpaque;
-  }
-
-  public boolean isPaintFirstLine()
-  {
-    return paintFirstLine;
-  }
-
-  public void setPaintFirstLine(boolean paintFirstLine)
-  {
-    this.paintFirstLine = paintFirstLine;
-  }
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/layouts/BindingColumnLayout.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/layouts/BindingColumnLayout.java
deleted file mode 100644
index 790c2e3..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/layouts/BindingColumnLayout.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.design.layouts;
-
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.draw2d.AbstractLayout;
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Rectangle;
-
-public class BindingColumnLayout extends AbstractLayout
-{
-  IFigure expandedBindingFigure;
-  IFigure snapToFigure;
-
-  protected Dimension calculatePreferredSize(IFigure container, int wHint, int hHint)
-  {
-    Rectangle clientArea = container.getClientArea();
-    Dimension d = calculateChildrenSize(container.getChildren(), wHint, hHint);
-    d.height = Math.max(d.height, clientArea.height);
-    return d;
-  }
-
-  private Dimension calculateChildrenSize(List children, int wHint, int hHint)
-  {
-    Dimension childSize;
-    IFigure child;
-    int height = 0, width = 0;
-    for (int i = 0; i < children.size(); i++)
-    {
-      child = (IFigure) children.get(i);
-      childSize = child.getPreferredSize(wHint, hHint);
-      height += childSize.height;
-      height += 80;
-      width = Math.max(width, childSize.width);
-    }
-    return new Dimension(Math.max(width, 150), height);
-  }
-
-  public void layout(IFigure container)
-  {
-    Rectangle clientArea = container.getClientArea();
-    Rectangle r = new Rectangle();
-    r.x = clientArea.x + 50;
-    r.y = clientArea.y;
-    int used = 0;
-    for (Iterator i = container.getChildren().iterator(); i.hasNext();)
-    {
-      Figure child = (Figure) i.next();
-      Dimension d = child.getPreferredSize(-1, -1);
-      r.width = d.width;
-      r.height = d.height;
-      
-      child.setBounds(r);
-      used += 30;
-      used += r.height;
-      
-      if (child == expandedBindingFigure && snapToFigure != null)
-      {
-        Rectangle b = snapToFigure.getBounds();
-        int width = 30;
-        child.setBounds(new Rectangle(b.x - width, b.y, width, b.height));
-      }
-      
-      r.y += d.height;
-      r.y += 80;
-    }
-    /*
-    int space = clientArea.height - used;
-    int spacePerThingee = space / container.getChildren().size() - 1;
-    boolean isFirst = true;
-    for (Iterator i = container.getChildren().iterator(); i.hasNext();)
-    {
-      Figure child = (Figure) i.next();
-      if (isFirst)
-      {
-        isFirst = false;
-      }
-      else if (child != expandedBindingFigure || snapToFigure == null)      
-      {        
-        child.getBounds().y += spacePerThingee;
-      }  
-    }*/
-  }
-
-  public IFigure getExpandedBindingFigure()
-  {
-    return expandedBindingFigure;
-  }
-
-  public void setExpandedBindingFigure(IFigure expandedBindingFigure)
-  {
-    this.expandedBindingFigure = expandedBindingFigure;
-  }
-
-  public IFigure getSnapToFigure()
-  {
-    return snapToFigure;
-  }
-
-  public void setSnapToFigure(IFigure snapToFigure)
-  {
-    this.snapToFigure = snapToFigure;
-  }
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/layouts/BindingContentLayout.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/layouts/BindingContentLayout.java
deleted file mode 100644
index a7181be..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/layouts/BindingContentLayout.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.design.layouts;
-
-import java.util.Iterator;
-
-import org.eclipse.draw2d.AbstractLayout;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
-import org.eclipse.wst.wsdl.asd.design.editparts.BindingEditPart;
-import org.eclipse.wst.wsdl.asd.design.editparts.INamedEditPart;
-import org.eclipse.wst.wsdl.asd.facade.IBindingMessageReference;
-import org.eclipse.wst.wsdl.asd.facade.IBindingOperation;
-import org.eclipse.wst.wsdl.asd.facade.IMessageReference;
-import org.eclipse.wst.wsdl.asd.facade.IOperation;
-
-/**
- * This class is used to layout the contents of the binding 'ruler' displayed
- * to the left side of an interface. The contents are aligned with the interface
- * figures so that correspoding binding and interface constructs are side by side.
- */
-public class BindingContentLayout extends AbstractLayout
-{
-  BindingEditPart bindingEditPart;
-  
-  public BindingContentLayout(BindingEditPart bindingEditPart)
-  {
-    this.bindingEditPart = bindingEditPart;
-  }
-
-  protected Dimension calculatePreferredSize(IFigure container, int wHint, int hHint)
-  {
-    if (bindingEditPart.isExpanded())
-    {  
-      Rectangle clientArea = container.getClientArea();
-      return new Dimension(clientArea.width, clientArea.height);
-    }
-    else
-    {
-      return new Dimension(0,0);
-    }  
-  }
-
-  public void layout(IFigure container)
-  {     
-    Rectangle clientArea = container.getClientArea();    
-    for (Iterator i = bindingEditPart.getChildren().iterator(); i.hasNext();)
-    {
-      AbstractGraphicalEditPart childEditPart = (AbstractGraphicalEditPart) i.next();
-      AbstractGraphicalEditPart correspondingEditPart = null;
-      Object model = childEditPart.getModel();
-      if (model instanceof IBindingOperation)
-      {
-        IOperation operation = ((IBindingOperation)model).getOperation();
-        correspondingEditPart = getEditPart(operation);       
-      }
-      else if (model instanceof IBindingMessageReference)
-      {
-        IMessageReference messageReference = ((IBindingMessageReference)model).getMessageReference();
-        correspondingEditPart = getEditPart(messageReference);       
-      }      
-      if (correspondingEditPart != null)
-      {
-        IFigure figure = correspondingEditPart.getFigure();       
-        if (correspondingEditPart instanceof INamedEditPart)
-        {
-          figure = ((INamedEditPart)correspondingEditPart).getLabelFigure();            
-        }  
-        Rectangle bounds = figure.getBounds();
-        Rectangle newBounds = new Rectangle(clientArea.x, bounds.y, clientArea.width, bounds.height);
-        childEditPart.getFigure().setBounds(newBounds);
-      }  
-    }
-  }  
-  
-  protected AbstractGraphicalEditPart getEditPart(Object model)
-  {
-    if (model != null)
-    {  
-      EditPart editPart = (EditPart)bindingEditPart.getViewer().getEditPartRegistry().get(model);
-      if (editPart instanceof AbstractGraphicalEditPart)
-      {
-        return (AbstractGraphicalEditPart)editPart; 
-      }
-    }
-    return null;
-  }
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/layouts/BindingLayout.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/layouts/BindingLayout.java
deleted file mode 100644
index b178b55..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/layouts/BindingLayout.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.design.layouts;
-
-import java.util.List;
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.ToolbarLayout;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.wst.wsdl.asd.design.editparts.BindingEditPart;
-
-// just a toolbar layout with a minor tweak to ensure the last figure fills
-// the entire available space
-public class BindingLayout extends ToolbarLayout
-{
-  BindingEditPart editPart;
-  
-  public BindingLayout(BindingEditPart editPart)
-  {
-    this.editPart = editPart;    
-  }
-  
-  protected Dimension calculatePreferredSize(IFigure container, int wHint, int hHint)
-  {
-    Dimension d = super.calculatePreferredSize(container, wHint, hHint);
-    //Rectangle clientArea = container.getClientArea();
-    //d.width = Math.max(d.width, clientArea.width);
-    //d.height = Math.max(d.height, clientArea.height);
-    return d;
-  }
-  
-  public void layout(IFigure container)
-  {
-    super.layout(container);
-    if (editPart.isExpanded())
-    {  
-      Rectangle clientArea = container.getClientArea();    
-      List children = container.getChildren();
-      if (children.size() > 1)
-      {
-        Figure header = (Figure)children.get(0);        
-        Figure contentPane = (Figure)children.get(children.size() - 1);
-        if (contentPane.getChildren().size() > 0)
-        {  
-          Rectangle bounds = contentPane.getBounds();
-          bounds.height = clientArea.height - header.getBounds().height;
-        }  
-      }
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/layouts/ColumnData.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/layouts/ColumnData.java
deleted file mode 100644
index c06b8c9..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/layouts/ColumnData.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.design.layouts;
-
-import java.util.HashMap;
-import java.util.Iterator;
-
-public class ColumnData
-{
-  HashMap map = new HashMap();
-  
-  class Entry
-  {
-    int width = 0;
-    int weight = 1;
-  }
-  
-  public void clearColumnWidths()
-  {
-    for (Iterator i = map.values().iterator(); i.hasNext();)
-    {
-      Entry entry = (Entry)i.next();
-      entry.width = 0;
-    }  
-  }  
-  
-  private Entry lookupOrCreateColumnEntry(String identifier)
-  {
-    Entry entry = (Entry)map.get(identifier);
-    if (entry == null)
-    {
-      entry = new Entry();
-      map.put(identifier, entry);
-    }  
-   return entry; 
-  }  
-  
-  void stretchColumnWidthIfNeeded(String identifier, int width)
-  {
-    Entry entry = lookupOrCreateColumnEntry(identifier);
-    entry.width = Math.max(entry.width, width);
-  }
-  
-  int getColumnWidth(String identifier)
-  {
-    Entry entry = (Entry)map.get(identifier);
-    if (entry != null)
-    {
-      return entry.width;
-    }  
-    else
-    {
-      return 0;//hmm should we return -1 ?
-    }  
-  }
-  
-  int getColumnWeight(String identifier)
-  {
-    Entry entry = (Entry)map.get(identifier);
-    if (entry != null)
-    {
-      return entry.weight;
-    }  
-    else
-    {
-      return 0;
-    }  
-  }
-  
-  public void setColumnWeight(String identifier, int weight)
-  {
-    Entry entry = lookupOrCreateColumnEntry(identifier);
-    entry.weight = weight;
-  }
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/layouts/RowLayout.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/layouts/RowLayout.java
deleted file mode 100644
index 2513b7d..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/layouts/RowLayout.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.design.layouts;
-
-import java.util.HashMap;
-import java.util.List;
-import org.eclipse.draw2d.AbstractLayout;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Rectangle;
-
-public class RowLayout extends AbstractLayout
-{
-  // layout is associated with a parent context
-  // any layout manager under the parent context is connected
-  // column rows are maintained accross container boundaries  
-  protected ColumnData columnData;
-  protected HashMap figureToContstraintMap = new HashMap();
-  
-  public RowLayout()
-  {
-    super();
-  }
-  
-
-  // this method computes the minimum size required to display the figures
-  //
-  private Dimension calculateChildrenSize(IFigure container, List children, int wHint, int hHint, boolean preferred)
-  {
-    Dimension childSize;
-    IFigure child;
-    int height = 0;
-    int width = 0;
-    
-    //IRowFigure figure = (IRowFigure)container;
-    
-    // for each cell in the row
-    //
-    for (int i = 0; i < children.size(); i++)
-    {
-      child = (IFigure) children.get(i);
-      String columnIdenifier = (String)getConstraint(child);
-             
-      // first we compute the child size without regard for columnData
-      //
-      childSize = child.getPreferredSize(wHint, hHint);// : child.getMinimumSize(wHint, hHint);
-        
-      // now that the columnData has been populated we can consider if the row needs to be larger
-      //
-      int effectiveWidth = childSize.width;
-      if (columnIdenifier != null)
-      {  
-        columnData.stretchColumnWidthIfNeeded(columnIdenifier, childSize.width);
-        effectiveWidth = columnData.getColumnWidth(columnIdenifier);
-      }                       
-      height = Math.max(childSize.height, height);
-      width += effectiveWidth;
-    }  
-    return new Dimension(width, height);
-  }
-  
-  
-  
-  protected Dimension calculatePreferredSize(IFigure container, int wHint, int hHint)
-  {    
-    List children = container.getChildren();
-    Dimension prefSize = calculateChildrenSize(container, children, wHint, hHint, true);
-    //System.out.println("preferredSize=" + prefSize);
-    return prefSize;
-  }
-
-  public void layout(IFigure parent)
-  {
-    // layout a table with the columns aligned      
-    //IRowFigure rowFigure = (IRowFigure)parent;    
-    Rectangle clientArea = parent.getClientArea();   
-    List children = parent.getChildren();
-    Rectangle r = new Rectangle();
-    r.x = clientArea.x;
-    r.y = clientArea.y;
-    r.height = clientArea.height;
-    
-    int childrenSize = children.size();
-    Rectangle[] bounds = new Rectangle[childrenSize];
-    
-    // for each cell in the row
-    //
-    int requiredWidth = 0;
-    int totalColumnWeight = 0;
-    for (int i = 0; i < childrenSize; i++)
-    {
-      IFigure child = (IFigure) children.get(i);
-      //String columnIdenifier = figure.getColumnIdentifier(child);             
-      // first we compute the child size without regard for columnData
-      //
-      Dimension childSize = child.getPreferredSize(-1, -1);
-      
-      int columnWidth = -1;
-      //String columnIdentifier = rowFigure.getColumnIdentifier(child);
-      String columnIdentifier = (String)getConstraint(child);
-      if (columnIdentifier != null)
-      {
-        //columnData.stretchColumnWidthIfNeeded(columnIdentifier, childSize.width);        
-        columnWidth = columnData.getColumnWidth(columnIdentifier);
-        totalColumnWeight += columnData.getColumnWeight(columnIdentifier);
-        //System.out.println("columnWidth(" + columnIdentifier + ")=" + columnWidth);        
-      }  
-      r.width = Math.max(childSize.width, columnWidth);
-      requiredWidth += r.width;
-      bounds[i] = new Rectangle(r);      
-      r.x += r.width;
-    }          
-    if (totalColumnWeight < 1)
-    {
-      totalColumnWeight = 1;
-    }
-    //System.out.println("clientArea.width=" + clientArea.width + ", " + r.x);
-    int extraWidth = Math.max(clientArea.width - requiredWidth, 0);    
-    //System.out.println("extraWidth=" + extraWidth + " totalColumnWeight=" + totalColumnWeight);  
-    int extraWidthAllocated = 0;
-    for (int i = 0; i < childrenSize; i++)
-    {
-      IFigure child = (IFigure) children.get(i);      
-      Rectangle b = bounds[i];    
-      if (extraWidth > 0)
-      {  
-        String columnIdentifier = (String)getConstraint(child);
-        if (columnIdentifier != null)
-        {        
-          int weight = columnData.getColumnWeight(columnIdentifier);
-          float fraction = (float)weight / (float)totalColumnWeight;
-          int extraWidthForChild = (int)(extraWidth * fraction);
-          //System.out.println("extraWidthForChild(" + fraction + ")=" + extraWidthForChild);        
-          b.width += extraWidthForChild;        
-          b.x += extraWidthAllocated;
-          extraWidthAllocated += extraWidthForChild;
-        }  
-        else
-        {
-          b.x += extraWidthAllocated;
-        }
-      }
-      child.setBounds(new Rectangle(b));  
-    }  
-  }
-
-  public ColumnData getColumnData()
-  {
-    return columnData;
-  }
-
-  public void setColumnData(ColumnData columnData)
-  {
-    this.columnData = columnData;
-  }    
-  
-  public Object getConstraint(IFigure child)
-  {
-    return figureToContstraintMap.get(child);
-  }
-  
-  public void setConstraint(IFigure child, Object constraint)
-  {
-    figureToContstraintMap.put(child, constraint);
-  }
-  
-  public void invalidate()
-  {
-    //figureToContstraintMap.clear();
-    //this.columnData.clearColumnWidths();
-    super.invalidate();
-    //System.out.println("invalidate");    
-  }
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/ASDEditorPlugin.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/ASDEditorPlugin.java
deleted file mode 100644
index 0fc4f4f..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/ASDEditorPlugin.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.editor;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
-
-public class ASDEditorPlugin extends AbstractUIPlugin {
-	public static int DEPENDECIES_CHANGED_POLICY_RELOAD = 2;
-	
-	protected static ASDEditorPlugin instance;
-	  
-	  public ASDEditorPlugin() {		  
-	  }
-	  
-//	/**
-//	 * Get the singleton instance.
-//	 */
-//	public static ASDEditorPlugin getInstance()
-//	{
-//		if (instance == null) {
-//			instance = new ASDEditorPlugin();
-//		}
-//		return instance;
-//	}
-//	
-//	public Image getImage(String iconName)
-//	{
-//		ImageRegistry imageRegistry = getImageRegistry();
-//		
-//		if (imageRegistry.get(iconName) != null)
-//		{
-//			return imageRegistry.get(iconName);
-//		}
-//		else
-//		{
-//			imageRegistry.put(iconName, ImageDescriptor.createFromFile(getClass(), iconName));
-//			return imageRegistry.get(iconName);
-//		}
-//	}
-	
-	public static ImageDescriptor getImageDescriptor(String path) {
-		// We should not know about WSDLEditorPlugin.java.  Eventually, we should move these
-		// 'generic', 'top-level' icons to the ASD level.....
-		return WSDLEditorPlugin.getImageDescriptor(path);
-	}
-	
-	public static IEditorPart getActiveEditor() {
-		return PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
-	}
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/ASDLabelProvider.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/ASDLabelProvider.java
deleted file mode 100644
index 8c7e032..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/ASDLabelProvider.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.editor;
-
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.wsdl.asd.editor.outline.ITreeElement;
-
-public class ASDLabelProvider extends LabelProvider {
-	/**
-	 * 
-	 */
-	public ASDLabelProvider() {
-		super();
-	}
-	
-	/**
-	 * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object)
-	 */
-	public Image getImage(Object object) {
-		if (object == null || object.equals(StructuredSelection.EMPTY)) {
-			return null;
-		}
-		Image result = null;           
-		if (object instanceof StructuredSelection) {
-			Object selected = ((StructuredSelection)object).getFirstElement();
-			
-			if (selected instanceof ITreeElement) {
-				result = ((ITreeElement) selected).getImage();
-			}
-		}
-		
-		return result;
-	}
-	
-	/**
-	 * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
-	 */
-	public String getText(Object object) {
-		if (object == null || object.equals(StructuredSelection.EMPTY)) {
-			return "No items selected";//$NON-NLS-1$
-		}
-		String result = null;
-		Object selected = null;
-		if (object instanceof StructuredSelection) {
-			selected = ((StructuredSelection) object).getFirstElement();
-			
-			if (selected instanceof ITreeElement) {
-				result = ((ITreeElement) selected).getText();
-			}
-		}
-		
-		return result;
-	}
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/ASDMultiPageEditor.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/ASDMultiPageEditor.java
deleted file mode 100644
index dce016d..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/ASDMultiPageEditor.java
+++ /dev/null
@@ -1,675 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.editor;
-
-import java.util.ArrayList;
-import java.util.EventObject;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IResourceChangeListener;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.gef.DefaultEditDomain;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPartFactory;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.GraphicalViewer;
-import org.eclipse.gef.MouseWheelHandler;
-import org.eclipse.gef.MouseWheelZoomHandler;
-import org.eclipse.gef.commands.CommandStack;
-import org.eclipse.gef.commands.CommandStackListener;
-import org.eclipse.gef.editparts.ZoomManager;
-import org.eclipse.gef.ui.actions.ActionRegistry;
-import org.eclipse.gef.ui.actions.UpdateAction;
-import org.eclipse.gef.ui.actions.ZoomInAction;
-import org.eclipse.gef.ui.actions.ZoomOutAction;
-import org.eclipse.gef.ui.parts.SelectionSynchronizer;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.FontDialog;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.IPropertyListener;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.ui.part.MultiPageEditorPart;
-import org.eclipse.ui.views.contentoutline.ContentOutlinePage;
-import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor;
-import org.eclipse.wst.sse.ui.StructuredTextEditor;
-import org.eclipse.wst.wsdl.asd.design.DesignViewContextMenuProvider;
-import org.eclipse.wst.wsdl.asd.design.DesignViewGraphicalViewer;
-import org.eclipse.wst.wsdl.asd.design.directedit.DirectEditSelectionTool;
-import org.eclipse.wst.wsdl.asd.design.editparts.ASDEditPartFactory;
-import org.eclipse.wst.wsdl.asd.design.editparts.ASDRootEditPart;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDAddBindingAction;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDAddEndPointAction;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDAddFaultAction;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDAddImportAction;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDAddInputAction;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDAddInterfaceAction;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDAddOperationAction;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDAddOutputAction;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDAddSchemaAction;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDAddServiceAction;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDDeleteAction;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDGenerateBindingAction;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDSetExistingBindingAction;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDSetExistingInterfaceAction;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDSetNewBindingAction;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDSetNewInterfaceAction;
-import org.eclipse.wst.wsdl.asd.editor.actions.BaseSelectionAction;
-import org.eclipse.wst.wsdl.asd.editor.outline.ASDContentOutlinePage;
-import org.eclipse.wst.wsdl.asd.editor.outline.ASDContentOutlineProvider;
-import org.eclipse.wst.wsdl.asd.editor.properties.sections.ASDTabbedPropertySheetPage;
-import org.eclipse.wst.wsdl.asd.editor.util.IOpenExternalEditorHelper;
-import org.eclipse.wst.wsdl.asd.facade.IDescription;
-
-public abstract class ASDMultiPageEditor extends MultiPageEditorPart implements IResourceChangeListener, CommandStackListener, ITabbedPropertySheetPageContributor, IPropertyListener
-{
-  protected DesignViewContextMenuProvider menuProvider;
-  protected ASDContentOutlinePage fOutlinePage;
-  protected long lastModificationStamp;
-
-  protected IDescription model;
-  private DesignViewGraphicalViewer graphicalViewer;
-  private DefaultEditDomain editDomain;
-  private SelectionSynchronizer synchronizer;
-  private ActionRegistry actionRegistry;
-//  private List selectionActions = new ArrayList();
-  private List stackActions = new ArrayList();
-//  private List propertyActions = new ArrayList();
-
-  /** The text editor used in page 0. */
-  protected StructuredTextEditor editor;
-
-  /** The font chosen in page 1. */
-  private Font font;
-
-  /** The text widget used in page 2. */
-  private StyledText text;
-
-  /**
-   * Creates a multi-page editor example.
-   */
-  public ASDMultiPageEditor()
-  {
-    super();
-    DefaultEditDomain defaultGEFEditDomain = new DefaultEditDomain(this);
-    setEditDomain(defaultGEFEditDomain);
-    
-    getEditDomain().setActiveTool(new DirectEditSelectionTool());
-    getEditDomain().setDefaultTool(new DirectEditSelectionTool());
-  }
-
-  public String getContributorId()
-  {
-    return "org.eclipse.wst.wsdl.ui.internal.WSDLEditor";
-  }
-
-  private ASDSelectionManager selectionProvider;
-  private ASDSelectionManager selectionManager;
-  
-  public ASDSelectionManager getSelectionProvider()
-  {
-    return selectionProvider;
-  }
-  
-  public ASDSelectionManager getSelectionManager()
-  {
-    if (selectionManager == null)
-    {
-      selectionManager = new ASDSelectionManager(this);
-    }
-    return selectionManager;
-  }
-  
-  public ContentOutlinePage getContentOutlinePage() {
-	  if ((fOutlinePage == null) || fOutlinePage.getControl() == null || (fOutlinePage.getControl().isDisposed())) {
-		  ASDContentOutlineProvider provider = new ASDContentOutlineProvider(this, model);
-		  fOutlinePage = new ASDContentOutlinePage(this, menuProvider);
-		  fOutlinePage.setContentProvider(provider);
-		  fOutlinePage.setLabelProvider(provider);
-		  fOutlinePage.setModel(getModel());
-		  fOutlinePage.addSelectionChangedListener(selectionManager);
-	      selectionManager.addSelectionChangedListener(fOutlinePage);
-	    }
-	    return fOutlinePage;
-  }
-  
-  protected void addSourcePage() {
-	  try {
-		  int index = addPage(editor, getEditorInput());
-		  setPageText(index, "Source");
-		  editor.update();
-		  editor.setEditorPart(this);
-		  editor.addPropertyListener(this);
-		  
-		  firePropertyChange(PROP_TITLE);
-	  }
-	  catch (PartInitException e) {
-	      ErrorDialog.openError(getSite().getShell(), "Error creating nested text editor", null, e.getStatus());
-	  }
-  }
-  
-  /**
-   * Creates page 0 of the multi-page editor, which contains a text editor.
-   */
-  void createPage0()
-  {
-	  editor = new StructuredTextEditor();
-  }
-
-  /**
-   * Creates page 1 of the multi-page editor, which allows you to change the
-   * font used in page 2.
-   */
-  void createPage1()
-  {
-    Composite parent = new Composite(getContainer(), SWT.NONE);
-    parent.setLayout(new FillLayout());
-    graphicalViewer = new DesignViewGraphicalViewer(this, getSelectionProvider());
-    graphicalViewer.createControl(parent);
-    getEditDomain().addViewer(graphicalViewer);
-    configureGraphicalViewer();
-    hookGraphicalViewer();
-    initializeGraphicalViewer();
-    int index = addPage(parent);
-    setPageText(index, "Design");
-  }
-
-  /**
-   * Creates the pages of the multi-page editor.
-   */
-  protected void createPages()
-  {
-    selectionProvider = getSelectionManager();
-    getEditorSite().setSelectionProvider(selectionProvider);
-
-    createPage0();
-    addSourcePage();
-    model = buildModel((IFileEditorInput)getEditorInput());    
-    createPage1();
-    setActivePage(1);
-  }
-  
-	/**
-	 * Indicates that a property has changed.
-	 * 
-	 * @param source
-	 *            the object whose property has changed
-	 * @param propId
-	 *            the id of the property which has changed; property ids are
-	 *            generally defined as constants on the source class
-	 */
-	public void propertyChanged(Object source, int propId) {
-		switch (propId) {
-			// had to implement input changed "listener" so that
-			// strucutedText could tell it containing editor that
-			// the input has change, when a 'resource moved' event is
-			// found.
-			case IEditorPart.PROP_INPUT :
-			case IEditorPart.PROP_DIRTY : {
-				if (source == editor) {
-					if (editor.getEditorInput() != getEditorInput()) {
-						setInput(editor.getEditorInput());
-						// title should always change when input changes.
-						// create runnable for following post call
-						Runnable runnable = new Runnable() {
-							public void run() {
-								_firePropertyChange(IWorkbenchPart.PROP_TITLE);
-							}
-						};
-						// Update is just to post things on the display queue
-						// (thread). We have to do this to get the dirty
-						// property to get updated after other things on the
-						// queue are executed.
-						postOnDisplayQue(runnable);
-					}
-				}
-				break;
-			}
-			case IWorkbenchPart.PROP_TITLE : {
-				// update the input if the title is changed
-				if (source == editor) {
-					if (editor.getEditorInput() != getEditorInput()) {
-						setInput(editor.getEditorInput());
-					}
-				}
-				break;
-			}
-			default : {
-				// propagate changes. Is this needed? Answer: Yes.
-				if (source == editor) {
-					firePropertyChange(propId);
-				}
-				break;
-			}
-		}
-
-	}
-	
-	/*
-	 * This method is just to make firePropertyChanged accessbible from some
-	 * (anonomous) inner classes.
-	 */
-	protected void _firePropertyChange(int property) {
-		super.firePropertyChange(property);
-	}
-
-	/**
-	 * Posts the update code "behind" the running operation.
-	 */
-	protected void postOnDisplayQue(Runnable runnable) {
-		IWorkbench workbench = PlatformUI.getWorkbench();
-		IWorkbenchWindow[] windows = workbench.getWorkbenchWindows();
-		if (windows != null && windows.length > 0) {
-			Display display = windows[0].getShell().getDisplay();
-			display.asyncExec(runnable);
-		}
-		else
-			runnable.run();
-	}
-	
-  /**
-   * The <code>MultiPageEditorPart</code> implementation of this
-   * <code>IWorkbenchPart</code> method disposes all nested editors.
-   * Subclasses may extend.
-   */
-  public void dispose()
-  {
-    getCommandStack().removeCommandStackListener(this);
-    ResourcesPlugin.getWorkspace().removeResourceChangeListener(this);
-    getActionRegistry().dispose();
-    super.dispose();
-  }
-
-  /**
-   * Saves the multi-page editor's document.
-   */
-  public void doSave(IProgressMonitor monitor)
-  {
-    getEditor(0).doSave(monitor); 
-  }
-
-  /**
-   * Saves the multi-page editor's document as another file. Also updates the
-   * text for page 0's tab, and updates this multi-page editor's input to
-   * correspond to the nested editor's.
-   */
-  public void doSaveAs()
-  {
-    IEditorPart editor = getEditor(0);
-    editor.doSaveAs();
-    setPageText(0, editor.getTitle());
-    setInput(editor.getEditorInput());
-  }
-
-  /*
-   * (non-Javadoc) Method declared on IEditorPart
-   */
-  public void gotoMarker(IMarker marker)
-  {
-    setActivePage(0);
-    IDE.gotoMarker(getEditor(0), marker);
-  }
-
-  /**
-   * The <code>MultiPageEditorExample</code> implementation of this method
-   * checks that the input is an instance of <code>IFileEditorInput</code>.
-   */
-  public void init(IEditorSite site, IEditorInput editorInput) throws PartInitException
-  {
-    if (!(editorInput instanceof IFileEditorInput))
-      throw new PartInitException("Invalid Input: Must be IFileEditorInput");
-    super.init(site, editorInput);
-    
-    getCommandStack().addCommandStackListener(this);
-    initializeActionRegistry();    
-    
-    String title = null;
-    if (getEditorInput() != null) {
-      title = getEditorInput().getName();
-    }
-    setPartName(title);
-  }
-
-  /*
-   * (non-Javadoc) Method declared on IEditorPart.
-   */
-  public boolean isSaveAsAllowed()
-  {
-    return true;
-  }
-
-  /**
-   * Calculates the contents of page 2 when the it is activated.
-   */
-  protected void pageChange(int newPageIndex)
-  {
-    super.pageChange(newPageIndex);
-    if (newPageIndex == 1)
-    {
-    }
-  }
-
-  /**
-   * Closes all project files on project close.
-   */
-  public void resourceChanged(final IResourceChangeEvent event)
-  {
-    if (event.getType() == IResourceChangeEvent.PRE_CLOSE)
-    {
-      Display.getDefault().asyncExec(new Runnable()
-      {
-        public void run()
-        {
-          IWorkbenchPage[] pages = getSite().getWorkbenchWindow().getPages();
-          for (int i = 0; i < pages.length; i++)
-          {
-            if (((FileEditorInput) editor.getEditorInput()).getFile().getProject().equals(event.getResource()))
-            {
-              IEditorPart editorPart = pages[i].findEditor(editor.getEditorInput());
-              pages[i].closeEditor(editorPart, true);
-            }
-          }
-        }
-      });
-    }
-  }
-
-  /**
-   * Sets the font related data to be applied to the text in page 2.
-   */
-  void setFont()
-  {
-    FontDialog fontDialog = new FontDialog(getSite().getShell());
-    fontDialog.setFontList(text.getFont().getFontData());
-    FontData fontData = fontDialog.open();
-    if (fontData != null)
-    {
-      if (font != null)
-        font.dispose();
-      font = new Font(text.getDisplay(), fontData);
-      text.setFont(font);
-    }
-  }
-
-  abstract public IDescription buildModel(IFileEditorInput editorInput);
-  
-  protected void initializeActionRegistry()
-  {
-    createActions();
-  }
-
-  protected void createActions()
-  {
-    ActionRegistry registry = getActionRegistry();
-
-    BaseSelectionAction action = new ASDAddServiceAction(this);
-    action.setSelectionProvider(getSelectionManager());
-    registry.registerAction(action);
-    
-    action = new ASDAddBindingAction(this);
-    action.setSelectionProvider(getSelectionManager());
-    registry.registerAction(action);
-    
-    action = new ASDAddInterfaceAction(this);
-    action.setSelectionProvider(getSelectionManager());
-    registry.registerAction(action);
-    
-    action = new ASDAddEndPointAction(this);
-    action.setSelectionProvider(getSelectionManager());
-    registry.registerAction(action);
-    
-    action = new ASDAddOperationAction(this);
-    action.setSelectionProvider(getSelectionManager());
-    registry.registerAction(action);
-    
-    action = new ASDAddInputAction(this);
-    action.setSelectionProvider(getSelectionManager());
-    registry.registerAction(action);
-    
-    action = new ASDAddOutputAction(this);
-    action.setSelectionProvider(getSelectionManager());
-    registry.registerAction(action);
-    
-    action = new ASDAddFaultAction(this);
-    action.setSelectionProvider(getSelectionManager());
-    registry.registerAction(action);
-
-    action = new ASDDeleteAction(this);
-    action.setSelectionProvider(getSelectionManager());
-    registry.registerAction(action);
-    
-    action = new ASDSetNewBindingAction(this);
-    action.setSelectionProvider(getSelectionManager());
-    registry.registerAction(action);
-    
-    action = new ASDSetExistingBindingAction(this);
-    action.setSelectionProvider(getSelectionManager());
-    registry.registerAction(action);
-
-    action = new ASDSetNewInterfaceAction(this);
-    action.setSelectionProvider(getSelectionManager());
-    registry.registerAction(action);
-    
-    action = new ASDSetExistingInterfaceAction(this);
-    action.setSelectionProvider(getSelectionManager());
-    registry.registerAction(action);
-    
-    action = new ASDGenerateBindingAction(this);
-    action.setSelectionProvider(getSelectionManager());
-    registry.registerAction(action);
-    
-    action = new ASDAddImportAction(this);
-    action.setSelectionProvider(getSelectionManager());
-    registry.registerAction(action);
-    
-    action = new ASDAddSchemaAction(this);
-    action.setSelectionProvider(getSelectionManager());
-    registry.registerAction(action);
-  }
-
-  public IDescription getModel()
-  {
-    return model;
-  }
-
-  //protected XSDModelAdapterFactoryImpl xsdModelAdapterFactory;
-  //protected XSDAdapterFactoryLabelProvider adapterFactoryLabelProvider;
-
-  public Object getAdapter(Class type)
-  {
-    if (type == ZoomManager.class)
-      return graphicalViewer.getProperty(ZoomManager.class.toString());
-    /*
-    if (type == ISelectionProvider.class)
-    {
-      result = getSelectionManager();
-    }
-    */
-
-    if (type == org.eclipse.ui.views.properties.IPropertySheetPage.class)
-    {
-    	ASDTabbedPropertySheetPage page = new ASDTabbedPropertySheetPage(this);
-    	return page;
-    }
-    if (type == GraphicalViewer.class)
-      return graphicalViewer;
-    if (type == CommandStack.class)
-      return getCommandStack();
-    if (type == ActionRegistry.class)
-      return getActionRegistry();
-    if (type == EditPart.class && graphicalViewer != null)
-      return graphicalViewer.getRootEditPart();
-    if (type == IFigure.class && graphicalViewer != null)
-      return ((GraphicalEditPart) graphicalViewer.getRootEditPart()).getFigure();
-    
-    if (IContentOutlinePage.class.equals(type))
-    {
-      return getContentOutlinePage();
-    }
-
-    return super.getAdapter(type);
-  }
-
-  protected DefaultEditDomain getEditDomain()
-  {
-    return editDomain;
-  }
-
-
-  protected void configureGraphicalViewer()
-  {
-    graphicalViewer.getControl().setBackground(ColorConstants.listBackground);
-
-    // Set the root edit part
-    // ScalableFreeformRootEditPart root = new ScalableFreeformRootEditPart();
-    ASDRootEditPart root = new ASDRootEditPart();
-
-    List zoomLevels = new ArrayList(3);
-    zoomLevels.add(ZoomManager.FIT_ALL);
-    zoomLevels.add(ZoomManager.FIT_WIDTH);
-    zoomLevels.add(ZoomManager.FIT_HEIGHT);
-    root.getZoomManager().setZoomLevelContributions(zoomLevels);
-
-    IAction zoomIn = new ZoomInAction(root.getZoomManager());
-    IAction zoomOut = new ZoomOutAction(root.getZoomManager());
-    getActionRegistry().registerAction(zoomIn);
-    getActionRegistry().registerAction(zoomOut);
-
-    getSite().getKeyBindingService().registerAction(zoomIn);
-    getSite().getKeyBindingService().registerAction(zoomOut);
-
-    //ConnectionLayer connectionLayer = (ConnectionLayer) root.getLayer(LayerConstants.CONNECTION_LAYER);
-    //connectionLayer.setConnectionRouter(new BendpointConnectionRouter());
-
-    //connectionLayer.setConnectionRouter(new ShortestPathConnectionRouter(connectionLayer));
-    // connectionLayer.setVisible(false);
-
-    // Zoom
-    ZoomManager manager = (ZoomManager) graphicalViewer.getProperty(ZoomManager.class.toString());
-    if (manager != null)
-      manager.setZoom(1.0);
-    // Scroll-wheel Zoom
-    graphicalViewer.setProperty(MouseWheelHandler.KeyGenerator.getKey(SWT.CTRL), MouseWheelZoomHandler.SINGLETON);
-    graphicalViewer.setRootEditPart(root);
-    setEditPartFactory(new ASDEditPartFactory());
-  }
-  
-  protected void setEditPartFactory(EditPartFactory factory) {
-	  graphicalViewer.setEditPartFactory(factory);
-  }
-
-  protected void hookGraphicalViewer()
-  {
-    getSelectionSynchronizer().addViewer(graphicalViewer);
-    // getSelectionManager().addSelectionChangedListener(graphicalViewer);
-  }
-
-  protected SelectionSynchronizer getSelectionSynchronizer()
-  {
-    if (synchronizer == null)
-      synchronizer = new SelectionSynchronizer();
-    return synchronizer;
-  }
-
-  protected void initializeGraphicalViewer()
-  {
-    graphicalViewer.setContents(model);
-    menuProvider = new DesignViewContextMenuProvider(graphicalViewer, getSelectionProvider());
-  }
-
-  protected void setEditDomain(DefaultEditDomain ed)
-  {
-    this.editDomain = ed;
-  }
-
-  protected CommandStack getCommandStack()
-  {
-    return getEditDomain().getCommandStack();
-  }
-
-  protected ActionRegistry getActionRegistry()
-  {
-    if (actionRegistry == null)
-      actionRegistry = new ActionRegistry();
-    return actionRegistry;
-  }
-
-  public void commandStackChanged(EventObject event)
-  {
-    updateActions(stackActions);
-    firePropertyChange(PROP_DIRTY);
-  }
-
-  /**
-   * From GEF GraphicalEditor A convenience method for updating a set of actions
-   * defined by the given List of action IDs. The actions are found by looking
-   * up the ID in the {@link #getActionRegistry() action registry}. If the
-   * corresponding action is an {@link UpdateAction}, it will have its
-   * <code>update()</code> method called.
-   * 
-   * @param actionIds
-   *          the list of IDs to update
-   */
-  protected void updateActions(List actionIds)
-  {
-    ActionRegistry registry = getActionRegistry();
-    Iterator iter = actionIds.iterator();
-    while (iter.hasNext())
-    {
-      IAction action = registry.getAction(iter.next());
-      if (action instanceof UpdateAction)
-        ((UpdateAction) action).update();
-    }
-  }
-
-  /**
-   * Returns <code>true</code> if the command stack is dirty
-   * 
-   * @see org.eclipse.ui.ISaveablePart#isDirty()
-   */
-  public boolean isDirty()
-  {
-    return super.isDirty();
-    // TODO: rmah: Or do we need to tell the CommandStack that a save has occurred?
-//    return getCommandStack().isDirty();
-  }
-
-  public StructuredTextEditor getTextEditor()
-  {
-	  return editor;
-  }
-  
-  public abstract IOpenExternalEditorHelper getOpenExternalEditorHelper();
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/ASDSelectionManager.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/ASDSelectionManager.java
deleted file mode 100644
index 6660147..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/ASDSelectionManager.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.editor;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.ui.part.MultiPageEditorPart;
-import org.eclipse.ui.part.MultiPageSelectionProvider;
-
-public class ASDSelectionManager extends MultiPageSelectionProvider implements ISelectionProvider, ISelectionChangedListener
-{
-	protected List listenerList = new ArrayList();
-	protected ISelection currentSelection;
-	protected boolean enableNotify = true;
-	
-	public ASDSelectionManager(MultiPageEditorPart multiPageEditor)
-	{
-		super(multiPageEditor);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ISelectionProvider#addSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener)
-	 */
-	public void addSelectionChangedListener(ISelectionChangedListener listener)
-	{
-		listenerList.add(listener);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ISelectionProvider#getSelection()
-	 */
-	public ISelection getSelection()
-	{
-		return currentSelection;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ISelectionProvider#removeSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener)
-	 */
-	public void removeSelectionChangedListener(ISelectionChangedListener listener)
-	{
-		listenerList.remove(listener);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ISelectionProvider#setSelection(org.eclipse.jface.viewers.ISelection)
-	 */
-	public void setSelection(ISelection selection)
-	{
-		setSelection(selection, this);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)
-	 */
-	public void selectionChanged(SelectionChangedEvent event)
-	{
-		if (enableNotify)
-		{
-			setSelection(event.getSelection(), event.getSelectionProvider());
-		}
-	}
-	
-	public void setSelection(ISelection selection, ISelectionProvider source)
-	{  
-		if (enableNotify)
-		{
-			currentSelection = selection;
-			enableNotify = false;
-			try
-			{
-				SelectionChangedEvent event = new SelectionChangedEvent(source, selection);
-				List copyOfListenerList = new ArrayList(listenerList);
-				for (Iterator i = copyOfListenerList.iterator(); i.hasNext(); )
-				{
-					ISelectionChangedListener listener = (ISelectionChangedListener)i.next();
-					listener.selectionChanged(event);
-				}
-			}
-			finally
-			{
-				enableNotify = true;
-			}
-		}
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDAddBindingAction.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDAddBindingAction.java
deleted file mode 100644
index 182bee4..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDAddBindingAction.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.editor.actions;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.commands.CommandStack;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.wsdl.asd.editor.ASDEditorPlugin;
-import org.eclipse.wst.wsdl.asd.editor.outline.ICategoryAdapter;
-import org.eclipse.wst.wsdl.asd.facade.IDescription;
-
-public class ASDAddBindingAction extends BaseSelectionAction {
-	public static String ID = "ASDAddBindingAction"; 
-	
-	public ASDAddBindingAction(IWorkbenchPart part)	{
-		super(part);
-		setId(ID);
-		setText("Add Binding");
-		setImageDescriptor(ASDEditorPlugin.getImageDescriptor("icons/binding_obj.gif"));
-	}
-	
-	public void run() {
-		if (getSelectedObjects().size() > 0) {
-			Object o = getSelectedObjects().get(0);
-			
-			if (o instanceof ICategoryAdapter) {
-				o = ((ICategoryAdapter) o).getOwnerDescription();
-			}
-			
-			if (o instanceof IDescription) {
-				Command command = ((IDescription) o).getAddBindingCommand();
-			    CommandStack stack = (CommandStack) ASDEditorPlugin.getActiveEditor().getAdapter(CommandStack.class);
-			    stack.execute(command);
-			}
-		}  
-	}
-	
-	protected boolean calculateEnabled() {
-		return true;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDAddEndPointAction.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDAddEndPointAction.java
deleted file mode 100644
index ba90789..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDAddEndPointAction.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.editor.actions;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.commands.CommandStack;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.wsdl.asd.editor.ASDEditorPlugin;
-import org.eclipse.wst.wsdl.asd.facade.IEndPoint;
-import org.eclipse.wst.wsdl.asd.facade.IService;
-
-public class ASDAddEndPointAction extends BaseSelectionAction {	
-	public static String ID = "ASDAddEndPointAction"; 
-	
-	public ASDAddEndPointAction(IWorkbenchPart part)	{
-		super(part);
-		setId(ID);
-		setText("Add Port");
-		setImageDescriptor(ASDEditorPlugin.getImageDescriptor("icons/port_obj.gif"));
-	}
-	
-	public void run() {
-		if (getSelectedObjects().size() > 0) {
-			Object o = getSelectedObjects().get(0);
-			IService service = null;
-			
-            if (o instanceof IService) {
-            	service = (IService) o;
-            }
-            else if (o instanceof IEndPoint) {
-            	service = ((IEndPoint) o).getOwnerService();
-            }
-            
-            if (service != null) {
-                Command command = service.getAddEndPointCommand();
-                CommandStack stack = (CommandStack) ASDEditorPlugin.getActiveEditor().getAdapter(CommandStack.class);
-                stack.execute(command);
-            }
-		}  
-	}
-	
-	protected boolean calculateEnabled() {
-		return true;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDAddFaultAction.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDAddFaultAction.java
deleted file mode 100644
index 8b605a5..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDAddFaultAction.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.editor.actions;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.commands.CommandStack;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.wsdl.asd.editor.ASDEditorPlugin;
-import org.eclipse.wst.wsdl.asd.facade.IMessageReference;
-import org.eclipse.wst.wsdl.asd.facade.IOperation;
-import org.eclipse.wst.wsdl.asd.facade.IParameter;
-import org.eclipse.wst.wsdl.ui.internal.adapters.basic.W11MessageReference;
-
-public class ASDAddFaultAction extends BaseSelectionAction {
-	public static String ID = "ASDAddFaultActionn"; 
-	
-	public ASDAddFaultAction(IWorkbenchPart part)	{
-		super(part);
-		setId(ID);
-		setText("Add Fault");  
-		setImageDescriptor(ASDEditorPlugin.getImageDescriptor("icons/fault_obj.gif"));
-	}
-	
-	public void run() {
-		if (getSelectedObjects().size() > 0) {
-			Object o = getSelectedObjects().get(0);
-			IOperation iOperation = null;
-			Object possibleFault = null;
-			
-			if (o instanceof IOperation) {
-				iOperation = (IOperation) o;
-			}
-			else if (o instanceof IMessageReference) {
-				iOperation = ((IMessageReference) o).getOwnerOperation();
-				possibleFault = ((W11MessageReference) o).getTarget();
-			}
-			else if (o instanceof IParameter) {
-				iOperation = ((IMessageReference) ((IParameter) o).getOwner()).getOwnerOperation();
-				possibleFault = ((W11MessageReference) ((IParameter) o).getOwner()).getTarget();
-			}
-			
-			if (iOperation != null) {
-				Command command = iOperation.getAddFaultCommand(possibleFault);
-			    CommandStack stack = (CommandStack) ASDEditorPlugin.getActiveEditor().getAdapter(CommandStack.class);
-			    stack.execute(command);
-			}
-		}  
-	}
-	
-	protected boolean calculateEnabled() {
-		return true;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDAddImportAction.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDAddImportAction.java
deleted file mode 100644
index ef144e4..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDAddImportAction.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.editor.actions;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.commands.CommandStack;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.wsdl.asd.editor.ASDEditorPlugin;
-import org.eclipse.wst.wsdl.asd.editor.outline.ICategoryAdapter;
-import org.eclipse.wst.wsdl.asd.facade.IDescription;
-
-public class ASDAddImportAction extends BaseSelectionAction {
-	public static String ID = "ASDAddImportAction"; 
-	
-	public ASDAddImportAction(IWorkbenchPart part)	{
-		super(part);
-		setId(ID);
-		setText("Add Import");
-		setImageDescriptor(ASDEditorPlugin.getImageDescriptor("icons/import_obj.gif"));
-	}
-	
-	public void run() {
-		if (getSelectedObjects().size() > 0) {
-			Object o = getSelectedObjects().get(0);
-			
-			if (o instanceof ICategoryAdapter) {
-				o = ((ICategoryAdapter) o).getOwnerDescription();
-			}
-			
-			if (o instanceof IDescription) {
-				Command command = ((IDescription) o).getAddImportCommand();
-			    CommandStack stack = (CommandStack) ASDEditorPlugin.getActiveEditor().getAdapter(CommandStack.class);
-			    stack.execute(command);
-			}
-		}  
-	}
-	
-	protected boolean calculateEnabled() {
-		return true;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDAddInputAction.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDAddInputAction.java
deleted file mode 100644
index 53bfcb9..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDAddInputAction.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.editor.actions;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.commands.CommandStack;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.wsdl.asd.editor.ASDEditorPlugin;
-import org.eclipse.wst.wsdl.asd.facade.IMessageReference;
-import org.eclipse.wst.wsdl.asd.facade.IOperation;
-import org.eclipse.wst.wsdl.asd.facade.IParameter;
-
-public class ASDAddInputAction extends BaseSelectionAction {	
-	public static String ID = "ASDAddInputActionn"; 
-	
-	public ASDAddInputAction(IWorkbenchPart part)	{
-		super(part);
-		setId(ID);
-		setText("Add Input");  
-		setImageDescriptor(ASDEditorPlugin.getImageDescriptor("icons/input_obj.gif"));
-	}
-	
-	public void run() {
-		if (getSelectedObjects().size() > 0) {
-			Object o = getSelectedObjects().get(0);
-			IOperation iOperation = null;
-			
-			if (o instanceof IOperation) {
-				iOperation = (IOperation) o;
-			}
-			else if (o instanceof IMessageReference) {
-				iOperation = ((IMessageReference) o).getOwnerOperation();
-			}
-			else if (o instanceof IParameter) {
-				iOperation = ((IMessageReference) ((IParameter) o).getOwner()).getOwnerOperation();
-			}
-			
-			if (iOperation != null) {
-				Command command = iOperation.getAddInputCommand();
-			    CommandStack stack = (CommandStack) ASDEditorPlugin.getActiveEditor().getAdapter(CommandStack.class);
-			    stack.execute(command);
-			}
-		}  
-	}
-	
-	protected boolean calculateEnabled() {
-		return true;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDAddInterfaceAction.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDAddInterfaceAction.java
deleted file mode 100644
index f3f106a..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDAddInterfaceAction.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.editor.actions;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.commands.CommandStack;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.wsdl.asd.editor.ASDEditorPlugin;
-import org.eclipse.wst.wsdl.asd.editor.outline.ICategoryAdapter;
-import org.eclipse.wst.wsdl.asd.facade.IDescription;
-
-public class ASDAddInterfaceAction extends BaseSelectionAction {	
-	public static String ID = "ASDAddInterfaceAction"; 
-	
-	public ASDAddInterfaceAction(IWorkbenchPart part)	{
-		super(part);
-		setId(ID);
-		setText("Add PortType");
-		setImageDescriptor(ASDEditorPlugin.getImageDescriptor("icons/porttype_obj.gif"));
-	}
-	
-	public void run() {
-		if (getSelectedObjects().size() > 0) {
-			Object o = getSelectedObjects().get(0);
-
-			if (o instanceof ICategoryAdapter) {
-				o = ((ICategoryAdapter) o).getOwnerDescription();
-			}
-			
-			if (o instanceof IDescription) {
-				Command command = ((IDescription) o).getAddInterfaceCommand();
-			    CommandStack stack = (CommandStack) ASDEditorPlugin.getActiveEditor().getAdapter(CommandStack.class);
-			    stack.execute(command);
-			}
-		}  
-	}
-	
-	protected boolean calculateEnabled() {
-		return true;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDAddMessageAction.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDAddMessageAction.java
deleted file mode 100644
index 791b799..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDAddMessageAction.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.editor.actions;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.commands.CommandStack;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.wsdl.asd.editor.ASDEditorPlugin;
-import org.eclipse.wst.wsdl.asd.editor.outline.ICategoryAdapter;
-import org.eclipse.wst.wsdl.asd.facade.IDescription;
-
-public class ASDAddMessageAction extends BaseSelectionAction {
-	public static String ID = "ASDAddMessageAction"; 
-	
-	public ASDAddMessageAction(IWorkbenchPart part)	{
-		super(part);
-		setId(ID);
-		setText("Add Message");
-		setImageDescriptor(ASDEditorPlugin.getImageDescriptor("icons/message_obj.gif"));
-	}
-	
-	public void run() {
-		if (getSelectedObjects().size() > 0) {
-			Object o = getSelectedObjects().get(0);
-			
-			if (o instanceof ICategoryAdapter) {
-				o = ((ICategoryAdapter) o).getOwnerDescription();
-			}
-			
-			if (o instanceof IDescription) {
-				Command command = ((IDescription) o).getAddMessageCommand();
-			    CommandStack stack = (CommandStack) ASDEditorPlugin.getActiveEditor().getAdapter(CommandStack.class);
-			    stack.execute(command);
-			}
-		}  
-	}
-	
-	protected boolean calculateEnabled() {
-		return true;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDAddOperationAction.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDAddOperationAction.java
deleted file mode 100644
index 68c42ad..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDAddOperationAction.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.editor.actions;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.commands.CommandStack;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.wsdl.asd.editor.ASDEditorPlugin;
-import org.eclipse.wst.wsdl.asd.facade.IInterface;
-import org.eclipse.wst.wsdl.asd.facade.IMessageReference;
-import org.eclipse.wst.wsdl.asd.facade.IOperation;
-import org.eclipse.wst.wsdl.asd.facade.IParameter;
-
-public class ASDAddOperationAction extends BaseSelectionAction {	
-	public static String ID = "ASDAddOperationAction"; 
-	
-	public ASDAddOperationAction(IWorkbenchPart part)	{
-		super(part);
-		setId(ID);
-		setText("Add Operation");
-		setImageDescriptor(ASDEditorPlugin.getImageDescriptor("icons/operation_obj.gif"));
-	}
-	
-	public void run() {
-		if (getSelectedObjects().size() > 0) {
-			Object o = getSelectedObjects().get(0);
-			IInterface theInterface = null;
-			
-			if (o instanceof IInterface) {
-				theInterface = (IInterface) o;
-			}
-			else if (o instanceof IOperation) {
-				theInterface = ((IOperation) o).getOwnerInterface();
-			}
-			else if (o instanceof IMessageReference) {
-				theInterface = ((IMessageReference) o).getOwnerOperation().getOwnerInterface();
-			}
-			else if (o instanceof IParameter) {
-				theInterface = ((IMessageReference) ((IParameter) o).getOwner()).getOwnerOperation().getOwnerInterface();
-			}
-			
-			if (theInterface != null) {
-				Command command = theInterface.getAddOperationCommand();
-			    CommandStack stack = (CommandStack) ASDEditorPlugin.getActiveEditor().getAdapter(CommandStack.class);
-			    stack.execute(command);
-			}
-		}  
-	}
-	
-	protected boolean calculateEnabled() {
-		return true;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDAddOutputAction.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDAddOutputAction.java
deleted file mode 100644
index 8c4bbcf..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDAddOutputAction.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.editor.actions;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.commands.CommandStack;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.wsdl.asd.editor.ASDEditorPlugin;
-import org.eclipse.wst.wsdl.asd.facade.IMessageReference;
-import org.eclipse.wst.wsdl.asd.facade.IOperation;
-import org.eclipse.wst.wsdl.asd.facade.IParameter;
-
-public class ASDAddOutputAction extends BaseSelectionAction {	
-	public static String ID = "ASDAddOutputActionn"; 
-	
-	public ASDAddOutputAction(IWorkbenchPart part)	{
-		super(part);
-		setId(ID);
-		setText("Add Output");
-		setImageDescriptor(ASDEditorPlugin.getImageDescriptor("icons/output_obj.gif"));
-	}
-	
-	public void run() {
-		if (getSelectedObjects().size() > 0) {
-			Object o = getSelectedObjects().get(0);
-			IOperation iOperation = null;
-			
-			if (o instanceof IOperation) {
-				iOperation = (IOperation) o;
-			}
-			else if (o instanceof IMessageReference) {
-				iOperation = ((IMessageReference) o).getOwnerOperation();
-			}
-			else if (o instanceof IParameter) {
-				iOperation = ((IMessageReference) ((IParameter) o).getOwner()).getOwnerOperation();
-			}
-			
-			if (iOperation != null) {
-				Command command = iOperation.getAddOutputCommand();
-			    CommandStack stack = (CommandStack) ASDEditorPlugin.getActiveEditor().getAdapter(CommandStack.class);
-			    stack.execute(command);
-			}
-		}  
-	}
-	
-	protected boolean calculateEnabled() {
-		return true;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDAddSchemaAction.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDAddSchemaAction.java
deleted file mode 100644
index a21c9d3..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDAddSchemaAction.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.editor.actions;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.commands.CommandStack;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.wsdl.asd.editor.ASDEditorPlugin;
-import org.eclipse.wst.wsdl.asd.editor.outline.ICategoryAdapter;
-import org.eclipse.wst.wsdl.asd.facade.IDescription;
-
-public class ASDAddSchemaAction extends BaseSelectionAction {
-	public static String ID = "ASDAddSchemaAction"; 
-	
-	public ASDAddSchemaAction(IWorkbenchPart part)	{
-		super(part);
-		setId(ID);
-		setText("Add Schema");
-		setImageDescriptor(ASDEditorPlugin.getImageDescriptor("icons/xsd_obj.gif"));
-	}
-	
-	public void run() {
-		if (getSelectedObjects().size() > 0) {
-			Object o = getSelectedObjects().get(0);
-			
-			if (o instanceof ICategoryAdapter) {
-				o = ((ICategoryAdapter) o).getOwnerDescription();
-			}
-			
-			if (o instanceof IDescription) {
-				Command command = ((IDescription) o).getAddSchemaCommand();
-			    CommandStack stack = (CommandStack) ASDEditorPlugin.getActiveEditor().getAdapter(CommandStack.class);
-			    stack.execute(command);
-			}
-		}  
-	}
-	
-	protected boolean calculateEnabled() {
-		return true;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDAddServiceAction.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDAddServiceAction.java
deleted file mode 100644
index d3d21f1..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDAddServiceAction.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.editor.actions;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.commands.CommandStack;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.wsdl.asd.editor.ASDEditorPlugin;
-import org.eclipse.wst.wsdl.asd.editor.outline.ICategoryAdapter;
-import org.eclipse.wst.wsdl.asd.facade.IDescription;
-
-public class ASDAddServiceAction extends BaseSelectionAction {	
-	public static String ID = "ASDAddServiceAction"; 
-	
-	public ASDAddServiceAction(IWorkbenchPart part)	{
-		super(part);
-		setId(ID);
-		setText("Add Service");
-		setImageDescriptor(ASDEditorPlugin.getImageDescriptor("icons/service_obj.gif"));
-	}
-	
-	public void run() {
-		if (getSelectedObjects().size() > 0) {
-			Object o = getSelectedObjects().get(0);
-			
-			if (o instanceof ICategoryAdapter) {
-				o = ((ICategoryAdapter) o).getOwnerDescription();
-			}
-			
-			if (o instanceof IDescription) {
-				Command command = ((IDescription) o).getAddServiceCommand();
-			    CommandStack stack = (CommandStack) ASDEditorPlugin.getActiveEditor().getAdapter(CommandStack.class);
-			    stack.execute(command);
-			}
-		}  
-	}
-	
-	protected boolean calculateEnabled() {
-		return true;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDDeleteAction.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDDeleteAction.java
deleted file mode 100644
index 6d9ca2a..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDDeleteAction.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.editor.actions;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.commands.CommandStack;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.wsdl.asd.editor.ASDEditorPlugin;
-import org.eclipse.wst.wsdl.asd.facade.IBinding;
-import org.eclipse.wst.wsdl.asd.facade.IEndPoint;
-import org.eclipse.wst.wsdl.asd.facade.IImport;
-import org.eclipse.wst.wsdl.asd.facade.IInterface;
-import org.eclipse.wst.wsdl.asd.facade.IMessage;
-import org.eclipse.wst.wsdl.asd.facade.IMessageReference;
-import org.eclipse.wst.wsdl.asd.facade.IOperation;
-import org.eclipse.wst.wsdl.asd.facade.IParameter;
-import org.eclipse.wst.wsdl.asd.facade.IService;
-
-public class ASDDeleteAction extends BaseSelectionAction {
-	public static String ID = "ASDDeleteAction"; 
-	
-	public ASDDeleteAction(IWorkbenchPart part)	{
-		super(part);
-		setId(ID);
-		setText("Delete");
-		setImageDescriptor(ASDEditorPlugin.getImageDescriptor("icons/delete_obj.gif"));
-	}
-	
-	public void run() {
-		if (getSelectedObjects().size() > 0) {
-			Object object = getSelectedObjects().get(0);
-			Command command = null;
-			
-			if (object instanceof IService) {
-				command = ((IService) object).getDeleteCommand();
-			}
-			else if (object instanceof IEndPoint) {
-				command = ((IEndPoint) object).getDeleteCommand();
-			}
-			else if (object instanceof IBinding) {
-				command = ((IBinding) object).getDeleteCommand();
-			}
-			else if (object instanceof IInterface) {
-				command = ((IInterface) object).getDeleteCommand();
-			}
-			else if (object instanceof IOperation) {
-				command = ((IOperation) object).getDeleteCommand();
-			}
-			else if (object instanceof IMessageReference) {
-				command = ((IMessageReference) object).getDeleteCommand();
-			}
-			else if (object instanceof IParameter) {
-				command = ((IParameter) object).getDeleteCommand();
-			}
-			else if (object instanceof IImport) {
-				command = ((IImport) object).getDeleteCommand();
-			}
-			else if (object instanceof IMessage) {
-				command = ((IMessage) object).getDeleteCommand();
-			}
-			
-			if (command != null) {
-			    CommandStack stack = (CommandStack) ASDEditorPlugin.getActiveEditor().getAdapter(CommandStack.class);
-			    stack.execute(command);
-			}
-		}  
-	}
-	
-	protected boolean calculateEnabled() {
-		return true;
-	}
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDGenerateBindingAction.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDGenerateBindingAction.java
deleted file mode 100644
index c3934fd..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDGenerateBindingAction.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.editor.actions;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.commands.CommandStack;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.wsdl.asd.editor.ASDEditorPlugin;
-import org.eclipse.wst.wsdl.asd.facade.IBinding;
-
-public class ASDGenerateBindingAction extends BaseSelectionAction {
-	public static String ID = "ASDGenerateBindingActionn"; 
-	
-	public ASDGenerateBindingAction(IWorkbenchPart part)	{
-		super(part);
-		setId(ID);
-		setText("Generate Binding...");  
-//		setImageDescriptor(WSDLEditorPlugin.getImageDescriptor("icons/input_obj.gif"));
-	}
-	
-	public void run() {
-		if (getSelectedObjects().size() > 0) {
-			Object o = getSelectedObjects().get(0);
-			
-			if (o instanceof IBinding) {
-				Command command = ((IBinding) o).getGenerateBindingCommand();
-			    CommandStack stack = (CommandStack) ASDEditorPlugin.getActiveEditor().getAdapter(CommandStack.class);
-			    stack.execute(command);
-			}
-		}  
-	}
-	
-	protected boolean calculateEnabled() {
-		return true;
-	}
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDSetExistingBindingAction.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDSetExistingBindingAction.java
deleted file mode 100644
index c598ec6..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDSetExistingBindingAction.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.editor.actions;
-
-import org.eclipse.jface.window.Window;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSpecification;
-import org.eclipse.wst.wsdl.asd.editor.ASDEditorPlugin;
-import org.eclipse.wst.wsdl.asd.facade.IEndPoint;
-import org.eclipse.wst.wsdl.ui.internal.edit.W11BindingReferenceEditManager;
-import org.eclipse.wst.xsd.adt.edit.ComponentReferenceEditManager;
-import org.eclipse.wst.xsd.adt.edit.IComponentDialog;
-
-public class ASDSetExistingBindingAction extends BaseSelectionAction {
-	public static String ID = "ASDSetExistingBindingAction";
-	protected IEndPoint endPoint;
-	
-	public ASDSetExistingBindingAction(IWorkbenchPart part)	{
-		super(part);
-		setId(ID);
-		setText("Set Existing Binding...");
-//		setImageDescriptor(WSDLEditorPlugin.getImageDescriptor("icons/service_obj.gif"));
-	}
-	
-	public void setIEndPoint(IEndPoint endPoint) {
-		this.endPoint = endPoint;
-	}
-	
-	public void run() {		
-		if (endPoint == null) {
-			if (getSelectedObjects().size() > 0) {
-				Object o = getSelectedObjects().get(0);
-				if (o instanceof IEndPoint) {
-					endPoint = (IEndPoint) o;
-				}
-			}
-		}
-		
-		if (endPoint != null) {
-			IEditorPart editor = ASDEditorPlugin.getActiveEditor();
-			// TODO: rmah: We should not know about W11BindingReferenceEditManager here....  We should a better
-			// way to retrieve the appropriate Reference Manager
-			ComponentReferenceEditManager refManager = (ComponentReferenceEditManager) editor.getAdapter(W11BindingReferenceEditManager.class);
-			IComponentDialog dialog = refManager.getBrowseDialog();
-			if (dialog.createAndOpen() == Window.OK) {
-				ComponentSpecification spec = dialog.getSelectedComponent();
-				refManager.modifyComponentReference(endPoint, spec);
-			}
-		}
-		
-		endPoint = null;
-	}
-	
-	protected boolean calculateEnabled() {
-		return true;
-	}
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDSetExistingInterfaceAction.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDSetExistingInterfaceAction.java
deleted file mode 100644
index b440e50..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDSetExistingInterfaceAction.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.editor.actions;
-
-import org.eclipse.jface.window.Window;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSpecification;
-import org.eclipse.wst.wsdl.asd.editor.ASDEditorPlugin;
-import org.eclipse.wst.wsdl.asd.facade.IBinding;
-import org.eclipse.wst.wsdl.ui.internal.edit.W11InterfaceReferenceEditManager;
-import org.eclipse.wst.xsd.adt.edit.ComponentReferenceEditManager;
-import org.eclipse.wst.xsd.adt.edit.IComponentDialog;
-
-public class ASDSetExistingInterfaceAction extends BaseSelectionAction {
-	public static String ID = "ASDSetExistingInterfaceAction";
-	protected IBinding binding;
-	
-	public ASDSetExistingInterfaceAction(IWorkbenchPart part)	{
-		super(part);
-		setId(ID);
-		setText("Set Existing PortType...");
-//		setImageDescriptor(WSDLEditorPlugin.getImageDescriptor("icons/service_obj.gif"));
-	}
-	
-	public void setIBinding(IBinding binding) {
-		this.binding = binding;
-	}
-	
-	public void run() {		
-		if (binding == null) {
-			if (getSelectedObjects().size() > 0) {
-				Object o = getSelectedObjects().get(0);
-				if (o instanceof IBinding) {
-					binding = (IBinding) o;
-				}
-			}
-		}
-		
-		if (binding != null) {
-			IEditorPart editor = ASDEditorPlugin.getActiveEditor();
-			// TODO: rmah: We should not know about W11InterfaceReferenceEditManager here....  We should a better
-			// way to retrieve the appropriate Reference Manager
-			ComponentReferenceEditManager refManager = (ComponentReferenceEditManager) editor.getAdapter(W11InterfaceReferenceEditManager.class);
-			IComponentDialog dialog = refManager.getBrowseDialog();
-			if (dialog.createAndOpen() == Window.OK) {
-				ComponentSpecification spec = dialog.getSelectedComponent();
-				refManager.modifyComponentReference(binding, spec);
-			}
-		}
-		
-		binding = null;
-	}
-	
-	protected boolean calculateEnabled() {
-		return true;
-	}
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDSetNewBindingAction.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDSetNewBindingAction.java
deleted file mode 100644
index b635e7b..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDSetNewBindingAction.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.editor.actions;
-
-import org.eclipse.jface.window.Window;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSpecification;
-import org.eclipse.wst.wsdl.asd.editor.ASDEditorPlugin;
-import org.eclipse.wst.wsdl.asd.facade.IEndPoint;
-import org.eclipse.wst.wsdl.ui.internal.edit.W11BindingReferenceEditManager;
-import org.eclipse.wst.xsd.adt.edit.ComponentReferenceEditManager;
-import org.eclipse.wst.xsd.adt.edit.IComponentDialog;
-
-public class ASDSetNewBindingAction extends BaseSelectionAction {
-	public static String ID = "ASDSetNewBindingAction";
-	protected IEndPoint endPoint;
-	
-	public ASDSetNewBindingAction(IWorkbenchPart part)	{
-		super(part);
-		setId(ID);
-		setText("Set New Binding...");
-//		setImageDescriptor(WSDLEditorPlugin.getImageDescriptor("icons/service_obj.gif"));
-	}
-	
-	public void setIEndPoint(IEndPoint endPoint) {
-		this.endPoint = endPoint;
-	}
-	
-	public void run() {		
-		if (endPoint == null) {
-			if (getSelectedObjects().size() > 0) {
-				Object o = getSelectedObjects().get(0);
-				if (o instanceof IEndPoint) {
-					endPoint = (IEndPoint) o;
-				}
-			}
-		}
-		
-		if (endPoint != null) {
-			IEditorPart editor = ASDEditorPlugin.getActiveEditor();
-			// TODO: rmah: We should not know about W11BindingReferenceEditManager here....  We should a better
-			// way to retrieve the appropriate Reference Manager
-			ComponentReferenceEditManager refManager = (ComponentReferenceEditManager) editor.getAdapter(W11BindingReferenceEditManager.class);
-			IComponentDialog dialog = refManager.getNewDialog();
-			if (dialog.createAndOpen() == Window.OK) {
-				ComponentSpecification spec = dialog.getSelectedComponent();
-				refManager.modifyComponentReference(endPoint, spec);
-			}
-		}
-		
-		endPoint = null;
-	}
-	
-	protected boolean calculateEnabled() {
-		return true;
-	}
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDSetNewInterfaceAction.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDSetNewInterfaceAction.java
deleted file mode 100644
index 1ad5fb1..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/ASDSetNewInterfaceAction.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.editor.actions;
-
-import org.eclipse.jface.window.Window;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSpecification;
-import org.eclipse.wst.wsdl.asd.editor.ASDEditorPlugin;
-import org.eclipse.wst.wsdl.asd.facade.IBinding;
-import org.eclipse.wst.wsdl.ui.internal.edit.W11InterfaceReferenceEditManager;
-import org.eclipse.wst.xsd.adt.edit.ComponentReferenceEditManager;
-import org.eclipse.wst.xsd.adt.edit.IComponentDialog;
-
-public class ASDSetNewInterfaceAction extends BaseSelectionAction {
-	public static String ID = "ASDSetNewInterfaceAction";
-	protected IBinding binding;
-	
-	public ASDSetNewInterfaceAction(IWorkbenchPart part)	{
-		super(part);
-		setId(ID);
-		setText("Set New PortType...");
-//		setImageDescriptor(WSDLEditorPlugin.getImageDescriptor("icons/service_obj.gif"));
-	}
-	
-	public void setIBinding(IBinding binding) {
-		this.binding = binding;
-	}
-	
-	public void run() {		
-		if (binding == null) {
-			if (getSelectedObjects().size() > 0) {
-				Object o = getSelectedObjects().get(0);
-				if (o instanceof IBinding) {
-					binding = (IBinding) o;
-				}
-			}
-		}
-		
-		if (binding != null) {
-			IEditorPart editor = ASDEditorPlugin.getActiveEditor();
-			// TODO: rmah: We should not know about W11InterfaceReferenceEditManager here....  We should a better
-			// way to retrieve the appropriate Reference Manager
-			ComponentReferenceEditManager refManager = (ComponentReferenceEditManager) editor.getAdapter(W11InterfaceReferenceEditManager.class);
-			IComponentDialog dialog = refManager.getNewDialog();
-			if (dialog.createAndOpen() == Window.OK) {
-				ComponentSpecification spec = dialog.getSelectedComponent();
-				refManager.modifyComponentReference(binding, spec);
-			}
-		}
-		
-		binding = null;
-	}
-	
-	protected boolean calculateEnabled() {
-		return true;
-	}
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/BaseSelectionAction.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/BaseSelectionAction.java
deleted file mode 100644
index 8c3f603..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/actions/BaseSelectionAction.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.editor.actions;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.gef.ui.actions.SelectionAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.wsdl.asd.design.editparts.model.AbstractModelCollection;
-
-public abstract class BaseSelectionAction extends SelectionAction
-{
-  public static final String SUBMENU_START_ID = "SUBMENU_START_ID: ";
-  public static final String SUBMENU_END_ID = "SUBMENU_END_ID: ";
-  
-  protected ISelectionProvider provider;
-  
-  public BaseSelectionAction(IWorkbenchPart part)
-  {
-    super(part);
-  }
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.gef.ui.actions.SelectionAction#getSelection()
-   */
-  protected ISelection getSelection()
-  {
-    // always get selection from selection provider first
-    if (provider!=null)
-      return provider.getSelection();
-    
-    return super.getSelection();
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.gef.ui.actions.SelectionAction#setSelectionProvider(org.eclipse.jface.viewers.ISelectionProvider)
-   */
-  public void setSelectionProvider(ISelectionProvider provider)
-  {
-    super.setSelectionProvider(provider);
-    this.provider = provider;
-  }
-  
-  public List getSelectedObjects()
-  {
-	  List processedObjects = new ArrayList();
-	  List objects = super.getSelectedObjects();
-	  Iterator it = objects.iterator();
-	  while (it.hasNext()) {
-		  Object item = it.next();
-		  if (item instanceof AbstractModelCollection) {
-			  processedObjects.add(((AbstractModelCollection) item).getModel());
-		  }
-		  else {
-			  processedObjects.add(item);
-		  }
-	  }
-	  
-	  return processedObjects;
-  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/outline/ASDContentOutlinePage.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/outline/ASDContentOutlinePage.java
deleted file mode 100644
index 52d3478..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/outline/ASDContentOutlinePage.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.editor.outline;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.views.contentoutline.ContentOutlinePage;
-import org.eclipse.wst.wsdl.asd.editor.ASDMultiPageEditor;
-import org.eclipse.wst.wsdl.asd.facade.IDescription;
-
-public class ASDContentOutlinePage extends ContentOutlinePage {
-	protected ASDMultiPageEditor wsdlEditor;
-	protected IDescription model;
-	protected ITreeContentProvider contentProvider;
-	protected ILabelProvider labelProvider;
-	protected IMenuListener menuListener;
-	
-	public ASDContentOutlinePage(ASDMultiPageEditor editor, IMenuListener menuListener) {
-		wsdlEditor = editor;
-		this.menuListener = menuListener;
-	}
-	
-	public TreeViewer getTreeViewer() {
-		return super.getTreeViewer();
-	}
-	
-	public void setContentProvider(ITreeContentProvider contentProvider) {
-		this.contentProvider = contentProvider;
-	}	
-	
-	public void setLabelProvider(ILabelProvider labelProvider) {
-		this.labelProvider = labelProvider;
-	}
-	
-	public void setModel(IDescription model) {
-		this.model = model;
-	}
-	
-	public void createControl(Composite parent) {                                                 
-		super.createControl(parent);                 
-		
-		getTreeViewer().setContentProvider(contentProvider);
-		getTreeViewer().setLabelProvider(labelProvider);
-		getTreeViewer().setInput(model);
-		getTreeViewer().addSelectionChangedListener(this);
-		
-		MenuManager menuManager = new MenuManager("#popup");//$NON-NLS-1$
-		menuManager.setRemoveAllWhenShown(true);
-		Menu menu = menuManager.createContextMenu(getTreeViewer().getControl());
-		getTreeViewer().getControl().setMenu(menu);
-		menuManager.addMenuListener(menuListener);
-		
-	    getSite().registerContextMenu("org.eclipse.wst.wsdl.wsdleditor", menuManager, wsdlEditor.getSelectionManager());
-	}
-	
-	protected boolean processingSelectionChange = false;
-	
-	public void selectionChanged(SelectionChangedEvent event) {
-		if (!processingSelectionChange) {
-			processingSelectionChange = true;
-			super.selectionChanged(event);
-			Object selection = null;
-			
-			if (((IStructuredSelection) event.getSelection()).getFirstElement() instanceof EditPart){
-				EditPart newEditPart = (EditPart) ((IStructuredSelection) event.getSelection()).getFirstElement();
-				selection = newEditPart.getModel();
-			}
-			else {
-				selection = ((IStructuredSelection) event.getSelection()).getFirstElement();
-			}
-	
-			if (selection != null) {
-				setSelection(new StructuredSelection(selection));
-			}
-			processingSelectionChange = false;
-		}
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/outline/ASDContentOutlineProvider.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/outline/ASDContentOutlineProvider.java
deleted file mode 100644
index b16f5b3..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/outline/ASDContentOutlineProvider.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.editor.outline;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.wsdl.asd.editor.ASDMultiPageEditor;
-import org.eclipse.wst.wsdl.asd.facade.IASDObject;
-import org.eclipse.wst.wsdl.asd.facade.IASDObjectListener;
-import org.eclipse.wst.wsdl.asd.facade.IDescription;
-import org.eclipse.wst.wsdl.asd.facade.INamedObject;
-
-public class ASDContentOutlineProvider implements ITreeContentProvider, ILabelProvider, IASDObjectListener {
-	protected Viewer viewer;
-	protected ASDMultiPageEditor editor;
-	protected List listeners = new ArrayList();
-	protected IDescription description;
-	
-	public ASDContentOutlineProvider(ASDMultiPageEditor editor, IDescription description) {
-		this.editor = editor;
-		this.description = description;
-	}
-	
-	public Object[] getChildren(Object parentElement) {
-		attachListener(parentElement);
-		if (parentElement instanceof ITreeElement) {
-			return ((ITreeElement) parentElement).getChildren();
-		}
-
-		return new Object[0]; 
-	}
-
-	public Object getParent(Object element) {
-		if (element instanceof ITreeElement) {
-			return ((ITreeElement) element).getParent();
-		}
-		
-		return null;
-	}
-
-	public boolean hasChildren(Object element) {
-		if (getChildren(element).length > 0) {
-			return true;
-		}
-
-		return false;
-	}
-
-	public Object[] getElements(Object inputElement) {
-		return getChildren(inputElement);
-	}
-
-	public void dispose() {
-		unattachAllListeners();
-		viewer = null;
-	}
-
-	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		this.viewer = viewer;
-		unattachAllListeners();
-	}
-
-	public Image getImage(Object element) {
-		if (element instanceof ITreeElement) {
-			return ((ITreeElement) element).getImage();
-		}
-
-		return null;
-	}
-    
-	public String getText(Object element) {
-		String text = null;
-		if (element instanceof INamedObject) {
-			text =  ((INamedObject) element).getName();
-		}
-		else if (element instanceof ITreeElement) {
-			text = ((ITreeElement) element).getText();
-		}
-		else {
-			text = element.toString();
-		}
-		
-		if (text == null) {
-			text = "";
-		}
-		
-		return text;
-	}
-
-	public void addListener(ILabelProviderListener listener) {
-
-	}
-
-	public boolean isLabelProperty(Object element, String property) {
-		return false;
-	}
-
-	public void removeListener(ILabelProviderListener listener) {
-
-	}
-
-	protected void attachListener(Object object) {
-		if (object instanceof IASDObject && !listeners.contains(object)) {
-			((IASDObject) object).registerListener(this);
-			listeners.add(object);
-		}
-	}
-	
-	protected void unattachAllListeners() {
-		Iterator it = listeners.iterator();
-		while (it.hasNext()) {
-			Object item = it.next();
-			((IASDObject) item).unregisterListener(this);
-		}
-	}
-
-	public void propertyChanged(Object object, String property) {             
-		if (viewer != null) {
-			viewer.refresh();
-		}
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/outline/ICategoryAdapter.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/outline/ICategoryAdapter.java
deleted file mode 100644
index cc39f23..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/outline/ICategoryAdapter.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.editor.outline;
-
-import org.eclipse.wst.wsdl.asd.facade.IDescription;
-
-public interface ICategoryAdapter {
-	public IDescription getOwnerDescription();
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/outline/ITreeElement.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/outline/ITreeElement.java
deleted file mode 100644
index 2c42bd7..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/outline/ITreeElement.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.editor.outline;
-
-import org.eclipse.swt.graphics.Image;
-
-public interface ITreeElement {
-  public final static ITreeElement[] EMPTY_LIST = {};
-  ITreeElement[] getChildren();
-  ITreeElement getParent();
-  boolean hasChildren();
-  String getText();
-  Image getImage();
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/properties/sections/ASDAbstractSection.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/properties/sections/ASDAbstractSection.java
deleted file mode 100644
index e2c4a67..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/properties/sections/ASDAbstractSection.java
+++ /dev/null
@@ -1,330 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.editor.properties.sections;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.action.IStatusLineManager;
-import org.eclipse.jface.util.Assert;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.part.EditorActionBarContributor;
-import org.eclipse.ui.views.properties.tabbed.ISection;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-import org.eclipse.wst.wsdl.asd.facade.IASDObject;
-import org.eclipse.wst.wsdl.asd.facade.IASDObjectListener;
-
-public class ASDAbstractSection implements ISection, IASDObjectListener, Listener, SelectionListener
-{
-	private TabbedPropertySheetWidgetFactory factory;
-	private Object elementModel;
-	protected boolean isReadOnly = false;
-	protected Composite composite;
-	protected int rightMarginSpace;
-	protected int tableMinimumWidth = 50;
-	
-	protected List listeners = new ArrayList();
-	
-	public void createControls(Composite parent, TabbedPropertySheetPage tabbedPropertySheetPage)
-	{
-		createControls(parent, tabbedPropertySheetPage.getWidgetFactory());
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISection#createControls(org.eclipse.swt.widgets.Composite, org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetWidgetFactory)
-	 */
-	public void createControls(Composite parent, TabbedPropertySheetWidgetFactory aFactory)
-	{
-		this.factory = aFactory;
-		GC gc = new GC(parent);
-		Point extent = gc.textExtent("  ...  "); //$NON-NLS-1$
-		rightMarginSpace = extent.x;
-		gc.dispose();
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISection#setInput(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
-	 */
-	public void setInput(IWorkbenchPart part, ISelection selection)
-	{
-		Assert.isTrue(selection instanceof IStructuredSelection);
-		Object input = ((IStructuredSelection)selection).getFirstElement();
-		elementModel = input;
-		attachListener(elementModel);
-		
-		// TODO: Need some other way to determine if it's read-only
-//		ModelAdapter adapter = WSDLGraphModelAdapterFactory.getWSDLGraphModelAdapterFactory().getAdapter(input);
-//		if (adapter != null)
-//		{
-//		isReadOnly = Boolean.TRUE.equals(adapter.getProperty(input, "isReadOnly")); //$NON-NLS-1$
-//		}
-		
-		refresh();
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISection#aboutToBeShown()
-	 */
-	public void aboutToBeShown()
-	{
-		refresh();
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISection#aboutToBeHidden()
-	 */
-	public void aboutToBeHidden()
-	{
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISection#dispose()
-	 */
-	public void dispose()
-	{
-		unattachAllListeners();
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISection#getMinimumHeight()
-	 */
-	public int getMinimumHeight()
-	{
-		return SWT.DEFAULT;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISection#shouldUseExtraSpace()
-	 */
-	public boolean shouldUseExtraSpace()
-	{
-		return true;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISection#refresh()
-	 */
-	public void refresh()
-	{
-		if (isReadOnly)
-		{
-			composite.setEnabled(false);
-		}
-		else
-		{
-			composite.setEnabled(true);
-		}
-	}
-	
-	/**
-	 * Get the widget factory.
-	 * @return the widget factory.
-	 */
-	public TabbedPropertySheetWidgetFactory getWidgetFactory() {
-		return factory;
-	}
-	
-	public void propertyChanged(Object object, String property)
-	{
-		refresh();
-	}
-	
-	
-	public void doWidgetDefaultSelected(SelectionEvent e)
-	{}
-	
-	public void doWidgetSelected(SelectionEvent e)
-	{}
-	
-	/**
-	 * @see org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(SelectionEvent)
-	 */
-	public void widgetDefaultSelected(SelectionEvent e)
-	{
-		if (isListenerEnabled() && !isInDoHandle) 
-		{
-			isInDoHandle = true;
-			doWidgetDefaultSelected(e);
-			isInDoHandle = false;
-		}
-		
-	}
-	
-	/**
-	 * @see org.eclipse.swt.events.SelectionListener#widgetSelected(SelectionEvent)
-	 */
-	public void widgetSelected(SelectionEvent e)
-	{
-		if (isListenerEnabled() && !isInDoHandle) 
-		{
-			isInDoHandle = true;
-			doWidgetSelected(e);
-			isInDoHandle = false;
-		}
-		
-	}
-	
-	boolean listenerEnabled = true;
-	/**
-	 * Get the value of listenerEnabled.
-	 * @return value of listenerEnabled.
-	 */
-	public boolean isListenerEnabled() 
-	{
-		return listenerEnabled;
-	}
-	
-	/**
-	 * Set the value of listenerEnabled.
-	 * @param v  Value to assign to listenerEnabled.
-	 */
-	public void setListenerEnabled(boolean  v) 
-	{
-		this.listenerEnabled = v;
-	}
-	
-	public void handleEvent(Event event)
-	{
-		if (isListenerEnabled() && !isInDoHandle) 
-		{
-			isInDoHandle = true;
-			startDelayedEvent(event);
-			isInDoHandle = false;
-		} // end of if ()
-	}
-	
-	public void doHandleEvent(Event event)
-	{
-		
-	}
-	
-	protected DelayedEvent delayedTask;
-	
-	protected void startDelayedEvent(Event e)
-	{
-		if (delayedTask == null ||
-				delayedTask.getEvent() == null)
-		{
-			delayedTask = new DelayedEvent();
-			delayedTask.setEvent(e);
-			Display.getDefault().timerExec(500,delayedTask);
-		}
-		else
-		{
-			Event delayedEvent = delayedTask.getEvent();
-			
-			if (e.widget == delayedEvent.widget &&
-					e.type == delayedEvent.type)
-			{
-				// same event, just different data, delay new event
-				delayedTask.setEvent(null);
-			}
-			delayedTask = new DelayedEvent();
-			delayedTask.setEvent(e);
-			Display.getDefault().timerExec(500,delayedTask);
-		}
-	}
-	
-	class DelayedEvent implements Runnable
-	{
-		protected Event event;
-		
-		/*
-		 * @see Runnable#run()
-		 */
-		public void run()
-		{
-			if (event != null)
-			{
-				isInDoHandle = true;
-				doHandleEvent(event);
-				isInDoHandle = false;
-				event = null;
-			}
-		}
-		
-		/**
-		 * Gets the event.
-		 * @return Returns a Event
-		 */
-		public Event getEvent()
-		{
-			return event;
-		}
-		
-		/**
-		 * Sets the event.
-		 * @param event The event to set
-		 */
-		public void setEvent(Event event)
-		{
-			this.event = event;
-		}
-		
-	}
-	
-	boolean isInDoHandle;
-	/**
-	 * Get the value of isInDoHandle.
-	 * @return value of isInDoHandle.
-	 */
-	public boolean isInDoHandle() 
-	{
-		return isInDoHandle;
-	}
-	
-	static protected IStatusLineManager getStatusLineManager(IEditorPart editorPart)
-	{ 
-		IStatusLineManager result = null;
-		try
-		{                       
-			EditorActionBarContributor contributor = (EditorActionBarContributor)editorPart.getEditorSite().getActionBarContributor();
-			result = contributor.getActionBars().getStatusLineManager();
-		}
-		catch (Exception e)
-		{
-		}  
-		return result;
-	}
-	
-	public Object getModel() {
-		return elementModel;
-	}
-	
-	protected void attachListener(Object object) {
-		if (object instanceof IASDObject && !listeners.contains(object)) {
-			((IASDObject) object).registerListener(this);
-			listeners.add(object);
-		}
-	}
-	
-	protected void unattachAllListeners() {
-		Iterator it = listeners.iterator();
-		while (it.hasNext()) {
-			Object item = it.next();
-			((IASDObject) item).unregisterListener(this);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/properties/sections/ASDTabbedPropertySheetPage.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/properties/sections/ASDTabbedPropertySheetPage.java
deleted file mode 100644
index 34d2fb9..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/properties/sections/ASDTabbedPropertySheetPage.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.editor.properties.sections;
-
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-
-public class ASDTabbedPropertySheetPage extends TabbedPropertySheetPage implements ISelectionChangedListener//, IElementListener
-{
-  /**
-   * @param tabbedPropertySheetPageContributor
-   */
-  public ASDTabbedPropertySheetPage(ITabbedPropertySheetPageContributor tabbedPropertySheetPageContributor)
-  {
-    super(tabbedPropertySheetPageContributor);
-//    tabContributor = tabbedPropertySheetPageContributor;
-  }
-  
-  public void createControl(Composite parent) {
-  	super.createControl(parent);
-  }
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)
-	 */
-	public void selectionChanged(SelectionChangedEvent event)
-	{
-		if (!event.getSelection().isEmpty()) {
-			selectionChanged(getSite().getWorkbenchWindow().getActivePage().getActivePart(), event.getSelection());
-		    //super.selectionChanged(getSite().getWorkbenchWindow().getActivePage().getActivePart(), event.getSelection());
-		}
-	}
-  
-	public void dispose() {
-		super.dispose();
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/properties/sections/BindingSection.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/properties/sections/BindingSection.java
deleted file mode 100644
index 2146632..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/properties/sections/BindingSection.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.editor.properties.sections;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSpecification;
-import org.eclipse.wst.wsdl.asd.editor.ASDEditorPlugin;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDSetExistingInterfaceAction;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDSetNewInterfaceAction;
-import org.eclipse.wst.wsdl.asd.facade.IBinding;
-import org.eclipse.wst.wsdl.asd.facade.IInterface;
-import org.eclipse.wst.wsdl.ui.internal.edit.W11InterfaceReferenceEditManager;
-import org.eclipse.wst.xsd.adt.edit.ComponentReferenceEditManager;
-
-public class BindingSection extends ReferenceSection {
-	protected ComponentReferenceEditManager refManager;
-	
-	public void createControls(Composite parent, TabbedPropertySheetWidgetFactory factory) {
-		super.createControls(parent, factory);
-		comboLabel.setText("Port Type:");
-	}
-	
-	protected List getComboItems() {
-		if (refManager == null) {
-			IEditorPart editor = ASDEditorPlugin.getActiveEditor();
-			// TODO: rmah: We should not know about W11InterfaceReferenceEditManager here....  We should a better
-			// way to retrieve the appropriate Reference Manager
-			refManager = (ComponentReferenceEditManager) editor.getAdapter(W11InterfaceReferenceEditManager.class);
-		}
-		
-		List items = new ArrayList();
-		items.add(BROWSE_STRING);
-		items.add(NEW_STRING);
-
-		ComponentSpecification[] comboItems = refManager.getQuickPicks();
-		for (int index = 0; index < comboItems.length; index++) {
-			items.add(comboItems[index]);
-		}
-		
-		return items;
-	}
-
-	protected Object getCurrentComboItem() {
-		IBinding binding = getIBinding();
-		return binding.getInterface();
-	}
-
-	protected String getComboItemName(Object item) {
-		String name = "";
-		if (item instanceof ComponentSpecification) {
-			name = ((ComponentSpecification) item).getName();
-		}
-		else if (item instanceof IInterface) {
-			name = ((IInterface) item).getName();
-		}
-		else if (item instanceof String) {
-			name = (String) item;
-		}
-		
-		return name;
-	}
-
-	protected void performComboSelection(Object item) {
-		ComponentSpecification spec = null;
-		
-		if (item instanceof ComponentSpecification) {
-			spec = (ComponentSpecification) item;
-			refManager.modifyComponentReference((IBinding) getModel(), spec);
-		}
-		else if (item instanceof String) {
-			if (item.equals(BROWSE_STRING)) {
-				IWorkbenchPart part = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActivePart();
-				ASDSetExistingInterfaceAction action = new ASDSetExistingInterfaceAction(part);
-				action.setIBinding((IBinding) getModel());
-				action.run();
-			}
-			else if (item.equals(NEW_STRING)) {
-				IWorkbenchPart part = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActivePart();
-				ASDSetNewInterfaceAction action = new ASDSetNewInterfaceAction(part);
-				action.setIBinding((IBinding) getModel());
-				action.run();
-			}
-		}
-
-		refresh();
-	}
-
-	private IBinding getIBinding() {
-		return (IBinding) getModel();
-	}
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/properties/sections/DocumentationSection.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/properties/sections/DocumentationSection.java
deleted file mode 100644
index 8711396..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/properties/sections/DocumentationSection.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.editor.properties.sections;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public class DocumentationSection extends ASDAbstractSection {
-	Text docText;
-
-	/**
-	 * @see org.eclipse.wst.common.ui.properties.internal.provisional.ITabbedPropertySection#createControls(org.eclipse.swt.widgets.Composite, org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetWidgetFactory)
-	 */
-	public void createControls(Composite parent, TabbedPropertySheetWidgetFactory factory)
-	{
-	  super.createControls(parent, factory);
-		composite =	getWidgetFactory().createFlatFormComposite(parent);
-		
-		docText = getWidgetFactory().createText(composite, "", SWT.MULTI | SWT.NONE | SWT.H_SCROLL | SWT.V_SCROLL); //$NON-NLS-1$
-		docText.addListener(SWT.Modify, this);
-		FormData data = new FormData();
-		data.left = new FormAttachment(0, 0);
-		data.right = new FormAttachment(100, 0);
-		data.top = new FormAttachment(0, 0);
-		data.bottom = new FormAttachment(100, 0);
-		docText.setLayoutData(data);
-	}
-
-	/*
-	 * @see org.eclipse.wst.common.ui.properties.internal.provisional.view.ITabbedPropertySection#refresh()
-	 */
-	public void refresh()
-	{
-    super.refresh();
-    if (docText.isFocusControl())
-    {
-      return;
-    }
-    setListenerEnabled(false);
-	  docText.setText("");
-	  if (getModel() != null)
-	  {
-//	    Element docNode = getElement().getDocumentationElement();
-//	    if (docNode != null)
-//	    {
-//        Node textNode = docNode.getFirstChild();
-//        if (textNode != null)
-//        {
-//          String docValue = textNode.getNodeValue();
-//          if (docValue != null)
-//          {
-//            docText.setText(docValue);
-//          }
-//        }
-//	    }
-	  }
-	  setListenerEnabled(true);
-	}
-	
-	public void doHandleEvent(Event event)
-	{
-	  if (event.widget == docText)
-	  {
-//	    String value = docText.getText();
-	    if (getModel() != null)
-	    {
-//	      Element docNode = getElement().getDocumentationElement();
-//	      if (docNode != null)
-//	      {
-//          Node textNode = docNode.getFirstChild();
-//          if (textNode != null)
-//          {
-//            textNode.setNodeValue(value);
-//          }
-//          else
-//          {
-//            if (value.length() > 0)
-//            {
-//              Document document = docNode.getOwnerDocument();
-//              org.w3c.dom.Text newTextNode = document.createTextNode(value);
-//              docNode.appendChild(newTextNode);
-//            }
-//          }
-//	      }
-//	      else
-//	      {
-//	        Element element = getElement().getElement();
-//          AddElementAction action = new AddElementAction(element, element.getPrefix(), "documentation", element.getFirstChild()); //$NON-NLS-1$
-//          action.run();
-//          Element newDocumentation = action.getNewElement();
-//          
-//          Document document = newDocumentation.getOwnerDocument();
-//          org.w3c.dom.Text newTextNode = document.createTextNode(value);
-//          newDocumentation.appendChild(newTextNode);
-//          getElement().setDocumentationElement(newDocumentation);
-//	      }
-	    }
-	  }
-	}
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/properties/sections/EndPointSection.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/properties/sections/EndPointSection.java
deleted file mode 100644
index d3b988d..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/properties/sections/EndPointSection.java
+++ /dev/null
@@ -1,200 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.editor.properties.sections;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.commands.CommandStack;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSpecification;
-import org.eclipse.wst.wsdl.asd.editor.ASDEditorPlugin;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDSetExistingBindingAction;
-import org.eclipse.wst.wsdl.asd.editor.actions.ASDSetNewBindingAction;
-import org.eclipse.wst.wsdl.asd.facade.IBinding;
-import org.eclipse.wst.wsdl.asd.facade.IEndPoint;
-import org.eclipse.wst.wsdl.ui.internal.edit.W11BindingReferenceEditManager;
-import org.eclipse.wst.xsd.adt.edit.ComponentReferenceEditManager;
-
-public class EndPointSection extends ReferenceSection {
-	protected Text addressText;
-	protected CLabel protocolValueLabel;
-	
-	protected List bindingsInCombo = new ArrayList();
-	
-	protected ComponentReferenceEditManager refManager;
-	
-	/**
-	 * @see org.eclipse.wst.common.ui.properties.internal.provisional.ITabbedPropertySection#createControls(org.eclipse.swt.widgets.Composite, org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetWidgetFactory)
-	 */
-	public void createControls(Composite parent, TabbedPropertySheetWidgetFactory factory)
-	{
-		super.createControls(parent, factory);
-		FormData data;
-		
-		// Address row
-		CLabel addressLabel = getWidgetFactory().createCLabel(composite, "Address:"); // TODO: Externalize String
-		addressText = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$
-		
-		data = new FormData();
-		data.left = new FormAttachment(0, 0);
-		data.right = new FormAttachment(addressText, -ITabbedPropertyConstants.HSPACE);
-		data.top = new FormAttachment(addressText, 0, SWT.CENTER);
-		addressLabel.setLayoutData(data);
-		
-		data = new FormData();
-		data.left = new FormAttachment(0, 100);
-		data.right = new FormAttachment(100, -rightMarginSpace - ITabbedPropertyConstants.HSPACE);
-		data.top = new FormAttachment(combo, +ITabbedPropertyConstants.VSPACE);
-		addressText.setLayoutData(data);
-
-		// Protocol Row
-		CLabel protocolLabel = getWidgetFactory().createCLabel(composite, "Protocol:"); // TODO: Externalize String
-		protocolValueLabel = getWidgetFactory().createCLabel(composite, "----"); //$NON-NLS-1$
-		
-		data = new FormData();
-		data.left = new FormAttachment(0, 0);
-		data.right = new FormAttachment(protocolValueLabel, -ITabbedPropertyConstants.HSPACE);
-		data.top = new FormAttachment(protocolValueLabel, 0, SWT.CENTER);
-		protocolLabel.setLayoutData(data);
-		
-		data = new FormData();
-		data.left = new FormAttachment(0, 100);
-		data.right = new FormAttachment(100, -rightMarginSpace - ITabbedPropertyConstants.HSPACE);
-		data.top = new FormAttachment(addressText, +ITabbedPropertyConstants.VSPACE);
-		protocolValueLabel.setLayoutData(data);
-		protocolValueLabel.addListener(SWT.Modify, this);
-
-		comboLabel.setText("Binding:");
-	}
-
-	/*
-	 * @see org.eclipse.wst.common.ui.properties.internal.provisional.view.ITabbedPropertySection#refresh()
-	 */
-	public void refresh() {
-		addressText.removeListener(SWT.Modify, this);
-
-		super.refresh();
-
-		IEndPoint endPoint = (IEndPoint) getModel();
-		if (endPoint.getAddress() != null) {
-			addressText.setText(endPoint.getAddress());
-		}
-		if (endPoint.getBinding() != null) {
-			String protocolValue = endPoint.getBinding().getProtocol();
-			if (protocolValue.equals("")) {
-				protocolValue = "----";
-			}
-			protocolValueLabel.setText(protocolValue);
-		}
-		
-		addressText.addListener(SWT.Modify, this);
-	}
-	
-	protected List getComboItems() {
-		if (refManager == null) {
-			IEditorPart editor = ASDEditorPlugin.getActiveEditor();
-			// TODO: rmah: We should not know about W11BindingReferenceEditManager here....  We should a better
-			// way to retrieve the appropriate Reference Manager
-			refManager = (ComponentReferenceEditManager) editor.getAdapter(W11BindingReferenceEditManager.class);
-		}
-		
-		List items = new ArrayList();
-		items.add(BROWSE_STRING);
-		items.add(NEW_STRING);
-
-		ComponentSpecification[] comboItems = refManager.getQuickPicks();
-		for (int index = 0; index < comboItems.length; index++) {
-			items.add(comboItems[index]);
-		}
-		
-		return items;
-	}
-	
-	protected Object getCurrentComboItem() {
-		IEndPoint endPoint = (IEndPoint) getModel();
-		return endPoint.getBinding();
-	}
-	
-	protected String getComboItemName(Object item) {
-		String name = "";
-		if (item instanceof ComponentSpecification) {
-			name = ((ComponentSpecification) item).getName();
-		}
-		else if (item instanceof IBinding) {
-			name = ((IBinding) item).getName();
-		}
-		else if (item instanceof String) {
-			name = (String) item;
-		}
-		
-		return name;
-	}
-	
-	protected void performComboSelection(Object item) {
-		ComponentSpecification spec = null;
-		
-		if (item instanceof ComponentSpecification) {
-			spec = (ComponentSpecification) item;
-			refManager.modifyComponentReference((IEndPoint) getModel(), spec);
-		}
-		else if (item instanceof String) {
-			if (item.equals(BROWSE_STRING)) {
-				IWorkbenchPart part = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActivePart();
-				ASDSetExistingBindingAction action = new ASDSetExistingBindingAction(part);
-				action.setIEndPoint((IEndPoint) getModel());
-				action.run();
-			}
-			else if (item.equals(NEW_STRING)) {
-				IWorkbenchPart part = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActivePart();
-				ASDSetNewBindingAction action = new ASDSetNewBindingAction(part);
-				action.setIEndPoint((IEndPoint) getModel());
-				action.run();
-			}
-		}
-		
-		refresh();
-	}
-	
-  public boolean shouldUseExtraSpace()
-  {
-    return false;
-  }
-
-  public void doHandleEvent(Event event)
-  {
-	  super.doHandleEvent(event);
-
-	  if (event.widget == addressText && !addressText.isDisposed()) {
-		  String newAddress = addressText.getText();
-		  if (newAddress == null) {
-			  newAddress = "";
-		  }
-		  
-		  IEndPoint endPoint = (IEndPoint) getModel();
-		  Command command = endPoint.getSetAddressCommand(newAddress);
-		  CommandStack stack = (CommandStack) ASDEditorPlugin.getActiveEditor().getAdapter(CommandStack.class);
-		  stack.execute(command);
-	  }
-  }
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/properties/sections/NameSection.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/properties/sections/NameSection.java
deleted file mode 100644
index 80ac881..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/properties/sections/NameSection.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.editor.properties.sections;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.commands.CommandStack;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-import org.eclipse.wst.wsdl.asd.editor.ASDEditorPlugin;
-import org.eclipse.wst.wsdl.asd.facade.INamedObject;
-
-public class NameSection extends ASDAbstractSection {
-	CLabel nameLabel;
-	protected Text nameText;
-	
-	/**
-	 * @see org.eclipse.wst.common.ui.properties.internal.provisional.ITabbedPropertySection#createControls(org.eclipse.swt.widgets.Composite, org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetWidgetFactory)
-	 */
-	public void createControls(Composite parent, TabbedPropertySheetWidgetFactory factory)
-	{
-		super.createControls(parent, factory);
-		composite =	getWidgetFactory().createFlatFormComposite(parent);
-		
-		FormData data;		
-		nameText = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$
-		data = new FormData();
-		data.left = new FormAttachment(0, 100);
-		data.right = new FormAttachment(100, -rightMarginSpace - ITabbedPropertyConstants.HSPACE);
-		data.top = new FormAttachment(0, 0);
-		nameText.setLayoutData(data);
-		
-		nameLabel = getWidgetFactory().createCLabel(composite, "Name:"); // TODO: Externalize String
-		data = new FormData();
-		data.left = new FormAttachment(0, 0);
-		data.right = new FormAttachment(nameText, -ITabbedPropertyConstants.HSPACE);
-		data.top = new FormAttachment(nameText, 0, SWT.CENTER);
-		nameLabel.setLayoutData(data);
-		nameText.addListener(SWT.Modify, this);
-	}
-	
-	/*
-	 * @see org.eclipse.wst.common.ui.properties.internal.provisional.view.ITabbedPropertySection#refresh()
-	 */
-	public void refresh() {
-		super.refresh();
-		if (nameText.isFocusControl()) {
-			return;
-		}
-		
-		setListenerEnabled(false);
-		nameText.setText(""); //$NON-NLS-1$
-		String name = "";
-		if (getModel() instanceof INamedObject) {
-			name = ((INamedObject) getModel()).getName();
-		}
-		else if (getModel() instanceof EditPart) {
-			Object model = ((EditPart) getModel()).getModel(); 
-			name = ((INamedObject) model).getName();
-		}
-		
-		nameText.setText(name);
-		setListenerEnabled(true);
-	}
-	
-	public boolean shouldUseExtraSpace()
-	{
-		return false;
-	}
-	
-	public void doHandleEvent(Event event)
-	{
-		if (event.widget == nameText && !nameText.isDisposed()) {
-			String newValue = nameText.getText();
-			Object model = getModel();
-			INamedObject namedObject = null;
-			
-			if (model instanceof INamedObject) {
-				namedObject = (INamedObject) model;
-			}
-			
-			if (namedObject != null) {
-				Command command = namedObject.getSetNameCommand(newValue);
-				CommandStack stack = (CommandStack) ASDEditorPlugin.getActiveEditor().getAdapter(CommandStack.class);
-				stack.execute(command);
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/properties/sections/NamespaceSection.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/properties/sections/NamespaceSection.java
deleted file mode 100644
index 093e68c..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/properties/sections/NamespaceSection.java
+++ /dev/null
@@ -1,265 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.editor.properties.sections;
-
-import java.util.List;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-import org.eclipse.wst.wsdl.asd.facade.IDescription;
-import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
-import org.eclipse.wst.xml.ui.internal.nsedit.CommonEditNamespacesTargetFieldDialog;
-import org.eclipse.wst.xml.ui.internal.nsedit.CommonNamespaceInfoTable;
-
-public class NamespaceSection extends ASDAbstractSection {
-	protected String targetNamespace;
-	protected List namespaceInfoList;
-	protected CommonEditNamespacesTargetFieldDialog editWSDLNamespacesControl;
-	protected Button button;
-	
-	Text nameText;
-	Text prefixText;
-	Text targetNamespaceText;
-	protected CommonNamespaceInfoTable tableViewer;
-	private boolean handlingEvent;
-	
-	/**
-	 * @see org.eclipse.wst.common.ui.properties.internal.provisional.ITabbedPropertySection#createControls(org.eclipse.swt.widgets.Composite, org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetWidgetFactory)
-	 */
-	public void createControls(Composite parent, TabbedPropertySheetWidgetFactory factory)
-	{
-		super.createControls(parent, factory);
-		composite =	getWidgetFactory().createFlatFormComposite(parent);
-		
-		String nameString = WSDLEditorPlugin.getWSDLString("_UI_LABEL_NAME") + ":";
-		String prefixString = WSDLEditorPlugin.getWSDLString("_UI_LABEL_PREFIX") + ":";
-		String namespaceString = WSDLEditorPlugin.getWSDLString("_UI_LABEL_TARGET_NAMESPACE");
-		GC gc = new GC(parent);
-		int xoffset = Math.max(115, gc.textExtent(nameString).x + 20); // adds 20 due to borders
-		xoffset = Math.max(xoffset, gc.textExtent(prefixString).x + 20); // adds 20 due to borders
-		xoffset = Math.max(xoffset, gc.textExtent(namespaceString).x + 20); // adds 20 due to borders
-		gc.dispose();
-		
-		// name
-		CLabel nameLabel = getWidgetFactory().createCLabel(composite, nameString); //$NON-NLS-1$
-		nameText = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$
-		
-		// prefix
-		CLabel prefixLabel = getWidgetFactory().createCLabel(composite, prefixString); //$NON-NLS-1$
-		prefixText = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$
-		
-		// targetnamespace
-		CLabel targetNamespaceLabel = getWidgetFactory().createCLabel(composite, namespaceString); //$NON-NLS-1$
-		targetNamespaceText = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$
-		
-		// Advanced button
-		button = getWidgetFactory().createButton(composite, WSDLEditorPlugin.getWSDLString("_UI_SECTION_ADVANCED_ATTRIBUTES") + "...", SWT.PUSH); //$NON-NLS-1$
-		
-		
-		///////////////////// Labels
-		// name layout
-		FormData dataNameLabel = new FormData();
-		dataNameLabel.top = new FormAttachment(nameText, 0, SWT.CENTER);
-		nameLabel.setLayoutData(dataNameLabel);
-		
-		// prefix layout
-		FormData dataPrefixLabel = new FormData();
-		dataPrefixLabel.left = new FormAttachment(0, 0);
-		dataPrefixLabel.top = new FormAttachment(prefixText, 0, SWT.CENTER);
-		prefixLabel.setLayoutData(dataPrefixLabel);
-		
-		// targetNamespaceLabel layout
-		FormData datatnsLabel = new FormData();
-		datatnsLabel.left = new FormAttachment(0, 0);
-		datatnsLabel.right = new FormAttachment(targetNamespaceText, 0);
-		datatnsLabel.top = new FormAttachment(targetNamespaceText, 0, SWT.CENTER);
-		targetNamespaceLabel.setLayoutData(datatnsLabel);
-		
-		
-		///////////////////// Text Fields
-		// name text field
-		FormData dataNameText = new FormData();
-		dataNameText.left = new FormAttachment(0, xoffset);
-		dataNameText.right = new FormAttachment(100, -rightMarginSpace - ITabbedPropertyConstants.HSPACE);
-		dataNameText.top = new FormAttachment(0, 0);
-		nameText.setLayoutData(dataNameText);
-		nameText.addListener(SWT.Modify, this);
-		
-		// prefix text field
-		FormData dataPrefixText = new FormData();
-		dataPrefixText.left = new FormAttachment(0, xoffset);
-		dataPrefixText.right = new FormAttachment(100, -rightMarginSpace - ITabbedPropertyConstants.HSPACE);
-		dataPrefixText.top = new FormAttachment(nameText, +ITabbedPropertyConstants.VSPACE);
-		prefixText.setLayoutData(dataPrefixText);
-		prefixText.addListener(SWT.Modify, this);
-		
-		// targetnamespace text field
-		FormData data = new FormData();
-		data.left = new FormAttachment(0, xoffset);
-		data.right = new FormAttachment(100, -rightMarginSpace - ITabbedPropertyConstants.HSPACE);
-		data.top = new FormAttachment(prefixText, +ITabbedPropertyConstants.VSPACE);
-		targetNamespaceText.setLayoutData(data);
-		targetNamespaceText.addListener(SWT.Modify, this);
-		
-		// Advanced button layout
-		FormData dataButton = new FormData();
-//		dataButton.left = new FormAttachment(100, -rightMarginSpace + 2);
-		dataButton.right = new FormAttachment(100, -rightMarginSpace - ITabbedPropertyConstants.HSPACE);
-		dataButton.top = new FormAttachment(targetNamespaceText, +ITabbedPropertyConstants.VSPACE);
-//		dataButton.top = new FormAttachment(targetNamespaceText, 0, SWT.CENTER);
-		button.setLayoutData(dataButton);
-		button.addSelectionListener(this);
-	}
-	
-	public void doHandleEvent(Event event)
-	{
-		handlingEvent = true;
-		/*
-		  if (event.widget == nameText) {
-		  	Object obj = getElement();
-		  	if (obj instanceof Definition) {
-		  		Definition definition = (Definition) obj;
-		  		String uri = "";
-		  		if (definition.getQName() != null) {
-		  			uri = definition.getQName().getNamespaceURI();
-		  		}
-		  		definition.setQName(new QName(uri, nameText.getText()));
-		  	}
-		  }
-		  else if (event.widget == prefixText) {
-		  	Object obj = getElement();
-		  	if (obj instanceof Definition) {
-		  		Definition definition = (Definition) obj;
-		  		Element element = definition.getElement();
-		  		
-		  		// Remove the old prefix
-		  		String oldPrefix = definition.getPrefix(definition.getTargetNamespace());
-		  		element.removeAttribute("xmlns:"+oldPrefix); 
-		  		
-		  		// Set the new prefix
-		  	  	element.setAttribute("xmlns:" + prefixText.getText(), definition.getTargetNamespace());
-		  	}
-		  }
-		  else if (event.widget == targetNamespaceText)
-		  {
-			  Object obj = getElement();
-			  if (obj instanceof Definition)
-			  {
-			    Definition definition = (Definition)obj;
-			    String newValue = targetNamespaceText.getText();
-			    String prefix = definition.getPrefix(definition.getTargetNamespace());
-			    definition.setTargetNamespace(newValue);
-			    definition.getElement().setAttribute("xmlns:" + prefix, newValue);
-			  }
-		  }
-		 */
-		handlingEvent = false;		
-	}
-	
-	/*
-	 * @see org.eclipse.wst.common.ui.properties.internal.provisional.view.ITabbedPropertySection#refresh()
-	 */
-	public void refresh()
-	{
-		super.refresh();
-		
-		if (targetNamespaceText == null || targetNamespaceText.isFocusControl() || handlingEvent)
-		{
-			return;
-		}
-		setListenerEnabled(false);  
-		Object obj = getModel();
-		if (obj instanceof IDescription)
-		{
-			IDescription description = (IDescription) obj;
-			String targetNS = description.getTargetNamespace();
-			String newPrefix = description.getTargetNamespacePrefix();
-			prefixText.setText(newPrefix);
-			
-			// set targetnamespace field and prefix field
-			if (targetNS != null)
-			{
-				targetNamespaceText.setText(targetNS);
-				
-				/*
-		    	Element element = definition.getElement();
-
-	        String newPrefix = definition.getPrefix(targetNS);
-	        if (newPrefix == null) newPrefix = "";
-	        // TODO: remove this code
-	        if (element != null)
-	        {
-	  	    	for (int index = 0; index < element.getAttributes().getLength(); index++) {
-	  	    		AttrImpl attr = (AttrImpl) element.getAttributes().item(index);
-	  	    		String nodeName = attr.getNodeName();
-	  	    		String nsValue = attr.getNodeValue();
-	  	    		if (nsValue.equals(targetNS)) {
-	  	    			if (nodeName.indexOf(":") != -1) {
-	  	    				String xmlnsString = nodeName.substring(0, nodeName.indexOf(":"));
-	  	    				
-	  	    				if (xmlnsString.equals("xmlns")) {
-	  	    	    			newPrefix = attr.getLocalName();
-	  	    	    			break;
-	  	    				}
-	  	    			}
-	  	    		}
-	  	    	}
-	        }
-		    	prefixText.setText(newPrefix);
-				 */
-			}
-			
-			
-			
-			// set name field
-			nameText.setText(description.getName());
-			
-//			if (getElement() != null)
-//			{
-//			if (getElement().getElement()!= null)
-//			{
-//			String name = getElement().getElement().getAttribute("name"); //$NON-NLS-1$
-//			if (name==null) name="";
-//			nameText.setText(name);
-//			}
-//			}
-		}
-		setListenerEnabled(true);
-	}
-	
-	
-	public void widgetSelected(SelectionEvent e)
-	{
-		if (e.widget == button)
-		{
-			/*
-	      Object obj = getElement();
-	      if (obj instanceof Definition)
-	      {
-	        Definition definition = (Definition)obj;
-	        EditNamespacesAction action = new EditNamespacesAction(definition);
-	      	action.run();
-	        refresh();
-	      }
-			 */
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/properties/sections/ParameterSection.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/properties/sections/ParameterSection.java
deleted file mode 100644
index 17410ed..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/properties/sections/ParameterSection.java
+++ /dev/null
@@ -1,202 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.editor.properties.sections;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSpecification;
-import org.eclipse.wst.wsdl.asd.editor.ASDEditorPlugin;
-import org.eclipse.wst.wsdl.asd.editor.ASDMultiPageEditor;
-import org.eclipse.wst.wsdl.asd.facade.IParameter;
-import org.eclipse.wst.xsd.adt.edit.ComponentReferenceEditManager;
-
-public class ParameterSection extends NameSection {
-	protected static String NEW_STRING = "New...";
-	protected static String BROWSE_STRING = "Browse...";
-	protected CCombo typeCombo;
-	
-	/**
-	 * @see org.eclipse.wst.common.ui.properties.internal.provisional.ITabbedPropertySection#createControls(org.eclipse.swt.widgets.Composite, org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetWidgetFactory)
-	 */
-	public void createControls(Composite parent, TabbedPropertySheetWidgetFactory factory)
-	{
-		super.createControls(parent, factory);
-		FormData data;
-		
-		typeCombo = getWidgetFactory().createCCombo(composite);
-		typeCombo.setBackground(composite.getBackground());
-		typeCombo.addListener(SWT.Modify, this);
-		typeCombo.addSelectionListener(this);
-		
-		CLabel componentNameLabel = getWidgetFactory().createCLabel(composite, "Type" + ":"); //$NON-NLS-1$
-		data = new FormData();
-		data.left = new FormAttachment(0, 0);
-		data.right = new FormAttachment(typeCombo, -ITabbedPropertyConstants.HSPACE);
-		data.top = new FormAttachment(typeCombo, 0, SWT.CENTER);
-		componentNameLabel.setLayoutData(data);
-		
-//		Button button = getWidgetFactory().createButton(composite, "", SWT.PUSH); //$NON-NLS-1$
-//		button.setImage(InterfaceUIPlugin.getDefault().getImage("icons/obj16/browsebutton.gif")); //$NON-NLS-1$
-//		
-//		button.addSelectionListener(this);
-//		data = new FormData();
-//		data.left = new FormAttachment(100, -rightMarginSpace + 2);
-//		data.right = new FormAttachment(100, 0);
-//		data.top = new FormAttachment(typeCombo, 0, SWT.CENTER);
-//		button.setLayoutData(data);
-		
-		data = new FormData();
-		data.left = new FormAttachment(0, 100);
-//		data.right = new FormAttachment(button, 0);
-		data.right = new FormAttachment(100, -rightMarginSpace - ITabbedPropertyConstants.HSPACE);
-		data.top = new FormAttachment(nameText, +ITabbedPropertyConstants.VSPACE);
-		typeCombo.setLayoutData(data);
-	}
-	
-	/*
-	 * @see org.eclipse.wst.common.ui.properties.internal.provisional.view.ITabbedPropertySection#refresh()
-	 */
-	public void refresh() {
-		super.refresh();
-		if (nameText.isFocusControl()) {
-			return;
-		}
-		
-		IParameter param = null;
-		Object model = getModel();
-		setListenerEnabled(false);
-		
-		if (model instanceof IParameter) {
-			param = (IParameter) model;
-		}
-		
-		String name = "";
-		String typeName = "ParameterSection.java";
-		if (param != null) {
-			name = param.getName();
-			typeName = param.getComponentName();
-		}
-		
-		nameText.setText(name);
-		
-		// Populate the type Combo
-		typeCombo.removeAll();
-		typeCombo.add(BROWSE_STRING);
-		typeCombo.add(NEW_STRING);
-		
-		ComponentReferenceEditManager editManager = getComponentReferenceEditManager();
-		if (editManager != null) {
-			ComponentSpecification[] specs = editManager.getQuickPicks();
-			for (int index = 0; index < specs.length; index++) {
-				typeCombo.add((String) specs[index].getName());
-			}
-		}
-		
-		
-		// Display the type in the Combo
-		String[] items = typeCombo.getItems();
-		int index;
-		for (index = 0; index < items.length; index++) {
-			if (items[index].equals(typeName)) {
-				break;
-			}
-		}
-		
-		if (index < items.length) {
-			// Found a match
-			typeCombo.select(index);
-		}
-		else {
-			typeCombo.setText(typeName);
-		}
-		
-		setListenerEnabled(true);
-	}
-	
-	public boolean shouldUseExtraSpace()
-	{
-		return false;
-	}
-	
-	public void doHandleEvent(Event event)
-	{
-		super.doHandleEvent(event);
-		if (event.widget == typeCombo) {
-			String value = typeCombo.getItem(typeCombo.getSelectionIndex());
-			
-			IParameter parameter = (IParameter) this.getModel();
-			
-			if (value.equals(NEW_STRING)) {
-				Command command = parameter.getSetTypeCommand(IParameter.SET_NEW_TYPE_ID);
-				command.execute();
-			}
-			else if (value.equals(BROWSE_STRING)) {
-				Command command = parameter.getSetTypeCommand(IParameter.SELECT_EXISTING_TYPE_ID);
-				command.execute();
-			}
-			else {
-				ComponentReferenceEditManager editManager = getComponentReferenceEditManager();
-				ComponentSpecification spec = getComponentSpecificationForValue((String)value);
-				if (spec != null) {
-					editManager.modifyComponentReference(parameter, spec);
-				}
-			}
-		}
-	}
-	
-	public ComponentReferenceEditManager getComponentReferenceEditManager() {
-		ASDMultiPageEditor editor = (ASDMultiPageEditor) ASDEditorPlugin.getActiveEditor();
-		return (ComponentReferenceEditManager) editor.getAdapter(ComponentReferenceEditManager.class);
-	}
-	
-	// TODO: rmah: This code should live in a common place..... This code is also used in other UI scenarios when
-	// a similar combo box is used.  For example in Direct Edit...(TypeReferenceDirectEditManager)  Also used in the XSDEditor...
-	protected ComponentSpecification getComponentSpecificationForValue(String value)
-	{
-		ComponentReferenceEditManager editManager = getComponentReferenceEditManager();
-		if (editManager != null)
-		{  
-			ComponentSpecification[] quickPicks = editManager.getQuickPicks();
-			if (quickPicks != null)
-			{
-				for (int i=0; i < quickPicks.length; i++)
-				{
-					ComponentSpecification componentSpecification = quickPicks[i];
-					if (value.equals(componentSpecification.getName()))
-					{
-						return componentSpecification;
-					}                
-				}  
-			}
-			ComponentSpecification[] history = editManager.getHistory();
-			if (history != null)
-			{
-				for (int i=0; i < history.length; i++)
-				{
-					ComponentSpecification componentSpecification = history[i];
-					if (value.equals(componentSpecification.getName()))
-					{  
-						return componentSpecification;
-					}
-				}  
-			}
-		}
-		return null;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/properties/sections/ReferenceSection.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/properties/sections/ReferenceSection.java
deleted file mode 100644
index 35602ff..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/properties/sections/ReferenceSection.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.editor.properties.sections;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-public abstract class ReferenceSection extends NameSection {
-	public static String BROWSE_STRING = "Browse...";
-	public static String NEW_STRING = "New...";
-	protected CCombo combo;
-	protected CLabel comboLabel;
-	
-	protected List itemsInCombo = new ArrayList();
-
-	/**
-	 * @see org.eclipse.wst.common.ui.properties.internal.provisional.ITabbedPropertySection#createControls(org.eclipse.swt.widgets.Composite, org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetWidgetFactory)
-	 */
-	public void createControls(Composite parent, TabbedPropertySheetWidgetFactory factory)
-	{
-		super.createControls(parent, factory);
-		FormData data;
-		
-		// Create Combo row of widgets
-		comboLabel = getWidgetFactory().createCLabel(composite, "Reference");
-		combo = getWidgetFactory().createCCombo(composite);
-		combo.setBackground(composite.getBackground());
-
-		// Layout Combo Label
-		data = new FormData();
-		data.left = new FormAttachment(0, 0);
-		data.right = new FormAttachment(combo, -ITabbedPropertyConstants.HSPACE);
-		data.top = new FormAttachment(combo, 0, SWT.CENTER);
-		comboLabel.setLayoutData(data);
-		
-		// Layout Combo
-		data = new FormData();
-		data.left = new FormAttachment(0, 100);
-		data.right = new FormAttachment(100, -rightMarginSpace - ITabbedPropertyConstants.HSPACE);
-		data.top = new FormAttachment(nameText, +ITabbedPropertyConstants.VSPACE);
-		combo.setLayoutData(data);
-		
-		combo.addListener(SWT.Modify, this);
-	}
-
-	/*
-	 * @see org.eclipse.wst.common.ui.properties.internal.provisional.view.ITabbedPropertySection#refresh()
-	 */
-	public void refresh() {
-		combo.removeListener(SWT.Modify, this);
-		
-		super.refresh();
-		
-		List comboItems = getComboItems();
-		if (comboItems.size() > 0) {
-			combo.removeAll();
-			itemsInCombo.clear();
-
-			// We need to populate this combo with the available references
-			// TODO: rmah: We should include the prefix as well
-			String currentComboItemName = getComboItemName(getCurrentComboItem());
-			int currentBindingIndex = -1;
-			
-			List items = getComboItems();
-			for (int index = 0; index < items.size(); index++) {
-				Object item = items.get(index);
-				String itemName = getComboItemName(item);
-				combo.add(itemName);
-				itemsInCombo.add(item);
-
-				if (itemName.equals(currentComboItemName)) {
-					currentBindingIndex = index;
-				}
-			}
-
-			if (currentBindingIndex != -1) {
-				combo.select(currentBindingIndex);	
-			}
-		}
-		
-		combo.addListener(SWT.Modify, this);
-	}
-	
-	protected abstract List getComboItems();
-	protected abstract Object getCurrentComboItem();
-	protected abstract String getComboItemName(Object item);
-	protected abstract void performComboSelection(Object item);
-	
-  public boolean shouldUseExtraSpace()
-  {
-    return false;
-  }
-
-  public void doHandleEvent(Event event)
-  {
-	  super.doHandleEvent(event);
-	  if (event.widget == combo && !combo.isDisposed()) {
-		  int selectionIndex = combo.getSelectionIndex();
-		  performComboSelection(itemsInCombo.get(selectionIndex));
-		  refresh();
-	  }
-  }
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/util/ASDEditPartFactoryHelper.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/util/ASDEditPartFactoryHelper.java
deleted file mode 100644
index 1abdfc8..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/util/ASDEditPartFactoryHelper.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package org.eclipse.wst.wsdl.asd.editor.util;
-
-import org.eclipse.gef.EditPartFactory;
-import org.eclipse.wst.wsdl.asd.design.editparts.ASDEditPartFactory;
-
-public class ASDEditPartFactoryHelper {
-	private static ASDEditPartFactoryHelper instance;
-	
-	private EditPartFactory editPartFactory;
-	
-	public static ASDEditPartFactoryHelper getInstance() {
-		if (instance == null) {
-			instance = new ASDEditPartFactoryHelper();
-		}
-		
-		return instance;
-	}
-	
-	public EditPartFactory getEditPartFactory() {
-		if (editPartFactory == null) {
-			editPartFactory = new ASDEditPartFactory();
-		}
-		return editPartFactory;
-	}
-	
-	public void setEditPartFactory(EditPartFactory factory) {
-		editPartFactory = factory;
-	}
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/util/IOpenExternalEditorHelper.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/util/IOpenExternalEditorHelper.java
deleted file mode 100644
index e48e41d..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/util/IOpenExternalEditorHelper.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.editor.util;
-
-public interface IOpenExternalEditorHelper {
-	public void setModel(Object object);
-	public void openExternalEditor();
-	public boolean linkApplicable();
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IASDObject.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IASDObject.java
deleted file mode 100644
index 4ea4161..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IASDObject.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.facade;
-
-
-public interface IASDObject
-{
-    public void registerListener(IASDObjectListener listener);
-    public void unregisterListener(IASDObjectListener listener);  
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IBinding.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IBinding.java
deleted file mode 100644
index 8b6308d..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IBinding.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.facade;
-
-import java.util.List;
-
-import org.eclipse.gef.commands.Command;
-
-public interface IBinding extends INamedObject
-{
-	public IInterface getInterface();
-	public List getBindingOperations();
-	public List getBindingContentList();
-	public List getExtensiblityObjects();
-	public String getProtocol();  
-	public IDescription getOwnerDescription();
-  
-	public Command getSetInterfaceCommand(IInterface newInterface);
-	public Command getGenerateBindingCommand();
-	public Command getDeleteCommand();
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IBindingMessageReference.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IBindingMessageReference.java
deleted file mode 100644
index f540cc6..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IBindingMessageReference.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.facade;
-
-import java.util.List;
-
-public interface IBindingMessageReference extends INamedObject
-{
-	public IMessageReference getMessageReference();
-	public List getExtensiblityObjects();
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IBindingOperation.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IBindingOperation.java
deleted file mode 100644
index f0650a8..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IBindingOperation.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.facade;
-
-import java.util.List;
-
-public interface IBindingOperation extends INamedObject
-{
-	public IOperation getOperation();
-	public List getBindingMessages();
-	public List getExtensiblityObjects();  
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IDescription.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IDescription.java
deleted file mode 100644
index 9785840..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IDescription.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.facade;
-
-import java.util.List;
-
-import org.eclipse.gef.commands.Command;
-
-
-public interface IDescription extends INamedObject
-{
-	public String getTargetNamespace();
-	public String getTargetNamespacePrefix();
-	
-	public List getImports();
-	public List getTypes();
-	public List getServices();
-	public List getBindings();
-	public List getInterfaces();
-	public List getMessages();
-  
-	public Command getAddImportCommand();
-	public Command getAddSchemaCommand();
-	public Command getAddServiceCommand();
-	public Command getAddBindingCommand();
-	public Command getAddInterfaceCommand();
-	public Command getAddMessageCommand();
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IEndPoint.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IEndPoint.java
deleted file mode 100644
index 4ce7fc7..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IEndPoint.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.facade;
-
-import org.eclipse.gef.commands.Command;
-
-public interface IEndPoint extends INamedObject
-{
-	public IService getOwnerService();
-	public String getAddress();
-	public IBinding getBinding();
-  
-	public Command getSetBindingCommand(IBinding binding);
-	public Command getSetAddressCommand(String newAddress);
-	public Command getDeleteCommand();
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IImport.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IImport.java
deleted file mode 100644
index 7ff030e..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IImport.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.facade;
-
-import org.eclipse.gef.commands.Command;
-
-public interface IImport extends INamedObject {
-	public String getNamespace();
-	public String getNamespacePrefix();
-	public String getLocation();
-	
-	public IDescription getOwnerDescription();
-	public Command getDeleteCommand();
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IInterface.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IInterface.java
deleted file mode 100644
index f6cab95..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IInterface.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.facade;
-
-import java.util.List;
-
-import org.eclipse.gef.commands.Command;
-
-public interface IInterface extends INamedObject {
-  public List getOperations();
-  
-  public Command getAddOperationCommand();
-  public Command getDeleteCommand();
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IMessage.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IMessage.java
deleted file mode 100644
index 2220bbf..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IMessage.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.facade;
-
-import java.util.List;
-
-import org.eclipse.gef.commands.Command;
-
-public interface IMessage extends INamedObject {
-	  public List getParts();
-	  
-	  public IDescription getOwnerDescription();
-	  
-	  public Command getAddPartCommand();
-	  public Command getDeleteCommand();
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IMessageReference.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IMessageReference.java
deleted file mode 100644
index 2ecdcdb..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IMessageReference.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.facade;
-
-import java.util.List;
-
-import org.eclipse.gef.commands.Command;
-
-// this is a simplification of an input, output or fault object
-// (or any other kind of object future specs might cook up)
-public interface IMessageReference extends INamedObject
-{  
-  public final static int KIND_INPUT  = 1;
-  public final static int KIND_OUTPUT = 2;
-  public final static int KIND_FAULT = 3;
-  
-  public int getKind();
-  public List getParameters();   
-  public IOperation getOwnerOperation();
-  public String getPreview();
-  
-  public Command getDeleteCommand();
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/INamedObject.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/INamedObject.java
deleted file mode 100644
index 055a994..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/INamedObject.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.facade;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.wst.wsdl.asd.editor.outline.ITreeElement;
-
-public interface INamedObject extends IASDObject, ITreeElement
-{  
-	public String getName();
-  
-	public Command getSetNameCommand(String newName);
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IOperation.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IOperation.java
deleted file mode 100644
index f2cc50c..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IOperation.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.facade;
-
-import java.util.List;
-
-import org.eclipse.gef.commands.Command;
-
-public interface IOperation extends INamedObject
-{
-	public List getMessages();
-	public IInterface getOwnerInterface();
-  
-	public Command getAddInputCommand();
-	public Command getAddOutputCommand();
-  // TODO: rmah: We need to revisit this (Sending in an existing FaultImpl when we want to
-  // add a Fault Parameter.  What do we really want to do when we add a
-  // 'new Fault'.... This also relates to what we really want to do when we delete a Fault...
-	public Command getAddFaultCommand(Object fault);
-	public Command getDeleteCommand();
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IParameter.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IParameter.java
deleted file mode 100644
index f152941..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IParameter.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.facade;
-
-import org.eclipse.gef.commands.Command;
-
-
-// this class is used to describe in simplified descritpion of the input/output/fault structure
-// in the familiar style of a typical programming language parameter e.g. "String[] foo"
-// 
-// often this class represents a simplification of a more complex service description or schema
-// this class serves common denominator to drive a simple view of an operation's message structure
-// implementation specific editors can choose to provide 'advanced' views that delve into addition details
-// of a Message structure
-public interface IParameter extends INamedObject
-{
-	public Object getOwner();
-//  String getKind();
-	public String getComponentName();
-	public String getComponentNameQualifier();
-	public String getPreview();
-  //? int getMinOccurs();
-  //? int getMaxOccurs();
-	
-	// TODO: rmah: Do these strings belong here???
-    public static final String SET_NEW_TYPE_ID = "SetTypeAction_AddType";
-	public static final String SELECT_EXISTING_TYPE_ID = "SetTypeAction_ExistingType";
-  
-	public Command getSetTypeCommand(String actionId);
-	public Command getDeleteCommand();
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IService.java b/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IService.java
deleted file mode 100644
index 73094f3..0000000
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IService.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.asd.facade;
-
-import java.util.List;
-import org.eclipse.gef.commands.Command;
-
-public interface IService extends INamedObject
-{  
-	public List getEndPoints();
-	public IDescription getOwnerDescription();
-	public Command getAddEndPointCommand();
-	public Command getDeleteCommand();
-}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-refactor/org/eclipse/wst/wsdl/ui/internal/refactor/WSDLComponentRenameParticipant.java b/bundles/org.eclipse.wst.wsdl.ui/src-refactor/org/eclipse/wst/wsdl/ui/internal/refactor/WSDLComponentRenameParticipant.java
index c158c82..c9f9d01 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-refactor/org/eclipse/wst/wsdl/ui/internal/refactor/WSDLComponentRenameParticipant.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src-refactor/org/eclipse/wst/wsdl/ui/internal/refactor/WSDLComponentRenameParticipant.java
@@ -1,13 +1,14 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 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
+ *     IBM Corporation - Initial API and implementation
  *******************************************************************************/
+
 package org.eclipse.wst.wsdl.ui.internal.refactor;
 
 import java.util.List;
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-refactor/org/eclipse/wst/wsdl/ui/internal/refactor/actions/RenameComponentAction.java b/bundles/org.eclipse.wst.wsdl.ui/src-refactor/org/eclipse/wst/wsdl/ui/internal/refactor/actions/RenameComponentAction.java
index 8435c9d..543c8c6 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-refactor/org/eclipse/wst/wsdl/ui/internal/refactor/actions/RenameComponentAction.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src-refactor/org/eclipse/wst/wsdl/ui/internal/refactor/actions/RenameComponentAction.java
@@ -1,12 +1,12 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 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
+ *     IBM Corporation - Initial API and implementation
  *******************************************************************************/
 package org.eclipse.wst.wsdl.ui.internal.refactor.actions;
 
@@ -16,14 +16,12 @@
 import org.eclipse.ltk.core.refactoring.participants.RenameRefactoring;
 import org.eclipse.ltk.ui.refactoring.RefactoringWizard;
 import org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation;
-import org.eclipse.swt.widgets.Display;
 import org.eclipse.ui.actions.GlobalBuildAction;
 import org.eclipse.wst.wsdl.Binding;
 import org.eclipse.wst.wsdl.Definition;
 import org.eclipse.wst.wsdl.Message;
 import org.eclipse.wst.wsdl.PortType;
 import org.eclipse.wst.wsdl.WSDLElement;
-import org.eclipse.wst.wsdl.internal.impl.DefinitionImpl;
 import org.eclipse.wst.wsdl.internal.impl.WSDLElementImpl;
 import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
 import org.eclipse.wst.wsdl.ui.internal.util.NodeAssociationManager;
@@ -152,38 +150,16 @@
 					.getString("RenameComponentWizard.defaultPageTitle"), //$NON-NLS-1$ TODO: provide correct strings
 					RefactoringMessages
 					.getString("RenameComponentWizard.inputPage.description"), //$NON-NLS-1$
-					null)
-                    {
-                      public boolean performFinish()
-                      {
-                        // TODO Auto-generated method stub
-                        boolean rc = super.performFinish();
-                        //((DefinitionImpl)getDefinition()).reconcileReferences(true);
-                        return rc;
-                      }
-              
-                    };        
+					null);
 			RefactoringWizardOpenOperation op = new RefactoringWizardOpenOperation(
 					wizard);
 			op.run(WSDLEditorPlugin.getShell(), wizard
 					.getDefaultPageTitle());
 			triggerBuild();
-            
-			Display.getCurrent().asyncExec(new Runnable()
-			{			  
-			  public void run()
-			  {
-			    ((DefinitionImpl)getDefinition()).reconcileReferences(true);
-			  }
-			});  
-            
 		} catch (InterruptedException e) {
 			// do nothing. User action got cancelled
 		}
 		
-		if (getModel() instanceof DefinitionImpl) {
-			((DefinitionImpl) getModel()).reconcileReferences(true);
-		}
 	}
 
 	public static void triggerBuild() {
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-refactor/org/eclipse/wst/wsdl/ui/internal/refactor/actions/WSDLRefactorActionGroup.java b/bundles/org.eclipse.wst.wsdl.ui/src-refactor/org/eclipse/wst/wsdl/ui/internal/refactor/actions/WSDLRefactorActionGroup.java
index cd4a716..b9bed6c 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-refactor/org/eclipse/wst/wsdl/ui/internal/refactor/actions/WSDLRefactorActionGroup.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src-refactor/org/eclipse/wst/wsdl/ui/internal/refactor/actions/WSDLRefactorActionGroup.java
@@ -1,13 +1,14 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 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
+ *     IBM Corporation - Initial API and implementation
  *******************************************************************************/
+
 package org.eclipse.wst.wsdl.ui.internal.refactor.actions;
 
 import java.util.ArrayList;
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-refactor/org/eclipse/wst/wsdl/ui/internal/refactor/actions/WSDLRefactorGroupActionDelegate.java b/bundles/org.eclipse.wst.wsdl.ui/src-refactor/org/eclipse/wst/wsdl/ui/internal/refactor/actions/WSDLRefactorGroupActionDelegate.java
index a245f9e..02fcfdf 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-refactor/org/eclipse/wst/wsdl/ui/internal/refactor/actions/WSDLRefactorGroupActionDelegate.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src-refactor/org/eclipse/wst/wsdl/ui/internal/refactor/actions/WSDLRefactorGroupActionDelegate.java
@@ -1,61 +1,103 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 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
+ *     IBM Corporation - Initial API and implementation
  *******************************************************************************/
+
 package org.eclipse.wst.wsdl.ui.internal.refactor.actions;
 
-import org.eclipse.jface.viewers.ISelection;
+import java.io.IOException;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
 import org.eclipse.swt.widgets.Menu;
+import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IFileEditorInput;
 import org.eclipse.ui.IWorkbenchPartSite;
+import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
+import org.eclipse.wst.sse.core.internal.provisional.StructuredModelManager;
 import org.eclipse.wst.wsdl.Definition;
-import org.eclipse.wst.wsdl.ui.internal.ISelectionMapper;
+import org.eclipse.wst.wsdl.WSDLFactory;
+import org.eclipse.wst.wsdl.internal.util.WSDLResourceFactoryImpl;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
 import org.eclipse.wst.xsd.ui.internal.refactor.wizard.RefactorActionGroup;
 import org.eclipse.wst.xsd.ui.internal.refactor.wizard.RefactorGroupActionDelegate;
 import org.eclipse.wst.xsd.ui.internal.refactor.wizard.RefactorGroupSubMenu;
 
-public class WSDLRefactorGroupActionDelegate extends RefactorGroupActionDelegate
-{
-  public WSDLRefactorGroupActionDelegate()
-  {
-    super();
-  }
-  /**
-   * Fills the menu with applicable refactor sub-menues
-   * 
-   * @param menu
-   *          The menu to fill
-   */
-  protected void fillMenu(Menu menu)
-  {
-    if (fSelection == null)
-    {
-      return;
-    }
-    if (workbenchPart != null)
-    {
-      IWorkbenchPartSite site = workbenchPart.getSite();
-      if (site == null)
-        return;
-      IEditorPart editor = site.getPage().getActiveEditor();
-      if (editor != null)
-      {
-        ISelectionMapper mapper = (ISelectionMapper) editor.getAdapter(ISelectionMapper.class);
-        ISelection selection = mapper != null ? mapper.mapSelection(fSelection) : fSelection;
-        Definition definition = (Definition) editor.getAdapter(Definition.class);
-        if (definition != null)
-        {  
-          RefactorActionGroup refactorMenuGroup = new WSDLRefactorActionGroup(selection, definition);
-          RefactorGroupSubMenu subMenu = new RefactorGroupSubMenu(refactorMenuGroup);
-          subMenu.fill(menu, -1);
-        }  
-      }
-    }
-  }
-}
\ No newline at end of file
+public class WSDLRefactorGroupActionDelegate extends RefactorGroupActionDelegate {
+
+	
+
+    public WSDLRefactorGroupActionDelegate() {
+		super();
+	}
+
+	/**
+     * Fills the menu with applicable refactor sub-menues
+     * @param menu The menu to fill
+     */
+	protected void fillMenu(Menu menu) {
+		if (fSelection == null) {
+			return;
+		}
+		if (workbenchPart != null) {
+			IWorkbenchPartSite site = workbenchPart.getSite();
+			if (site == null)
+				return;
+
+			IEditorPart editor = site.getPage().getActiveEditor();
+			if (editor != null) {
+				IEditorInput editorInput = editor.getEditorInput();
+				if(editorInput instanceof IFileEditorInput){
+					IFileEditorInput fileInput = (IFileEditorInput)editorInput;
+					Definition definition = createDefinition(fileInput.getFile(), resourceSet);
+					RefactorActionGroup refactorMenuGroup = new WSDLRefactorActionGroup(fSelection, definition);
+					RefactorGroupSubMenu subMenu = new RefactorGroupSubMenu(refactorMenuGroup);
+					subMenu.fill(menu, -1);
+				}
+				
+			}
+		
+		}
+
+	}
+	
+	
+public static Definition createDefinition(IFile file, ResourceSet resourceSet) {
+		
+		URI uri = URI.createFileURI(file.getLocation().toString());
+		Definition definition = WSDLFactory.eINSTANCE.createDefinition();		
+		// we need this model to be able to get locations
+		try {
+			definition.setDocumentBaseURI(uri.toString());
+			IStructuredModel structuredModel = StructuredModelManager
+					.getModelManager().getModelForRead(file);
+			IDOMModel domModel = (IDOMModel) structuredModel;
+			WSDLResourceFactoryImpl resourceFactory = new WSDLResourceFactoryImpl();
+			Resource wsdlResource = resourceFactory.createResource(uri);
+			wsdlResource.setURI(uri);
+			if(resourceSet != null){
+				resourceSet.getResources().add(wsdlResource);
+			}
+			definition.setElement(domModel.getDocument()
+					.getDocumentElement());
+		} catch (IOException e) {
+			// do nothing
+		} catch (CoreException e) {
+			// do nothing
+		}
+		return definition;
+	}
+
+
+	
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-refactor/org/eclipse/wst/wsdl/ui/internal/refactor/actions/WSDLSelectionDispatchAction.java b/bundles/org.eclipse.wst.wsdl.ui/src-refactor/org/eclipse/wst/wsdl/ui/internal/refactor/actions/WSDLSelectionDispatchAction.java
index a80f634..cc81b42 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-refactor/org/eclipse/wst/wsdl/ui/internal/refactor/actions/WSDLSelectionDispatchAction.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src-refactor/org/eclipse/wst/wsdl/ui/internal/refactor/actions/WSDLSelectionDispatchAction.java
@@ -1,13 +1,14 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 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
+ *     IBM Corporation - Initial API and implementation
  *******************************************************************************/
+
 package org.eclipse.wst.wsdl.ui.internal.refactor.actions;
 
 import org.eclipse.jface.viewers.ISelection;
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-refactor/org/eclipse/wst/wsdl/ui/internal/search/IWSDLSearchConstants.java b/bundles/org.eclipse.wst.wsdl.ui/src-refactor/org/eclipse/wst/wsdl/ui/internal/search/IWSDLSearchConstants.java
index 65065e5..9aaa516 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-refactor/org/eclipse/wst/wsdl/ui/internal/search/IWSDLSearchConstants.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src-refactor/org/eclipse/wst/wsdl/ui/internal/search/IWSDLSearchConstants.java
@@ -1,13 +1,14 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 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
+ *     IBM Corporation - Initial API and implementation
  *******************************************************************************/
+
 package org.eclipse.wst.wsdl.ui.internal.search;
 
 import org.eclipse.wst.common.core.search.pattern.QualifiedName;
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-refactor/org/eclipse/wst/wsdl/ui/internal/search/WSDLSearchContributor.java b/bundles/org.eclipse.wst.wsdl.ui/src-refactor/org/eclipse/wst/wsdl/ui/internal/search/WSDLSearchContributor.java
index c92c86f..1b4445b 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-refactor/org/eclipse/wst/wsdl/ui/internal/search/WSDLSearchContributor.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src-refactor/org/eclipse/wst/wsdl/ui/internal/search/WSDLSearchContributor.java
@@ -1,13 +1,14 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 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
+ *     IBM Corporation - Initial API and implementation
  *******************************************************************************/
+
 package org.eclipse.wst.wsdl.ui.internal.search;
 
 import java.util.ArrayList;
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-refactor/org/eclipse/wst/wsdl/ui/internal/search/WSDLSearchParticipant.java b/bundles/org.eclipse.wst.wsdl.ui/src-refactor/org/eclipse/wst/wsdl/ui/internal/search/WSDLSearchParticipant.java
index 1452f17..d8508b6 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-refactor/org/eclipse/wst/wsdl/ui/internal/search/WSDLSearchParticipant.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src-refactor/org/eclipse/wst/wsdl/ui/internal/search/WSDLSearchParticipant.java
@@ -1,18 +1,18 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 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
+ *     IBM Corporation - Initial API and implementation
  *******************************************************************************/
+
 package org.eclipse.wst.wsdl.ui.internal.search;
 
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Map;
 
 import org.eclipse.wst.common.core.search.SearchParticipant;
 import org.eclipse.wst.common.core.search.SearchPlugin;
@@ -30,21 +30,12 @@
 	private static String ID = "org.eclipse.wst.wsdl.search.WSDLSearchParticipant";
 	private static String XSD_PARTICIPANNT_ID = "org.eclipse.wst.xsd.search.XSDSearchParticipant";
 
+
 	
-	public WSDLSearchParticipant()
-	{
-	  super();
-      id = ID;
-	}
-	
-	public String[] getSupportedContentTypes()
-	{
-	  String[] result = { "org.eclipse.wst.wsdl.wsdlsource" };
-	  return result;
-	}
-	
-	public boolean isApplicable(SearchPattern pattern, Map searchOptions)
-	{
+	public  boolean initialize(SearchPattern pattern, String[] contentTypes){
+		
+		super.initialize(pattern, contentTypes);
+		id = ID;
 		if(pattern instanceof XMLComponentSearchPattern ){
 			XMLComponentSearchPattern componentPattern = (XMLComponentSearchPattern)pattern;
 			String namespace = componentPattern.getMetaName().getNamespace();
@@ -54,16 +45,17 @@
 			}
 		}
 		return false;
-	}	
-	
+	}
+
+
 	public ComponentSearchContributor getSearchContributor() {
 
 		return new WSDLSearchContributor();
 	}
 	
-  public void beginSearching(SearchPattern pattern, Map searchOptions) {
+  public void beginSearching(SearchPattern pattern) {
 		
-		super.beginSearching(pattern, searchOptions);
+		super.beginSearching(pattern);
 		List patterns = new ArrayList();
 		if(pattern instanceof XMLComponentDeclarationPattern){
 			
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-validation/org/eclipse/wst/wsdl/ui/internal/validation/ValidateWSDLAction.java b/bundles/org.eclipse.wst.wsdl.ui/src-validation/org/eclipse/wst/wsdl/ui/internal/validation/ValidateWSDLAction.java
new file mode 100644
index 0000000..3a3d4c2
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src-validation/org/eclipse/wst/wsdl/ui/internal/validation/ValidateWSDLAction.java
@@ -0,0 +1,491 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.validation;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.ResourceBundle;
+import java.util.Set;
+
+import org.apache.xerces.xni.grammars.XMLGrammarPool;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IWorkspaceRunnable;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
+import org.eclipse.wst.wsdl.validation.internal.Constants;
+import org.eclipse.wst.wsdl.validation.internal.IValidationMessage;
+import org.eclipse.wst.wsdl.validation.internal.IValidationReport;
+import org.eclipse.wst.wsdl.validation.internal.ValidationMessageImpl;
+import org.eclipse.wst.wsdl.validation.internal.eclipse.WSDLValidator;
+import org.eclipse.wst.wsdl.validation.internal.xml.XMLMessageInfoHelper;
+import org.eclipse.wst.xml.ui.internal.validation.core.ValidateAction;
+
+/**
+ * Eclipse action for running the WSDL validator. 
+ */
+public class ValidateWSDLAction extends ValidateAction
+{
+ // private static final String REFERENCED_FILE_ERROR_OPEN = "referencedFileError(";
+
+  //private static final String REFERENCED_FILE_ERROR_CLOSE = ")";
+  private final String FILE_PROTOCOL = "file:///";
+
+  //private static final String _UI_SAVE_DIRTY_FILE_MESSAGE = "_UI_SAVE_DIRTY_FILE_MESSAGE";
+
+  //private static final String _UI_SAVE_DIRTY_FILE_TITLE = "_UI_SAVE_DIRTY_FILE_TITLE";
+  //private static final String _UI_REF_FILE_ERROR_MESSAGE = "_UI_REF_FILE_ERROR_MESSAGE";
+  //private static final String NESTED_ERRORS = "NESTED_ERRORS";
+
+  private InputStream inputStream = null;
+  
+  private XMLGrammarPool schemaGrammarPool = null;
+  private XMLGrammarPool xmlGrammarPool = null;
+  
+  private static ResourceBundle wsdlActionRB = ResourceBundle.getBundle("org.eclipse.wst.wsdl.ui.internal.validation.validatewsdlui");
+  /**
+   * Constructor.
+   * 
+   * @param file The file to validate.
+   * @param showDialog Whether to show a dialog with the status upon completion.
+   */
+  public ValidateWSDLAction(IFile file, boolean showDialog)
+  {
+  	super(file, showDialog);
+  }
+  
+  public void setSchemaGrammarPool(XMLGrammarPool grammarPool)
+  {
+	this.schemaGrammarPool = grammarPool;
+  }
+  
+  public void setXMLGrammarPool(XMLGrammarPool grammarPool)
+  {
+	this.xmlGrammarPool = grammarPool;
+  }
+
+
+  /**
+   * Validate the given file and assign markers correspondingly to the file. If
+   * required, show a dialog with the results of the validation.
+   * 
+   * @param file The file to validate.
+   */
+  protected void validate(final IFile file)
+  {
+    final ValidationOutcome validationOutcome = new ValidationOutcome();
+    IWorkspaceRunnable op = new IWorkspaceRunnable()
+    {
+      public void run(IProgressMonitor progressMonitor) throws CoreException
+      {
+        WSDLValidator wsdlValidator = WSDLValidator.getInstance();
+        wsdlValidator.setAttribute(Constants.XMLSCHEMA_CACHE_ATTRIBUTE, schemaGrammarPool);
+        wsdlValidator.setAttribute(Constants.XML_CACHE_ATTRIBUTE, xmlGrammarPool);
+        clearMarkers(file);
+        IValidationReport valReport = null;
+
+        String location = null;
+        try
+        {
+          location = file.getLocation().toFile().getCanonicalFile().getAbsolutePath();
+        }
+        catch (IOException e)
+        {
+          location = file.getLocation().toString();
+        }
+        location = location.replace('\\','/');
+        if (location.startsWith("/"))
+        {
+          valReport = wsdlValidator.validate(FILE_PROTOCOL + location.substring(1), inputStream);
+        }
+        else
+        {
+          valReport = wsdlValidator.validate(FILE_PROTOCOL + location, inputStream);
+        }
+        // Need to remove the grammar pool when finished validating.
+        wsdlValidator.setAttribute(Constants.XMLSCHEMA_CACHE_ATTRIBUTE, null);
+        wsdlValidator.setAttribute(Constants.XML_CACHE_ATTRIBUTE, null);
+        
+        validationOutcome.isWSDLValid = valReport.isWSDLValid();
+        validationOutcome.isValid = !valReport.hasErrors();
+        if (valReport.getValidationMessages().length == 0)
+        {
+          validationOutcome.hasMessages = false;
+        }
+        else
+        {
+          validationOutcome.hasMessages = true;
+        }
+
+        createMarkers(file, convertValidationMessages(valReport.getValidationMessages()));
+        //createMarkers(file, validatormanager.getWarningList(), WARNING_MARKER);
+        
+        //file.setSessionProperty(ValidationMessage.ERROR_MESSAGE_MAP_QUALIFIED_NAME, valReport.getNestedMessages());
+        file.setSessionProperty(org.eclipse.wst.xml.core.internal.validation.core.ValidationMessage.ERROR_MESSAGE_MAP_QUALIFIED_NAME, convertNestedValidationMessages(valReport.getNestedMessages()));
+      }
+    };
+
+    try
+    {
+      ResourcesPlugin.getWorkspace().run(op, null);
+
+      if (showDialog)
+      {
+        showDialog(validationOutcome);
+      }
+    }
+    catch (Exception e)
+    {
+      e.printStackTrace();
+    }
+  }
+  
+  /**
+   * Convert WSDL validation messages to validation framework messages.
+   * 
+   * @param messages The WSDL validation messages to convert.
+   * @return The converted validation messages.
+   */
+  private org.eclipse.wst.xml.core.internal.validation.core.ValidationMessage[] convertValidationMessages(IValidationMessage[] messages)
+  {
+  	int numMessages = messages.length;
+  	org.eclipse.wst.xml.core.internal.validation.core.ValidationMessage[] convertedMessages = new org.eclipse.wst.xml.core.internal.validation.core.ValidationMessage[numMessages];
+  	
+  	for(int i = 0; i < numMessages; i++)
+  	{
+  	  IValidationMessage mess = messages[i];
+      
+      org.eclipse.wst.xml.core.internal.validation.core.ValidationMessage convertMess = null;
+      if (mess instanceof ValidationMessageImpl)
+      {   String errorKey = ((ValidationMessageImpl)mess).getErrorKey();
+          Object[] messageArgs = ((ValidationMessageImpl)mess).getMessageArguments();
+          convertMess = new org.eclipse.wst.xml.core.internal.validation.core.ValidationMessage(mess.getMessage(), mess.getLine(), mess.getColumn(), mess.getURI(), errorKey, messageArgs);
+      }
+      else
+      {
+         convertMess = new org.eclipse.wst.xml.core.internal.validation.core.ValidationMessage(mess.getMessage(),mess.getLine(),mess.getColumn(), mess.getURI());
+      }
+  	  if(mess.getSeverity() == IValidationMessage.SEV_WARNING)
+	  {
+	  	convertMess.setSeverity(org.eclipse.wst.xml.core.internal.validation.core.ValidationMessage.SEV_LOW);
+	  }
+	  else
+	  {
+	  	convertMess.setSeverity(org.eclipse.wst.xml.core.internal.validation.core.ValidationMessage.SEV_HIGH);
+	  }
+  	  
+  	  // Convert any nested messages.
+  	  List nestedMessages = mess.getNestedMessages();
+  	  if(nestedMessages != null && !nestedMessages.isEmpty())
+  	  {
+  	  	Iterator nestedIter = nestedMessages.iterator();
+  	    while(nestedIter.hasNext())
+        {
+          IValidationMessage nestedMess = (IValidationMessage)nestedIter.next();
+    	  org.eclipse.wst.xml.core.internal.validation.core.ValidationMessage convertNestedMess = new org.eclipse.wst.xml.core.internal.validation.core.ValidationMessage(nestedMess.getMessage(),nestedMess.getLine(),nestedMess.getColumn(), nestedMess.getURI());
+    	  if(nestedMess.getSeverity() == IValidationMessage.SEV_WARNING)
+    	  {
+    	  	convertNestedMess.setSeverity(org.eclipse.wst.xml.core.internal.validation.core.ValidationMessage.SEV_LOW);
+    	  }
+    	  else
+    	  {
+    	  	convertNestedMess.setSeverity(org.eclipse.wst.xml.core.internal.validation.core.ValidationMessage.SEV_HIGH);
+    	  }
+    	  convertMess.addNestedMessage(convertNestedMess);
+        }
+  	  }
+  	  convertedMessages[i] = convertMess;
+  	}
+  	return convertedMessages;
+  }
+  
+  /**
+   * Convert the nested messages hashmap.
+   * 
+   * @param nestedMessages The nested messages hashmap to convert.
+   * @return A hashmap with the converted validation messages.
+   */
+  private HashMap convertNestedValidationMessages(HashMap nestedMessages)
+  {
+  	HashMap convertedMap = new HashMap();
+  	
+  	Set keySet = nestedMessages.keySet();
+  	Iterator keysIter = keySet.iterator();
+  	while(keysIter.hasNext())
+  	{
+  	  String key = (String)keysIter.next();
+  	  IValidationMessage message = (IValidationMessage)nestedMessages.get(key);
+  	  org.eclipse.wst.xml.core.internal.validation.core.ValidationMessage[] convertedMessage = convertValidationMessages(new IValidationMessage[]{message});
+  	  
+  	  convertedMap.put(key, convertedMessage[0]);
+  	}
+  	return convertedMap;
+  }
+
+  /*
+   * (non-Javadoc)
+   * 
+   * @see org.eclipse.jface.action.IAction#run()
+   */
+//  public void run()
+//  {
+//    // Only run the validation if the file exists and is available.
+//    if (fileIsOK(file))
+//    {
+//      if (showDialog)
+//      {
+//        // Check if the file is dirty - prompts user to save.
+//        checkIfFileDirty(file);
+//      }
+//      super.run();
+//    }
+//  }
+
+  /**
+   * Test whether the file given is OK to use. A file is OK to use if 1. It is
+   * not null 2. It exists. 3. The project containing the file is accessible.
+   * 
+   * @param file The file to check to see if it is OK to validate.
+   * @return True if the file is OK to validate, false otherwise.
+   */
+//  protected boolean fileIsOK(IFile file)
+//  {
+//    if (file != null && file.exists() && file.getProject().isAccessible())
+//    {
+//      return true;
+//    }
+//    return false;
+//  }
+
+  /**
+   * Check if the file is dirty. A file is dirty if there is an open editor for
+   * the file that contains changes that haven't been saved.
+   * 
+   * @param file The file to check to see if it is dirty.
+   */
+//  protected void checkIfFileDirty(IFile file)
+//  {
+//    IEditorPart[] dirtyEditors = ValidateWSDLPlugin.getInstance().getWorkbench().getActiveWorkbenchWindow().getActivePage().getDirtyEditors();
+//
+//    int numeditors = dirtyEditors.length;
+//    for (int i = 0; i < numeditors; i++)
+//    {
+//      IEditorInput editorInput = dirtyEditors[i].getEditorInput();
+//      if (editorInput instanceof FileEditorInput)
+//      {
+//        FileEditorInput fileEditorInput = (FileEditorInput) editorInput;
+//        if (fileEditorInput.getFile().equals(file))
+//        {
+//          String message = ValidateWSDLPlugin.getInstance().getString(_UI_SAVE_DIRTY_FILE_MESSAGE);
+//          String title = ValidateWSDLPlugin.getInstance().getString(_UI_SAVE_DIRTY_FILE_TITLE);
+//          if (MessageDialog.openQuestion(Display.getDefault().getActiveShell(), title, message))
+//          {
+//            dirtyEditors[i].doSave(null);
+//          }
+//          // There can only be one open editor/file so we can break.
+//          break;
+//        }
+//      }
+//
+//    }
+//  }
+
+  /**
+   * Create a marker on the file of the indicated type for each
+   * ValidationMessage in the array.
+   * 
+   * @param iFile
+   *          The file to add the markers to.
+   * @param valMessages
+   *          The array of messages to add as markers.
+   */
+//  public void createMarkers(IFile iFile, ValidationMessage[] valMessages)
+//  {
+//    if (!fileIsOK(iFile))
+//    {
+//      return;
+//    }
+//    int numValMessages = valMessages.length;
+//    for (int i = 0; i < numValMessages; i++)
+//    {
+//      ValidationMessage validationMessage = valMessages[i];
+//
+//      int line = validationMessage.getLine();
+//      int column = validationMessage.getColumn();
+//      String message = validationMessage.getMessage();
+//      int severity = validationMessage.getSeverity();
+//      IMarker marker = null;
+//      
+//      boolean hasNestedErrors = false;
+//      List nestederrors = validationMessage.getNestedMessages();
+//      if(nestederrors != null && !nestederrors.isEmpty())
+//      {
+//        hasNestedErrors = true;
+//        message += ValidateWSDLPlugin.getInstance().getString(_UI_REF_FILE_ERROR_MESSAGE); 
+//      }
+//      if (severity == ValidationMessage.SEV_ERROR)
+//      {
+//        marker = getOrCreateReporter().addErrorMessage(iFile, message, line, column);
+//      }
+//      else if (severity == ValidationMessage.SEV_WARNING)
+//      {
+//        marker = getOrCreateReporter().addWarningMessage(iFile, message, line, column);
+//      }
+//      
+//      if (hasNestedErrors && marker != null)
+//      {
+//        try
+//        {
+//          marker.setAttribute("groupName", REFERENCED_FILE_ERROR_OPEN + validationMessage.getURI() + REFERENCED_FILE_ERROR_CLOSE);
+//          marker.setAttribute(IMarker.DONE, true);
+//        }
+//        catch(CoreException e)
+//        {
+//        }
+//      }
+//      
+//    }
+//  }
+
+  /**
+   * Show a dialog containing the status of the validation. Will display valid
+   * or invalid depending on whether there are errors or not.
+   * 
+   * @param validationOutcome
+   *          The outcome of the validation.
+   */
+  public void showDialog(ValidationOutcome validationOutcome)
+  {
+    String title, message;
+    if (validationOutcome.isValid)
+    {
+      if (validationOutcome.hasMessages)
+      {
+        showProblemsView();
+        title = wsdlActionRB.getString("_VALIDATION_SUCCEEDED");
+        message = wsdlActionRB.getString("_UI_THE_WSDL_FILE_IS_VALID_WITH_WARNINGS");
+        MessageDialog.openWarning(Display.getDefault().getActiveShell(), title, message);
+      }
+      else
+      {
+        title = wsdlActionRB.getString("_VALIDATION_SUCCEEDED");
+        message = wsdlActionRB.getString("_UI_THE_WSDL_FILE_IS_VALID");
+        MessageDialog.openInformation(Display.getDefault().getActiveShell(), title, message);
+      }
+
+    }
+    else
+    {
+      if (validationOutcome.isWSDLValid)
+      {
+        title = wsdlActionRB.getString("_VALIDATION_FAILED");
+        message = wsdlActionRB.getString("_UI_THE_WSDL_FILE_IS_VALID_WSDL11");
+      }
+      else
+      {
+        title = wsdlActionRB.getString("_VALIDATION_FAILED");
+        message = wsdlActionRB.getString("_UI_THE_WSDL_FILE_IS_NOT_VALID");
+      }
+      showProblemsView();
+      MessageDialog.openError(Display.getDefault().getActiveShell(), title, message);
+    }
+
+  }
+  
+  /**
+   * Show the problems view if it is not already visible.
+   */
+//  protected void showProblemsView()
+//  {
+//    IWorkbenchWindow dw = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
+//    IWorkbenchPage page = dw.getActivePage();
+//    IWorkbenchPart activePart = page.getActivePart();
+//    try
+//    {
+//      if (page != null)
+//      {
+//        page.showView("org.eclipse.ui.views.ProblemView");
+//      }
+//    }
+//    catch (PartInitException e)
+//    {
+//    }
+//    page.activate(activePart);
+//  }
+
+  /**
+   * If a reporter doesn't exist creates it or uses the reporter already
+   * created.
+   * 
+   * @return a reporter
+   */
+//  protected IReporter getOrCreateReporter()
+//  {
+//    if (reporter == null)
+//    {
+//      reporter = new WorkbenchReporter(file.getProject(), new NullProgressMonitor());
+//    }
+//    return reporter;
+//  }
+
+  /**
+   * Clear all the markers on the given resource generated by this validator.
+   * 
+   * @param resource -
+   *          the resrouce to clear all the markers from
+   */
+//  public void clearMarkers(IResource resource)
+//  {
+//    getOrCreateReporter().removeAllMessages(resource);
+//  }
+
+  protected class ValidationOutcome
+  {
+    public boolean isValid = true;
+
+    public boolean isWSDLValid = true;
+
+    public boolean hasMessages = false;
+
+    public ValidationOutcome()
+    {
+    }
+  }
+
+  public void setInputStream(InputStream inputStream)
+  {  this.inputStream = inputStream;
+  }
+  
+  /**
+   * Set extra attributes in the IMessage to provide information on what should be "squiggled"
+   * @param valMess the ValidationMessage corresponding to this error
+   * @param message the IMessage to set the attributes for
+   */
+  protected void addInfoToMessage(org.eclipse.wst.xml.core.internal.validation.core.ValidationMessage valMess, IMessage message)
+  {   if (valMess.getKey() != null)
+      {
+          XMLMessageInfoHelper helper = new XMLMessageInfoHelper();
+          String[] squiggleInfo = helper.createMessageInfo(valMess.getKey(), valMess.getMessageArguments());
+      
+          message.setAttribute(COLUMN_NUMBER_ATTRIBUTE, new Integer(valMess.getColumnNumber()));
+          message.setAttribute(SQUIGGLE_SELECTION_STRATEGY_ATTRIBUTE, squiggleInfo[0]);
+          message.setAttribute(SQUIGGLE_NAME_OR_VALUE_ATTRIBUTE, squiggleInfo[1]);
+      }
+  }
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-validation/org/eclipse/wst/wsdl/ui/internal/validation/ValidateWSDLActionDelegate.java b/bundles/org.eclipse.wst.wsdl.ui/src-validation/org/eclipse/wst/wsdl/ui/internal/validation/ValidateWSDLActionDelegate.java
new file mode 100644
index 0000000..0c05a00
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src-validation/org/eclipse/wst/wsdl/ui/internal/validation/ValidateWSDLActionDelegate.java
@@ -0,0 +1,68 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.validation;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.IActionDelegate;
+
+/**
+ * An action delegate for the WSDL validator.
+ */
+public class ValidateWSDLActionDelegate implements IActionDelegate
+{
+  protected ISelection selection;
+  protected void validate(IFile file)
+  {
+    ValidateWSDLAction validateAction = new ValidateWSDLAction(file, true);
+    validateAction.setValidator(new Validator());
+    validateAction.run();	
+  }
+ 
+  /**
+   * @see org.eclipse.ui.IActionDelegate#run(IAction)
+   */
+  public void run(IAction action)
+  {
+  	IFile file = null;
+    if (!selection.isEmpty() && selection instanceof IStructuredSelection)
+    {
+      IStructuredSelection structuredSelection = (IStructuredSelection) selection;
+      Object element = structuredSelection.getFirstElement();
+
+      if (element instanceof IFile)
+      {
+        file = (IFile) element;
+      }
+      else
+      {
+        return;
+      }
+    }
+          
+    if (file != null)
+    {          
+      validate(file);
+    }
+  }
+
+  /**
+   * @see org.eclipse.ui.IActionDelegate#selectionChanged(IAction, ISelection)
+   */
+  public void selectionChanged(IAction action, ISelection selection)
+  {
+  	this.selection = selection;
+  }
+
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-validation/org/eclipse/wst/wsdl/ui/internal/validation/Validator.java b/bundles/org.eclipse.wst.wsdl.ui/src-validation/org/eclipse/wst/wsdl/ui/internal/validation/Validator.java
new file mode 100644
index 0000000..7e4c01b
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src-validation/org/eclipse/wst/wsdl/ui/internal/validation/Validator.java
@@ -0,0 +1,192 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.validation;
+
+import java.io.InputStream;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.xerces.util.XMLGrammarPoolImpl;
+import org.apache.xerces.xni.grammars.XMLGrammarPool;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.wst.validation.internal.core.ValidationException;
+import org.eclipse.wst.validation.internal.operations.IRuleGroup;
+import org.eclipse.wst.validation.internal.provisional.core.IReporter;
+import org.eclipse.wst.validation.internal.provisional.core.IValidationContext;
+import org.eclipse.wst.validation.internal.provisional.core.IValidator;
+import org.eclipse.wst.wsdl.validation.internal.eclipse.InlineSchemaModelGrammarPoolImpl;
+import org.eclipse.wst.xml.core.internal.validation.core.Helper;
+
+
+/**
+ * A validator to plug the WSDL validator into the validation framework.
+ */
+public class Validator implements IValidator
+{
+
+  /**
+   * Validate the given IFile.
+   * 
+   * @param file
+   *          The file to validate.
+   */
+//  public void validate(IFile file)
+//  {
+//    ValidateWSDLAction validateAction = new ValidateWSDLAction(file, false);
+//    validateAction.setValidator(this);
+//    validateAction.run();
+//  }
+  
+  protected void validate(IFile file, InputStream inputStream, IReporter reporter, XMLGrammarPool xmlGrammarPool, XMLGrammarPool xsdGrammarPool)
+  {
+    ValidateWSDLAction validateAction = new ValidateWSDLAction(file, false);
+    validateAction.setSchemaGrammarPool(xsdGrammarPool);
+    validateAction.setXMLGrammarPool(xsdGrammarPool);
+    validateAction.setValidator(this);
+    validateAction.setReporter(reporter);
+    validateAction.setInputStream(inputStream);
+    validateAction.run();
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.validation.core.IValidator#validate(org.eclipse.wst.validation.core.IHelper, org.eclipse.wst.validation.core.IReporter, org.eclipse.wst.validation.core.IFileDelta[])
+   */
+  public void validate(IValidationContext helper, IReporter reporter) throws ValidationException
+  {
+	XMLGrammarPool xsdGrammarPool = new InlineSchemaModelGrammarPoolImpl();
+	XMLGrammarPool xmlGrammarPool = new XMLGrammarPoolImpl();
+	String[] changedFiles = helper.getURIs();
+    if (changedFiles != null && changedFiles.length > 0)
+    {
+      InputStream streamToValidate = (InputStream) helper.loadModel("inputStream");
+      if (streamToValidate != null)
+      {   
+        String fileName = changedFiles[0];
+        Object[] parms = { fileName };
+        IFile file = (IFile) helper.loadModel(Helper.GET_FILE, parms);
+        
+        validate(file, streamToValidate, reporter, xmlGrammarPool, xsdGrammarPool);
+        
+      } else
+      { for (int i = 0; i < changedFiles.length; i++)
+        {
+          String fileName = changedFiles[i];
+          if (fileName != null)
+          {
+            Object[] parms = {fileName};
+            
+            IFile file = (IFile) helper.loadModel(Helper.GET_FILE, parms);
+            if (file != null)
+            {
+              validateIfNeeded(file, helper, reporter, xmlGrammarPool, xsdGrammarPool);
+            }
+          }
+        }
+      }
+    } else
+    {
+      Object[] parms = {this.getClass().getName()};
+      Collection files = (Collection) helper.loadModel(Helper.GET_PROJECT_FILES, parms);
+      Iterator iter = files.iterator();
+      while (iter.hasNext())
+      {
+        IFile file = (IFile) iter.next();
+        validateIfNeeded(file, helper, reporter, xmlGrammarPool, xsdGrammarPool);
+      }
+    }
+    xsdGrammarPool.clear();
+    xmlGrammarPool.clear();
+    xsdGrammarPool = null;
+    xmlGrammarPool = null;
+  }
+
+  /**
+   * @param file
+   * @param reporter
+   * @param ruleGroup
+   */
+  protected void validate(IFile file, IReporter reporter, int ruleGroup, XMLGrammarPool xmlGrammarPool, XMLGrammarPool xsdGrammarPool)
+  {
+    ValidateWSDLAction validateAction = new ValidateWSDLAction(file, false);
+    validateAction.setSchemaGrammarPool(xsdGrammarPool);
+    validateAction.setXMLGrammarPool(xmlGrammarPool);
+    validateAction.setValidator(this);
+    validateAction.run();
+  }
+
+  /**
+   * Validate the given file if validation is required.
+   * 
+   * @param file
+   * @param model
+   * @param helper
+   * @param reporter
+   */
+//  protected void validateIfNeeded(IFile file, Object model, IValidationContext helper, IReporter reporter)
+//  {
+//    if (model == null)
+//    {
+//      validateIfNeeded(file, helper, reporter);
+//    }
+//  }
+
+  /**
+   * Unpacks the fileModelPair and returns an IFile object.
+   */
+  protected IFile getFile(Object object)
+  {
+    IFile result = null;
+    if (object instanceof List)
+    {
+      List fileModelPair = (List) object;
+      if (fileModelPair.size() > 0)
+      {
+        Object file = fileModelPair.get(0);
+        if (file instanceof IFile)
+        {
+          result = (IFile) file;
+        }
+      }
+    }
+    return result;
+  }
+
+  /**
+   * Validate the given file if validation is required.
+   * 
+   * @param file
+   *          The file to validate.
+   * @param helper
+   *          An aid for the validation.
+   * @param reporter
+   *          The reporter to report the validation messages.
+   */
+  protected void validateIfNeeded(IFile file, IValidationContext helper, IReporter reporter, XMLGrammarPool xmlGrammarPool, XMLGrammarPool xsdGrammarPool)
+  {
+    //ValidatorManager mgr = ValidatorManager.getManager();
+    // Pass in a "null" so that loadModel doesn't attempt to cast the result into a RefObject.
+    Integer ruleGroupInt = (Integer) helper.loadModel(IRuleGroup.PASS_LEVEL, null); 
+    int ruleGroup = (ruleGroupInt == null) ? IRuleGroup.PASS_FULL : ruleGroupInt.intValue();
+
+    validate(file, reporter, ruleGroup, xmlGrammarPool, xsdGrammarPool);
+  }
+
+  /*
+   * (non-Javadoc)
+   * 
+   * @see com.ibm.etools.validation.IValidator#cleanup(com.ibm.etools.validation.IReporter)
+   */
+  public void cleanup(IReporter reporter)
+  {
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-validation/org/eclipse/wst/wsdl/ui/internal/validation/validatewsdlui.properties b/bundles/org.eclipse.wst.wsdl.ui/src-validation/org/eclipse/wst/wsdl/ui/internal/validation/validatewsdlui.properties
new file mode 100644
index 0000000..e8dc95d
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src-validation/org/eclipse/wst/wsdl/ui/internal/validation/validatewsdlui.properties
@@ -0,0 +1,17 @@
+###############################################################################
+# Copyright (c) 2001, 2004 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
+###############################################################################
+!-- Eclipse UI Message Dialog
+_VALIDATION_SUCCEEDED                      = Validation Succeeded
+_VALIDATION_FAILED                         = Validation Failed
+_UI_THE_WSDL_FILE_IS_VALID                 = The WSDL file is valid.
+_UI_THE_WSDL_FILE_IS_NOT_VALID             = The WSDL file is not valid. See the Problems view for a list of the validation errors.
+_UI_THE_WSDL_FILE_IS_VALID_WSDL11          = The WSDL file is valid according to the WSDL specification however an extension validator has determined that the file is not valid. See the Problems view for a list of the validation errors.
+_UI_THE_WSDL_FILE_IS_VALID_WITH_WARNINGS   = The WSDL file is valid however warnings have been issued. See the Problems view for a list of the validation warnings.
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/Logger.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/Logger.java
new file mode 100644
index 0000000..c554e60
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/Logger.java
@@ -0,0 +1,157 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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
+ *     Jens Lukowski/Innoopract - initial renaming/restructuring
+ *     
+ *******************************************************************************/
+package org.eclipse.wst.wsdl.ui.internal;
+
+import java.util.StringTokenizer;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Status;
+import org.osgi.framework.Bundle;
+
+/**
+ * Small convenience class to log messages to plugin's log file and also, if
+ * desired, the console. This class should only be used by classes in this
+ * plugin. Other plugins should make their own copy, with appropriate ID.
+ */
+public class Logger {
+	private static final String PLUGIN_ID = "org.eclipse.wst.wsdl.ui"; //$NON-NLS-1$
+	
+	public static final int ERROR = IStatus.ERROR; // 4
+	public static final int ERROR_DEBUG = 200 + ERROR;
+	public static final int INFO = IStatus.INFO; // 1
+	public static final int INFO_DEBUG = 200 + INFO;
+
+	public static final int OK = IStatus.OK; // 0
+
+	public static final int OK_DEBUG = 200 + OK;
+
+	private static final String TRACEFILTER_LOCATION = "/debug/tracefilter"; //$NON-NLS-1$
+	public static final int WARNING = IStatus.WARNING; // 2
+	public static final int WARNING_DEBUG = 200 + WARNING;
+
+	/**
+	 * Adds message to log.
+	 * 
+	 * @param level
+	 *            severity level of the message (OK, INFO, WARNING, ERROR,
+	 *            OK_DEBUG, INFO_DEBUG, WARNING_DEBUG, ERROR_DEBUG)
+	 * @param message
+	 *            text to add to the log
+	 * @param exception
+	 *            exception thrown
+	 */
+	protected static void _log(int level, String message, Throwable exception) {
+		if (level == OK_DEBUG || level == INFO_DEBUG || level == WARNING_DEBUG || level == ERROR_DEBUG) {
+			if (!isDebugging())
+				return;
+		}
+
+		int severity = IStatus.OK;
+		switch (level) {
+			case INFO_DEBUG :
+			case INFO :
+				severity = IStatus.INFO;
+				break;
+			case WARNING_DEBUG :
+			case WARNING :
+				severity = IStatus.WARNING;
+				break;
+			case ERROR_DEBUG :
+			case ERROR :
+				severity = IStatus.ERROR;
+		}
+		message = (message != null) ? message : "null"; //$NON-NLS-1$
+		Status statusObj = new Status(severity, PLUGIN_ID, severity, message, exception);
+		Bundle bundle = Platform.getBundle(PLUGIN_ID);
+		if (bundle != null) 
+			Platform.getLog(bundle).log(statusObj);
+	}
+
+	/**
+	 * Prints message to log if category matches /debug/tracefilter option.
+	 * 
+	 * @param message
+	 *            text to print
+	 * @param category
+	 *            category of the message, to be compared with
+	 *            /debug/tracefilter
+	 */
+	protected static void _trace(String category, String message, Throwable exception) {
+		if (isTracing(category)) {
+			message = (message != null) ? message : "null"; //$NON-NLS-1$
+			Status statusObj = new Status(IStatus.OK, PLUGIN_ID, IStatus.OK, message, exception);
+			Bundle bundle = Platform.getBundle(PLUGIN_ID);
+			if (bundle != null) 
+				Platform.getLog(bundle).log(statusObj);
+		}
+	}
+
+	/**
+	 * @return true if the platform is debugging
+	 */
+	public static boolean isDebugging() {
+		return Platform.inDebugMode();
+	}
+
+	/**
+	 * Determines if currently tracing a category
+	 * 
+	 * @param category
+	 * @return true if tracing category, false otherwise
+	 */
+	public static boolean isTracing(String category) {
+		if (!isDebugging())
+			return false;
+
+		String traceFilter = Platform.getDebugOption(PLUGIN_ID + TRACEFILTER_LOCATION);
+		if (traceFilter != null) {
+			StringTokenizer tokenizer = new StringTokenizer(traceFilter, ","); //$NON-NLS-1$
+			while (tokenizer.hasMoreTokens()) {
+				String cat = tokenizer.nextToken().trim();
+				if (category.equals(cat)) {
+					return true;
+				}
+			}
+		}
+		return false;
+	}
+
+	public static void log(int level, String message) {
+		_log(level, message, null);
+	}
+
+	public static void log(int level, String message, Throwable exception) {
+		_log(level, message, exception);
+	}
+
+	public static void logException(String message, Throwable exception) {
+		_log(ERROR, message, exception);
+	}
+
+	public static void logException(Throwable exception) {
+		_log(ERROR, exception.getMessage(), exception);
+	}
+
+	public static void trace(String category, String message) {
+		_trace(category, message, null);
+	}
+
+	public static void traceException(String category, String message, Throwable exception) {
+		_trace(category, message, exception);
+	}
+
+	public static void traceException(String category, Throwable exception) {
+		_trace(category, exception.getMessage(), exception);
+	}
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/StructuredTextViewerConfigurationWSDL.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/StructuredTextViewerConfigurationWSDL.java
similarity index 88%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/StructuredTextViewerConfigurationWSDL.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/StructuredTextViewerConfigurationWSDL.java
index 8433eeb..bf9327f 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/StructuredTextViewerConfigurationWSDL.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/StructuredTextViewerConfigurationWSDL.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 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
+ * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Common 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
  *******************************************************************************/
@@ -16,7 +16,6 @@
 import org.eclipse.jface.text.hyperlink.IHyperlinkDetector;
 import org.eclipse.jface.text.source.ISourceViewer;
 import org.eclipse.ui.texteditor.AbstractDecoratedTextEditorPreferenceConstants;
-import org.eclipse.wst.wsdl.ui.internal.text.WSDLHyperlinkDetector;
 import org.eclipse.wst.xml.ui.StructuredTextViewerConfigurationXML;
 
 public class StructuredTextViewerConfigurationWSDL extends StructuredTextViewerConfigurationXML {
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/WSDLEditor.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/WSDLEditor.java
new file mode 100644
index 0000000..91d66e5
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/WSDLEditor.java
@@ -0,0 +1,774 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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 java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jface.viewers.DoubleClickEvent;
+import org.eclipse.jface.viewers.IDoubleClickListener;
+import org.eclipse.jface.viewers.IPostSelectionProvider;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.SashForm;
+import org.eclipse.swt.events.PaintEvent;
+import org.eclipse.swt.events.PaintListener;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.INavigationLocation;
+import org.eclipse.ui.INavigationLocationProvider;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.texteditor.ITextEditor;
+import org.eclipse.ui.texteditor.TextSelectionNavigationLocation;
+import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
+import org.eclipse.ui.views.properties.IPropertySheetPage;
+import org.eclipse.wst.common.ui.properties.internal.provisional.ITabbedPropertySheetPageContributor;
+import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
+import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
+import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
+import org.eclipse.wst.sse.ui.StructuredTextEditor;
+import org.eclipse.wst.sse.ui.internal.contentoutline.ConfigurableContentOutlinePage;
+import org.eclipse.wst.wsdl.Binding;
+import org.eclipse.wst.wsdl.Definition;
+import org.eclipse.wst.wsdl.WSDLElement;
+import org.eclipse.wst.wsdl.XSDSchemaExtensibilityElement;
+import org.eclipse.wst.wsdl.internal.generator.BindingGenerator;
+import org.eclipse.wst.wsdl.ui.internal.actions.WSDLMenuActionContributor;
+import org.eclipse.wst.wsdl.ui.internal.dialogs.GenerateBindingOnSaveDialog;
+import org.eclipse.wst.wsdl.ui.internal.extension.WSDLEditorExtension;
+import org.eclipse.wst.wsdl.ui.internal.graph.WSDLGraphViewer;
+import org.eclipse.wst.wsdl.ui.internal.graph.editparts.WSDLEditPartFactory;
+import org.eclipse.wst.wsdl.ui.internal.model.WSDLGroupObject;
+import org.eclipse.wst.wsdl.ui.internal.model.WSDLModelAdapterFactory;
+import org.eclipse.wst.wsdl.ui.internal.outline.ModelAdapterContentProvider;
+import org.eclipse.wst.wsdl.ui.internal.outline.ModelAdapterLabelProvider;
+import org.eclipse.wst.wsdl.ui.internal.properties.section.WSDLTabbedPropertySheetPage;
+import org.eclipse.wst.wsdl.ui.internal.text.WSDLModelAdapter;
+import org.eclipse.wst.wsdl.ui.internal.util.ComponentReferenceUtil;
+import org.eclipse.wst.wsdl.ui.internal.util.WSDLEditorUtil;
+import org.eclipse.wst.wsdl.ui.internal.util.WSDLNodeAssociationProvider;
+import org.eclipse.wst.wsdl.ui.internal.util.WSDLResourceUtil;
+import org.eclipse.wst.wsdl.ui.internal.viewers.WSDLDetailsViewer;
+import org.eclipse.wst.wsdl.ui.internal.viewers.WSDLDetailsViewerProvider;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
+import org.w3c.dom.Attr;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+// public class WSDLEditor extends StructuredTextMultiPageEditorPart
+// implements
+// INavigationLocationProvider
+public class WSDLEditor extends WSDLMultiPageEditorPart implements INavigationLocationProvider, ITabbedPropertySheetPageContributor {
+	protected StructuredTextEditor textEditor;
+	protected WSDLGraphViewer graphViewer;
+	protected WSDLDetailsViewer detailsViewer;
+	protected WSDLSelectionManager selectionManager;
+	protected SashForm sashForm;
+	int graphPageIndex;
+	protected WSDLModelAdapter modelAdapter;
+	protected WSDLEditorResourceChangeHandler resourceChangeHandler;
+	// Used for Cut, Copy, Paste actions. This acts as a copy, cut, paste
+	// clipboard
+	protected WSDLElement clipboardElement;
+	private IPropertySheetPage fPropertySheetPage;
+	private IContentOutlinePage fContentOutlinePage;
+	private SourceEditorSelectionListener fSourceEditorSelectionListener;
+	private WSDLSelectionManagerSelectionListener fWSDLSelectionListener;
+
+	/**
+	 * Listener on SSE's outline page's selections that converts DOM
+	 * selections into wsdl selections and notifies WSDL selection manager
+	 */
+	class OutlineTreeSelectionChangeListener implements ISelectionChangedListener, IDoubleClickListener {
+		private ISelectionProvider fProvider = null;
+
+		public OutlineTreeSelectionChangeListener() {
+			super();
+		}
+		
+		void connect(IContentOutlinePage provider) {
+			fProvider = provider;
+			fProvider.addSelectionChangedListener(OutlineTreeSelectionChangeListener.this);
+			if (provider instanceof ConfigurableContentOutlinePage) {
+				((ConfigurableContentOutlinePage) provider).addDoubleClickListener(OutlineTreeSelectionChangeListener.this);
+			}
+		}
+		
+		void disconnect() {
+			fProvider.removeSelectionChangedListener(OutlineTreeSelectionChangeListener.this);
+			if (fProvider instanceof ConfigurableContentOutlinePage) {
+				((ConfigurableContentOutlinePage) fProvider).removeDoubleClickListener(OutlineTreeSelectionChangeListener.this);
+			}
+			fProvider = null;
+		}
+
+		private ISelection getWSDLSelection(ISelection selection) {
+			ISelection sel = null;
+			if (selection instanceof IStructuredSelection) {
+				IStructuredSelection structuredSelection = (IStructuredSelection) selection;
+				Object o = structuredSelection.getFirstElement();
+
+				// TODO ...
+				// we need to implement a selectionManagerMapping
+				// extension point
+				// so that extensions can specify how they'd like to map
+				// view objects
+				// to selection objects
+				//                                        
+				// if (o instanceof Element)
+				// {
+				// try
+				// {
+				// Object modelObject =
+				// WSDLEditorUtil.getInstance().findModelObjectForElement(wsdlEditor.getDefinition(),
+				// (Element)o);
+				// if (modelObject != null && !(modelObject instanceof
+				// UnknownExtensibilityElement))
+				// {
+				// o = modelObject;
+				// }
+				// }
+				// catch (Exception e)
+				// {
+				// }
+				// }
+				if (o != null)
+					sel = new StructuredSelection(o);
+			}
+			return sel;
+		}
+
+		public void doubleClick(DoubleClickEvent event) {
+			/*
+			 * Selection in outline tree changed so set outline tree's
+			 * selection into editor's selection and say it came from outline
+			 * tree
+			 */
+			if (getSelectionManager() != null && getSelectionManager().enableNotify) {
+				ISelection selection = getWSDLSelection(event.getSelection());
+				if (selection != null) {
+					getSelectionManager().setSelection(selection, fProvider);
+				}
+
+				if(getTextEditor() != null && selection instanceof IStructuredSelection) {
+					int start = -1;
+					int length = 0;
+					Object o = ((IStructuredSelection)selection).getFirstElement();
+					if (o != null)
+						o = WSDLEditorUtil.getInstance().getNodeForObject(o);
+					if (o instanceof IndexedRegion) {
+						start = ((IndexedRegion) o).getStartOffset();
+						length = ((IndexedRegion) o).getEndOffset() - start;
+					}
+					if(start > -1) {
+						getTextEditor().selectAndReveal(start, length);
+					}
+				}
+			}
+		}
+
+		public void selectionChanged(SelectionChangedEvent event) {
+			/*
+			 * Selection in outline tree changed so set outline tree's
+			 * selection into editor's selection and say it came from outline
+			 * tree
+			 */
+			if (getSelectionManager() != null && getSelectionManager().enableNotify) {
+				ISelection selection = getWSDLSelection(event.getSelection());
+				if (selection != null) {
+					getSelectionManager().setSelection(selection, fProvider);
+				}
+			}
+		}
+	}
+	private OutlineTreeSelectionChangeListener fOutlineTreeListener = null;
+
+	/**
+	 * Listener on SSE's source editor's selections that converts DOM
+	 * selections into wsdl selections and notifies WSDL selection manager
+	 */
+	private class SourceEditorSelectionListener implements ISelectionChangedListener {
+		/**
+		 * Determines WSDL node based on object (DOM node)
+		 * 
+		 * @param object
+		 * @return
+		 */
+		private Object getWSDLNode(Object object) {
+			// get the element node
+			Element element = null;
+			if (object instanceof Node) {
+				Node node = (Node) object;
+				if (node != null) {
+					if (node.getNodeType() == Node.ELEMENT_NODE) {
+						element = (Element) node;
+					}
+					else if (node.getNodeType() == Node.ATTRIBUTE_NODE) {
+						element = ((Attr) node).getOwnerElement();
+					}
+				}
+			}
+			Object o = element;
+			if (element != null) {
+				Object modelObject = WSDLEditorUtil.getInstance().findModelObjectForElement(getDefinition(), element);
+				if (modelObject != null) {
+					o = modelObject;
+				}
+			}
+			return o;
+		}
+
+		public void selectionChanged(SelectionChangedEvent event) {
+			ISelection selection = event.getSelection();
+			if (selection instanceof IStructuredSelection) {
+				List wsdlSelections = new ArrayList();
+				for (Iterator i = ((IStructuredSelection) selection).iterator(); i.hasNext();) {
+					Object domNode = i.next();
+					Object wsdlNode = getWSDLNode(domNode);
+					if (wsdlNode != null) {
+						wsdlSelections.add(wsdlNode);
+					}
+				}
+
+				if (!wsdlSelections.isEmpty()) {
+					StructuredSelection wsdlSelection = new StructuredSelection(wsdlSelections);
+					getSelectionManager().setSelection(wsdlSelection, getTextEditor().getSelectionProvider());
+				}
+			}
+		}
+	}
+
+	/**
+	 * Listener on WSDL's selection manager's selections that converts WSDL
+	 * selections into DOM selections and notifies SSE's selection provider
+	 */
+	private class WSDLSelectionManagerSelectionListener implements ISelectionChangedListener {
+		/**
+		 * Determines DOM node based on object (wsdl node)
+		 * 
+		 * @param object
+		 * @return
+		 */
+		private Object getObjectForOtherModel(Object object) {
+			Node node = null;
+
+			if (object instanceof Node) {
+				node = (Node) object;
+			}
+			else {
+				node = WSDLEditorUtil.getInstance().getNodeForObject(object);
+			}
+
+			// the text editor can only accept sed nodes!
+			//
+			if (!(node instanceof IDOMNode)) {
+				node = null;
+			}
+			return node;
+		}
+
+		public void selectionChanged(SelectionChangedEvent event) {
+			// do not fire selection in source editor if selection event came
+			// from source editor
+			if (event.getSource() != getTextEditor().getSelectionProvider()) {
+				ISelection selection = event.getSelection();
+				if (selection instanceof IStructuredSelection) {
+					List otherModelObjectList = new ArrayList();
+					for (Iterator i = ((IStructuredSelection) selection).iterator(); i.hasNext();) {
+						Object modelObject = i.next();
+						Object otherModelObject = getObjectForOtherModel(modelObject);
+						if (otherModelObject != null) {
+							otherModelObjectList.add(otherModelObject);
+						}
+					}
+					if (!otherModelObjectList.isEmpty()) {
+						StructuredSelection nodeSelection = new StructuredSelection(otherModelObjectList);
+						getTextEditor().getSelectionProvider().setSelection(nodeSelection);
+					}
+				}
+			}
+		}
+	}
+
+	public WSDLEditor() {
+		selectionManager = new WSDLSelectionManager();
+	}
+
+	public void init(IEditorSite site, IEditorInput input) throws PartInitException {
+		super.init(site, input);
+		try {
+			IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
+			IWorkbenchPage page = window.getActivePage();
+			if (page != null) {
+				page.showView("org.eclipse.ui.views.PropertySheet");
+			}
+		}
+		catch (PartInitException partInitException) {
+		}
+		catch (Exception exception) {
+		}
+	}
+
+	public Object getAdapter(Class key) {
+		Object result = null;
+		if (key == ISelectionProvider.class) {
+			result = selectionManager;
+		}
+		else if (IPropertySheetPage.class.equals(key)) {
+			if (fPropertySheetPage == null || fPropertySheetPage.getControl() == null || fPropertySheetPage.getControl().isDisposed()) {
+				fPropertySheetPage = new WSDLTabbedPropertySheetPage(this, this);
+				((WSDLTabbedPropertySheetPage) fPropertySheetPage).setSelectionManager(getSelectionManager());
+
+			}
+			return fPropertySheetPage;
+		}
+		else if (IContentOutlinePage.class.equals(key)) {
+			if (fContentOutlinePage == null || fContentOutlinePage.getControl() == null || fContentOutlinePage.getControl().isDisposed()) {
+				fContentOutlinePage = (IContentOutlinePage) super.getAdapter(key);
+				if (fContentOutlinePage != null) {
+					fOutlineTreeListener = new OutlineTreeSelectionChangeListener();
+					fOutlineTreeListener.connect(fContentOutlinePage);
+				}
+			}
+			result = fContentOutlinePage;
+		}
+		else {
+			result = super.getAdapter(key);
+		}
+		return result;
+	}
+
+	public void dispose() {
+		// call the extensibleOutlineProvider's inputChanged method a null
+		// viewer
+		// so that the outline's contentprovider/adapters don't attempt to
+		// update
+		// the viewer
+		// after the editor closes
+		// extensibleOutlineProvider.inputChanged(null, null, null);
+		if (resourceChangeHandler != null) {
+			resourceChangeHandler.dispose();
+		}
+
+		ISelectionProvider provider = getTextEditor().getSelectionProvider();
+		if (provider instanceof IPostSelectionProvider) {
+			((IPostSelectionProvider) provider).removePostSelectionChangedListener(fSourceEditorSelectionListener);
+		}
+		else {
+			provider.removeSelectionChangedListener(fSourceEditorSelectionListener);
+		}
+		if (fOutlineTreeListener != null) {
+			fOutlineTreeListener.disconnect();
+			fOutlineTreeListener = null;
+		}
+		getSelectionManager().removeSelectionChangedListener(fWSDLSelectionListener);
+		super.dispose();
+	}
+
+	public WSDLSelectionManager getSelectionManager() {
+		return selectionManager;
+	}
+
+	public WSDLGraphViewer getGraphViewer() {
+		return graphViewer;
+	}
+
+	public IStructuredModel getStructuredModel() {
+		return textEditor.getModel();
+		// IDocument doc =
+		// textEditor.getDocumentProvider().getDocument(getEditorInput());
+		// IModelManager modelManager = ModelManagerImpl.getInstance();
+		// return modelManager.getModelForRead((IStructuredDocument) doc);
+	}
+
+	public Document getXMLDocument() {
+		return ((IDOMModel) getStructuredModel()).getDocument();
+	}
+
+	public Definition getDefinition() {
+		return modelAdapter != null ? modelAdapter.getDefinition() : null;
+	}
+
+	/**
+	 * Creates the pages of this multi-page editor.
+	 * <p>
+	 * Subclasses of <code>MultiPageEditor</code> must implement this
+	 * method.
+	 * </p>
+	 */
+	protected void createPages() {
+		try {
+			if (resourceChangeHandler == null) {
+				resourceChangeHandler = new WSDLEditorResourceChangeHandler(this);
+				resourceChangeHandler.attach();
+			}
+			createSourcePage();
+			addSourcePage();
+			// create the wsdl model
+			//
+			lookupOrCreateWSDLModel();
+			createAndAddGraphPage();
+
+			// get the type of page and set the active page to show
+			int pageIndexToShow = getDefaultPageIndex();
+			setActivePage(pageIndexToShow);
+			Definition definition = getDefinition();
+            if (definition != null) {
+                getSelectionManager().setSelection(new StructuredSelection(definition));
+            } else {
+              getSelectionManager().setSelection(new StructuredSelection());
+            }
+
+			// added selection listeners after setting selection to avoid
+			// navigation exception
+			ISelectionProvider provider = getTextEditor().getSelectionProvider();
+			fSourceEditorSelectionListener = new SourceEditorSelectionListener();
+			if (provider instanceof IPostSelectionProvider) {
+				((IPostSelectionProvider) provider).addPostSelectionChangedListener(fSourceEditorSelectionListener);
+			}
+			else {
+				provider.addSelectionChangedListener(fSourceEditorSelectionListener);
+			}
+			fWSDLSelectionListener = new WSDLSelectionManagerSelectionListener();
+			getSelectionManager().addSelectionChangedListener(fWSDLSelectionListener);
+		}
+		catch (PartInitException e) {
+			// log for now, unless we find reason not to
+			Logger.log(Logger.INFO, e.getMessage());
+		}
+		// TODO: add a catch block here for any exception the design page
+		// throws and
+		// convert it into a more informative message.
+	}
+
+	protected void lookupOrCreateWSDLModel() {
+		try {
+			Document document = ((IDOMModel) getModel()).getDocument();
+			if (document instanceof INodeNotifier) {
+				INodeNotifier notifier = (INodeNotifier) document;
+				modelAdapter = (WSDLModelAdapter) notifier.getAdapterFor(WSDLModelAdapter.class);
+				if (modelAdapter == null) {
+					modelAdapter = new WSDLModelAdapter();
+					notifier.addAdapter(modelAdapter);
+                    modelAdapter.createDefinition(document.getDocumentElement(), document);
+				}
+			}
+		}
+		catch (Exception e) {
+		}
+	}
+
+	protected int getDefaultPageIndex() {
+		if (WSDLEditorPlugin.getInstance().getDefaultPage().equals(WSDLEditorPlugin.GRAPH_PAGE)) {
+			if (graphPageIndex != -1) {
+				return graphPageIndex;
+			}
+		}
+		return sourcePageIndex;
+	}
+
+	/**
+	 * @see org.eclipse.wst.wsdl.ui.WSDLMultiPageEditorPart#createTextEditor()
+	 */
+	protected StructuredTextEditor createTextEditor() {
+		textEditor = new StructuredTextEditor();
+		return textEditor;
+	}
+
+	/**
+	 * create our own
+	 */
+	protected void createSourcePage() throws PartInitException {
+		super.createSourcePage();
+		textEditor = getTextEditor();
+	}
+
+	int sourcePageIndex = -1;
+
+	/**
+	 * Adds the source page of the multi-page editor.
+	 */
+	protected void addSourcePage() throws PartInitException {
+		sourcePageIndex = addPage(textEditor, getEditorInput());
+		setPageText(sourcePageIndex, WSDLEditorPlugin.getWSDLString("_UI_TAB_SOURCE"));
+		// the update's critical, to get viewer selection manager and
+		// highlighting to
+		// work
+		textEditor.update();
+	}
+
+	int[] weights;
+
+	public void setDesignWeights(int[] weights, boolean updateSourceDesign) {
+		this.weights = weights;
+		if (updateSourceDesign) {
+			sashForm.setWeights(weights);
+		}
+	}
+
+	protected void pageChange(int arg) {
+		super.pageChange(arg);
+		if (getPageText(arg).equals(WSDLEditorPlugin.getWSDLString("_UI_TAB_SOURCE"))) // TRANSLATE
+		// !
+		{
+			// update the input
+		}
+		else if (getPageText(arg).equals(WSDLEditorPlugin.getWSDLString("_UI_TAB_GRAPH"))) // TRANSLATE
+		// !
+		{
+			// update the input
+		}
+	}
+
+	static private Color dividerColor;
+
+	/**
+	 * Creates the graph page and adds it to the multi-page editor.
+	 */
+	protected void createAndAddGraphPage() throws PartInitException {
+		// create the graph page
+		sashForm = new SashForm(getContainer(), SWT.BORDER);
+		sashForm.setLayoutData(new GridData(GridData.FILL_BOTH));
+		sashForm.setOrientation(SWT.VERTICAL);
+		graphPageIndex = addPage(sashForm);
+		setPageText(graphPageIndex, WSDLEditorPlugin.getWSDLString("_UI_TAB_GRAPH"));
+		// create the graph viewer
+		graphViewer = new WSDLGraphViewer(this);
+		graphViewer.createControl(sashForm);
+		// detailsViewer = new WSDLDetailsViewer(this);
+		// detailsViewer.createControl(sashForm);
+		//
+		// sashForm.setWeights(weights);
+		if (dividerColor == null) {
+			dividerColor = new Color(getContainer().getDisplay(), 143, 141, 138);
+		}
+		getContainer().addPaintListener(new PaintListener() {
+			/**
+			 * @see org.eclipse.swt.events.PaintListener#paintControl(PaintEvent)
+			 */
+			public void paintControl(PaintEvent e) {
+				Object source = e.getSource();
+				if (source instanceof Composite) {
+					Composite comp = (Composite) source;
+					Rectangle boundary = comp.getClientArea();
+					e.gc.setForeground(dividerColor);
+					e.gc.drawLine(boundary.x, boundary.y, boundary.x + boundary.width, boundary.y);
+					setDesignWeights(sashForm.getWeights(), true);
+				}
+			}
+		});
+	}
+
+	public void setFocus() {
+		super.setFocus();
+		int activePage = getActivePage();
+		if (activePage == sourcePageIndex) {
+			WSDLEditorPlugin.getInstance().setDefaultPage(WSDLEditorPlugin.SOURCE_PAGE);
+		}
+		else {
+			WSDLEditorPlugin.getInstance().setDefaultPage(WSDLEditorPlugin.GRAPH_PAGE);
+		}
+	}
+
+	//
+	//
+	public static class BuiltInWSDLEditorExtension implements WSDLEditorExtension {
+		public boolean isExtensionTypeSupported(int type) {
+			return type == OUTLINE_TREE_CONTENT_PROVIDER || type == OUTLINE_LABEL_PROVIDER || type == EDIT_PART_FACTORY || type == DETAILS_VIEWER_PROVIDER || type == MENU_ACTION_CONTRIBUTOR || type == NODE_RECONCILER || type == NODE_ASSOCIATION_PROVIDER;
+		}
+
+		public boolean isApplicable(Object object) {
+			return (object instanceof WSDLElement && !(object instanceof XSDSchemaExtensibilityElement)) || (object instanceof WSDLGroupObject);
+		}
+
+		public Object createExtensionObject(int type, WSDLEditor wsdlEditor) {
+			Object result = null;
+			switch (type) {
+				case OUTLINE_TREE_CONTENT_PROVIDER : {
+					result = new ModelAdapterContentProvider(WSDLModelAdapterFactory.getWSDLModelAdapterFactory());
+					break;
+				}
+				case OUTLINE_LABEL_PROVIDER : {
+					result = new ModelAdapterLabelProvider(WSDLModelAdapterFactory.getWSDLModelAdapterFactory());
+					break;
+				}
+				case DETAILS_VIEWER_PROVIDER : {
+					result = new WSDLDetailsViewerProvider();
+					break;
+				}
+				case MENU_ACTION_CONTRIBUTOR : {
+					result = new WSDLMenuActionContributor(wsdlEditor);
+					break;
+				}
+				case NODE_ASSOCIATION_PROVIDER : {
+					result = new WSDLNodeAssociationProvider();
+					break;
+				}
+				case EDIT_PART_FACTORY : {
+					result = new WSDLEditPartFactory();
+					break;
+				}
+			}
+			return result;
+		}
+	}
+
+	public void reloadDependencies() {
+		try {
+			getGraphViewer().getComponentViewer().setPreserveExpansionEnabled(true);
+			Definition definition = getDefinition();
+			if (definition != null) {
+				WSDLResourceUtil.reloadDirectives(definition);
+				ComponentReferenceUtil.updateBindingReferences(definition);
+				ComponentReferenceUtil.updatePortTypeReferences(definition);
+				ComponentReferenceUtil.updateMessageReferences(definition);
+				ComponentReferenceUtil.updateSchemaReferences(definition);
+				// the line below simply causes a notification in order to
+				// update our
+				// views
+				//
+				definition.setDocumentationElement(definition.getDocumentationElement());
+			}
+		}
+		finally {
+			getGraphViewer().getComponentViewer().setPreserveExpansionEnabled(false);
+		}
+	}
+
+	public void openOnSelection(String specification) {
+		EObject eObject = getDefinition().eResource().getEObject(specification);
+		if (eObject != null) {
+			getSelectionManager().setSelection(new StructuredSelection(eObject));
+		}
+	}
+
+	public INavigationLocation createEmptyNavigationLocation() {
+		return new InternalTextSelectionNavigationLocation(textEditor, false);
+	}
+
+	public INavigationLocation createNavigationLocation() {
+		return new InternalTextSelectionNavigationLocation(textEditor, true);
+	}
+
+	static class InternalTextSelectionNavigationLocation extends TextSelectionNavigationLocation {
+		public InternalTextSelectionNavigationLocation(ITextEditor part, boolean initialize) {
+			super(part, initialize);
+		}
+
+		protected IEditorPart getEditorPart() {
+			IEditorPart part = super.getEditorPart();
+			if (part instanceof WSDLEditor) {
+				part = ((WSDLEditor) part).getTextEditor();
+			}
+			return part;
+		}
+
+		public String getText() {
+			// ISSUE: how to get title?
+			// IEditorPart part = getEditorPart();
+			// if (part instanceof WSDLTextEditor) {
+			// return ((WSDLTextEditor) part).getWSDLEditor().getTitle();
+			// }
+			// else {
+			// return super.getText();
+			// }
+			return super.getText();
+		}
+	}
+
+	// Returns the element currently on the copy, cut, paste clipboard
+	public WSDLElement getClipboardContents() {
+		return clipboardElement;
+	}
+
+	public void setClipboardContents(WSDLElement element) {
+		clipboardElement = element;
+	}
+
+	/**
+	 * @see org.eclipse.wst.common.ui.properties.internal.provisional.ITabbedPropertySheetPageContributor#getContributorId()
+	 */
+	public String getContributorId() {
+		return "org.eclipse.wst.wsdl.ui.internal.WSDLEditor";
+		// return getSite().getId();
+	}
+
+	/*
+	 * We override this method so we can hook in our automatic Binding
+	 * generation. We will generate the Binding after a save is executed (If
+	 * this preference has been set to true).
+	 */
+	public void doSave(IProgressMonitor monitor) {
+		try {
+			// Display prompt message
+			boolean continueRegeneration = false;
+			if (WSDLEditorPlugin.getInstance().getPluginPreferences().getBoolean("Prompt Regenerate Binding on save")) {
+				Shell shell = Display.getCurrent().getActiveShell();
+				GenerateBindingOnSaveDialog dialog = new GenerateBindingOnSaveDialog(shell);
+
+				int rValue = dialog.open();
+				if (rValue == SWT.YES) {
+					continueRegeneration = true;
+				}
+				else if (rValue == SWT.NO) {
+					continueRegeneration = false;
+				}
+				else if (rValue == SWT.CANCEL) {
+					return;
+				}
+				else {
+					System.out.println("\nNothing: " + rValue);
+				}
+			}
+			else {
+				continueRegeneration = WSDLEditorPlugin.getInstance().getPluginPreferences().getBoolean(WSDLEditorPlugin.getWSDLString("_UI_PREF_PAGE_AUTO_REGENERATE_BINDING"));
+			}
+
+			if (continueRegeneration) {
+				Iterator bindingsIt = getDefinition().getEBindings().iterator();
+				while (bindingsIt.hasNext()) {
+					Binding binding = (Binding) bindingsIt.next();
+					BindingGenerator generator = new BindingGenerator(binding.getEnclosingDefinition(), binding);
+					generator.setOverwrite(false);
+					generator.generateBinding();
+				}
+
+				// Little hack to 'redraw' connecting lines in the graph
+				// viewer
+				getDefinition().setQName(getDefinition().getQName());
+			}
+		}
+		catch (Exception e) {
+			// e.printStackTrace();
+		}
+		super.doSave(monitor);
+	}
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/WSDLEditorPlugin.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/WSDLEditorPlugin.java
new file mode 100644
index 0000000..f9e5dfb
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/WSDLEditorPlugin.java
@@ -0,0 +1,588 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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 java.io.IOException;
+import java.net.URL;
+import java.text.MessageFormat;
+import java.util.HashMap;
+import java.util.Hashtable;
+
+import org.eclipse.core.resources.IWorkspace;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtensionPoint;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IPluginDescriptor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.resource.ImageRegistry;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.eclipse.wst.wsdl.ui.internal.extension.ExtensibilityItemTreeProviderRegistry;
+import org.eclipse.wst.wsdl.ui.internal.extension.NSKeyedExtensionRegistry;
+import org.eclipse.wst.wsdl.ui.internal.extension.WSDLEditorExtensionRegistry;
+
+public class WSDLEditorPlugin extends AbstractUIPlugin //, IPluginHelper
+{
+  public static final String DEFAULT_PAGE = "org.eclipse.wst.wsdl.ui.internal.defaultpage";
+  public static final String GRAPH_PAGE = "org.eclipse.wst.wsdl.ui.internal.graphpage";
+  public static final String SOURCE_PAGE = "org.eclipse.wst.wsdl.ui.internal.sourcepage";
+
+  public final static String PLUGIN_ID = "org.eclipse.wst.wsdl.ui";
+  public final static String XSD_EDITOR_ID = "org.eclipse.wst.xsd.ui.XSDEditor"; 
+  
+  public final static String DEFAULT_TARGET_NAMESPACE = "http://www.example.org";
+  
+  public static int DEPENDECIES_CHANGED_POLICY_PROMPT = 0;
+  public static int DEPENDECIES_CHANGED_POLICY_IGNORE = 1;
+  public static int DEPENDECIES_CHANGED_POLICY_RELOAD = 2;
+
+  protected static WSDLEditorPlugin instance;
+  //  protected XMLSchemaPackage xmlschemaPackage;
+//  private static MsgLogger myMsgLogger;
+
+  private WSDLEditorExtensionRegistry wsdlEditorExtensionRegistry;
+  private NSKeyedExtensionRegistry extensiblityElementFilterRegistry;
+  private ExtensibilityItemTreeProviderRegistry treeProviderRegistry;
+  private NSKeyedExtensionRegistry propertyDescriptorProviderRegistry;
+  private NSKeyedExtensionRegistry propertySourceProviderRegistry;
+  private NSKeyedExtensionRegistry propertySectionDescriptorProviderRegistry;
+  private NSKeyedExtensionRegistry detailsViewerProviderRegistry;  
+  //private static Hashtable grayedImageMap = new Hashtable();
+  private int dependenciesChangedPolicy = DEPENDECIES_CHANGED_POLICY_RELOAD;
+
+  
+  public static void logMessage(String message)
+  {
+  }
+
+  /**
+   * Resources helper.
+   */
+
+  public WSDLEditorPlugin(IPluginDescriptor descriptor)
+  {
+    super(descriptor);
+    instance = this;
+
+    // TODO... remove this code when we add 'dependenciesChangedPolicy'
+    // to an editor preferences page
+    try
+    {
+      String string = getWSDLString("_DEBUG_UPDATE_POLICY");
+      int policy = Integer.parseInt(string);
+      if (policy >= 0 && policy <= DEPENDECIES_CHANGED_POLICY_RELOAD)
+      {
+        dependenciesChangedPolicy = policy;
+      }
+    }
+    catch (Exception e)
+    {
+    }
+  }
+
+  public WSDLEditorExtensionRegistry getWSDLEditorExtensionRegistry()
+  {
+    if (wsdlEditorExtensionRegistry == null)
+    {
+      wsdlEditorExtensionRegistry = new WSDLEditorExtensionRegistry();
+      new InternalEditorExtensionRegistryReader(wsdlEditorExtensionRegistry).readRegistry();
+    }
+    return wsdlEditorExtensionRegistry;
+  }
+
+  public NSKeyedExtensionRegistry getDetailsViewerProviderRegistry()
+  {
+    if (detailsViewerProviderRegistry == null)
+    {
+	  detailsViewerProviderRegistry = new NSKeyedExtensionRegistry();
+      new DetailsViewerProviderRegistryReader(detailsViewerProviderRegistry).readRegistry();
+    }
+    return detailsViewerProviderRegistry;
+  }
+
+  public NSKeyedExtensionRegistry getExtensiblityElementFilterRegistry()
+  {
+    if (extensiblityElementFilterRegistry == null)
+    {
+      extensiblityElementFilterRegistry = new NSKeyedExtensionRegistry();
+      new ElementContentFilterExtensionRegistryReader(extensiblityElementFilterRegistry).readRegistry();
+    }
+    return extensiblityElementFilterRegistry;
+  }
+
+  public ExtensibilityItemTreeProviderRegistry getExtensibilityItemTreeProviderRegistry()
+  {
+    if (treeProviderRegistry == null)
+    {
+      treeProviderRegistry = new ExtensibilityItemTreeProviderRegistry();
+      new ExtensibilityItemTreeProviderRegistryReader(treeProviderRegistry).readRegistry();
+    }
+    return treeProviderRegistry;
+  }
+
+  public NSKeyedExtensionRegistry getPropertyDescriptorProviderRegistry()
+  {
+    if (propertyDescriptorProviderRegistry == null)
+    {
+      propertyDescriptorProviderRegistry = new NSKeyedExtensionRegistry();
+      new PropertyDescriptorProviderRegistryReader(propertyDescriptorProviderRegistry).readRegistry();
+    }
+    return propertyDescriptorProviderRegistry;
+  }
+
+  public NSKeyedExtensionRegistry getPropertySourceProviderRegistry()
+  {
+    if (propertySourceProviderRegistry == null)
+    {
+      propertySourceProviderRegistry = new NSKeyedExtensionRegistry();
+      new PropertySourceProviderRegistryReader(propertySourceProviderRegistry).readRegistry();
+    }
+    return propertySourceProviderRegistry;
+  }
+
+  public NSKeyedExtensionRegistry getPropertySectionDescriptorProviderRegistry()
+  {
+    if (propertySectionDescriptorProviderRegistry == null)
+    {
+      propertySectionDescriptorProviderRegistry = new NSKeyedExtensionRegistry();
+      new PropertySectionDescriptorProviderRegistry(propertySectionDescriptorProviderRegistry).readRegistry();
+    }
+    return propertySectionDescriptorProviderRegistry;
+  }
+
+  /**
+   * Get the Install URL
+   */
+  public static URL getInstallURL()
+  {
+    return getInstance().getDescriptor().getInstallURL();
+  }
+
+  /**
+   * Get resource string
+   */
+  public static String getWSDLString(String key)
+  {	  
+    return Platform.getResourceBundle(Platform.getBundle(PLUGIN_ID)).getString(key);
+  }
+
+  /**
+   * Get resource string
+   */
+  public static String getWSDLString(String key, String arg0)
+  {
+    return MessageFormat.format(getWSDLString(key), new Object [] { arg0 });
+  }
+  
+  /**
+   * Get resource string
+   */
+  public static String getWSDLString(String key, String arg0, String arg1)
+  {
+    return MessageFormat.format(getWSDLString(key), new Object [] { arg0, arg1 });
+  }
+
+  /**
+   * Return the plugin physical directory location
+   */
+  public static IPath getPluginLocation()
+  {
+    try
+    {
+      IPath installPath = new Path(getInstallURL().toExternalForm()).removeTrailingSeparator();
+      String installStr = Platform.asLocalURL(new URL(installPath.toString())).getFile();
+      return new Path(installStr);
+    }
+    catch (IOException e)
+    {
+      //System.out.println("WSDLEditorPlugin.getPluginLocation() exception.." + e);
+    }
+    return null;
+  }
+
+  protected Hashtable imageDescriptorCache = new Hashtable();
+
+  protected ImageDescriptor internalGetImageDescriptor(String key)
+  {
+    ImageDescriptor imageDescriptor = (ImageDescriptor) imageDescriptorCache.get(key);
+    if (imageDescriptor == null)
+    {
+      imageDescriptor = ImageDescriptor.createFromFile(WSDLEditorPlugin.class, key);
+      if (imageDescriptor != null)
+      {
+        imageDescriptorCache.put(key, imageDescriptor);
+      }
+    }
+    return imageDescriptor;
+  }
+
+  public static ImageDescriptor getImageDescriptor(String key)
+  {
+    return getInstance().internalGetImageDescriptor(key);
+  }
+
+  public Image getImage(String iconName)
+  {
+    ImageRegistry imageRegistry = getImageRegistry();
+    
+    if (imageRegistry.get(iconName) != null)
+    {
+      return imageRegistry.get(iconName);
+    }
+    else
+    {
+      imageRegistry.put(iconName, ImageDescriptor.createFromFile(getClass(), iconName));
+      return imageRegistry.get(iconName);
+    }
+  }
+  
+  /*
+    public Image getImage(String key, boolean isGrayed)
+    { 
+      Image image = null;
+      if (!isGrayed)
+      {
+        image = super.getImage(key);
+      }                             
+      else
+      {
+        image = (Image)grayedImageMap.get(key);
+        if (image == null)
+        {
+          Image colorImage = super.getImage(key);
+          if (colorImage != null)
+          {
+            image = new Image(Display.getCurrent(), colorImage, SWT.IMAGE_GRAY);//SWT.IMAGE_DISABLE);
+            grayedImageMap.put(key, image);
+          }
+        }
+      }
+      return image;
+    }
+  */
+
+  /**
+   * Get the metadata directory for this plugin
+   */
+  public static String getMetaDataDirectory()
+  {
+    return getInstance().getStateLocation().toOSString();
+  }
+
+  /**
+   * Get the singleton instance.
+   */
+  public static WSDLEditorPlugin getInstance()
+  {
+    return instance;
+  }
+
+  public IWorkspace getWorkspace()
+  {
+    return ResourcesPlugin.getWorkspace();
+  }
+
+  public static Shell getShell()
+  {
+    return getInstance().getWorkbench().getActiveWorkbenchWindow().getShell();
+  }
+  
+  /* (non-Javadoc)
+   * @see org.eclipse.ui.plugin.AbstractUIPlugin#initializeDefaultPreferences(org.eclipse.jface.preference.IPreferenceStore)
+   */
+  protected void initializeDefaultPreferences(IPreferenceStore store)
+  {
+    store.setDefault(DEFAULT_PAGE, GRAPH_PAGE);
+    
+    // WSDLPreferencePage prefs
+    store.setDefault(WSDLEditorPlugin.getWSDLString("_UI_PREF_PAGE_DEFAULT_TARGET_NAMESPACE"), DEFAULT_TARGET_NAMESPACE);
+    store.setDefault(WSDLEditorPlugin.getWSDLString("_UI_PREF_PAGE_AUTO_REGENERATE_BINDING"), false);
+    store.setDefault("Prompt Regenerate Binding on save", false);	// TODO: Externalize
+    // Do we need this preference below?  Look at WSDLPreferencePage.java
+//    store.setDefault("Defualt Location:", "http://www.example.com");
+  }
+  
+  /**
+   * setDefaultPage
+   * Set the default page to open when the editor starts. Maintains the state
+   * when WSAD is shutdown and restarted.
+   * @param page
+   */
+  public void setDefaultPage(String page)
+  {
+    getPreferenceStore().setValue(DEFAULT_PAGE, page);
+  }
+
+  public String getDefaultPage()
+  {
+    return getPreferenceStore().getString(DEFAULT_PAGE);
+  }
+
+  public int getDependenciesChangedPolicy()
+  {
+    //return getPreferenceStore().getInt(DEPENDECIES_CHANGED_POLICY);
+    return dependenciesChangedPolicy;
+  }
+}
+
+class BaseRegistryReader
+{
+  protected static final String PLUGIN_ID = "org.eclipse.wst.wsdl.ui";
+
+  /**
+   * read from plugin registry and parse it.
+   */
+  public void readRegistry(String extensionPointId)
+  {
+	IExtensionRegistry extensionRegistry = Platform.getExtensionRegistry();
+	IExtensionPoint point = extensionRegistry.getExtensionPoint(PLUGIN_ID, extensionPointId);
+
+    if (point != null)
+    {
+      IConfigurationElement[] elements = point.getConfigurationElements();
+      for (int i = 0; i < elements.length; i++)
+      {
+        readElement(elements[i]);
+      }
+    }
+  }
+
+  protected void readElement(IConfigurationElement element)
+  {
+  }
+}
+
+/**
+ * This class reads the plugin manifests and registers each internal editor extension
+ */
+class InternalEditorExtensionRegistryReader extends BaseRegistryReader
+{
+  protected static final String EXTENSION_POINT_ID = "internalEditorExtensions";
+  protected static final String TAG_NAME = "internalEditorExtension";
+  protected static final String ATT_CLASS = "class";
+  protected WSDLEditorExtensionRegistry registry;
+
+  public InternalEditorExtensionRegistryReader(WSDLEditorExtensionRegistry registry)
+  {
+    this.registry = registry;
+  }
+
+  /**
+   * read from plugin registry and parse it.
+   */
+  public void readRegistry()
+  {
+    super.readRegistry(EXTENSION_POINT_ID);
+  }
+
+  /**
+   * readElement()
+   */
+  protected void readElement(IConfigurationElement element)
+  {
+    if (element.getName().equals(TAG_NAME))
+    {
+      String className = element.getAttribute(ATT_CLASS);
+      if (className != null)
+      {
+        try
+        {
+          ClassLoader pluginClsLoader = element.getDeclaringExtension().getDeclaringPluginDescriptor().getPlugin().getClass().getClassLoader();
+          registry.add(pluginClsLoader, className);
+        }
+        catch (Exception e)
+        {
+        }
+      }
+    }
+  }
+}
+
+/**
+ * 
+ */
+abstract class NSKeyedExtensionRegistryReader extends BaseRegistryReader
+{
+  protected static final String ATT_NAME_SPACE = "namespace";
+  protected String extensionPointId;
+  protected String tagName;
+  protected String[] attributeNames;
+  protected NSKeyedExtensionRegistry nsKeyedExtensionRegistry;
+
+  private NSKeyedExtensionRegistryReader(String extensionPointId, String tagName, NSKeyedExtensionRegistry nsKeyedExtensionRegistry)
+  {
+    this.extensionPointId = extensionPointId;
+    this.tagName = tagName;
+    this.nsKeyedExtensionRegistry = nsKeyedExtensionRegistry;
+  }
+
+  public NSKeyedExtensionRegistryReader(String extensionPointId, String tagName, String attributeName, NSKeyedExtensionRegistry nsKeyedExtensionRegistry)
+  {
+    this(extensionPointId, tagName, nsKeyedExtensionRegistry);
+    attributeNames = new String[1];
+    attributeNames[0] = attributeName;
+  }
+
+  public NSKeyedExtensionRegistryReader(String extensionPointId, String tagName, String[] attributeNames, NSKeyedExtensionRegistry nsKeyedExtensionRegistry)
+  {
+    this(extensionPointId, tagName, nsKeyedExtensionRegistry);
+    this.attributeNames = attributeNames;
+  }
+  /**
+   * read from plugin registry and parse it.
+   */
+  public void readRegistry()
+  {
+    super.readRegistry(extensionPointId);
+  }
+
+  /**
+   * readElement()
+   */
+  protected void readElement(IConfigurationElement element)
+  {
+    if (element.getName().equals(tagName))
+    {
+      String namespace = element.getAttribute(ATT_NAME_SPACE);
+      if (namespace != null)
+      {
+        ClassLoader pluginClasssLoader = element.getDeclaringExtension().getDeclaringPluginDescriptor().getPluginClassLoader();
+        if (attributeNames.length == 1)
+        {
+          String className = element.getAttribute(attributeNames[0]);
+          if (className != null)
+          {
+            nsKeyedExtensionRegistry.put(namespace, className, pluginClasssLoader);
+          }
+        }
+        else
+        {
+          HashMap map = new HashMap();
+          for (int i = 0; i < attributeNames.length; i++)
+          {
+            String attributeName = attributeNames[i];
+            String className = element.getAttribute(attributeName);
+            if (className != null && className.length() > 0)
+            {
+              map.put(attributeName, className);
+            }
+          }
+          nsKeyedExtensionRegistry.put(namespace, map, pluginClasssLoader);
+        }
+      }
+    }
+  }
+}
+
+/**
+ * This class reads the plugin manifests and registers each extensibility item tree provider
+ */
+class ExtensibilityItemTreeProviderRegistryReader extends NSKeyedExtensionRegistryReader
+{
+  protected static final String EXTENSION_POINT_ID = "extensibilityItemTreeProviders";
+  protected static final String TAG_NAME = "extensibilityItemTreeProvider";
+  protected static final String[] ATT_NAMES = { "labelProviderClass", "contentProviderClass" };
+
+  public ExtensibilityItemTreeProviderRegistryReader(NSKeyedExtensionRegistry nsKeyedExtensionRegistry)
+  {
+    super(EXTENSION_POINT_ID, TAG_NAME, ATT_NAMES, nsKeyedExtensionRegistry);
+  }
+}
+
+/**
+ * 
+ */
+class ElementContentFilterExtensionRegistryReader extends NSKeyedExtensionRegistryReader
+{
+  protected static final String EXTENSION_POINT_ID = "extensibilityElementFilter";
+  protected static final String TAG_NAME = "extensibilityElementFilter";
+
+  public ElementContentFilterExtensionRegistryReader(NSKeyedExtensionRegistry nsKeyedExtensionRegistry)
+  {
+    super(EXTENSION_POINT_ID, TAG_NAME, "class", nsKeyedExtensionRegistry);
+  }
+}
+
+/**
+ * 
+ */
+class PropertyDescriptorProviderRegistryReader extends NSKeyedExtensionRegistryReader
+{
+  protected static final String EXTENSION_POINT_ID = "propertyDescriptorProvider";
+  protected static final String TAG_NAME = "propertyDescriptorProvider";
+
+  public PropertyDescriptorProviderRegistryReader(NSKeyedExtensionRegistry nsKeyedExtensionRegistry)
+  {
+    super(EXTENSION_POINT_ID, TAG_NAME, "class", nsKeyedExtensionRegistry);
+  }
+
+  protected void readElement(IConfigurationElement element)
+  {
+    super.readElement(element);
+  }
+}
+
+class PropertySourceProviderRegistryReader extends NSKeyedExtensionRegistryReader
+{
+  protected static final String EXTENSION_POINT_ID = "propertySourceProvider";
+  protected static final String TAG_NAME = "propertySourceProvider";
+
+  public PropertySourceProviderRegistryReader(NSKeyedExtensionRegistry nsKeyedExtensionRegistry)
+  {
+    super(EXTENSION_POINT_ID, TAG_NAME, "class", nsKeyedExtensionRegistry);
+  }
+
+  protected void readElement(IConfigurationElement element)
+  {
+    super.readElement(element);
+  }
+}
+
+class PropertySectionDescriptorProviderRegistry extends NSKeyedExtensionRegistryReader
+{
+  protected static final String EXTENSION_POINT_ID = "propertySectionDescriptorProvider";
+  protected static final String TAG_NAME = "propertySectionDescriptorProvider";
+
+  public PropertySectionDescriptorProviderRegistry(NSKeyedExtensionRegistry nsKeyedExtensionRegistry)
+  {
+    super(EXTENSION_POINT_ID, TAG_NAME, "class", nsKeyedExtensionRegistry);
+  }
+
+  protected void readElement(IConfigurationElement element)
+  {
+    super.readElement(element);
+  }
+}
+
+/**
+ * 
+ */
+class DetailsViewerProviderRegistryReader extends NSKeyedExtensionRegistryReader
+{
+  protected static final String EXTENSION_POINT_ID = "detailsViewerProviders";
+  protected static final String TAG_NAME = "detailsViewerProvider";
+
+  public DetailsViewerProviderRegistryReader(NSKeyedExtensionRegistry nsKeyedExtensionRegistry)
+  {
+    super(EXTENSION_POINT_ID, TAG_NAME, "class", nsKeyedExtensionRegistry);
+  }
+
+  protected void readElement(IConfigurationElement element)
+  {
+    super.readElement(element);
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/WSDLEditorResourceChangeHandler.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/WSDLEditorResourceChangeHandler.java
similarity index 94%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/WSDLEditorResourceChangeHandler.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/WSDLEditorResourceChangeHandler.java
index ad0d7ad..9eb610b 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/WSDLEditorResourceChangeHandler.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/WSDLEditorResourceChangeHandler.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
@@ -31,18 +31,16 @@
 import org.eclipse.ui.IPartListener;
 import org.eclipse.ui.IWorkbenchPart;
 import org.eclipse.wst.wsdl.Definition;
-import org.eclipse.wst.wsdl.asd.facade.IDescription;
-import org.eclipse.wst.wsdl.ui.internal.adapters.basic.W11Description;
 
 
 public class WSDLEditorResourceChangeHandler
 {
-  protected InternalWSDLMultiPageEditor wsdlEditor;
+  protected WSDLEditor wsdlEditor;
   protected boolean isUpdateRequired;
   protected InternalResourceChangeListener resourceChangeListener;
   protected InternalPartListener partListener;
 
-  public WSDLEditorResourceChangeHandler(InternalWSDLMultiPageEditor wsdlEditor)
+  public WSDLEditorResourceChangeHandler(WSDLEditor wsdlEditor)
   {
     this.wsdlEditor = wsdlEditor;
     resourceChangeListener = new InternalResourceChangeListener();
@@ -64,8 +62,7 @@
   protected Map computeDependencyMap()
   {
     Map map = new HashMap();
-    IDescription description = ((InternalWSDLMultiPageEditor) wsdlEditor).getModel();
-    Definition definition = (Definition) ((W11Description) description).getTarget();
+    Definition definition = wsdlEditor.getDefinition();
     ResourceSet resourceSet = definition.eResource().getResourceSet();
     for (Iterator i = resourceSet.getResources().iterator(); i.hasNext();)
     {
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/WSDLHyperlink.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/WSDLHyperlink.java
new file mode 100644
index 0000000..61088f5
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/WSDLHyperlink.java
@@ -0,0 +1,104 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Common 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 java.lang.reflect.Method;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jface.text.IRegion;
+import org.eclipse.jface.text.hyperlink.IHyperlink;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IFileEditorInput;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.part.FileEditorInput;
+
+/**
+ * WSDL Hyperlink that knows how to open links from wsdl files
+ */
+public class WSDLHyperlink implements IHyperlink {
+	private IRegion fRegion;
+	private String fResource;
+	private String fSpec;
+
+	public WSDLHyperlink(IRegion region, String resource, String spec) {
+		fRegion = region;
+		fResource = resource;
+		fSpec = spec;
+	}
+
+	public IRegion getHyperlinkRegion() {
+		return fRegion;
+	}
+
+	public String getTypeLabel() {
+		return null;
+	}
+
+	public String getHyperlinkText() {
+		return null;
+	}
+
+	public void open() {
+		/*
+		 * ISSUE: There are cleaner ways to find the right file based on a URI
+		 * string and cleaner ways to find which editor to open for the file.
+		 * See other IHyperlink and IHyperlinkDetector implementors for
+		 * examples.
+		 */
+		String pattern = "platform:/resource";
+		if (fResource != null && fResource.startsWith(pattern)) {
+			try {
+				Path path = new Path(fResource.substring(pattern.length()));
+				IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
+
+				IWorkbenchPage workbenchPage = WSDLEditorPlugin.getInstance().getWorkbench().getActiveWorkbenchWindow().getActivePage();
+				IEditorPart editorPart = workbenchPage.getActiveEditor();
+
+				if (editorPart.getEditorInput() instanceof IFileEditorInput && ((IFileEditorInput) editorPart.getEditorInput()).getFile().equals(file)) {
+					workbenchPage.getNavigationHistory().markLocation(editorPart);
+				}
+				else {
+					try {
+						if (fResource.endsWith("xsd")) {
+							editorPart = workbenchPage.openEditor(new FileEditorInput(file), WSDLEditorPlugin.XSD_EDITOR_ID);
+						}
+						else {
+							// Since we are already in the wsdleditor
+							editorPart = workbenchPage.openEditor(new FileEditorInput(file), editorPart.getEditorSite().getId());
+						}
+					}
+					catch (PartInitException initEx) {
+					}
+				}
+
+				/*
+				 * ISSUE: This just does not look like a safe thing to do. One
+				 * simple solution would be to have an interface for
+				 * openOnSelection that your editors can implement. Or, java
+				 * editor has something like a utility that is able to find
+				 * the offset/location for a given element in a file. Once you
+				 * have offset/location, you can just call setSelection.
+				 */
+				Class theClass = editorPart.getClass();
+				Class[] methodArgs = {String.class};
+				Method method = theClass.getMethod("openOnSelection", methodArgs);
+				Object args[] = {fSpec};
+				method.invoke(editorPart, args);
+				workbenchPage.getNavigationHistory().markLocation(editorPart);
+			}
+			catch (Exception e) {
+			}
+		}
+	}
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/WSDLHyperlinkDetector.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/WSDLHyperlinkDetector.java
new file mode 100644
index 0000000..0309b0e
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/WSDLHyperlinkDetector.java
@@ -0,0 +1,129 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Common 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 java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.IRegion;
+import org.eclipse.jface.text.ITextViewer;
+import org.eclipse.jface.text.Region;
+import org.eclipse.jface.text.hyperlink.IHyperlink;
+import org.eclipse.jface.text.hyperlink.IHyperlinkDetector;
+import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
+import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
+import org.eclipse.wst.sse.core.internal.provisional.StructuredModelManager;
+import org.eclipse.wst.wsdl.Definition;
+import org.eclipse.wst.wsdl.ui.internal.text.WSDLModelAdapter;
+import org.eclipse.wst.wsdl.ui.internal.util.OpenOnSelectionHelper;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
+import org.w3c.dom.Node;
+
+/**
+ * Detects hyperlinks for WSDL files
+ */
+public class WSDLHyperlinkDetector implements IHyperlinkDetector {
+	/**
+	 * Gets the definition from document
+	 * 
+	 * @param document
+	 * @return Definition
+	 */
+	private Definition getDefinition(IDocument document) {
+		Definition definition = null;
+		IStructuredModel model = StructuredModelManager.getModelManager().getExistingModelForRead(document);
+		if (model != null) {
+			try {
+				if (model instanceof IDOMModel) {
+					IDOMDocument domDoc = ((IDOMModel) model).getDocument();
+					if (domDoc != null) {
+						WSDLModelAdapter modelAdapter = (WSDLModelAdapter) domDoc.getAdapterFor(WSDLModelAdapter.class);
+
+						/*
+						 * ISSUE: if adapter does not already exist for domDoc
+						 * getAdapterFor will create one. So why is this null
+						 * check/creation needed?
+						 */
+						if (modelAdapter == null) {
+							modelAdapter = new WSDLModelAdapter();
+							domDoc.addAdapter(modelAdapter);
+							modelAdapter.createDefinition(domDoc.getDocumentElement(), domDoc);
+						}
+
+						definition = modelAdapter.getDefinition();
+					}
+				}
+			}
+			finally {
+				model.releaseFromRead();
+			}
+		}
+		return definition;
+	}
+
+	public IHyperlink[] detectHyperlinks(ITextViewer textViewer, IRegion region, boolean canShowMultipleHyperlinks) {
+		// for now, only capable of creating 1 hyperlink
+		List hyperlinks = new ArrayList(0);
+
+		if (region != null && textViewer != null) {
+			IDocument document = textViewer.getDocument();
+			Node node = getCurrentNode(document, region.getOffset());
+
+			if (node != null) {
+				Definition definition = getDefinition(textViewer.getDocument());
+				OpenOnSelectionHelper helper = new OpenOnSelectionHelper(definition);
+				String[] array = helper.computeSpecification(node);
+				if (array != null) {
+					IRegion nodeRegion = region;
+					if (node instanceof IndexedRegion) {
+						IndexedRegion indexed = (IndexedRegion) node;
+						nodeRegion = new Region(indexed.getStartOffset(), indexed.getLength());
+					}
+					hyperlinks.add(new WSDLHyperlink(nodeRegion, array[0], array[1]));
+				}
+			}
+		}
+		if (hyperlinks.size() == 0)
+			return null;
+		return (IHyperlink[]) hyperlinks.toArray(new IHyperlink[0]);
+	}
+
+	/**
+	 * Returns the node the cursor is currently on in the document. null if no
+	 * node is selected
+	 * 
+	 * @param offset
+	 * @return Node either element, doctype, text, or null
+	 */
+	private Node getCurrentNode(IDocument document, int offset) {
+		// get the current node at the offset (returns either: element,
+		// doctype, text)
+		IndexedRegion inode = null;
+		IStructuredModel sModel = null;
+		try {
+			sModel = StructuredModelManager.getModelManager().getExistingModelForRead(document);
+			inode = sModel.getIndexedRegion(offset);
+			if (inode == null)
+				inode = sModel.getIndexedRegion(offset - 1);
+		}
+		finally {
+			if (sModel != null)
+				sModel.releaseFromRead();
+		}
+
+		if (inode instanceof Node) {
+			return (Node) inode;
+		}
+		return null;
+	}
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/WSDLMultiPageEditorPart.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/WSDLMultiPageEditorPart.java
new file mode 100644
index 0000000..32e4c1f
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/WSDLMultiPageEditorPart.java
@@ -0,0 +1,653 @@
+
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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 java.io.IOException;
+import java.io.InputStream;
+
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceStatus;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.ITextInputListener;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.events.ShellAdapter;
+import org.eclipse.swt.events.ShellEvent;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.IEditorActionBarContributor;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.IFileEditorInput;
+import org.eclipse.ui.IPartListener;
+import org.eclipse.ui.IPropertyListener;
+import org.eclipse.ui.IStorageEditorInput;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.ide.IGotoMarker;
+import org.eclipse.wst.common.ui.provisional.editors.PostMultiPageEditorSite;
+import org.eclipse.wst.common.ui.provisional.editors.PostSelectionMultiPageEditorPart;
+import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
+import org.eclipse.wst.sse.ui.StructuredTextEditor;
+import org.eclipse.wst.xml.core.internal.provisional.IXMLPreferenceNames;
+import org.eclipse.wst.xml.core.internal.provisional.contenttype.ContentTypeIdForXML;
+import org.eclipse.wst.xml.ui.internal.tabletree.XMLEditorMessages;
+
+public class WSDLMultiPageEditorPart extends PostSelectionMultiPageEditorPart implements IPropertyListener {
+
+	/**
+	 * 
+	 */
+	public WSDLMultiPageEditorPart() {
+		super();
+	}
+
+	/**
+	 * Internal part activation listener
+	 */
+	class PartListener extends ShellAdapter implements IPartListener {
+		private IWorkbenchPart fActivePart;
+		private boolean fIsHandlingActivation = false;
+
+		private void handleActivation() {
+
+			if (fIsHandlingActivation)
+				return;
+
+			if (fActivePart == WSDLMultiPageEditorPart.this) {
+				fIsHandlingActivation = true;
+				try {
+					safelySanityCheckState();
+				}
+				finally {
+					fIsHandlingActivation = false;
+				}
+			}
+		}
+
+		/**
+		 * @see IPartListener#partActivated(IWorkbenchPart)
+		 */
+		public void partActivated(IWorkbenchPart part) {
+			fActivePart = part;
+			handleActivation();
+		}
+
+		/**
+		 * @see IPartListener#partBroughtToTop(IWorkbenchPart)
+		 */
+		public void partBroughtToTop(IWorkbenchPart part) {
+		}
+
+		/**
+		 * @see IPartListener#partClosed(IWorkbenchPart)
+		 */
+		public void partClosed(IWorkbenchPart part) {
+		}
+
+		/**
+		 * @see IPartListener#partDeactivated(IWorkbenchPart)
+		 */
+		public void partDeactivated(IWorkbenchPart part) {
+			fActivePart = null;
+		}
+
+		/**
+		 * @see IPartListener#partOpened(IWorkbenchPart)
+		 */
+		public void partOpened(IWorkbenchPart part) {
+		}
+
+		/*
+		 * @see ShellListener#shellActivated(ShellEvent)
+		 */
+		public void shellActivated(ShellEvent e) {
+			handleActivation();
+		}
+	}
+
+	class TextInputListener implements ITextInputListener {
+		public void inputDocumentAboutToBeChanged(IDocument oldInput, IDocument newInput) {
+		}
+
+		public void inputDocumentChanged(IDocument oldInput, IDocument newInput) {
+		}
+	}
+
+	/** The source page index. */
+	private int fSourcePageIndex;
+	/** The text editor. */
+	private StructuredTextEditor fTextEditor;
+
+	private PartListener partListener;
+
+
+	/*
+	 * This method is just to make firePropertyChanged accessbible from some
+	 * (anonomous) inner classes.
+	 */
+	protected void _firePropertyChange(int property) {
+		super.firePropertyChange(property);
+	}
+
+	/**
+	 * Adds the source page of the multi-page editor.
+	 */
+	protected void addSourcePage() throws PartInitException {
+		try {
+			fSourcePageIndex = addPage(fTextEditor, getEditorInput());
+			setPageText(fSourcePageIndex, WSDLEditorPlugin.getWSDLString("_UI_TAB_SOURCE")); //$NON-NLS-1$
+			// the update's critical, to get viewer selection manager and
+			// highlighting to work
+			fTextEditor.update();
+
+			firePropertyChange(PROP_TITLE);
+
+			// Changes to the Text Viewer's document instance should also
+			// force an
+			// input refresh
+			fTextEditor.getTextViewer().addTextInputListener(new TextInputListener());
+		}
+		catch (PartInitException e) {
+			// dispose editor
+			dispose();
+
+			// log for now, unless we find reason not to
+			Logger.log(Logger.INFO, e.getMessage());
+		}
+	}
+
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.part.MultiPageEditorPart#createPages()
+	 */
+	protected void createPages() {
+		try {
+			// source page MUST be created before design page, now
+			createSourcePage();
+			addSourcePage();
+			setActivePage();
+
+			// future_TODO: add a catch block here for any exception the
+			// design
+			// page throws and convert it into a more informative message.
+		}
+		catch (PartInitException e) {
+			throw new RuntimeException(e);
+		}
+	}
+
+	/**
+	 * @see org.eclipse.ui.part.MultiPageEditorPart#createSite(org.eclipse.ui.IEditorPart)
+	 */
+	protected IEditorSite createSite(IEditorPart editor) {
+		IEditorSite site = null;
+		if (editor == fTextEditor) {
+			site = new PostMultiPageEditorSite(this, editor) {
+				/**
+				 * @see org.eclipse.ui.part.MultiPageEditorSite#getActionBarContributor()
+				 */
+				public IEditorActionBarContributor getActionBarContributor() {
+					IEditorActionBarContributor contributor = super.getActionBarContributor();
+//					IEditorActionBarContributor multiContributor = WSDLMultiPageEditorPart.this.getEditorSite().getActionBarContributor();
+					// if (multiContributor instanceof
+					// XMLMultiPageEditorActionBarContributor) {
+					// contributor = ((XMLMultiPageEditorActionBarContributor)
+					// multiContributor).sourceViewerActionContributor;
+					// }
+					return contributor;
+				}
+
+				public String getId() {
+					// sets this id so nested editor is considered xml source
+					// page
+					return ContentTypeIdForXML.ContentTypeID_XML + ".source"; //$NON-NLS-1$;
+				}
+			};
+		}
+		else {
+			site = super.createSite(editor);
+		}
+		return site;
+	}
+
+	/**
+	 * Creates the source page of the multi-page editor.
+	 */
+	protected void createSourcePage() throws PartInitException {
+		fTextEditor = createTextEditor();
+		fTextEditor.setEditorPart(this);
+
+		// Set the SourceViewerConfiguration now so the text editor won't use
+		// the default configuration first
+		// and switch to the StructuredTextViewerConfiguration later.
+		// DMW removed setSourceViewerConfiguration 3/26/2003 since added
+		// createPartControl to our text editor.
+		// fTextEditor.setSourceViewerConfiguration();
+		fTextEditor.addPropertyListener(this);
+	}
+
+	/**
+	 * Method createTextEditor.
+	 * 
+	 * @return StructuredTextEditor
+	 */
+	protected StructuredTextEditor createTextEditor() {
+		return new StructuredTextEditor();
+	}
+
+	public void dispose() {
+		IWorkbenchWindow window = getSite().getWorkbenchWindow();
+		window.getPartService().removePartListener(partListener);
+		window.getShell().removeShellListener(partListener);
+
+		getSite().getPage().removePartListener(partListener);
+		if (fTextEditor != null) {
+			fTextEditor.removePropertyListener(this);
+		}
+
+		// moved to last when added window ... seems like
+		// we'd be in danger of losing some data, like site,
+		// or something.
+		super.dispose();
+	}
+
+	/*
+	 * (non-Javadoc) Saves the contents of this editor. <p> Subclasses must
+	 * override this method to implement the open-save-close lifecycle for an
+	 * editor. For greater details, see <code> IEditorPart </code></p>
+	 * 
+	 * @see IEditorPart
+	 */
+	public void doSave(IProgressMonitor monitor) {
+		fTextEditor.doSave(monitor);
+		// // this is a temporary way to force validation.
+		// // when the validator is a workbench builder, the following lines
+		// can be removed
+		// if (fDesignViewer != null)
+		// fDesignViewer.saveOccurred();
+
+	}
+
+	/*
+	 * (non-Javadoc) Saves the contents of this editor to another object. <p>
+	 * Subclasses must override this method to implement the open-save-close
+	 * lifecycle for an editor. For greater details, see <code> IEditorPart
+	 * </code></p>
+	 * 
+	 * @see IEditorPart
+	 */
+	public void doSaveAs() {
+		fTextEditor.doSaveAs();
+		// 253619
+		// following used to be executed here, but is
+		// now called "back" from text editor (since
+		// mulitiple paths to the performSaveAs in StructuredTextEditor.
+		// doSaveAsForStructuredTextMulitPagePart();
+	}
+
+	private void editorInputIsAcceptable(IEditorInput input) throws PartInitException {
+		if (input instanceof IFileEditorInput) {
+			// verify that it can be opened
+			CoreException[] coreExceptionArray = new CoreException[1];
+			if (fileDoesNotExist((IFileEditorInput) input, coreExceptionArray)) {
+				CoreException coreException = coreExceptionArray[0];
+				if (coreException.getStatus().getCode() == IResourceStatus.FAILED_READ_LOCAL) {
+					// I'm assuming this is always 'does not exist'
+					// we'll refresh local go mimic behavior of default
+					// editor, where the
+					// troublesome file is refreshed (and will cause it to
+					// 'disappear' from Navigator.
+					try {
+						((IFileEditorInput) input).getFile().refreshLocal(IResource.DEPTH_ZERO, new NullProgressMonitor());
+					}
+					catch (CoreException ce) {
+						// very unlikely
+						Logger.logException(ce);
+					}
+					throw new PartInitException(NLS.bind(XMLEditorMessages.Resource__does_not_exist, (new Object[]{input.getName()})));
+				}
+				else {
+					throw new PartInitException(NLS.bind(XMLEditorMessages.Editor_could_not_be_open, (new Object[]{input.getName()})));
+				}
+			}
+		}
+		else if (input instanceof IStorageEditorInput) {
+			InputStream contents = null;
+			try {
+				contents = ((IStorageEditorInput) input).getStorage().getContents();
+			}
+			catch (CoreException noStorageExc) {
+			}
+			if (contents == null) {
+				throw new PartInitException(NLS.bind(XMLEditorMessages.Editor_could_not_be_open, (new Object[]{input.getName()})));
+			}
+			else {
+				try {
+					contents.close();
+				}
+				catch (IOException e) {
+				}
+			}
+		}
+	}
+
+	// void doSaveAsForStructuredTextMulitPagePart() {
+	// setPageText(getActivePage(), fTextEditor.getTitle());
+	// setInput(fTextEditor.getEditorInput());
+	// if (fDesignViewer != null) {
+	// //fDesignViewer.setEditorInput(fTextEditor.getEditorInput());
+	// fDesignViewer.setModel(getModel());
+	// fDesignViewer.saveAsOccurred();
+	// }
+	// // even though we've set title etc., several times already!
+	// // only now is all prepared for it.
+	// firePropertyChange(IWorkbenchPart.PROP_TITLE);
+	// firePropertyChange(PROP_DIRTY);
+	// }
+	/*
+	 * (non-Javadoc) Initializes the editor part with a site and input. <p>
+	 * Subclasses of <code> EditorPart </code> must implement this method.
+	 * Within the implementation subclasses should verify that the input type
+	 * is acceptable and then save the site and input. Here is sample code:
+	 * </p><pre> if (!(input instanceof IFileEditorInput)) throw new
+	 * PartInitException("Invalid Input: Must be IFileEditorInput");
+	 * setSite(site); setInput(editorInput); </pre>
+	 */
+	protected boolean fileDoesNotExist(IFileEditorInput input, Throwable[] coreException) {
+		boolean result = false;
+		InputStream inStream = null;
+		if ((!(input.exists())) || (!(input.getFile().exists()))) {
+			result = true;
+		}
+		else {
+			try {
+				inStream = input.getFile().getContents(true);
+			}
+			catch (CoreException e) {
+				// very likely to be file not found
+				result = true;
+				coreException[0] = e;
+			}
+			finally {
+				if (input != null) {
+					try {
+						if (inStream != null) {
+							inStream.close();
+						}
+					}
+					catch (IOException e) {
+
+					}
+				}
+			}
+		}
+		return result;
+	}
+
+	public Object getAdapter(Class key) {
+		Object result = null;
+
+		// DMW: I'm bullet-proofing this because
+		// its been reported (on 4.03 version) a null pointer sometimes
+		// happens here on startup, when an editor has been left
+		// open when workbench shutdown.
+		if (fTextEditor != null) {
+			result = fTextEditor.getAdapter(key);
+		}
+		return result;
+	}
+
+	public IEditorPart getEditorPart() {
+		return this;
+	}
+
+	protected IStructuredModel getModel() {
+		IStructuredModel model = null;
+		if (fTextEditor != null) {
+			model = fTextEditor.getModel();
+//			IDocument doc = fTextEditor.getDocumentProvider().getDocument(getEditorInput());	
+//	    	IModelManager modelManager = ModelManagerImpl.getInstance();    	
+//	    	model = modelManager.getModelForRead((IStructuredDocument) doc);
+		}
+
+		return model;
+	}
+
+	protected IPreferenceStore getPreferenceStore() {
+		return WSDLEditorPlugin.getInstance().getPreferenceStore();
+	}
+
+	public StructuredTextEditor getTextEditor() {
+		return fTextEditor;
+	}
+
+	/*
+	 * (non-Javadoc) Method declared on IWorkbenchPart.
+	 */
+	public String getTitle() {
+		String title = null;
+		if (getTextEditor() == null) {
+			if (getEditorInput() != null) {
+				title = getEditorInput().getName();
+			}
+		}
+		else {
+			title = getTextEditor().getTitle();
+		}
+		if (title == null) {
+			title = getPartName();
+		}
+		return title;
+	}
+
+	/*
+	 * (non-Javadoc) Sets the cursor and selection state for this editor to
+	 * the passage defined by the given marker. <p> Subclasses may override.
+	 * For greater details, see <code> IEditorPart </code></p>
+	 * 
+	 * @see IEditorPart
+	 */
+	public void gotoMarker(IMarker marker) {
+		// (pa) 20020217 this was null when opening an editor that was
+		// already open
+		if (fTextEditor != null) {
+			IGotoMarker markerGotoer = (IGotoMarker) fTextEditor.getAdapter(IGotoMarker.class);
+			markerGotoer.gotoMarker(marker);
+		}
+	}
+
+	public void init(IEditorSite site, IEditorInput input) throws PartInitException {
+		editorInputIsAcceptable(input);
+		try {
+			super.init(site, input);
+			if (partListener == null) {
+				partListener = new PartListener();
+			}
+			// getSite().getPage().addPartListener(partListner);
+			// we want to listen for our own activation
+			IWorkbenchWindow window = getSite().getWorkbenchWindow();
+			window.getPartService().addPartListener(partListener);
+			window.getShell().addShellListener(partListener);
+		}
+		catch (Exception e) {
+			// log for now, unless we find reason not to
+			Logger.log(Logger.INFO, e.getMessage());
+		}
+		setPartName(input.getName());
+	}
+
+	/*
+	 * (non-Javadoc) Returns whether the "save as" operation is supported by
+	 * this editor. <p> Subclasses must override this method to implement the
+	 * open-save-close lifecycle for an editor. For greater details, see
+	 * <code> IEditorPart </code></p>
+	 * 
+	 * @see IEditorPart
+	 */
+	public boolean isSaveAsAllowed() {
+		return fTextEditor != null && fTextEditor.isSaveAsAllowed();
+	}
+
+	/*
+	 * (non-Javadoc) Returns whether the contents of this editor should be
+	 * saved when the editor is closed. <p> This method returns <code> true
+	 * </code> if and only if the editor is dirty ( <code> isDirty </code> ).
+	 * </p>
+	 */
+	public boolean isSaveOnCloseNeeded() {
+		// overriding super class since it does a lowly isDirty!
+		if (fTextEditor != null)
+			return fTextEditor.isSaveOnCloseNeeded();
+		return isDirty();
+	}
+
+	/**
+	 * Notifies this multi-page editor that the page with the given id has
+	 * been activated. This method is called when the user selects a different
+	 * tab.
+	 * 
+	 * @param newPageIndex
+	 *            the index of the activated page
+	 */
+	protected void pageChange(int newPageIndex) {
+		super.pageChange(newPageIndex);
+
+		saveLastActivePageIndex(newPageIndex);
+	}
+
+	/**
+	 * Posts the update code "behind" the running operation.
+	 */
+	protected void postOnDisplayQue(Runnable runnable) {
+		IWorkbench workbench = PlatformUI.getWorkbench();
+		IWorkbenchWindow[] windows = workbench.getWorkbenchWindows();
+		if (windows != null && windows.length > 0) {
+			Display display = windows[0].getShell().getDisplay();
+			display.asyncExec(runnable);
+		}
+		else
+			runnable.run();
+	}
+
+	/**
+	 * Indicates that a property has changed.
+	 * 
+	 * @param source
+	 *            the object whose property has changed
+	 * @param propId
+	 *            the id of the property which has changed; property ids are
+	 *            generally defined as constants on the source class
+	 */
+	public void propertyChanged(Object source, int propId) {
+		switch (propId) {
+			// had to implement input changed "listener" so that
+			// strucutedText could tell it containing editor that
+			// the input has change, when a 'resource moved' event is
+			// found.
+			case IEditorPart.PROP_INPUT :
+			case IEditorPart.PROP_DIRTY : {
+				if (source == fTextEditor) {
+					if (fTextEditor.getEditorInput() != getEditorInput()) {
+						setInput(fTextEditor.getEditorInput());
+						// title should always change when input changes.
+						// create runnable for following post call
+						Runnable runnable = new Runnable() {
+							public void run() {
+								_firePropertyChange(IWorkbenchPart.PROP_TITLE);
+							}
+						};
+						// Update is just to post things on the display queue
+						// (thread). We have to do this to get the dirty
+						// property to get updated after other things on the
+						// queue are executed.
+						postOnDisplayQue(runnable);
+					}
+				}
+				break;
+			}
+			case IWorkbenchPart.PROP_TITLE : {
+				// update the input if the title is changed
+				if (source == fTextEditor) {
+					if (fTextEditor.getEditorInput() != getEditorInput()) {
+						setInput(fTextEditor.getEditorInput());
+					}
+				}
+				break;
+			}
+			default : {
+				// propagate changes. Is this needed? Answer: Yes.
+				if (source == fTextEditor) {
+					firePropertyChange(propId);
+				}
+				break;
+			}
+		}
+
+	}
+
+	protected void safelySanityCheckState() {
+		// If we're called before editor is created, simply ignore since we
+		// delegate this function to our embedded TextEditor
+		if (getTextEditor() == null)
+			return;
+
+		getTextEditor().safelySanityCheckState(getEditorInput());
+
+	}
+
+	protected void saveLastActivePageIndex(int newPageIndex) {
+		// save the last active page index to preference manager
+		getPreferenceStore().setValue(IXMLPreferenceNames.LAST_ACTIVE_PAGE, newPageIndex);
+	}
+
+	/**
+	 * Sets the currently active page.
+	 */
+	protected void setActivePage() {
+		// retrieve the last active page index from preference manager
+		int activePageIndex = getPreferenceStore().getInt(IXMLPreferenceNames.LAST_ACTIVE_PAGE);
+
+		// We check this range since someone could hand edit the XML
+		// preference file to an invalid value ... which I know from
+		// experience :( ... if they do, we'll reset to default and continue
+		// rather than throw an assertion error in the setActivePage(int)
+		// method.
+		if (activePageIndex < 0 || activePageIndex >= getPageCount()) {
+			activePageIndex = fSourcePageIndex;
+		}
+		setActivePage(activePageIndex);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.part.EditorPart#setInput(org.eclipse.ui.IEditorInput)
+	 */
+	protected void setInput(IEditorInput input) {
+		// If driven from the Source page, it's "model" may not be up to date
+		// with the input just yet. We'll rely on later notification from the
+		// TextViewer to set us straight
+		super.setInput(input);
+		setPartName(input.getName());
+	}
+
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/WSDLSelectionManager.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/WSDLSelectionManager.java
new file mode 100644
index 0000000..55a4d83
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/WSDLSelectionManager.java
@@ -0,0 +1,82 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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 java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+
+public class WSDLSelectionManager implements ISelectionProvider, ISelectionChangedListener
+{       
+  protected List listenerList = new ArrayList();
+  protected ISelection currentSelection;
+  protected boolean enableNotify = true;
+
+  public void setSelection(ISelection selection, ISelectionProvider source)
+  {  
+    if (enableNotify)
+    {
+      currentSelection = selection;
+      enableNotify = false;
+      try
+      {
+        SelectionChangedEvent event = new SelectionChangedEvent(source, selection);
+        List copyOfListenerList = new ArrayList(listenerList);
+        for (Iterator i = copyOfListenerList.iterator(); i.hasNext(); )
+        {
+          ISelectionChangedListener listener = (ISelectionChangedListener)i.next();
+          listener.selectionChanged(event);
+        }
+      }
+      finally
+      {
+        enableNotify = true;
+      }
+    }
+  }      
+
+  //  implements ISelectionProvider
+  //
+  public void setSelection(ISelection selection)
+  {
+    setSelection(selection, this);
+  }
+
+  public ISelection getSelection() 
+  {
+    return currentSelection;
+  }
+
+  public void removeSelectionChangedListener(ISelectionChangedListener listener) 
+  {
+    listenerList.remove(listener);
+  }
+  
+  public void addSelectionChangedListener(ISelectionChangedListener listener) 
+  {
+    listenerList.add(listener);
+  } 
+  
+  // implements ISelectionChangedListener
+  //
+  public void selectionChanged(SelectionChangedEvent event)  
+  {                                                                                         
+    if (enableNotify)
+    {
+      setSelection(event.getSelection(), event.getSelectionProvider());
+    }
+  }
+}                      
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/AddEEMenuActionContributor.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/AddEEMenuActionContributor.java
new file mode 100644
index 0000000..a8bb5d6
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/AddEEMenuActionContributor.java
@@ -0,0 +1,339 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.actions; 
+                      
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Vector;
+
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.wst.wsdl.Binding;
+import org.eclipse.wst.wsdl.BindingFault;
+import org.eclipse.wst.wsdl.BindingInput;
+import org.eclipse.wst.wsdl.BindingOperation;
+import org.eclipse.wst.wsdl.BindingOutput;
+import org.eclipse.wst.wsdl.Definition;
+import org.eclipse.wst.wsdl.Port;
+import org.eclipse.wst.wsdl.UnknownExtensibilityElement;
+import org.eclipse.wst.wsdl.WSDLElement;
+import org.eclipse.wst.wsdl.internal.util.WSDLSwitch;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.eclipse.wst.wsdl.ui.internal.extension.IMenuActionContributor;
+import org.eclipse.wst.wsdl.ui.internal.model.WSDLGroupObject;
+import org.eclipse.wst.wsdl.ui.internal.util.WSDLEditorUtil;
+import org.eclipse.wst.wsdl.util.WSDLConstants;
+import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
+import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
+import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
+import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
+import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQueryAction;
+import org.eclipse.wst.xml.core.internal.contentmodel.util.DOMContentBuilder;
+import org.eclipse.wst.xml.core.internal.contentmodel.util.DOMContentBuilderImpl;
+import org.eclipse.wst.xml.core.internal.contentmodel.util.DOMNamespaceHelper;
+import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
+import org.eclipse.wst.xml.core.internal.provisional.format.FormatProcessorXML;
+import org.eclipse.wst.xml.ui.internal.actions.MenuBuilder;
+import org.eclipse.wst.xml.ui.internal.util.XMLCommonResources;
+import org.w3c.dom.Attr;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+                             
+/**
+ * TODO... there are likely several places where we can refactor code from  AbstractNodeActionManager
+ */
+public class AddEEMenuActionContributor implements IMenuActionContributor
+{                   
+  protected MenuBuilder menuBuilder = new MenuBuilder();
+
+  public void contributeMenuActions(final IMenuManager menu, Node node, Object object)
+  {
+    boolean isSubmenuRequired = false;
+    Element element = null;
+
+    if (object instanceof WSDLElement)
+    {     
+      WSDLSwitch wsdlSwitch = new WSDLSwitch()
+      {                   
+      	public Object caseBinding(Binding binding)
+        {                                          
+          return Boolean.TRUE;
+	      } 
+
+      	public Object caseBindingOperation(BindingOperation bindingOperation)
+        {                                          
+          return Boolean.TRUE;
+	      } 
+
+      	public Object caseBindingInput(BindingInput bindingInput)
+        {                                          
+          return Boolean.TRUE;
+	      } 
+
+      	public Object caseBindingOutput(BindingOutput bindingOutput)
+        {                                          
+          return Boolean.TRUE;
+	      }
+
+      	public Object caseBindingFault(BindingFault bindingFault)
+        {                                          
+          return Boolean.TRUE;
+	      } 
+ 
+      	public Object caseDefinition(Definition definition)
+        {      
+          return Boolean.TRUE;
+	      }           
+     
+      	public Object casePort(Port port)
+        {                                         
+          return Boolean.TRUE;
+        } 
+      	public Object caseUnknownExtensibilityElement(UnknownExtensibilityElement unknownExtensibilityElement)
+      	{
+      		if (getExtensibilityElementActions(unknownExtensibilityElement.getElement()).size() > 0)
+      		{      		
+      			return Boolean.TRUE;
+      		}
+      		else
+      		{
+      			return Boolean.FALSE;
+      		}
+      	}
+      };        
+      isSubmenuRequired = wsdlSwitch.doSwitch((WSDLElement)object) != null;
+      element = WSDLEditorUtil.getInstance().getElementForObject(object);      
+    }
+    else if (object instanceof WSDLGroupObject)
+    {
+      WSDLGroupObject groupObject = (WSDLGroupObject)object;
+     
+      switch (groupObject.getType())
+      {   
+        case WSDLGroupObject.EXTENSIBILITY_ELEMENTS_GROUP : 
+        {
+          isSubmenuRequired = true;
+          element = WSDLEditorUtil.getInstance().getElementForObject(groupObject.getDefinition());    
+          break;
+        }
+      }   
+    }
+
+    if (isSubmenuRequired)
+    {
+      MenuManager submenu = new MenuManager(WSDLEditorPlugin.getWSDLString("_UI_ADD_EXTENSIBILITY_ELEMENT"));  //$NON-NLS-1$
+      // here I'm attempting to add the menu item in a 'good' place in the exisiting menu
+      // todo add menu groups to avoid the need for this test
+      //
+//      if (menu.find("addchild") != null)
+//      {
+//      	menu.insertAfter("addchild", submenu);
+//      }
+//      else
+//      {
+//      	menu.add(submenu);
+//      }	 
+    	menu.add(submenu);
+      if (element != null && element instanceof IDOMNode)
+      {
+        addExtensibilityElementActions(submenu, element);
+      }
+    }
+  }
+
+  public void addExtensibilityElementActions(IMenuManager menu, Element element)
+  {                 
+    ModelQuery modelQuery = ModelQueryUtil.getModelQuery(element.getOwnerDocument());
+    CMElementDeclaration ed = modelQuery.getCMElementDeclaration(element);
+    
+    if (ed != null)
+    {
+      addActionHelper(menu, getExtensibilityElementActions(element));
+    }
+  }
+  
+  public List getExtensibilityElementActions(Element element) {
+    List modelQueryActionList = new ArrayList();
+  	ModelQuery modelQuery = ModelQueryUtil.getModelQuery(element.getOwnerDocument());
+    CMElementDeclaration ed = modelQuery.getCMElementDeclaration(element);                                                                                                                            
+
+    if (ed != null)
+    {                                                                                    
+      // add insert child node actions
+      //
+      int ic = ModelQuery.INCLUDE_CHILD_NODES;
+      int vc = ModelQuery.VALIDITY_STRICT;
+
+      modelQuery.getInsertActions(element, ed, -1, ic, vc, modelQueryActionList);
+    }
+    
+    return modelQueryActionList;
+  }
+  
+
+  protected void addActionHelper(IMenuManager menu, List modelQueryActionList)
+  {                          
+    List actionList = new Vector();
+
+    for (Iterator i = modelQueryActionList.iterator(); i.hasNext(); )
+    {                                                   
+      ModelQueryAction action = (ModelQueryAction)i.next();
+      CMNode cmnode = action.getCMNode();
+      if (cmnode != null)
+      {                                       
+        boolean isOtherNamespace = false;
+        CMDocument cmDocument = (CMDocument)cmnode.getProperty("CMDocument");
+        if (cmDocument != null)          
+        {             
+          String namespaceURI = (String)cmDocument.getProperty("http://org.eclipse.wst/cm/properties/targetNamespaceURI"); 
+          isOtherNamespace = namespaceURI != null && !namespaceURI.equals(WSDLConstants.WSDL_NAMESPACE_URI);
+        }
+
+        if (isOtherNamespace)
+        {
+          int cmNodeType = cmnode.getNodeType();
+          if (action.getKind() == ModelQueryAction.INSERT)
+          {                                                 
+            switch (cmNodeType)                             
+            {
+              case CMNode.ELEMENT_DECLARATION :
+              {
+                actionList.add(new AddNodeAction((CMElementDeclaration)cmnode, action.getParent(), action.getStartIndex()));
+                break;
+              }
+            }
+          }           
+        }
+      }   
+    }  
+    menuBuilder.populateMenu(menu, actionList, false);
+  }   
+
+  /**
+   * AddNodeAction
+   */
+  public class AddNodeAction extends BaseNodeAction
+  {
+    protected String description;
+    protected String undoDescription; 
+    protected CMNode cmnode;
+    protected int index;
+    protected Node parent;
+
+
+    public AddNodeAction(CMNode cmnode, Node parent,  int index)
+    {                                 
+      this.cmnode = cmnode;
+      this.parent = parent;
+      this.index = index;                                   
+                                                                                                
+      String text = getLabel(parent, cmnode);
+      setText(text);     
+      description = text;
+      undoDescription = XMLCommonResources.getInstance().getString("_UI_MENU_ADD") + " " + text;
+      //setImageDescriptor(imageDescriptorCache.getImageDescriptor(cmnode)); 
+    }
+
+    public String getLabel(Node parent, CMNode cmnode)
+    {                                                
+      String result = "?" + cmnode + "?";
+      if (cmnode != null)
+      {                
+        result = DOMNamespaceHelper.computeName(cmnode, parent, null);         
+      }
+      return result;   
+    }  
+
+    public Node getNode()
+    {
+      return parent;
+    }
+
+    public String getUndoDescription()
+    {
+      return undoDescription;
+    }
+
+    public void run()
+    {
+      beginRecording();
+
+      if (cmnode != null && parent != null)
+      {
+        Document document = parent.getNodeType() == Node.DOCUMENT_NODE ? (Document)parent : parent.getOwnerDocument();        
+
+        DOMContentBuilder builder = new DOMContentBuilderImpl(document); 
+        builder.setProperty(DOMContentBuilder.PROPERTY_BUILD_BLANK_TEXT_NODES, Boolean.TRUE);
+        builder.setBuildPolicy(DOMContentBuilder.BUILD_ONLY_REQUIRED_CONTENT);
+        builder.build(parent, cmnode);
+        insertNodesAtIndex(parent, builder.getResult(), index, true);
+      }
+
+      endRecording();
+    } 
+
+    public void insertNodesAtIndex(Node parent, List list, int index, boolean format)
+    {                   
+      NodeList nodeList = parent.getChildNodes();
+      if (index == -1)
+      {
+        index = nodeList.getLength();
+      }
+      Node refChild = (index < nodeList.getLength()) ? nodeList.item(index) : null;
+    
+      // here we consider the case where the previous node is a 'white space' Text node
+      // we should really do the insert before this node
+      //
+      int prevIndex = index - 1;
+      Node prevChild = (prevIndex < nodeList.getLength()) ? nodeList.item(prevIndex) : null;
+	    if (isWhitespaceTextNode(prevChild)) 
+      {
+	  	  refChild = prevChild;
+	    }
+    
+      for (Iterator i = list.iterator(); i.hasNext(); )
+      {
+        Node newNode = (Node)i.next();
+    
+        if (newNode.getNodeType() == Node.ATTRIBUTE_NODE)
+        {
+          Element parentElement = (Element)parent;
+          parentElement.setAttributeNode((Attr)newNode);
+        }
+        else
+        {
+          parent.insertBefore(newNode, refChild);
+        }  
+      }
+    
+      for (Iterator i = list.iterator(); i.hasNext(); )
+      {
+        Node newNode = (Node)i.next();
+        if (format)
+        {                                                             
+		      FormatProcessorXML formatProcessorXML = new FormatProcessorXML();
+		      formatProcessorXML.formatNode((IDOMNode)newNode);
+        }  
+      }                      
+	    //setViewerSelection(list);
+    }   
+
+    protected boolean isWhitespaceTextNode(Node node) 
+    {
+	    return (node != null) && (node.getNodeType() == Node.TEXT_NODE) && (node.getNodeValue().trim().length() == 0);
+    } 
+  }                                       
+}    
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/actions/AddElementAction.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/AddElementAction.java
similarity index 98%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/actions/AddElementAction.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/AddElementAction.java
index f1b4e18..12a1f6b 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/actions/AddElementAction.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/AddElementAction.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
@@ -24,8 +24,8 @@
 import org.eclipse.wst.wsdl.Definition;
 import org.eclipse.wst.wsdl.WSDLElement;
 import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
-import org.eclipse.wst.wsdl.ui.internal.dialogs.NewComponentDialog;
 import org.eclipse.wst.wsdl.ui.internal.util.WSDLEditorUtil;
+import org.eclipse.wst.wsdl.ui.internal.widgets.NewComponentDialog;
 import org.eclipse.wst.wsdl.util.WSDLConstants;
 import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
 import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/actions/AddElementDeclarationAction.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/AddElementDeclarationAction.java
similarity index 96%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/actions/AddElementDeclarationAction.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/AddElementDeclarationAction.java
index adb7ce1..8bdee2f 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/actions/AddElementDeclarationAction.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/AddElementDeclarationAction.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/actions/AddImportAction.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/AddImportAction.java
similarity index 88%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/actions/AddImportAction.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/AddImportAction.java
index 0813e81..fc85352 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/actions/AddImportAction.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/AddImportAction.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
@@ -12,10 +12,9 @@
 
 import org.eclipse.ui.IEditorPart;
 import org.eclipse.wst.wsdl.Definition;
-import org.eclipse.wst.wsdl.ui.internal.InternalWSDLMultiPageEditor;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditor;
 import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
 import org.eclipse.wst.wsdl.ui.internal.util.WSDLEditorUtil;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 
@@ -39,8 +38,8 @@
 	  this.location = location;
 	  setEditorPart(part);
 	  
-	  if (part instanceof InternalWSDLMultiPageEditor) {
-	  	document = ((IDOMModel) ((InternalWSDLMultiPageEditor) part).getModel()).getDocument();
+	  if (part instanceof WSDLEditor) {
+	  	document = ((WSDLEditor) part).getXMLDocument();
 	  }
   }
         
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/AddMessageUIAction.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/AddMessageUIAction.java
new file mode 100644
index 0000000..7e39d86
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/AddMessageUIAction.java
@@ -0,0 +1,78 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.actions;
+
+
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.wst.wsdl.Definition;
+import org.eclipse.wst.wsdl.WSDLElement;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.eclipse.wst.wsdl.ui.internal.commands.AddMessageCommand;
+import org.eclipse.wst.wsdl.ui.internal.util.NameUtil;
+import org.eclipse.wst.wsdl.ui.internal.widgets.NewComponentDialog;
+import org.eclipse.wst.wsdl.util.WSDLConstants;
+
+
+
+public final class AddMessageUIAction extends WSDLElementUIAction
+{
+  private Definition definition;
+  private String name;
+  
+  public AddMessageUIAction
+  	(Definition definition, 
+     String name, 
+     boolean createPart)
+  {
+    super
+    	(new AddMessageCommand(definition,name,createPart), 
+    	 WSDLEditorPlugin.getWSDLString("_UI_ACTION_ADD"), 
+    	 WSDLConstants.MESSAGE_ELEMENT_TAG, 
+    	 WSDLEditorPlugin.getImageDescriptor("icons/message_obj.gif"));
+    
+    this.definition = definition;
+    this.name = name;
+  }
+ 
+  protected boolean showDialog()
+  {
+	  name = NameUtil.buildUniqueMessageName(definition, name);
+	  name = showDialogHelper(WSDLEditorPlugin.getWSDLString("_UI_ACTION_NEW_MESSAGE"), name);
+	  return name != null;
+  }
+  
+  protected String showDialogHelper(String title, String defaultName)
+  {   
+    String result = defaultName;                                                                                             
+    NewComponentDialog dialog = new NewComponentDialog(WSDLEditorPlugin.getShell(), title, defaultName);
+    int rc = dialog.createAndOpen();
+    if (rc == IDialogConstants.OK_ID)
+    {
+      result = dialog.getName();  
+    }
+    else
+    {
+      result = null;
+    }               
+    return result;
+  } 
+  
+  protected void preRun()
+  {
+    ((AddMessageCommand)super.modelAction).setLocalName(name);
+  }
+
+  protected WSDLElement getOwner()
+  {
+    return definition;
+  }
+
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/AddNamespaceDeclarationsAction.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/AddNamespaceDeclarationsAction.java
new file mode 100644
index 0000000..b352e34
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/AddNamespaceDeclarationsAction.java
@@ -0,0 +1,104 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.actions;
+
+import java.util.Hashtable;
+
+import org.eclipse.jface.action.Action;
+import org.w3c.dom.Attr;
+import org.w3c.dom.Element;
+import org.w3c.dom.NamedNodeMap;
+
+public class AddNamespaceDeclarationsAction extends Action
+{
+  protected Element ownerElement;
+  protected String[] namespaceNames;
+  protected String[] preferredPrefixes;
+
+  public AddNamespaceDeclarationsAction(Element ownerElement, String[] namespaceNames, String[] preferredPrefixes)
+  {
+    this.ownerElement = ownerElement;
+    this.namespaceNames = namespaceNames;
+    this.preferredPrefixes = preferredPrefixes;
+  }
+
+  public AddNamespaceDeclarationsAction(Element ownerElement, String namespaceName, String preferredPrefix)
+  {
+    this.ownerElement = ownerElement;
+    namespaceNames = new String[1];
+    namespaceNames[0] = namespaceName;
+
+    preferredPrefixes = new String[1];
+    preferredPrefixes[0] = preferredPrefix;
+  }
+
+  public void run()
+  {
+    if (ownerElement != null)
+    {
+      NamedNodeMap map = ownerElement.getAttributes();
+      Hashtable table = new Hashtable();
+      Hashtable prefixTable = new Hashtable();
+
+      int mapLength = map.getLength();
+      for (int i = 0; i < mapLength; i++)
+      {
+        Attr attribute = (Attr) map.item(i);
+        String attributeName = attribute.getName();
+        if (attributeName.startsWith("xmlns:"))
+        {
+          table.put(attribute.getValue(), Boolean.TRUE);
+          prefixTable.put(attributeName.substring(6), Boolean.TRUE);
+        }
+        else if (attributeName.equals("xmlns"))
+        {
+          table.put(attribute.getValue(), Boolean.TRUE);
+          prefixTable.put("", Boolean.TRUE);
+        }
+      }
+
+      for (int i = 0; i < namespaceNames.length; i++)
+      {
+        String namespace = namespaceNames[i];
+        if (table.get(namespace) == null)
+        {
+          String prefix = (i < preferredPrefixes.length) ? preferredPrefixes[i] : "p0";
+          if (prefixTable.get(prefix) != null)
+          {
+            prefix = computeUniquePrefix("p", prefixTable);
+          }
+
+          String attributeName = prefix.length() > 0 ? "xmlns:" + prefix : "xmlns";
+          ownerElement.setAttribute(attributeName, namespace);
+        }
+      }
+    }
+  }
+
+  protected String computeUniquePrefix(String base, Hashtable table)
+  {
+    int i = 0;
+    String prefix = base;
+    while (true)
+    {
+      if (table.get(prefix) == null)
+      {
+        break;
+      }
+      else
+      {
+        prefix = base + i;
+        i++;
+      }
+    }
+    return prefix;
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/actions/AddWSISchemaImportAction.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/AddWSISchemaImportAction.java
similarity index 98%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/actions/AddWSISchemaImportAction.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/AddWSISchemaImportAction.java
index a7b6671..182c6a4 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/actions/AddWSISchemaImportAction.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/AddWSISchemaImportAction.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/actions/BaseNodeAction.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/BaseNodeAction.java
similarity index 95%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/actions/BaseNodeAction.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/BaseNodeAction.java
index ced35be..e7fc8de 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/actions/BaseNodeAction.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/BaseNodeAction.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/CopyGlobalAction.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/CopyGlobalAction.java
new file mode 100644
index 0000000..ba45fde
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/CopyGlobalAction.java
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.actions;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.wst.wsdl.Operation;
+import org.eclipse.wst.wsdl.WSDLElement;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditor;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+
+public class CopyGlobalAction extends Action {
+  	private IEditorPart editor;
+  	private WSDLElement selection;
+  	
+  	public CopyGlobalAction(WSDLElement selection, IEditorPart editor) {
+  		setText(WSDLEditorPlugin.getWSDLString("_UI_ACTION_COPY"));
+  		this.selection = selection;
+  		this.editor = editor;
+  		setEnabledState();
+  	}
+  	
+  	public void run() {
+  		if (editor instanceof WSDLEditor) {
+  			((WSDLEditor) editor).setClipboardContents(selection);
+  			
+  			((WSDLEditor) editor).getSelectionManager().setSelection(new StructuredSelection(selection));
+  		}
+  	}
+  	
+  	public void setSelection(WSDLElement newSelection) {
+  		selection = newSelection;
+  		setEnabledState();
+  	}
+  	
+  	protected void setEnabledState() {
+  		if (selection instanceof Operation) {
+  			setEnabled(true);
+  		}
+  		else {
+  	  		setEnabled(false);
+  		}
+  	}
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/CopyWSDLElementAction.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/CopyWSDLElementAction.java
new file mode 100644
index 0000000..3f3d8af
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/CopyWSDLElementAction.java
@@ -0,0 +1,140 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.actions;
+
+import java.util.Iterator;
+import java.util.Map;
+
+import org.eclipse.gef.EditPartViewer;
+import org.eclipse.wst.wsdl.Operation;
+import org.eclipse.wst.wsdl.PortType;
+import org.eclipse.wst.wsdl.WSDLElement;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.eclipse.wst.wsdl.ui.internal.commands.AddOperationCommand;
+import org.eclipse.wst.wsdl.ui.internal.commands.WSDLElementCommand;
+import org.eclipse.wst.wsdl.ui.internal.graph.editparts.WSDLTreeNodeEditPart;
+import org.eclipse.wst.wsdl.ui.internal.util.NameUtil;
+import org.eclipse.wst.wsdl.ui.internal.util.WSDLEditorUtil;
+import org.w3c.dom.Node;
+
+/*
+ * Class which copies a WSDLElement and it's 'children' elements.
+ * For example, a copy command on a Operation will result in a copy
+ * of the operation and it's input/output/faults, and it's message
+ * and parts.
+ */
+public class CopyWSDLElementAction extends WSDLDragAction {
+	WSDLElement element, parent;
+	Node parentNode;
+	WSDLElementCommand wsdlElementCommand;
+	EditPartViewer editPartViewer;
+	
+	/*
+	 *  element = The WSDLElement being copied
+	 *  parent = The Parent of the 'new' WSDLElement
+	 *  parentNode = ElementImpl (for undo)
+	 */	
+	public CopyWSDLElementAction(EditPartViewer editPartViewer, WSDLElement element, WSDLElement parent, Node parentNode) {
+		setText("Copy WSDLElement");  // Do not Translate This
+		this.element = element;	
+		this.parent = parent;
+		this.parentNode = parentNode;
+		this.editPartViewer = editPartViewer;
+	}
+	
+	public boolean canExecute() {
+		if (element instanceof Operation){
+			if(parent instanceof PortType) {
+				PortType pt = (PortType) parent;
+				Operation op = (Operation) element;
+				wsdlElementCommand  = new AddOperationCommand(pt, op, NameUtil.buildUniqueOperationName(pt, op.getName()), true);		
+			}
+		}
+		/*
+		else if (element instanceof MessageReference) {
+	
+		}
+		else if (element instanceof Input) {
+
+		}
+		else if (element instanceof Output) {
+			
+		}
+		else if (element instanceof Fault) {
+			
+		}
+		else if (element instanceof Message) {
+			
+		}
+		*/
+		
+		if (wsdlElementCommand != null) {
+			return true;
+		}
+		else {
+			return false;
+		}
+	}
+	
+	public void run() {
+		if (wsdlElementCommand == null) {
+			if (canExecute()) {
+				runCommand();
+			}
+		}
+		 else {
+		 	runCommand();
+		 }
+	}
+	
+	private void runCommand() {
+	 	this.beginRecording();
+		wsdlElementCommand.run();
+		selectWSDLElement(wsdlElementCommand.getWSDLElement());
+		this.endRecording();
+	}
+	
+	private void selectWSDLElement(WSDLElement element) {
+		// Select the newly created element
+	    // Expand all the associated elements 'below' the given element
+	    Map editPartMap = editPartViewer.getEditPartRegistry();
+	    WSDLTreeNodeEditPart wsdlEditPart = (WSDLTreeNodeEditPart) editPartMap.get(element);
+	    if (wsdlEditPart != null) {
+	    	editPartViewer.select(wsdlEditPart);
+		    expandEditParts(element, true);
+	    }
+	}
+	
+	private void expandEditParts(Object element, boolean expandChildren) {
+	    if (element != null) {
+	    	Map editPartMap = editPartViewer.getEditPartRegistry();
+	    	WSDLTreeNodeEditPart wsdlEditPart = (WSDLTreeNodeEditPart) editPartMap.get(element);
+			wsdlEditPart.setExpanded(true);
+			
+			if (expandChildren) {
+				Iterator iterator = WSDLEditorUtil.getModelGraphViewChildren(element).iterator();
+				
+				while (iterator.hasNext()) {
+					expandEditParts(iterator.next(), expandChildren);
+				}
+			}
+	    }
+	}
+	
+	// Inherited classes from BaseNodeAction
+	  public Node getNode() {
+	  	return parentNode;
+	  }
+	  
+	  public String getUndoDescription() {
+	  	return WSDLEditorPlugin.getWSDLString("_UI_ACTION_COPY");
+	  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/CreateDocActionDelegate.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/CreateDocActionDelegate.java
new file mode 100644
index 0000000..4e4b9c5
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/CreateDocActionDelegate.java
@@ -0,0 +1,324 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.actions;
+
+import java.io.File;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspace;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.wizard.IWizard;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IEditorActionDelegate;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IFileEditorInput;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.actions.ActionDelegate;
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+import org.eclipse.ui.dialogs.WizardNewFolderMainPage;
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.part.ISetSelectionTarget;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+
+
+public class CreateDocActionDelegate extends ActionDelegate implements IEditorActionDelegate
+{
+  protected IFile iFile;
+  protected IEditorPart editorPart;
+
+  protected final static String WSDLEDITOR_DOCGEN_PLUGIN_ID = "org.eclipse.wst.wsdl.ui.internal.docgen"; //$NON-NLS-1$
+  protected final static String VALIDATE_WSDL_PLUGIN_ID = "org.eclipse.wst.validate.wsdl"; //$NON-NLS-1$
+
+  protected IWorkspaceRoot workspaceRoot = null;
+
+  public CreateDocActionDelegate()
+  {
+  }
+
+  public void setFile(IFile iFile)
+  {
+    this.iFile = iFile;
+  }
+
+  public void setEditorPart(IEditorPart editorPart)
+  {
+    this.editorPart = editorPart;
+  }
+
+  public void run(IAction action)
+  {
+// TODO: Uncomment when validation is checked into corona    
+//    ISharedService validateSharedService = ExtensionPlugin.getSharedService("ValidateWSDLSharedService"); //$NON-NLS-1$
+//    System.out.println(validateSharedService);
+//    if (validateSharedService != null)
+//    {
+//      try
+//      {
+//        Boolean rc = (Boolean) validateSharedService.run(iFile);
+//        if (rc.booleanValue())
+//        {
+          NewWSDLDocFolderWizard wiz = new NewWSDLDocFolderWizard();
+          NewWSDLDocDialog dlg = new NewWSDLDocDialog(WSDLEditorPlugin.getShell(), wiz);
+          dlg.open();
+//        }
+//        else
+//        {
+//          MessageDialog.openError(Display.getCurrent().getActiveShell(), WSDLEditorPlugin.getWSDLString("_UI_ERROR_INVALID_WSDL"), //$NON-NLS-1$
+//          WSDLEditorPlugin.getWSDLString("_UI_ERROR_INVALID_WSDL_DESC")); //$NON-NLS-1$
+//        }
+//      }
+//      catch (Exception e)
+//      {
+//      }
+//    }
+//    else
+//    {
+//      MessageDialog.openError(Display.getCurrent().getActiveShell(), "Error", //$NON-NLS-1$
+//      "Cannot find validator"); //$NON-NLS-1$
+//    }
+  }
+
+  class GenHTMLOperation extends WorkspaceModifyOperation
+  {
+    IFile iFile;
+    String outputLocation;
+    public GenHTMLOperation(IFile iFile)
+    {
+      super();
+      this.iFile = iFile;
+    }
+
+    public void setOutputLocation(String outputLocation)
+    {
+      this.outputLocation = outputLocation;
+    }
+
+    protected void execute(IProgressMonitor monitor) throws CoreException
+    {
+    	/*
+      monitor.beginTask(WSDLEditorPlugin.getWSDLString("_UI_LABEL_CREATING_HTML_FILES"), IProgressMonitor.UNKNOWN); //$NON-NLS-1$
+      WSDLDoc doc = new WSDLDoc(new WSDLDocFileWriter());
+
+      try
+      {
+        Plugin plugin = Platform.getPlugin("org.eclipse.wst.wsdl.ui.internal.docgen"); //$NON-NLS-1$
+        IPath installPath = new Path(plugin.getDescriptor().getInstallURL().toExternalForm()).removeTrailingSeparator();
+        String installStr = Platform.asLocalURL(new URL(installPath.toString())).getFile();
+        Path docgenPath = new Path(installStr);
+
+        doc.setTemplateLocation(docgenPath.toOSString() + "template" + File.separator); //$NON-NLS-1$
+        doc.setOptions(iFile.getRawLocation().removeLastSegments(1).toOSString(), outputLocation, "");
+
+        doc.addFile(iFile.getName());
+        doc.doBuildStep();
+      }
+      catch (Exception e)
+      {
+        // e.printStackTrace(); 
+      }
+      finally
+      {
+        monitor.done();
+      }
+      */
+    }
+  }
+
+  class WSDLDocNewFolderMainPage extends WizardNewFolderMainPage
+  {
+    public WSDLDocNewFolderMainPage(String pageName)
+    {
+      super(pageName, new StructuredSelection(iFile));
+      setDescription(WSDLEditorPlugin.getWSDLString("_UI_LABEL_CREATE_FOLDER_FOR_DOCS")); //$NON-NLS-1$
+    }
+  }
+
+  class NewWSDLDocFolderWizard extends Wizard
+  {
+    IFolder folder;
+
+    private WSDLDocNewFolderMainPage newFolderPage;
+
+    public NewWSDLDocFolderWizard()
+    {
+      super();
+      setNeedsProgressMonitor(true);
+    }
+
+    public boolean performFinish()
+    {
+      folder = newFolderPage.createNewFolder();
+      if (folder == null)
+      {
+        MessageDialog.openError(WSDLEditorPlugin.getShell(), WSDLEditorPlugin.getWSDLString("_UI_ERROR_ERROR"), //$NON-NLS-1$
+        WSDLEditorPlugin.getWSDLString("_UI_ERROR_FOLDER_NOT_CREATED")); //$NON-NLS-1$
+        return false;
+      }
+
+      GenHTMLOperation op = new GenHTMLOperation(iFile);
+      op.setOutputLocation(folder.getLocation().toOSString());
+
+      try
+      {
+        op.execute(new NullProgressMonitor());
+
+        // refresh folder and open index.html in web browser
+        folder.refreshLocal(IResource.DEPTH_INFINITE, null);
+        String indexHtmlFile = folder.getLocation().toOSString() + File.separator + "index.html"; //$NON-NLS-1$
+        IFile indexHtmlIFile = getWorkspaceFileFromLocalLocation(indexHtmlFile);
+        if (indexHtmlIFile != null && indexHtmlIFile.exists())
+        {
+          revealSelection(new StructuredSelection(indexHtmlIFile));
+          
+          openEditor(indexHtmlIFile, "org.eclipse.webbrowser"); //$NON-NLS-1$
+        }
+        else
+        {
+          MessageDialog.openError(Display.getCurrent().getActiveShell(), WSDLEditorPlugin.getWSDLString("_UI_ERROR_ERROR"), //$NON-NLS-1$
+          WSDLEditorPlugin.getWSDLString("_UI_ERROR_CREATING_HTML_FILES")); //$NON-NLS-1$
+        }
+      }
+      catch (CoreException ce)
+      {
+        //        ce.printStackTrace();
+      }
+      catch (Exception e)
+      {
+        //        e.printStackTrace();
+      }
+      return true;
+    }
+
+    protected void revealSelection(final ISelection selection)
+    {
+      if (selection != null)
+      {
+        IWorkbench workbench = WSDLEditorPlugin.getInstance().getWorkbench();
+        final IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
+        final IWorkbenchPart focusPart = workbenchWindow.getActivePage().getActivePart();
+        if (focusPart instanceof ISetSelectionTarget)
+        {
+          Display.getCurrent().asyncExec
+          (new Runnable()
+              {
+            public void run()
+            {
+              ((ISetSelectionTarget)focusPart).selectReveal(selection);
+            }
+          });
+        }
+      }
+    }
+    
+    protected void openEditor(final IFile iFile, final String editorId)
+    {
+      if (iFile != null)
+      {
+        IWorkbench workbench = WSDLEditorPlugin.getInstance().getWorkbench();
+        final IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
+
+        Display.getDefault().asyncExec
+        (new Runnable()
+            {
+          public void run()
+          {
+            try
+            {
+              workbenchWindow.getActivePage().openEditor(new FileEditorInput(iFile), editorId);
+            }
+            catch (PartInitException ex)
+            {
+//              B2BGUIPlugin.getPlugin().getMsgLogger().write("Exception encountered when attempting to open file: " + iFile + "\n\n" + ex);
+            }
+          }
+        });
+      }
+    }
+    
+    protected IFile getWorkspaceFileFromLocalLocation(String fileName)
+    {
+      IWorkspace workspace = ResourcesPlugin.getWorkspace();
+      if (workspace != null)
+      {
+        IFile iFile = workspace.getRoot().getFileForLocation(new Path(fileName));
+        if (iFile != null)
+        {
+          return iFile;
+        }
+      }
+      return null;
+    }
+    
+    public void addPages()
+    {
+      newFolderPage = new WSDLDocNewFolderMainPage(WSDLEditorPlugin.getWSDLString("_UI_LABEL_NEW_FOLDER")); //$NON-NLS-1$
+      addPage(newFolderPage);
+    }
+
+    public boolean canFinish()
+    {
+      if (newFolderPage.isPageComplete())
+      {
+        return true;
+      }
+      return false;
+    }
+
+    public IFolder getFolder()
+    {
+      return folder;
+    }
+  }
+
+  class NewWSDLDocDialog extends WizardDialog
+  {
+    public NewWSDLDocDialog(Shell parentShell, IWizard newWizard)
+    {
+      super(parentShell, newWizard);
+    }
+  }
+
+  public void setActiveEditor(IAction action, IEditorPart targetEditor)
+  {
+    editorPart = targetEditor;
+    iFile = null;
+    if (editorPart != null)
+    {
+      IEditorInput input = targetEditor.getEditorInput();
+      if (input instanceof IFileEditorInput)
+      {
+        iFile = ((IFileEditorInput) input).getFile();
+      }
+    }
+  }
+
+  public void selectionChanged(IAction action, ISelection selection)
+  {
+  }
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/DeleteAction.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/DeleteAction.java
new file mode 100644
index 0000000..b9b0612
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/DeleteAction.java
@@ -0,0 +1,358 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.actions;
+
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Vector;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+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.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.wst.wsdl.Definition;
+import org.eclipse.wst.wsdl.Fault;
+import org.eclipse.wst.wsdl.Message;
+import org.eclipse.wst.wsdl.Operation;
+import org.eclipse.wst.wsdl.Part;
+import org.eclipse.wst.wsdl.PortType;
+import org.eclipse.wst.wsdl.WSDLElement;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
+import org.eclipse.xsd.XSDSchema;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+public class DeleteAction extends BaseNodeAction {
+	 protected List list;
+	 protected String deleteString = WSDLEditorPlugin.getWSDLString("_UI_ACTION_DELETE") + " "; //$NON-NLS-1$
+//	 private Object object;
+//	 private Node node;
+	
+	public DeleteAction(Object object, Node node) {
+		setText(WSDLEditorPlugin.getWSDLString("_UI_ACTION_DELETE"));  //$NON-NLS-1$
+	    list = new Vector();
+	    list.add(object);
+	}
+	
+	public DeleteAction(List deleteList) {
+		setText(WSDLEditorPlugin.getWSDLString("_UI_ACTION_DELETE"));  //$NON-NLS-1$
+	    list = deleteList;
+	}
+
+	private Vector getReferencedMessages(Operation operation) {
+		Vector messages = new Vector();
+		messages.addAll(getMessages(operation.getEFaults()));
+		
+		if (operation.getEInput() != null && operation.getEInput().getEMessage() != null)
+			messages.addElement(operation.getEInput().getEMessage());
+		if (operation.getEOutput() != null && operation.getEOutput().getEMessage() != null)
+			messages.addElement(operation.getEOutput().getEMessage());
+		
+		return messages;
+	}
+	
+	public void run() {
+		// We want to delete Operations first.  So we need to sort the list
+		List sortedList = new ArrayList(list.size());
+		Iterator listIterator = list.iterator();
+		
+		while (listIterator.hasNext()) {
+			Object unsortedObject = listIterator.next();
+			if (unsortedObject instanceof Operation) {
+				sortedList.add(0, unsortedObject);
+			}
+			else {
+				sortedList.add(unsortedObject);
+			}
+		}
+		
+		Node recordingNode = null;
+		if (sortedList.size() > 1) {
+			recordingNode = getElement(sortedList.get(0));
+			beginRecording(recordingNode, WSDLEditorPlugin.getWSDLString("_UI_ACTION_MULTIPLE_DELETE"));
+		}
+		
+		Iterator iterator = sortedList.iterator();
+		while (iterator.hasNext()) {
+			Object object = iterator.next();
+			
+			if (object instanceof Operation) {
+				deleteOperation((Operation) object);
+			}
+			else if (object instanceof Part) {
+				deletePart((Part) object);
+			}
+			else {
+				DeleteNodeAction deleteNodeAction = new DeleteNodeAction(getElement(object));
+				deleteNodeAction.run();
+			}
+		}
+		
+		if (recordingNode != null) {
+			endRecording(recordingNode);
+		}
+	}
+	
+	private Vector getMessages(List faults) {
+		Vector v = new Vector();
+		Iterator it = faults.iterator();
+		
+		while (it.hasNext()) {
+			Fault fault = (Fault) it.next();
+			if (fault.getEMessage() != null) {
+				v.addElement(fault.getEMessage());
+			}
+		}
+		
+		return v;
+	}
+	
+	private Vector getParts(Vector messages) {
+		Vector parts = new Vector();
+		Iterator it = messages.iterator();
+		
+		while (it.hasNext()) {
+			Message message = (Message) it.next();
+			
+			if (message.getEParts() != null) {
+				parts.addAll(message.getEParts());
+			}
+		}
+		
+		return parts;
+	}
+	
+	public Node getNode()
+	{
+	  return list.size() > 0 ? (Node) getElement(list.get(0)) : null;
+	} 
+
+	public String getUndoDescription()
+	{
+	  return WSDLEditorPlugin.getWSDLString("_UI_ACTION_DELETE"); //$NON-NLS-1$
+	}
+	
+	private void deleteOperation(Operation operation) {
+		DeleteOperationDialog dialog = new DeleteOperationDialog(WSDLEditorPlugin.getShell(), operation.getName());
+	    int returnCode = dialog.createAndOpen();
+	    
+	    if (returnCode == IDialogConstants.OK_ID) {
+	    	if (dialog.deleteMessagesAndParts()) {
+	    		// Get all associated messages
+	    		Vector messages = getReferencedMessages(operation);
+	    		
+	    		// Determine which Messages are referenced from 'outside' this operation
+	    		Vector referencedMessages = new Vector();
+	    		if (operation.getEnclosingDefinition().getEPortTypes() != null) {
+	    			Iterator portTypeIterator = operation.getEnclosingDefinition().getEPortTypes().iterator();
+	    			Vector operations = new Vector();
+	    			
+	    			while (portTypeIterator.hasNext()) {
+	    				PortType portType = (PortType) portTypeIterator.next();
+	    				
+	    				if (portType.getEOperations() != null) {
+	    					Iterator operationIterator = portType.getEOperations().iterator();
+	    					while (operationIterator.hasNext()) {
+	    						Operation nextOperation = (Operation) operationIterator.next();
+	    						if (!nextOperation.equals(operation))
+	    							operations.add(nextOperation);
+	    					}
+	    				}
+	    			}
+	    			
+	    			for (int index = 0; index < operations.size(); index++) {
+	    				referencedMessages.addAll(getReferencedMessages((Operation) operations.elementAt(index)));
+	    			}
+	    		
+	    			// Filter which Messages need to be deleted
+	    			for (int index = 0; index < messages.size(); index++) {
+	    				int foundIndex = referencedMessages.indexOf(messages.elementAt(index));
+	    				
+	    				if (foundIndex != -1) {
+	    					// Message is referenced elsewhere.  Do not delete
+	    					messages.remove(index);
+	    				}
+	    			}
+	    		}
+	    		
+	    		// Get all associated parts
+	    		Vector parts = getParts(messages);
+	    		
+	    		// Remove our list of Messages and Parts
+	    		PortType portType = (PortType) operation.eContainer();
+	    		Node recordingNode = portType.getEnclosingDefinition().getElement();
+	    		beginRecording(recordingNode, deleteString + WSDLEditorPlugin.getWSDLString("_UI_LABEL_OPERATION"));
+	    		
+	    		for (int index = 0; index < messages.size(); index++) {
+	    			Message message = (Message) messages.elementAt(index);
+	    			Definition definition = (Definition) message.eContainer();
+	    			definition.getEMessages().remove(message);
+	    		}
+
+	    		for (int index = 0; index < parts.size(); index++) {
+	    			Part part = (Part) parts.elementAt(index);
+	    			Message message = (Message) part.eContainer();
+	    			message.getEParts().remove(part);
+	    		}
+	    		
+	    		// Delete the Operation
+	    		portType.getEOperations().remove(operation);
+
+	    		endRecording(recordingNode);
+	    	}
+	    	else {
+	    		// Only delete the Operation
+	    		PortType portType = (PortType) operation.eContainer();
+	    		Node recordingNode = portType.getElement();
+	    		
+	    		beginRecording(recordingNode, deleteString + WSDLEditorPlugin.getWSDLString("_UI_LABEL_OPERATION")); // Translate this!!!
+	    		portType.getEOperations().remove(operation);
+	    		endRecording(recordingNode);
+	    	}
+	    }
+	}
+	
+	private void deletePart(Part part) {
+		Message message = (Message) part.eContainer();
+		if (message != null) {
+			beginRecording(message.getElement(), deleteString + WSDLEditorPlugin.getWSDLString("_UI_LABEL_PART"));
+			message.getEParts().remove(part);
+			endRecording(message.getElement());
+		}
+	}
+	
+	private Element getElement(Object object) {
+		Element element = null;
+		if (object instanceof WSDLElement) {
+			element = ((WSDLElement) object).getElement();
+		}
+		else if (object instanceof XSDSchema) {
+			element = ((XSDSchema) object).getElement();
+		}
+		
+		return element;
+	}
+	
+	/*
+	 * The following method should be used to begin recording changes.
+	 * This should eventually replace BaseNodeAction.beginRecording()
+	 * when all deletes are model driven.
+	 */
+	  private void beginRecording(Node node, String undoDescription)
+	  {    
+	    if (node instanceof IDOMNode)
+	    {
+	      ((IDOMNode)node).getModel().beginRecording(this, undoDescription);  
+	    }
+	  }
+
+	/*
+	 * The following method should be used to begin recording changes.
+	 * This should eventually replace BaseNodeAction.beginRecording()
+	 * when all deletes are model driven.
+	 */
+	  public void endRecording(Node node)
+	  {
+	    if (node instanceof IDOMNode)
+	    {
+	      ((IDOMNode)node).getModel().endRecording(this);  
+	    }
+	  }
+	
+	private class DeleteOperationDialog extends Dialog implements SelectionListener{
+		private Button checkButton = null;
+		private boolean deleteMessagesAndParts = true;
+		private String operationName;
+		 
+		public DeleteOperationDialog(Shell shell, String name) {
+			super(shell);
+			operationName = name;
+		}
+		
+		protected Control createDialogArea(Composite parent) 
+		  {
+		    Composite dialogArea = (Composite)super.createDialogArea(parent);
+
+		    Composite composite = new Composite(dialogArea, SWT.NONE);
+		    GridLayout layout = new GridLayout();
+		    layout.numColumns = 2;
+		    layout.marginWidth = 0;
+		    layout.marginHeight = 0;
+		    layout.verticalSpacing = 0;
+
+		    composite.setLayout(layout);
+
+		    GridData gdFill= new GridData();
+		    gdFill.horizontalAlignment= GridData.FILL;
+		    gdFill.grabExcessHorizontalSpace= true;
+		    gdFill.verticalAlignment= GridData.FILL;
+		    gdFill.grabExcessVerticalSpace= true;
+		    composite.setLayoutData(gdFill);
+
+		    Label label = new Label(composite, SWT.NONE);
+		    label.setText(operationName);
+//		    label.setText(WSDLEditorPlugin.getWSDLString("_UI_LABEL_OPERATION") + " " + operationName);
+		    GridData labelData = new GridData();
+		    labelData.horizontalSpan = 2;
+		    
+		    label.setLayoutData(labelData);
+		    
+		    Label emptyLabel = new Label(composite, SWT.NONE);
+		    GridData emptyData = new GridData();
+		    emptyData.horizontalSpan = 2;
+		    emptyLabel.setLayoutData(emptyData);
+
+		    checkButton = new Button(composite, SWT.CHECK);
+		    checkButton.setSelection(deleteMessagesAndParts);
+		    checkButton.addSelectionListener(this);
+		    Label nameLabel = new Label(composite, SWT.NONE);
+		    nameLabel.setText(WSDLEditorPlugin.getWSDLString("_UI_DELETE_ASSOCIATED_MSG_AND_PARTS"));
+		    
+		    return dialogArea;
+		  }
+		
+		public boolean deleteMessagesAndParts() {
+			return deleteMessagesAndParts;
+		}
+		
+		public void widgetDefaultSelected(SelectionEvent e)  {}
+
+		public void widgetSelected(SelectionEvent e)  {
+			if (e.widget == checkButton) {
+				if (checkButton.getSelection()) {
+					deleteMessagesAndParts = true;
+				}
+				else {
+					deleteMessagesAndParts = false;
+				}
+			}
+		}
+
+		public int createAndOpen() {
+			create();
+		    getShell().setText(WSDLEditorPlugin.getWSDLString("_UI_DELETE_OPERATION_TITLE"));
+		    setBlockOnOpen(true);
+		    return open();
+		}
+		
+	}
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/actions/IWSDLToolbarAction.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/DeleteInterfaceAction.java
similarity index 68%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/actions/IWSDLToolbarAction.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/DeleteInterfaceAction.java
index e8fb25f..1764287 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/actions/IWSDLToolbarAction.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/DeleteInterfaceAction.java
@@ -1,18 +1,20 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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.actions;
 
-import org.eclipse.jface.action.IAction;
-import org.eclipse.ui.IEditorPart;
+import java.util.List;
 
-public interface IWSDLToolbarAction extends IAction{
-	public void setEditorPart(IEditorPart editorPart);
-}
\ No newline at end of file
+public interface DeleteInterfaceAction {
+
+	public void setDeleteList(List list);
+	
+	public void run();
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/DeleteNodeAction.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/DeleteNodeAction.java
new file mode 100644
index 0000000..f4e2931
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/DeleteNodeAction.java
@@ -0,0 +1,87 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.actions; 
+                      
+import java.util.Iterator;
+import java.util.List;
+import java.util.Vector;
+
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.w3c.dom.Attr;
+import org.w3c.dom.Node;
+
+
+public class DeleteNodeAction extends BaseNodeAction
+{ 
+  protected List list;
+
+  public DeleteNodeAction(Node node)
+  {
+    setText(WSDLEditorPlugin.getWSDLString("_UI_ACTION_DELETE"));  //$NON-NLS-1$
+    list = new Vector();
+    list.add(node);
+  }    
+  
+  public DeleteNodeAction(List nodeList)
+  {
+    setText(WSDLEditorPlugin.getWSDLString("_UI_ACTION_DELETE"));  //$NON-NLS-1$
+    list = new Vector();
+    Iterator it = nodeList.iterator();
+    while (it.hasNext()) {
+    	list.add(it.next());
+    }
+  }
+
+  public void run()
+  {
+    beginRecording();
+
+    for (Iterator i = list.iterator(); i.hasNext(); )
+    {
+      Node node = (Node)i.next();
+      if (node.getNodeType() == Node.ATTRIBUTE_NODE)
+      {
+        Attr attr = (Attr)node;
+        attr.getOwnerElement().removeAttributeNode(attr);
+      }
+      else
+      {                
+        Node parent = node.getParentNode();
+        if (parent != null)
+        {                                         
+          Node previousSibling = node.getPreviousSibling();
+          if (previousSibling != null && isWhitespaceTextNode(previousSibling))
+          {
+            parent.removeChild(previousSibling);
+          }
+          parent.removeChild(node);
+        }
+      }
+    }         
+
+    endRecording();
+  }   
+
+  protected boolean isWhitespaceTextNode(Node node) 
+  {
+	  return (node != null) && (node.getNodeType() == Node.TEXT_NODE) && (node.getNodeValue().trim().length() == 0);
+  }    
+
+  public Node getNode()
+  {
+    return list.size() > 0 ? (Node)list.get(0) : null;
+  } 
+
+  public String getUndoDescription()
+  {
+    return WSDLEditorPlugin.getWSDLString("_UI_ACTION_DELETE"); //$NON-NLS-1$
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/DeleteWSDLAndXSDAction.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/DeleteWSDLAndXSDAction.java
new file mode 100644
index 0000000..731b0aa
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/DeleteWSDLAndXSDAction.java
@@ -0,0 +1,195 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.actions;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.wst.wsdl.Definition;
+import org.eclipse.wst.wsdl.WSDLElement;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditor;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.eclipse.wst.wsdl.ui.internal.extension.WSDLEditorExtension;
+import org.eclipse.wst.wsdl.ui.internal.extension.WSDLEditorExtensionRegistry;
+import org.eclipse.xsd.XSDConcreteComponent;
+import org.eclipse.xsd.XSDParticle;
+import org.eclipse.xsd.XSDSchema;
+import org.w3c.dom.Node;
+
+
+/**
+ * This class handles delete with the WSDL Editor's graph view.  the object for
+ * deletion could be a WSDL 'object' or an XSD 'object'.  We need to make this
+ * distinction because we have two different Delete classes.  One to handle
+ * WSDL and another to handle XSD.
+ */
+public class DeleteWSDLAndXSDAction extends BaseNodeAction {
+	List list;
+	Node recordingNode;
+	WSDLEditor wsdlEditor;
+
+	public DeleteWSDLAndXSDAction(List deleteList, Node recordingNode, WSDLEditor wsdlEditor) {
+		setText(WSDLEditorPlugin.getWSDLString("_UI_ACTION_DELETE"));
+		list = deleteList;
+		this.recordingNode = recordingNode;
+		this.wsdlEditor = wsdlEditor;
+	}
+	
+	public void run() {
+		Iterator it = list.iterator();
+		List wsdlDeleteList = new ArrayList();
+		List xsdDeleteList = new ArrayList();
+
+		while (it.hasNext()) {
+			Object object = it.next();
+			
+			if (object instanceof WSDLElement || object instanceof XSDSchema) {
+				wsdlDeleteList.add(object);
+			}
+			else {
+				xsdDeleteList.add(object);
+			}
+		}
+		
+		Object newSelection = null;
+		Object topLevelObject = null;
+		if (wsdlDeleteList.size() > 0 || xsdDeleteList.size() > 0)
+		{	
+			try
+			{
+			beginRecording();	
+				
+		
+		// Delete WSDL objects
+		if (wsdlDeleteList.size() > 0) {
+			Object wsdlObject = wsdlDeleteList.get(0);
+			if (wsdlObject instanceof WSDLElement) {
+				newSelection = ((WSDLElement) wsdlObject).eContainer();
+				topLevelObject = getTopLevelWSDLObject((WSDLElement) wsdlObject);
+			}
+			
+			DeleteAction wsdlDelete = new DeleteAction(wsdlDeleteList);
+			wsdlDelete.run();
+		}
+		
+		// Delete XSD objects
+		if (xsdDeleteList.size() > 0) {
+			Object xsdObject = xsdDeleteList.get(0);
+			if (xsdObject instanceof XSDConcreteComponent) {
+				newSelection = ((XSDConcreteComponent) xsdObject).getContainer();
+				topLevelObject = getTopLevelXSDObject((XSDConcreteComponent) xsdObject);
+			}
+			
+			DeleteInterfaceAction xsdDelete = (DeleteInterfaceAction) getXSDDelete();
+			xsdDelete.setDeleteList(xsdDeleteList);
+			xsdDelete.run();
+			// Hack to force a refresh of all components of the Graph View.  This is needed
+			// for the case where we delete a XSD Element (View input == Definition).  The XSD
+			// Element EditPart visual would not be removed from the view.
+			wsdlEditor.getDefinition().setQName(wsdlEditor.getDefinition().getQName());
+		}
+			}
+			finally
+			{
+			  endRecording();
+			}
+			// Make our selection after our Deletions
+			ISelectionProvider selectionProvider = (ISelectionProvider)wsdlEditor.getSelectionManager();
+		    if (selectionProvider != null)
+		    {
+		    	if (newSelection instanceof XSDParticle)
+	            {
+	              newSelection = ((XSDParticle) newSelection).getContainer();
+	            }
+	    		
+		    	if (newSelection == null) {
+		    		newSelection = getNewSelection();
+		    	}
+		    	if (newSelection != null) {
+		    		// We have a newSelection, but it may also be deleted by the user.  In this case, select the top level object
+		    		if (list.contains(newSelection) && topLevelObject != null) {
+		    			newSelection = topLevelObject;
+		    		}
+
+		    		selectionProvider.setSelection(new StructuredSelection(newSelection));
+		    	}
+		    }
+		}
+	}
+	
+	public Node getNode()
+	{
+	  return recordingNode;
+	}
+
+	public String getUndoDescription()
+	{
+	  return WSDLEditorPlugin.getWSDLString("_UI_ACTION_DELETE"); //$NON-NLS-1$
+	}
+
+	private Object getXSDDelete() {
+		WSDLEditorExtensionRegistry registry = WSDLEditorPlugin.getInstance().getWSDLEditorExtensionRegistry(); 
+	    WSDLEditorExtension[] extensions = registry.getRegisteredExtensions(WSDLEditorExtension.MENU_ACTION_CONTRIBUTOR);
+	    Object xsdDelete = null;
+	    
+	    for (int i = 0; i < extensions.length; i++)
+	    {
+//	    	xsdDelete = extensions[i].createExtensionObject(WSDLEditorExtension.XSD_DELETE_ACTION, wsdlEditor);
+	    	xsdDelete = extensions[i].createExtensionObject(WSDLEditorExtension.XSD_DELETE_ACTION, null);
+	    	if (xsdDelete != null) {
+	    		break;
+	    	}
+	    }	    
+	    
+	    return xsdDelete;
+	}
+	
+	private Object getNewSelection() {
+		// Hack using wsdleditor....  This situation occurs when we delete the Schema from the Types group....  We
+		// usually get the container of the object being deleted... however, in this situation, the container would
+		// be null because the object being deleted is a Schema......
+		Object selection;
+		try {
+			selection = wsdlEditor.getGraphViewer().getComponentViewer().getInput();
+			if (selection == null) {
+				selection = wsdlEditor.getDefinition();
+			}
+		}
+		catch (Exception e) {
+			selection = wsdlEditor.getDefinition();
+		}
+		
+		return selection;
+	}
+
+	private WSDLElement getTopLevelWSDLObject(WSDLElement element) {
+		WSDLElement topObject = (WSDLElement) element.eContainer();
+		
+		while (topObject != null && !(topObject instanceof Definition)) {
+			topObject = (WSDLElement) topObject.eContainer();
+		}
+
+		return topObject;
+	}
+	
+	private XSDConcreteComponent getTopLevelXSDObject(XSDConcreteComponent component) {
+		XSDConcreteComponent topObject = component.getContainer();
+		
+		while (topObject != null && !(topObject instanceof XSDSchema)) {
+			topObject = (XSDConcreteComponent) topObject.eContainer();
+		}
+
+		return topObject;
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/actions/EditNamespacesAction.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/EditNamespacesAction.java
similarity index 97%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/actions/EditNamespacesAction.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/EditNamespacesAction.java
index 5e9f5dd..d84926f 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/actions/EditNamespacesAction.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/EditNamespacesAction.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
@@ -21,7 +21,7 @@
 import org.eclipse.jface.dialogs.IDialogConstants;
 import org.eclipse.wst.wsdl.Definition;
 import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
-import org.eclipse.wst.wsdl.ui.internal.dialogs.EditNamespacesDialog;
+import org.eclipse.wst.wsdl.ui.internal.nsedit.EditNamespacesDialog;
 import org.eclipse.wst.wsdl.ui.internal.util.WSDLEditorUtil;
 import org.eclipse.wst.xml.core.internal.contentmodel.util.DOMNamespaceInfoManager;
 import org.eclipse.wst.xml.core.internal.contentmodel.util.NamespaceInfo;
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/ExtensibleMenuActionContributor.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/ExtensibleMenuActionContributor.java
new file mode 100644
index 0000000..7020db6
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/ExtensibleMenuActionContributor.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.actions;                        
+
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditor;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.eclipse.wst.wsdl.ui.internal.extension.IMenuActionContributor;
+import org.eclipse.wst.wsdl.ui.internal.extension.WSDLEditorExtension;
+import org.eclipse.wst.wsdl.ui.internal.extension.WSDLEditorExtensionRegistry;
+import org.w3c.dom.Node;
+
+
+public class ExtensibleMenuActionContributor implements IMenuActionContributor
+{                                                                   
+  protected WSDLEditor wsdlEditor;
+  protected IMenuActionContributor[] menuActionContributors;  
+
+  public ExtensibleMenuActionContributor(WSDLEditor wsdlEditor)
+  {
+    this.wsdlEditor = wsdlEditor; 
+
+    WSDLEditorExtensionRegistry registry = WSDLEditorPlugin.getInstance().getWSDLEditorExtensionRegistry(); 
+
+    WSDLEditorExtension[] extensions = registry.getRegisteredExtensions(WSDLEditorExtension.MENU_ACTION_CONTRIBUTOR);
+    menuActionContributors = new IMenuActionContributor[extensions.length];
+
+    for (int i = 0; i < menuActionContributors.length; i++)
+    {
+      menuActionContributors[i] = (IMenuActionContributor)extensions[i].createExtensionObject(WSDLEditorExtension.MENU_ACTION_CONTRIBUTOR, wsdlEditor);
+    }
+  }
+                           
+  public void contributeMenuActions(IMenuManager manager, Node node, Object object)
+  {  
+    for (int i = 0; i < menuActionContributors.length; i++)
+    {                          
+      if (menuActionContributors[i] != null)
+      {
+        menuActionContributors[i].contributeMenuActions(manager, node, object);
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/IDesignViewerActionBarContributor.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/IDesignViewerActionBarContributor.java
similarity index 86%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/IDesignViewerActionBarContributor.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/IDesignViewerActionBarContributor.java
index fc201a3..428695c 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/IDesignViewerActionBarContributor.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/IDesignViewerActionBarContributor.java
@@ -1,14 +1,14 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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;
+package org.eclipse.wst.wsdl.ui.internal.actions;
 
 import org.eclipse.ui.IActionBars;
 import org.eclipse.wst.sse.ui.internal.ISourceViewerActionBarContributor;
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/PasteGlobalAction.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/PasteGlobalAction.java
new file mode 100644
index 0000000..ef249c5
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/PasteGlobalAction.java
@@ -0,0 +1,79 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.actions;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.wst.wsdl.Operation;
+import org.eclipse.wst.wsdl.PortType;
+import org.eclipse.wst.wsdl.WSDLElement;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditor;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.w3c.dom.Node;
+
+public class PasteGlobalAction extends Action {
+	private IEditorPart editor;
+	private WSDLElement selection;
+	private Node selectionNode;
+	
+	public PasteGlobalAction(WSDLElement selection, IEditorPart editor) {
+		setText(WSDLEditorPlugin.getWSDLString("_UI_ACTION_PASTE"));  // Translate This
+		this.selection = selection;
+		this.editor = editor;
+		selectionNode = selection.getElement();
+		setEnabledState();
+	}
+	
+	public void run() {
+		if (editor instanceof WSDLEditor) {
+			WSDLEditor wsdlEditor = (WSDLEditor) editor;
+			CopyWSDLElementAction copyAction = new CopyWSDLElementAction(wsdlEditor.getGraphViewer().getComponentViewer(), wsdlEditor.getClipboardContents(), selection, selectionNode);
+			copyAction.run();
+		}
+	}
+	
+  	public void setSelection(WSDLElement newSelection) {
+  		selection = newSelection;
+  		setEnabledState();
+  	}
+  	
+  	protected void setEnabledState() {
+  		WSDLElement parentElement = null;
+  		if ((parentElement = showPasteAction((WSDLElement) selection, editor)) != null) {
+  			selection = parentElement;
+  			setEnabled(true);
+  		}
+  		else {
+  			setEnabled(false);
+  		}
+  	}
+  	
+  	 private WSDLElement showPasteAction(WSDLElement element, IEditorPart ePart) {
+  	  	WSDLElement parentElement = null;
+  	  	
+  	  	if (ePart instanceof WSDLEditor) {
+  	  		WSDLElement clipboardElement = ((WSDLEditor) ePart).getClipboardContents();
+  	  		
+  	  		if (element instanceof PortType) {
+  	  			if (clipboardElement instanceof Operation) {
+  	  				parentElement = element;
+  	  			}
+  	  		}
+  	  		if (element instanceof Operation) {
+  	  			if (clipboardElement instanceof Operation) {
+  	  				parentElement = (WSDLElement) ((Operation) element).eContainer();
+  	  			}
+  	  		}
+  	  	}
+  	  	
+  	  	return parentElement;
+  	  }
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/ReloadDependenciesActionDelegate.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/ReloadDependenciesActionDelegate.java
similarity index 78%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/ReloadDependenciesActionDelegate.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/ReloadDependenciesActionDelegate.java
index 2e2c438..6a04631 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/ReloadDependenciesActionDelegate.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/ReloadDependenciesActionDelegate.java
@@ -1,27 +1,28 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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;
+package org.eclipse.wst.wsdl.ui.internal.actions;
 
 import org.eclipse.jface.action.IAction;
 import org.eclipse.ui.IEditorActionDelegate;
 import org.eclipse.ui.IEditorPart;
 import org.eclipse.ui.actions.ActionDelegate;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditor;
 
 public class ReloadDependenciesActionDelegate extends ActionDelegate implements IEditorActionDelegate
 {
-	private InternalWSDLMultiPageEditor wsdlEditor;
+	private WSDLEditor wsdlEditor;
 
 	public void setActiveEditor(IAction action, IEditorPart targetEditor)
 	{
-		wsdlEditor = (targetEditor instanceof InternalWSDLMultiPageEditor) ? (InternalWSDLMultiPageEditor)targetEditor : null;
+		wsdlEditor = (targetEditor instanceof WSDLEditor) ? (WSDLEditor)targetEditor : null;
 	}
 
 	public void run(IAction action)
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/actions/RenameAction.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/RenameAction.java
similarity index 98%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/actions/RenameAction.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/RenameAction.java
index 2d37ef5..f6826e8 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/actions/RenameAction.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/RenameAction.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/SetExistingComponentAction.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/SetExistingComponentAction.java
new file mode 100644
index 0000000..3ff35e4
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/SetExistingComponentAction.java
@@ -0,0 +1,62 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.actions;
+
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.wst.wsdl.Part;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditor;
+import org.eclipse.wst.wsdl.ui.internal.dialogs.InvokeSetDialog;
+import org.w3c.dom.Node;
+
+
+
+public class SetExistingComponentAction extends AddElementAction
+{
+  Object input;
+  protected IEditorPart editorPart;
+  protected String kind;
+
+  public SetExistingComponentAction(
+    String text,
+    Node parentNode,
+    String prefix,
+    String localName,
+    Object input)
+  {
+    super(text, parentNode, prefix, localName);
+    this.input = input;
+  }
+
+  public void setEditor(IEditorPart editorPart)
+  {
+    this.editorPart = editorPart; 
+  }
+
+  public void setReferenceKind(String kind)
+  {
+    this.kind = kind;
+  }
+
+  protected void performAddElement()
+  {
+    InvokeSetDialog dialog = new InvokeSetDialog();
+    if (input instanceof Part)
+    {
+      dialog.setReferenceKind(kind);
+    }
+    dialog.run(input, editorPart);
+    
+    // We shouldn't know about the editor in this class
+    WSDLEditor editor = (WSDLEditor) editorPart;
+    editor.getSelectionManager().setSelection(new StructuredSelection(input));
+  }
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/SetNewComponentAction.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/SetNewComponentAction.java
new file mode 100644
index 0000000..f775e43
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/SetNewComponentAction.java
@@ -0,0 +1,336 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.actions;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.wst.wsdl.Binding;
+import org.eclipse.wst.wsdl.Definition;
+import org.eclipse.wst.wsdl.Fault;
+import org.eclipse.wst.wsdl.Input;
+import org.eclipse.wst.wsdl.Message;
+import org.eclipse.wst.wsdl.MessageReference;
+import org.eclipse.wst.wsdl.Output;
+import org.eclipse.wst.wsdl.Part;
+import org.eclipse.wst.wsdl.Port;
+import org.eclipse.wst.wsdl.WSDLElement;
+import org.eclipse.wst.wsdl.binding.soap.internal.util.SOAPConstants;
+import org.eclipse.wst.wsdl.internal.generator.BindingGenerator;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditor;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.eclipse.wst.wsdl.ui.internal.commands.AddMessageCommand;
+import org.eclipse.wst.wsdl.ui.internal.commands.AddXSDElementDeclarationCommand;
+import org.eclipse.wst.wsdl.ui.internal.commands.AddXSDTypeDefinitionCommand;
+import org.eclipse.wst.wsdl.ui.internal.commands.WSDLElementCommand;
+import org.eclipse.wst.wsdl.ui.internal.util.ComponentReferenceUtil;
+import org.eclipse.wst.wsdl.ui.internal.util.CreateWSDLElementHelper;
+import org.eclipse.wst.wsdl.ui.internal.util.NameUtil;
+import org.eclipse.wst.wsdl.ui.internal.util.WSDLEditorUtil;
+import org.eclipse.wst.wsdl.ui.internal.widgets.NewComponentDialog;
+import org.eclipse.xsd.XSDComplexTypeDefinition;
+import org.eclipse.xsd.XSDElementDeclaration;
+import org.eclipse.xsd.XSDSchema;
+import org.eclipse.xsd.XSDSimpleTypeDefinition;
+import org.eclipse.xsd.XSDTypeDefinition;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+/*
+ * TODO: Need to clean up this class.... We probably don't use quite a few of these
+ * methods/instance variables.
+ */
+public class SetNewComponentAction extends AddElementAction
+{
+  Object input;
+  protected IEditorPart editorPart;
+  protected String kind;
+  private String typeKind = "complex";      // TODO: Refactor code to handle this better
+
+  public SetNewComponentAction(
+    String text,
+    Node parentNode,
+    String prefix,
+    String localName,
+    Object input)
+  {
+    super(text, parentNode, prefix, localName);
+    this.input = input;
+  }
+
+  public void setEditor(IEditorPart editorPart)
+  {
+    this.editorPart = editorPart; 
+  }
+
+  public void setReferenceKind(String kind)
+  {
+    this.kind = kind;
+  }
+  
+  public void setTypeKind(String typeKind)
+  {
+      this.typeKind = typeKind;
+  }
+
+  // TODO: Clean up next methods below!!!
+  private WSDLElementCommand command;
+  private String newDialogTitle = WSDLEditorPlugin.getWSDLString("_UI_LABEL_NEW_COMPONENT");
+  
+  protected void performAddElement()
+  {
+    Shell shell = Display.getCurrent().getActiveShell();
+    String defaultName = getDefaultName();
+    NewComponentDialog dialog = new NewComponentDialog(shell, newDialogTitle, defaultName, getUsedNames());
+
+    int dialogCode = dialog.createAndOpen();
+    
+    if (dialogCode == Window.OK) {
+        if (input instanceof Port) {
+            Definition definition = ((Port) input).getEnclosingDefinition();
+            String newName = dialog.getName();
+            
+            // TODO: We should be smarter in choosing some default options/settings for generating a new Binding
+//            BindingGenerator bindingGenerator = new BindingGenerator(definition);
+//            bindingGenerator.setName(newName);
+//            bindingGenerator.setProtocol("SOAP");
+//            bindingGenerator.generate();
+			BindingGenerator bindingGenerator = new BindingGenerator(definition, null, SOAPConstants.SOAP_NAMESPACE_URI);
+			bindingGenerator.setName(newName);
+			bindingGenerator.generateBinding();
+            
+          String itemPrefix = definition.getPrefix(definition.getTargetNamespace());
+          if (itemPrefix == null)
+          {
+            itemPrefix = "";
+          }
+          org.w3c.dom.Element wsdlElement = WSDLEditorUtil.getInstance().getElementForObject((WSDLElement) input);
+          wsdlElement.setAttribute("binding", itemPrefix.length() == 0 ? newName : itemPrefix + ":" + newName);     
+          
+        }
+        else if (input instanceof Binding) {            
+            Definition definition = ((Binding) input).getEnclosingDefinition();
+            Element definitionElement = WSDLEditorUtil.getInstance().getElementForObject(definition);
+            
+            String newName = dialog.getName();
+            String prefix = definitionElement.getPrefix();
+            // Use AddMessageAction in WSDLMenuActionContributor
+            AddElementAction addPortTypeAction = new AddElementAction("", "icons/message_obj.gif", definitionElement, prefix, "portType"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+            addPortTypeAction.setComputeTopLevelRefChild(true);
+            addPortTypeAction.run();
+            org.w3c.dom.Element newMessage = addPortTypeAction.getNewElement();
+            newMessage.setAttribute("name", newName); //$NON-NLS-1$
+            // need to get the prefix for the item
+            // could get list of updated messages and then select but currently we only have the local name
+            String itemPrefix = definition.getPrefix(definition.getTargetNamespace());
+            if (itemPrefix == null)
+            {
+              itemPrefix = ""; //$NON-NLS-1$
+            }
+            String portTypeValue = itemPrefix.length() == 0 ? newName : itemPrefix + ":" + newName; //$NON-NLS-1$ //$NON-NLS-2$
+
+            // Set the component
+            if (input != null && portTypeValue != null) {
+                org.w3c.dom.Element wsdlElement = WSDLEditorUtil.getInstance().getElementForObject((WSDLElement) input);
+                wsdlElement.setAttribute("type", portTypeValue);
+            } 
+        }
+        else if (input instanceof Input || input instanceof Output || input instanceof Fault) {
+            Definition definition = ((MessageReference) input).getEnclosingDefinition();
+            String newName = dialog.getName();
+
+            AddMessageCommand action = new AddMessageCommand(definition, newName);
+            action.run();
+            Message message = (Message) action.getWSDLElement();
+            CreateWSDLElementHelper.PART_TYPE_OR_DEFINITION = CreateWSDLElementHelper.getPartInfo(message); 
+            CreateWSDLElementHelper.createPart(message);
+
+          // need to get the prefix for the item
+          // could get list of updated messages and then select but currently we only have the local name
+          String itemPrefix = definition.getPrefix(definition.getTargetNamespace());
+          if (itemPrefix == null)
+          {
+            itemPrefix = ""; //$NON-NLS-1$
+          }
+          org.w3c.dom.Element wsdlElement = WSDLEditorUtil.getInstance().getElementForObject((WSDLElement) input);
+          wsdlElement.setAttribute("message", itemPrefix.length() == 0 ? newName : itemPrefix + ":" + newName); //$NON-NLS-1$ //$NON-NLS-2$
+        }
+        else if (input instanceof Part) {
+            Definition definition = ((Part) input).getEnclosingDefinition();
+            String referencingPrefix = definition.getPrefix(definition.getTargetNamespace());
+            String newName = dialog.getName();
+            
+            if (kind.equalsIgnoreCase("type")) {
+                if (typeKind.equalsIgnoreCase("complex")) {
+                    ((AddXSDTypeDefinitionCommand) command).isComplexType(true);    
+                }
+                else {
+                    ((AddXSDTypeDefinitionCommand) command).isComplexType(false);
+                }                
+                ((AddXSDTypeDefinitionCommand) command).run(newName);
+                ComponentReferenceUtil.setComponentReference((Part) input, true, referencingPrefix.equals("") ? newName : referencingPrefix + ":" + newName);
+            }
+            else if (kind.equalsIgnoreCase("element")) {
+                ((AddXSDElementDeclarationCommand) command).run(newName);
+                ComponentReferenceUtil.setComponentReference((Part) input, false, referencingPrefix.equals("") ? newName : referencingPrefix + ":" + newName);
+            }
+        }
+        
+        // We shouldn't know about the editor in this class
+      WSDLEditor editor = (WSDLEditor) editorPart;
+      editor.getSelectionManager().setSelection(new StructuredSelection(input));
+    }
+  }
+  
+  private List getUsedNames() {
+      if (input instanceof Port) {
+          Definition definition = ((Port) input).getEnclosingDefinition();
+          return NameUtil.getUsedBindingNames(definition);
+      }
+      else if (input instanceof Binding) {
+          Definition definition = ((Binding) input).getEnclosingDefinition();
+          return NameUtil.getUsedPortTypeNames(definition);
+      }
+      else if (input instanceof Input || input instanceof Output || input instanceof Fault) {
+          Definition definition = ((MessageReference) input).getEnclosingDefinition();
+          return NameUtil.getUsedMessageNames(definition);
+      }
+      else if (input instanceof Part) {
+          Definition definition = ((Part) input).getEnclosingDefinition();
+          if (kind.equalsIgnoreCase("element")) {
+              if (command == null) {
+                  command = new AddXSDElementDeclarationCommand(definition, "NewElement");
+              }
+              XSDSchema parentSchema = ((AddXSDElementDeclarationCommand) command).getSchema();
+              
+              return getUsedElementNames(parentSchema);
+          }
+          else if (kind.equalsIgnoreCase("type")) {
+              if (command == null) {
+                  command = new AddXSDTypeDefinitionCommand(definition, "NewType");
+              }
+              XSDSchema parentSchema = ((AddXSDTypeDefinitionCommand) command).getSchema();
+              
+              List usedNames;
+              if (typeKind.equalsIgnoreCase("complex")) {
+                  usedNames = getUsedComplexTypeNames(parentSchema);    
+              }
+              else {
+                  usedNames = getUsedSimpleTypeNames(parentSchema);
+              }
+              
+              return usedNames;
+          }
+      }
+      
+      return (new ArrayList());
+  }
+
+  private String getDefaultName() {
+      if (input instanceof Port) {
+          newDialogTitle = WSDLEditorPlugin.getWSDLString("_UI_LABEL_NEW_BINDING");       // TODO: Ugly Hack... remove
+          Definition def = ((Port) input).getEnclosingDefinition();
+          return NameUtil.getUniqueNameHelper("NewBinding", NameUtil.getUsedBindingNames(def));
+      }
+      else if (input instanceof Binding) {
+          newDialogTitle = WSDLEditorPlugin.getWSDLString("_UI_LABEL_NEW_PORTTYPE");       // TODO: Ugly Hack... remove
+          Definition def = ((Binding) input).getEnclosingDefinition();
+          return NameUtil.getUniqueNameHelper("NewPortType", NameUtil.getUsedPortTypeNames(def));
+      }
+      else if (input instanceof Input || input instanceof Output || input instanceof Fault) {
+          newDialogTitle = WSDLEditorPlugin.getWSDLString("_UI_LABEL_NEW_MESSAGE");       // TODO: Ugly Hack... remove
+          Definition def = ((MessageReference) input).getEnclosingDefinition();
+          return NameUtil.getUniqueNameHelper("NewMessage", NameUtil.getUsedMessageNames(def));
+      }
+      else if (input instanceof Part) {
+          Definition def = ((Part) input).getEnclosingDefinition();
+          
+          if (kind.equalsIgnoreCase("element")) {
+              newDialogTitle = WSDLEditorPlugin.getWSDLString("_UI_LABEL_NEW_ELEMENT");      // TODO: Ugly Hack... remove
+              if (command == null) {
+                  command = new AddXSDElementDeclarationCommand(def, "NewElement");
+              }
+              XSDSchema parentSchema = ((AddXSDElementDeclarationCommand) command).getSchema();
+              
+              List usedNames = getUsedElementNames(parentSchema);
+              return NameUtil.getUniqueNameHelper("NewElement", usedNames);
+          }
+          else if (kind.equalsIgnoreCase("type")) {
+              if (command == null) {
+                  command = new AddXSDTypeDefinitionCommand(def, "NewType");
+              }
+              XSDSchema parentSchema = ((AddXSDTypeDefinitionCommand) command).getSchema();
+
+              String newItemName = "NewComplexType";
+              List usedNames = null;
+              if (typeKind.equalsIgnoreCase("complex")) {
+                  newDialogTitle = WSDLEditorPlugin.getWSDLString("_UI_LABEL_NEW_COMPLEX_TYPE");       // TODO: Ugly Hack... remove
+                  usedNames = getUsedComplexTypeNames(parentSchema);    
+              }
+              else {
+                  newDialogTitle = WSDLEditorPlugin.getWSDLString("_UI_LABEL_NEW_SIMPLE_TYPE");       // TODO: Ugly Hack... remove
+                  usedNames = getUsedSimpleTypeNames(parentSchema);
+                  newItemName = "NewSimpleType";
+              }
+              
+              return newItemName = NameUtil.getUniqueNameHelper(newItemName, usedNames);
+          }
+      }
+      
+      return "NewComponent";
+  }
+  
+  private List getUsedSimpleTypeNames(XSDSchema schema) {
+      List namesList = new ArrayList();
+      
+      Iterator typesIt = schema.getTypeDefinitions().iterator();
+      while (typesIt.hasNext()) {
+          XSDTypeDefinition type = (XSDTypeDefinition) typesIt.next();
+          if (type instanceof XSDSimpleTypeDefinition) {
+              namesList.add(type.getName());
+          }
+      }
+      
+      return namesList;
+  }
+  
+  private List getUsedComplexTypeNames(XSDSchema schema) {
+      List namesList = new ArrayList();
+      
+      Iterator typesIt = schema.getTypeDefinitions().iterator();
+      while (typesIt.hasNext()) {
+          XSDTypeDefinition type = (XSDTypeDefinition) typesIt.next();
+          if (type instanceof XSDComplexTypeDefinition) {
+              namesList.add(type.getName());
+          }
+      }
+      
+      return namesList;
+  }
+  
+  private List getUsedElementNames(XSDSchema schema) {
+      List namesList = new ArrayList();
+      
+      Iterator elementsIt = schema.getElementDeclarations().iterator();
+      while (elementsIt.hasNext()) {
+          XSDElementDeclaration element = (XSDElementDeclaration) elementsIt.next();
+          namesList.add(element.getName());
+      }
+      
+      return namesList;
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/actions/SmartRenameAction.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/SmartRenameAction.java
similarity index 99%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/actions/SmartRenameAction.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/SmartRenameAction.java
index fb779b1..32fc403 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/actions/SmartRenameAction.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/SmartRenameAction.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/SourceEditorActionBarContributor.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/SourceEditorActionBarContributor.java
similarity index 94%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/SourceEditorActionBarContributor.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/SourceEditorActionBarContributor.java
index f8a7dd0..472ca0d 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/SourceEditorActionBarContributor.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/SourceEditorActionBarContributor.java
@@ -1,14 +1,14 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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;
+package org.eclipse.wst.wsdl.ui.internal.actions;
 
 import org.eclipse.jface.action.IMenuManager;
 import org.eclipse.jface.action.IStatusLineManager;
@@ -22,12 +22,13 @@
 import org.eclipse.wst.sse.ui.internal.ExtendedEditorActionBuilder;
 import org.eclipse.wst.sse.ui.internal.IExtendedContributor;
 import org.eclipse.wst.sse.ui.internal.ISourceViewerActionBarContributor;
+import org.eclipse.wst.wsdl.ui.internal.WSDLMultiPageEditorPart;
 
 public class SourceEditorActionBarContributor extends MultiPageEditorActionBarContributor implements IExtendedContributor {
 
 	protected IEditorActionBarContributor designViewerActionBarContributor = null;
 	protected IEditorActionBarContributor sourceViewerActionContributor = null;
-	protected InternalWSDLMultiPageEditor multiPageEditor = null;
+	protected WSDLMultiPageEditorPart multiPageEditor = null;
 
 	// EditorExtension
 	private static final String EDITOR_ID = "org.eclipse.wst.wsdl.ui.internal.actions.XMLMultiPageEditorPart"; //$NON-NLS-1$
@@ -146,8 +147,8 @@
 		// save multiPageEditor before calling super.setActiveEditor(targetEditor)
 		// super.setActiveEditor will call setActivePage(IEditorPart activeEditor)
 		// multiPageEditor is needed in setActivePage(IEditorPart activeEditor)
-		if (targetEditor instanceof InternalWSDLMultiPageEditor)
-			multiPageEditor = (InternalWSDLMultiPageEditor) targetEditor;
+		if (targetEditor instanceof WSDLMultiPageEditorPart)
+			multiPageEditor = (WSDLMultiPageEditorPart) targetEditor;
 
 		super.setActiveEditor(targetEditor);
 
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/SourcePageActionContributor.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/SourcePageActionContributor.java
similarity index 93%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/SourcePageActionContributor.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/SourcePageActionContributor.java
index 60fc70d..84b6bd7 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/SourcePageActionContributor.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/SourcePageActionContributor.java
@@ -1,14 +1,14 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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;
+package org.eclipse.wst.wsdl.ui.internal.actions;
 
 import org.eclipse.ui.IActionBars;
 import org.eclipse.wst.xml.ui.internal.actions.ActionContributorXML;
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/WSDLActionBarContributor.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/WSDLActionBarContributor.java
similarity index 66%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/WSDLActionBarContributor.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/WSDLActionBarContributor.java
index 2826b44..1ac3e78 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/WSDLActionBarContributor.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/WSDLActionBarContributor.java
@@ -1,29 +1,26 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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 java.util.Iterator;
-import java.util.List;
+package org.eclipse.wst.wsdl.ui.internal.actions;
 
 import org.eclipse.jface.action.GroupMarker;
 import org.eclipse.jface.action.IAction;
 import org.eclipse.jface.action.IToolBarManager;
 import org.eclipse.ui.IEditorPart;
 import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.part.MultiPageEditorActionBarContributor;
+import org.eclipse.ui.part.EditorActionBarContributor;
 import org.eclipse.ui.texteditor.ITextEditor;
 import org.eclipse.ui.texteditor.ITextEditorActionConstants;
-import org.eclipse.wst.wsdl.ui.internal.actions.IWSDLToolbarAction;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditor;
 
-public class WSDLActionBarContributor extends MultiPageEditorActionBarContributor
+public class WSDLActionBarContributor extends SourceEditorActionBarContributor
 {
   protected ITextEditor textEditor;
 
@@ -37,6 +34,8 @@
 
   public void setActivePage(IEditorPart activeEditor)
   {
+    super.setActivePage(activeEditor);
+
     // always enable undo/redo regardless of which page we're on.  The undo/redo comes from the editor
     //    
     updateAction(ActionFactory.UNDO.getId(), ITextEditorActionConstants.UNDO, true);
@@ -71,37 +70,27 @@
       return null;
     }
   }
-  
-  public void contributeToToolBar(IToolBarManager manager)
-  {
-    manager.add(new GroupMarker("WSDLEditor"));
-    List list = WSDLEditorPlugin.getInstance().getWSDLEditorConfiguration().getToolbarActions();
-    for (Iterator i = list.iterator(); i.hasNext(); )
-    {
-      manager.add((IWSDLToolbarAction)i.next());
-    }
 
-//    manager.add(new Separator());
-//    String[] zoomStrings = new String[] { ZoomManager.FIT_ALL, ZoomManager.FIT_HEIGHT, ZoomManager.FIT_WIDTH };
-//    manager.add(new ZoomComboContributionItem(getPage(), zoomStrings));
+  /**
+   * @see EditorActionBarContributor#contributeToToolBar(IToolBarManager)
+   */
+  public void addToToolBar(IToolBarManager toolBarManager)
+  {
+    super.addToToolBar(toolBarManager);
+    toolBarManager.add(new GroupMarker("WSDLEditor"));
   }
 
+
   public void setActiveEditor(IEditorPart activeEditor)
   {
     super.setActiveEditor(activeEditor);
     textEditor = null;
-    if (activeEditor instanceof InternalWSDLMultiPageEditor)
+    if (activeEditor instanceof WSDLEditor)
     {
-      textEditor = ((InternalWSDLMultiPageEditor) activeEditor).getTextEditor();
+      textEditor = ((WSDLEditor) activeEditor).getTextEditor();
     }
     
     updateAction(ActionFactory.UNDO.getId(), ITextEditorActionConstants.UNDO, true);
     updateAction(ActionFactory.REDO.getId(), ITextEditorActionConstants.REDO, true);
-    
-    List list = WSDLEditorPlugin.getInstance().getWSDLEditorConfiguration().getToolbarActions();
-    for (Iterator i = list.iterator(); i.hasNext(); )
-    {
-      ((IWSDLToolbarAction)i.next()).setEditorPart(activeEditor);
-    }
   }
 }
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/WSDLDragAction.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/WSDLDragAction.java
new file mode 100644
index 0000000..6425160
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/WSDLDragAction.java
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.actions;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.wst.wsdl.ui.internal.graph.editparts.WSDLTreeNodeEditPart;
+import org.w3c.dom.Node;
+
+public abstract class WSDLDragAction extends BaseNodeAction {
+	protected WSDLTreeNodeEditPart movingChildEditPart;
+	protected Point pointerLocation;
+	
+	/*
+	 * Sub-classes should override this method.
+	 */
+	public boolean canExecute() {
+		return false;
+	}
+	
+	public void execute() {
+		run();
+	}
+	
+	/*
+	 * Sub-classes should override this method.
+	 */
+	public String getUndoDescription() {
+		return "";
+	}
+	
+	/*
+	 * Sub-classes should override this method.
+	 */
+	public Node getNode() {
+		return null;
+	}
+	
+	/*
+	 * Sub-classes should override this method.
+	 */
+	public IFigure getFeedbackFigure() {
+		return null;
+	}
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/WSDLDragReorderAction.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/WSDLDragReorderAction.java
new file mode 100644
index 0000000..1cff3c8
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/WSDLDragReorderAction.java
@@ -0,0 +1,424 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.actions;
+
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+
+import javax.wsdl.OperationType;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Polyline;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.PointList;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.gef.EditPart;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.wst.wsdl.Fault;
+import org.eclipse.wst.wsdl.Input;
+import org.eclipse.wst.wsdl.Message;
+import org.eclipse.wst.wsdl.Output;
+import org.eclipse.wst.wsdl.Part;
+import org.eclipse.wst.wsdl.WSDLElement;
+import org.eclipse.wst.wsdl.internal.impl.OperationImpl;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditor;
+import org.eclipse.wst.wsdl.ui.internal.graph.WSDLComponentViewer;
+import org.eclipse.wst.wsdl.ui.internal.graph.editparts.WSDLTreeNodeEditPart;
+
+
+public class WSDLDragReorderAction extends WSDLDragAction
+{
+  protected WSDLEditor wsdlEditor;
+  protected WSDLElement movingChild;
+  protected WSDLElement newParent;
+  protected WSDLTreeNodeEditPart leftSiblingEditPart;
+  protected WSDLTreeNodeEditPart rightSiblingEditPart;
+  protected WSDLElement leftSibElement;
+  protected WSDLElement rightSibElement;
+  protected boolean canNeverExecute = false;
+  
+  public WSDLDragReorderAction(WSDLTreeNodeEditPart movingChildEditPart, EditPart pointerEditPart, Point pointerLocation) {
+  	this.movingChildEditPart = movingChildEditPart;
+  	this.pointerLocation = pointerLocation;
+
+	EditPart possibleParent = getParentEditPart(pointerEditPart);
+	
+	if (!(possibleParent instanceof WSDLTreeNodeEditPart)) {
+		canNeverExecute = true;
+		return;
+	}
+  	
+	WSDLTreeNodeEditPart targetParentEditPart = (WSDLTreeNodeEditPart) possibleParent;
+	wsdlEditor = ((WSDLComponentViewer) possibleParent.getViewer()).getWSDLEditor();
+	
+	if (pointerEditPart.getParent() != null) {
+		// Sort the siblings (and itself)
+		List targetEditPartSiblings = pointerEditPart.getParent().getChildren();
+		Collections.sort(targetEditPartSiblings, new VerticalEditPartComparator());
+  
+		// Get 'left' and 'right' siblings
+		leftSiblingEditPart = getVerticalLeftSibling(targetEditPartSiblings, movingChildEditPart, pointerLocation);
+		rightSiblingEditPart = getVerticalRightSibling(targetEditPartSiblings, movingChildEditPart, pointerLocation);           	
+
+		if (movingChildEditPart != null)
+			movingChild = (WSDLElement) movingChildEditPart.getModel();
+		if (leftSiblingEditPart != null)
+			leftSibElement = (WSDLElement) leftSiblingEditPart.getModel();
+		if (rightSiblingEditPart != null)
+			rightSibElement = (WSDLElement) rightSiblingEditPart.getModel();
+		
+		newParent = (WSDLElement) targetParentEditPart.getModel();
+	}
+	else {
+		newParent = (WSDLElement) targetParentEditPart.getModel();
+		leftSibElement = null;
+		rightSibElement= null;
+	}
+  }
+            
+  public boolean canExecute()
+  {
+    boolean result = false;
+
+    if (canNeverExecute || newParent == null || movingChild == null) {
+    	return false;
+    }
+    
+    if (movingChild instanceof Input) {
+    	if (!(leftSibElement instanceof Fault) && newParent.equals(movingChild.eContainer())) {
+    		result = true;
+    	}
+    }
+    else if (movingChild instanceof Output) {
+    	if (!(leftSibElement instanceof Fault) && newParent.equals(movingChild.eContainer())) {
+    		result = true;
+    	}
+    }
+    else if (movingChild instanceof Part) {
+    	if (newParent instanceof Message && newParent.equals(movingChild.eContainer())) {
+    		result = true;
+    	}
+    }
+
+    return result;
+  }           
+
+
+  /*
+   * @see IAction#run()
+   */
+  public void run()
+  {                            
+//    beginRecording();
+  	if (canExecute()) {
+  		if (movingChild instanceof Input) {
+  			Input input = (Input) movingChild;
+  			OperationImpl operation = (OperationImpl) input.eContainer();
+  			
+  			if (leftSiblingEditPart == null) {
+  				// Input/Output style
+  				setInputOutputOrder(operation, true);
+  			}
+  			else {
+  				// Output/Input style
+  				setInputOutputOrder(operation, false);
+  			}
+  		}
+  		else if (movingChild instanceof Output) {
+ 			Output output = (Output) movingChild;
+  			OperationImpl operation = (OperationImpl) output.eContainer();
+  			
+  			if (leftSiblingEditPart == null) {
+  				// Output/Input style
+  				setInputOutputOrder(operation, false);
+  			}
+  			else {
+  				// Input/Output style
+  				setInputOutputOrder(operation, true);
+  			}
+  		}
+  		else if (movingChild instanceof Part) {
+  			Message message = (Message) newParent;
+  			List parts = message.getEParts();
+
+  			parts.remove(movingChild);
+
+  			int leftIndex = -1, rightIndex = -1;
+  			if (leftSibElement != null) {
+  				leftIndex = parts.indexOf(leftSibElement);
+  			}
+  			if (rightSibElement != null) {
+  				rightIndex = parts.indexOf(rightSibElement);
+  			}
+
+  			if (leftIndex == -1) {
+  				// Add moving child to the front
+  				parts.add(0, movingChild);  				
+  			}
+  			else if (rightIndex == -1) {
+  				// Add moving child to the end
+  				parts.add(movingChild);
+  			}
+  			else {
+  				// Add moving child after the occurence of the left sibling
+  				parts.add(leftIndex + 1, movingChild);
+  			}
+  		}
+  		wsdlEditor.getSelectionManager().setSelection(new StructuredSelection(movingChild));
+  	}
+//    endRecording();
+  }
+  
+  public IFigure getFeedbackFigure() {
+  	IFigure feedbackFigure = null;
+    if (feedbackFigure == null && movingChildEditPart instanceof WSDLTreeNodeEditPart)
+    {                                       
+      feedbackFigure = new Polyline();                         
+//  polyLine.setLineStyle(Graphics.LINE_DASHDOT);      
+      ((Polyline)feedbackFigure).setLineWidth(2);	
+      drawLines((Polyline) feedbackFigure);
+    }
+    
+  	return feedbackFigure;
+  }
+
+  /* Return a PointList which will be used to add a feedback figure.  The feedback figure will be a
+   * Polyline composed of the Points in the PointList
+   */
+  private PointList drawLines(Polyline polyLine) {
+    PointList pointList = new PointList(); 
+    
+    if (leftSiblingEditPart != null) {
+    	Rectangle leftRectangle = leftSiblingEditPart.getFigure().getBounds();
+	   	int xCoord = leftRectangle.x + 15;
+	  	int yCoord = leftRectangle.y;
+	   	int height = leftRectangle.height;
+	   	int width = leftRectangle.width - 15;
+
+	   	// Draw left end line
+	   	addLineToPolyline(polyLine, xCoord, yCoord + height + 3, xCoord, yCoord + height - 3);
+	   	addLineToPolyline(polyLine, xCoord, yCoord + height - 3, xCoord, yCoord + height);
+	   	
+	   	// Draw horizontal line
+	   	addLineToPolyline(polyLine, xCoord, yCoord + height, xCoord + width, yCoord + height);
+	   	
+	   	// Draw right end line
+	   	addLineToPolyline(polyLine, xCoord + width, yCoord + height, xCoord + width, yCoord + height - 3);
+	  	addLineToPolyline(polyLine, xCoord + width, yCoord + height, xCoord + width, yCoord + height + 3);   	
+    }
+    else if (rightSiblingEditPart != null) {
+    	Rectangle rightRectangle = rightSiblingEditPart.getFigure().getBounds();
+    	int xCoord = rightRectangle.x + 15;
+    	int yCoord = rightRectangle.y;
+   		int width = rightRectangle.width - 15;	
+
+   		// Draw left end line
+	   	addLineToPolyline(polyLine, xCoord, yCoord + 3, xCoord, yCoord - 3);
+	   	addLineToPolyline(polyLine, xCoord, yCoord - 3, xCoord, yCoord);
+	   	
+	   	// Draw horizontal line
+	   	addLineToPolyline(polyLine, xCoord, yCoord, xCoord + width, yCoord);
+	   	
+	   	// Draw right end line
+	   	addLineToPolyline(polyLine, xCoord + width, yCoord, xCoord + width, yCoord - 3);
+	  	addLineToPolyline(polyLine, xCoord + width, yCoord, xCoord + width, yCoord + 3);   
+    }
+
+    return pointList;
+  }                    
+  
+  protected Polyline addLineToPolyline(Polyline polyline, int x1, int y1, int x2, int y2) {
+	polyline.addPoint(new Point(x1, y1));
+	polyline.addPoint(new Point(x2, y2));
+
+	return polyline;
+  }                                          
+  
+  /*
+   * Pre-condition: The List siblings should be sorted by it's y-coordinate 
+   */
+  private WSDLTreeNodeEditPart getVerticalRightSibling(List siblings, WSDLTreeNodeEditPart movingEditPart, Point pointerLocation) {
+  	WSDLTreeNodeEditPart rightSibling = null;
+  	int pointerYLocation = pointerLocation.y;
+
+  	for (int index = 0; index < siblings.size(); index++) {
+  		WSDLTreeNodeEditPart sibling = (WSDLTreeNodeEditPart) siblings.get(index);
+  		int siblingYLocation = sibling.getSelectionFigure().getBounds().getCenter().y;
+
+  		if (siblingYLocation > pointerYLocation) {
+  			rightSibling = sibling;
+  			break;
+  		}
+  	}
+  	
+  	return rightSibling;
+  }
+
+  /*
+   * Pre-condition: The List siblings should be sorted by it's y-coordinate 
+   */
+  private WSDLTreeNodeEditPart getVerticalLeftSibling(List siblings, WSDLTreeNodeEditPart movingEditPart, Point pointerLocation) {
+  	WSDLTreeNodeEditPart leftSibling = null;
+  	int pointerYLocation = pointerLocation.y;
+
+  	int index;
+  	for (index = 0; index < siblings.size(); index++) {
+  		WSDLTreeNodeEditPart sibling = (WSDLTreeNodeEditPart) siblings.get(index);
+  		int siblingYLocation = sibling.getSelectionFigure().getBounds().getCenter().y;
+  	  	
+  		if (siblingYLocation > pointerYLocation) {
+  			if (index > 0) {
+  				leftSibling = (WSDLTreeNodeEditPart) siblings.get(index - 1);
+  			}
+
+  			break;
+  		}
+  	}
+
+  	if (index == siblings.size()) {
+  		leftSibling = (WSDLTreeNodeEditPart) siblings.get(index - 1);
+  	}
+
+  	return leftSibling;
+  }
+  
+  protected EditPart getParentEditPart(EditPart target)
+  {
+  	return target.getParent();
+  }
+  
+  // boolean inputFirst = true if the Input is the first in the order of Input and Output
+  private void setInputOutputOrder(OperationImpl operation, boolean inputFirst) {
+  	// We need to determine more info before we can set the style	
+  	if (inputFirst && operation.getEInput() != null) {
+  		// Check if there is an Output
+  		if (operation.getEOutput() != null) {
+  			// Order is: Input, Output
+/*  			
+  			Node operationNode = operation.getElement();		
+  			NodeList childNodeList = operationNode.getChildNodes();
+  			
+  			Node inputNode = operation.getEInput().getElement();
+  			Node outputNode = operation.getEOutput().getElement();
+  			
+  			Node inputTextNode = inputNode.getNextSibling();
+  			Node outputTextNode = outputNode.getNextSibling();
+  			
+  			int inputNodeIndex = getNodeIndex(childNodeList, inputNode);
+  			int outputNodeIndex = getNodeIndex(childNodeList, outputNode);
+  			
+  			if (inputNodeIndex > outputNodeIndex) {
+  				// We need to swap Input and Output
+  				operationNode.removeChild(inputNode);
+  				operationNode.removeChild(outputNode);
+  				
+  				operationNode.insertBefore(inputNode, outputTextNode);
+  				operationNode.insertBefore(outputNode, inputTextNode);
+  			}
+*/  			
+  			
+  			setOperationStyle(operation, OperationType.REQUEST_RESPONSE);
+  		}
+  		/*
+  		else {
+  			// Order is: Input
+  			setOperationStyle(operation, OperationType.ONE_WAY);
+  		}
+  		*/
+  	}
+  	else if (operation.getEOutput() != null) {
+  		// Check if there is an Input
+  		if (operation.getEInput() != null) {
+  			// Order is: Output, Input
+/*  			
+  			Node operationNode = operation.getElement();		
+  			NodeList childNodeList = operationNode.getChildNodes();
+  			
+  			Node inputNode = operation.getEInput().getElement();
+  			Node outputNode = operation.getEOutput().getElement();
+  			
+  			Node inputTextNode = inputNode.getNextSibling();
+  			Node outputTextNode = outputNode.getNextSibling();
+  			
+  			int inputNodeIndex = getNodeIndex(childNodeList, inputNode);
+  			int outputNodeIndex = getNodeIndex(childNodeList, outputNode);
+  			
+  			if (outputNodeIndex > inputNodeIndex) {
+  				// We need to swap Input and Output
+  				operationNode.removeChild(inputNode);
+  				operationNode.removeChild(outputNode);
+
+  				operationNode.insertBefore(inputNode, outputTextNode);
+  				operationNode.insertBefore(outputNode, inputTextNode);
+  			}
+*/  			
+  			setOperationStyle(operation, OperationType.SOLICIT_RESPONSE);
+  		}
+  		/*
+  		else {
+  			// Order is: Output
+  			setOperationStyle(operation, OperationType.NOTIFICATION);
+  		}
+  		*/
+  	}
+  }
+
+/*
+ * return -1 if node is not found in the given nodeList
+ */
+//	private int getNodeIndex(NodeList nodeList, Node node) {
+//		int index = 0;
+//		while (index < nodeList.getLength() && !(nodeList.item(index).equals(node))) {
+//			index++;
+//		}
+//		
+//		if (index >= nodeList.getLength()) {
+//			index = -1;
+//		}
+//		
+//		return index;
+//	}
+  
+  private void setOperationStyle(OperationImpl operation, OperationType operationType) {
+  	// If there is no style to begin with, don't set one now
+  	if (operation.getStyle() == null) {
+  		return;
+  	}
+  	
+  	operation.setStyle(operationType);
+  }
+  
+  private class VerticalEditPartComparator implements Comparator {
+  	
+  	public VerticalEditPartComparator() {
+  	}
+  	
+  	public int compare(Object part1, Object part2) {
+  		int compareValue = 0;
+
+  		if (part1 instanceof WSDLTreeNodeEditPart && part2 instanceof WSDLTreeNodeEditPart) {
+  			WSDLTreeNodeEditPart editPart1 = (WSDLTreeNodeEditPart) part1;
+  			WSDLTreeNodeEditPart editPart2 = (WSDLTreeNodeEditPart) part2;
+  			
+  			int editPart1Y = editPart1.getSelectionFigure().getBounds().getCenter().y;
+  			int editPart2Y = editPart2.getSelectionFigure().getBounds().getCenter().y;
+  			
+  			Integer integerPart1 = new Integer(editPart1Y);
+  			Integer integerPart2 = new Integer(editPart2Y);
+  			
+  			compareValue = integerPart1.compareTo(integerPart2);
+  		}
+
+  		return compareValue;
+  	}
+  }
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/WSDLDragSetMessageAction.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/WSDLDragSetMessageAction.java
new file mode 100644
index 0000000..9aa7d48
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/WSDLDragSetMessageAction.java
@@ -0,0 +1,148 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.actions;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Polyline;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.wst.wsdl.Fault;
+import org.eclipse.wst.wsdl.Input;
+import org.eclipse.wst.wsdl.Message;
+import org.eclipse.wst.wsdl.MessageReference;
+import org.eclipse.wst.wsdl.Output;
+import org.eclipse.wst.wsdl.Part;
+import org.eclipse.wst.wsdl.WSDLElement;
+import org.eclipse.wst.wsdl.internal.impl.WSDLElementImpl;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditor;
+import org.eclipse.wst.wsdl.ui.internal.graph.WSDLComponentViewer;
+import org.eclipse.wst.wsdl.ui.internal.graph.editparts.GroupEditPart;
+import org.eclipse.wst.wsdl.ui.internal.graph.editparts.WSDLTreeNodeEditPart;
+import org.eclipse.wst.xsd.ui.internal.gef.util.figures.IConnectedFigure;
+
+public class WSDLDragSetMessageAction extends WSDLDragAction {
+	protected EditPart pointerEditPart;
+	protected WSDLElement movingChild;
+	protected WSDLElement pointerModelElement;
+	
+	public WSDLDragSetMessageAction(WSDLTreeNodeEditPart movingChildEditPart, EditPart pointerEditPart, Point pointerLocation) {
+		this.movingChildEditPart = movingChildEditPart;
+		this.pointerEditPart = pointerEditPart;
+		this.pointerLocation = pointerLocation;
+		
+		movingChild = (WSDLElement) movingChildEditPart.getModel();
+		pointerModelElement = (WSDLElement) pointerEditPart.getModel();
+		
+		// Allow the user to hover over a Part (of a Message) to set the Message
+		if (pointerModelElement instanceof Part) {
+			this.pointerEditPart = pointerEditPart.getParent();
+			pointerModelElement = (WSDLElement) this.pointerEditPart.getModel();
+		}
+	}
+
+	public boolean canExecute() {
+	    boolean result = false;
+
+	    if (pointerModelElement == null || movingChild == null) {
+	    	return false;
+	    }
+	    
+	    if (movingChild instanceof Input || movingChild instanceof Output || movingChild instanceof Fault) {
+	    	if (pointerModelElement instanceof Message) {
+	    		result = true;
+	    	}
+	    }
+
+	    return result;
+	}
+	
+	public void run() {
+		if (canExecute()) {
+			MessageReference messageReference = (MessageReference) movingChild;
+			messageReference.setEMessage((Message) pointerModelElement);
+			((WSDLElementImpl) messageReference).updateElement(true);
+			
+			WSDLEditor wsdlEditor = ((WSDLComponentViewer) pointerEditPart.getViewer()).getWSDLEditor();
+			wsdlEditor.getSelectionManager().setSelection(new StructuredSelection(movingChild));
+		}
+	}
+
+	public IFigure getFeedbackFigure() {
+		Polyline polyfigure = new Polyline();
+		GroupEditPart leftGroupEditPart = getGroupEditPart(movingChildEditPart);
+		GroupEditPart rightGroupEditPart = getGroupEditPart(pointerEditPart);
+		int mx = rightGroupEditPart.getFigure().getBounds().x - 5;                                                      
+ 
+        drawLine(polyfigure, leftGroupEditPart.outputConnection.getFigure(), ((AbstractGraphicalEditPart) pointerEditPart).getFigure(), mx);
+		
+		return polyfigure;
+	}
+	
+	  protected void drawLine(Polyline feedbackFigure, IFigure a, IFigure b, int mx)
+	  {
+	        Rectangle r1 = getConnectionBounds(a);
+	        Rectangle r2 = getConnectionBounds(b);
+	        int x1 = r1.x + r1.width;
+	        int y1 = r1.y + r1.height / 2;
+	        int x2 = r2.x - 1;
+	        int y2 = r2.y + 8;
+                                          
+	        // draw horizontal line
+	       	addLineToPolyline(feedbackFigure, x1, y1, mx, y1);
+
+	        // draw horizontal line
+	       	addLineToPolyline(feedbackFigure, mx, y2, x2 - 1, y2);
+
+	        // draw the arrow head
+	       	addLineToPolyline(feedbackFigure, x2 - 1, y2, x2 - 4, y2 - 3);
+	       	addLineToPolyline(feedbackFigure, x2 - 1, y2, x2 - 4, y2 + 3);
+	  }
+
+	  protected Rectangle getConnectionBounds(IFigure figure)
+	  {                 
+	    Rectangle r = null;
+	    if (figure instanceof IConnectedFigure)
+	    {
+	      IConnectedFigure connectedFigure = (IConnectedFigure)figure;
+	      r = connectedFigure.getConnectionFigure().getBounds();
+	    }
+	    else
+	    {
+	      r = figure.getBounds();
+	    }
+	    return r; 
+	  }                      
+	  
+	  protected Polyline addLineToPolyline(Polyline polyline, int x1, int y1, int x2, int y2) {
+      	polyline.addPoint(new Point(x1, y1));
+      	polyline.addPoint(new Point(x2, y2));
+      	polyline.setLineWidth(1);
+      	//polyline.setLineStyle(Graphics.LINE_DOT);
+      	
+      	return polyline;
+	  }
+	  
+	  private GroupEditPart getGroupEditPart(EditPart editPart) {
+	  	EditPart parentPart = editPart.getParent();
+	  	
+	  	if (parentPart == null) {
+	  		return null;
+	  	}
+	  	if (!(parentPart instanceof GroupEditPart)) {
+	  		parentPart = getGroupEditPart(parentPart);
+	  	}
+	  	
+	  	return (GroupEditPart) parentPart;
+	  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/WSDLElementAction.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/WSDLElementAction.java
new file mode 100644
index 0000000..e2f287c
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/WSDLElementAction.java
@@ -0,0 +1,151 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.actions;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.wst.wsdl.WSDLElement;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.eclipse.wst.wsdl.ui.internal.commands.WSDLElementCommand;
+import org.eclipse.wst.wsdl.ui.internal.widgets.NewComponentDialog;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
+import org.eclipse.wst.xml.core.internal.provisional.format.FormatProcessorXML;
+import org.w3c.dom.Node;
+
+public abstract class WSDLElementAction extends Action
+{
+  protected WSDLElementCommand modelCommand;
+  private IEditorPart editorPart;
+  
+  public WSDLElementAction
+  	(WSDLElementCommand command,
+  	 String undoDescription,
+  	 String label,
+  	 ImageDescriptor image)
+  {
+    super(label,image);
+    modelCommand = command;
+  }
+
+  public void setEditorPart(IEditorPart editorPart)
+  {
+    this.editorPart = editorPart;
+  }
+/*
+  private String getUndoDescription()
+  {
+    return undoDescription;
+  }
+*/
+  abstract protected WSDLElement getOwner();
+  
+  abstract protected boolean showDialog();
+  
+  public void run()
+  {
+    boolean ok = showDialog();
+    if (ok)
+    {
+	    preRun();
+	    modelCommand.run();
+	    format();
+	    selectObject();
+	    postRun();
+    }
+  }
+  
+  protected void preRun()
+  {
+  }
+  
+  protected void postRun()
+  {
+  }
+/*
+  private void beginRecording()
+  {    
+    Node node = null;
+    if (getOwner() != null)
+      node = getOwner().getElement(); 
+    
+    if (node instanceof IDOMNode)
+    {
+      ((IDOMNode)node).getModel().beginRecording(this, getUndoDescription());  
+    }
+  }
+
+  private void endRecording()
+  {                 
+    Node node = null;
+    if (getOwner() != null)
+      node = getOwner().getElement(); 
+    
+    if (node instanceof IDOMNode)
+    {
+      ((IDOMNode)node).getModel().endRecording(this);  
+    }
+  }
+*/
+  protected WSDLElement getWSDLElement()
+  {
+    return modelCommand.getWSDLElement();
+  }
+  
+  private void format()
+  {
+    Node parentNode = null;
+    if (getOwner() != null)
+      parentNode = getOwner().getElement(); 
+    
+    if (parentNode instanceof IDOMNode) 
+    {
+		  // format selected node                                                    
+      FormatProcessorXML formatProcessorXML = new FormatProcessorXML();
+      formatProcessorXML.formatNode((IDOMNode)parentNode);      
+    }
+  }
+  
+  private void selectObject()
+  {               
+    if (editorPart != null && getOwner() != null)
+    {
+      Object object = getWSDLElement();
+      if (object != null)
+      {
+        ISelectionProvider selectionProvider = (ISelectionProvider)editorPart.getAdapter(ISelectionProvider.class);
+        if (selectionProvider != null)
+        {
+          selectionProvider.setSelection(new StructuredSelection(object));
+        }
+      }  
+    }   
+  }
+  
+  protected String showDialogHelper(String title, String defaultName)
+  {   
+    String result = defaultName;                                                                                             
+    NewComponentDialog dialog = new NewComponentDialog(WSDLEditorPlugin.getShell(), title, defaultName);
+    int rc = dialog.createAndOpen();
+    if (rc == IDialogConstants.OK_ID)
+    {
+      result = dialog.getName();  
+    }
+    else
+    {
+      result = null;
+    }               
+    return result;
+  }
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/WSDLElementUIAction.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/WSDLElementUIAction.java
new file mode 100644
index 0000000..2382209
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/WSDLElementUIAction.java
@@ -0,0 +1,126 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.actions;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.wst.wsdl.WSDLElement;
+import org.eclipse.wst.wsdl.ui.internal.commands.WSDLElementCommand;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
+import org.eclipse.wst.xml.core.internal.provisional.format.FormatProcessorXML;
+import org.w3c.dom.Node;
+
+public abstract class WSDLElementUIAction extends Action
+{
+  protected WSDLElementCommand modelAction;
+  private IEditorPart editorPart;
+  
+  public WSDLElementUIAction
+  	(WSDLElementCommand action,
+  	 String undoDescription,
+  	 String label,
+  	 ImageDescriptor image)
+  {
+    super(label,image);
+    modelAction = action;
+  }
+
+  public void setEditorPart(IEditorPart editorPart)
+  {
+    this.editorPart = editorPart;
+  }
+
+  private Node getOwnerNode()
+  {
+    if (getOwner() != null)
+      return getOwner().getElement();
+    else
+      return null;
+  }
+
+  abstract protected WSDLElement getOwner();
+  
+  abstract protected boolean showDialog();
+  
+  public void run()
+  {
+    boolean ok = showDialog();
+    if (ok)
+    {
+	    preRun();
+	    modelAction.run();
+	    format();
+	    selectObject();
+	    postRun();
+    }
+  }
+  
+  protected void preRun()
+  {
+  }
+  
+  protected void postRun()
+  {
+  }
+/*
+  private void beginRecording()
+  {    
+    Node node = getOwnerNode();  
+    if (node instanceof IDOMNode)
+    {
+      ((IDOMNode)node).getModel().beginRecording(this, getUndoDescription());  
+    }
+  }
+
+  private void endRecording()
+  {                 
+    Node node = getOwnerNode(); 
+    if (node instanceof IDOMNode)
+    {
+      ((IDOMNode)node).getModel().endRecording(this);  
+    }
+  }
+*/
+  protected WSDLElement getWSDLElement()
+  {
+    return modelAction.getWSDLElement();
+  }
+  
+  private void format()
+  {
+    Node parentNode = getOwnerNode();
+    if (parentNode instanceof IDOMNode) 
+    {
+		  // format selected node                                                    
+      FormatProcessorXML formatProcessorXML = new FormatProcessorXML();
+      formatProcessorXML.formatNode((IDOMNode)parentNode);      
+    }
+  }
+  
+  private void selectObject()
+  {               
+    if (editorPart != null && getOwner() != null)
+    {
+      Object object = getWSDLElement();
+      if (object != null)
+      {
+        ISelectionProvider selectionProvider = (ISelectionProvider)editorPart.getAdapter(ISelectionProvider.class);
+        if (selectionProvider != null)
+        {
+          selectionProvider.setSelection(new StructuredSelection(object));
+        }
+      }  
+    }   
+  }
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/WSDLMenuActionContributor.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/WSDLMenuActionContributor.java
new file mode 100644
index 0000000..ba1026d
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/WSDLMenuActionContributor.java
@@ -0,0 +1,1256 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.actions;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.gef.EditPartViewer;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.window.Window;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbenchActionConstants;
+import org.eclipse.wst.wsdl.Binding;
+import org.eclipse.wst.wsdl.BindingOperation;
+import org.eclipse.wst.wsdl.Definition;
+import org.eclipse.wst.wsdl.Fault;
+import org.eclipse.wst.wsdl.Import;
+import org.eclipse.wst.wsdl.Input;
+import org.eclipse.wst.wsdl.Message;
+import org.eclipse.wst.wsdl.Operation;
+import org.eclipse.wst.wsdl.Output;
+import org.eclipse.wst.wsdl.Part;
+import org.eclipse.wst.wsdl.Port;
+import org.eclipse.wst.wsdl.PortType;
+import org.eclipse.wst.wsdl.Service;
+import org.eclipse.wst.wsdl.WSDLElement;
+import org.eclipse.wst.wsdl.internal.impl.WSDLElementImpl;
+import org.eclipse.wst.wsdl.internal.util.WSDLSwitch;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditor;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.eclipse.wst.wsdl.ui.internal.commands.AddInputCommand;
+import org.eclipse.wst.wsdl.ui.internal.commands.AddMessageCommand;
+import org.eclipse.wst.wsdl.ui.internal.commands.AddOperationCommand;
+import org.eclipse.wst.wsdl.ui.internal.commands.AddOutputCommand;
+import org.eclipse.wst.wsdl.ui.internal.extension.IMenuActionContributor;
+import org.eclipse.wst.wsdl.ui.internal.graph.editparts.WSDLTreeNodeEditPart;
+import org.eclipse.wst.wsdl.ui.internal.model.WSDLGroupObject;
+import org.eclipse.wst.wsdl.ui.internal.util.ComponentReferenceUtil;
+import org.eclipse.wst.wsdl.ui.internal.util.CreateWSDLElementHelper;
+import org.eclipse.wst.wsdl.ui.internal.util.NameUtil;
+import org.eclipse.wst.wsdl.ui.internal.util.WSDLEditorUtil;
+import org.eclipse.wst.wsdl.ui.internal.widgets.NewComponentDialog;
+import org.eclipse.wst.wsdl.ui.internal.widgets.NewComponentWithChildDialog;
+import org.eclipse.wst.wsdl.ui.internal.wizards.BindingWizard;
+import org.eclipse.wst.wsdl.ui.internal.wizards.PortWizard;
+import org.eclipse.wst.wsdl.util.WSDLConstants;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
+import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+
+public class WSDLMenuActionContributor implements IMenuActionContributor
+{
+  protected AddEEMenuActionContributor addEEMenuActionContributor;
+  IEditorPart editorPart;
+
+  public WSDLMenuActionContributor(IEditorPart editorPart)
+  {
+    addEEMenuActionContributor = new AddEEMenuActionContributor();
+    this.editorPart = editorPart;
+  }
+
+  protected static List createList(Action action)
+  {
+    List list = new ArrayList();
+    list.add(action);
+    return list;
+  }
+  
+	private class OpenSchemaOnSelectionHelper extends Action {
+		Object object;
+		
+		public OpenSchemaOnSelectionHelper(Object object) {
+			setText(WSDLEditorPlugin.getWSDLString("_UI_OPEN_IMPORT"));
+			this.object = object;
+			
+			if (object instanceof Import) {
+				String location = ((Import) object).getLocationURI();
+				
+				if (location == null || location.trim().equals(""))
+					setEnabled(false);
+			}
+		}
+		
+		public void run() {
+			Definition definition = ((WSDLElement) object).getEnclosingDefinition();
+			org.eclipse.wst.wsdl.ui.internal.util.OpenOnSelectionHelper helper = new org.eclipse.wst.wsdl.ui.internal.util.OpenOnSelectionHelper(definition);
+		    helper.openEditor((org.eclipse.emf.ecore.EObject) object);
+		}
+	}
+
+  public void contributeMenuActions(final IMenuManager menu, final Node node, Object object)
+  {
+    final IMenuManager addMenu;
+    boolean addEditAction = false;
+    final boolean isEditable = (node instanceof IDOMNode);
+    if (object instanceof WSDLElement && node != null && isEditable)
+    {
+      addEditAction = true;
+      addMenu = new MenuManager(WSDLEditorPlugin.getWSDLString("_UI_ACTION_ADD_CHILD"), "addchild"); //$NON-NLS-1$ //$NON-NLS-2$
+      menu.add(addMenu);
+      Definition definition = ((WSDLElement) object).getEnclosingDefinition();
+
+      final String prefix = definition.getPrefix(WSDLConstants.WSDL_NAMESPACE_URI);
+
+      if (object instanceof Import) {
+      	menu.add(new OpenSchemaOnSelectionHelper(object));
+      }
+      
+      WSDLSwitch wsdlSwitch = new WSDLSwitch()
+      {
+        public Object caseBinding(Binding binding)
+        {
+          if (isEditable)
+          {
+            menu.add(new AddBindingOperationAction(node, "NewBindingOperation", prefix)); //$NON-NLS-1$
+            menu.add(new Separator());
+          }
+          
+          menu.add(createSetPortTypeMenu(binding, isEditable));
+          menu.add(new GenerateBindingContentAction(binding, isEditable));
+          return null;
+        }
+
+        public Object caseBindingOperation(BindingOperation bindingOperation)
+        {
+          if (isEditable)
+          {
+            menu.add(new AddBindingInputAction(editorPart, node, prefix));
+            menu.add(new AddBindingOutputAction(editorPart, node, prefix));
+            menu.add(new AddBindingFaultAction(node, prefix));
+          }
+          return null;
+        }
+
+        public Object caseDefinition(Definition definition)
+        {
+           menu.add(new EditNamespacesAction(definition));
+           menu.add(new Separator());
+        	
+          if (isEditable)
+          {
+            menu.add(new AddMessageAction(definition, null, node, prefix, ((WSDLEditor) editorPart).getXMLDocument()));
+            menu.add(new AddServiceAction(definition, null, node, prefix, ((WSDLEditor) editorPart).getXMLDocument()));
+            menu.add(new AddPortTypeAction(definition, null, node, prefix, ((WSDLEditor) editorPart).getXMLDocument()));
+            menu.add(new AddBindingAction(definition, ((WSDLEditor) editorPart).getXMLDocument()));//, null, node, prefix));
+            menu.add(new AddImportAction(editorPart, definition, node, prefix));
+          }
+          return null;
+        }
+
+        public Object caseFault(Fault fault)
+        {
+          menu.add(createSetMessageMenu(fault, isEditable));
+          //menu.add(createAddBindingMenuForIOF(fault));
+          return null;
+        }
+
+        public Object caseInput(Input input)
+        {
+          menu.add(createSetMessageMenu(input, isEditable));
+          //menu.add(createAddBindingMenuForIOF(input));
+          return null;
+        }
+
+        public Object caseOutput(Output output)
+        {
+          menu.add(createSetMessageMenu(output, isEditable));
+          //menu.add(createAddBindingMenuForIOF(output));
+          return null;
+        }
+
+        public Object caseMessage(Message message)
+        {
+          if (isEditable)
+          {
+            menu.add(new AddPartAction(editorPart, message, node, prefix));
+          }
+          return null;
+        }
+
+        public Object caseOperation(Operation operation)
+        {
+          if (isEditable)
+          {
+            menu.add(new AddInputAction(editorPart, node, operation, prefix));
+            menu.add(new AddOutputAction(editorPart, node, operation, prefix));
+            menu.add(new AddFaultAction(editorPart, node, operation, prefix));
+          }
+          //menu.add(createAddBindingMenuForOperation(operation));
+          return null;
+        }
+
+        public Object casePart(Part part)
+        {
+          menu.add(createSetPartMenu(part, (Element) node, "element", isEditable)); //$NON-NLS-1$
+          menu.add(createSetPartMenu(part, (Element) node, "type", isEditable)); //$NON-NLS-1$
+          return null;
+        }
+
+        public Object casePort(Port port)
+        {
+          if (node instanceof Element)
+          {
+            menu.add(createSetBindingMenu(port, (Element) node, isEditable));
+            if (port.getEBinding() != null)
+            {
+              menu.add(createSetPortTypeMenu(port.getEBinding(), isEditable));
+            }
+          }
+          return null;
+        }
+
+        public Object casePortType(PortType portType)
+        {
+          if (isEditable)
+          {
+            menu.add(new AddOperationAction(editorPart, portType, node, prefix));
+          }
+          return null;
+        }
+
+        public Object caseService(Service service)
+        {
+          if (isEditable)
+          {
+            menu.add(new AddPortAction(service));
+          }
+          return null;
+        }
+
+        //public Object caseTypes(Types types)
+        //{   
+        //  return createTypesAdapter();
+        // } 
+      };
+      wsdlSwitch.doSwitch((WSDLElement) object);
+    }
+    else if (object instanceof WSDLGroupObject)
+    {
+      addMenu = new MenuManager(WSDLEditorPlugin.getWSDLString("_UI_ACTION_ADD_CHILD"), "addchild"); //$NON-NLS-1$ //$NON-NLS-2$
+      menu.add(addMenu);
+      
+      WSDLGroupObject groupObject = (WSDLGroupObject) object;
+      Definition definition = groupObject.getDefinition();
+
+      final String prefix = definition.getPrefix(WSDLConstants.WSDL_NAMESPACE_URI);
+
+      //for (Iterator i = actionList.iterator(); i.hasNext(); )
+      //{                           
+      //  Action action = (Action)i.next();
+      //  manager.add(action); 
+      //}
+
+      switch (groupObject.getType())
+      {
+        case WSDLGroupObject.MESSAGES_GROUP :
+          {
+            menu.add(new AddMessageAction(groupObject.getDefinition(), null, node, prefix, ((WSDLEditor) editorPart).getXMLDocument()));
+            break;
+          }
+        case WSDLGroupObject.SERVICES_GROUP :
+          {
+            menu.add(new AddServiceAction(groupObject.getDefinition(), null, node, prefix, ((WSDLEditor) editorPart).getXMLDocument()));
+            break;
+          }
+        case WSDLGroupObject.PORT_TYPES_GROUP :
+          {
+            menu.add(new AddPortTypeAction(groupObject.getDefinition(), null, node, prefix, ((WSDLEditor) editorPart).getXMLDocument()));
+            break;
+          }
+        case WSDLGroupObject.BINDINGS_GROUP :
+          {
+            menu.add(new AddBindingAction(groupObject.getDefinition(), ((WSDLEditor) editorPart).getXMLDocument()));//, null, node, prefix));
+            break;
+          }
+        case WSDLGroupObject.IMPORTS_GROUP :
+          {
+            menu.add(new AddImportAction(editorPart, groupObject.getDefinition(), node, prefix));
+            break;
+          }
+      }
+    }
+
+    menu.add(new Separator());
+    
+   	addEEMenuActionContributor.contributeMenuActions(menu, node, object);
+
+    menu.add(new Separator());
+
+    if (object instanceof WSDLElement && node != null && addEditAction && node != null && isEditable)
+    {
+      //////////////////////////////////////// Currently, only allow Copy and Paste on Operations
+    	if (object instanceof Operation) {
+    		// Add Cut, Copy Actions
+    		// Note:  The Cut, Copy, Paste Actions are Model Driven.  The Delete Action is still
+    		// currently DOM driven.
+    		//      menu.add(new CutAction((WSDLElement) object, editorPart));
+   		 	menu.add(new CopyGlobalAction((WSDLElement) object, editorPart));
+    	}
+
+   	 	Action pasteAction = new PasteGlobalAction((WSDLElement) object, editorPart);
+   	 	if (pasteAction.isEnabled()) {
+   	 		menu.add(pasteAction);
+   	 	}
+   	 	
+	 	menu.add(new Separator());
+      //////////////////////////////////////// Currently, only allow Copy and Paste on Operations
+		
+		// Get the list of selected elements.  Use this list for the DeleteAction.		
+		IStructuredSelection selectionList = (IStructuredSelection) ((WSDLEditor) editorPart).getSelectionManager().getSelection();	
+		Action deleteAtion = new DeleteWSDLAndXSDAction(selectionList.toList(), node, (WSDLEditor) editorPart);
+		menu.add(deleteAtion);
+		deleteAtion.setEnabled(isEditable);
+    }
+    
+    // Allow Rename through a dialog mechanism.....  This should be changed when
+    // direct editing is ready
+    if (object instanceof WSDLElement && isEditable) {
+    	RenameDialogAction renameDialog = new RenameDialogAction((WSDLElement) object);
+    	if (renameDialog.showRenameDialog())
+    		menu.add(renameDialog);
+    }
+    
+    // insertion point for popupMenus extension
+    menu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
+  }
+
+  /*
+  protected MenuManager createAddBindingMenuForOperation(Operation operation) 
+  {
+    MenuManager subMenu = new MenuManager("Add Binding");                    
+  
+    Definition definition = operation.getEnclosingDefinition(); 
+    ComponentReferenceUtil util = new ComponentReferenceUtil(definition);
+  
+    String operationName = operation.getName();
+    if (operationName != null)
+    {       
+      for (Iterator i = util.getBindings(operation).iterator(); i.hasNext(); )
+      {   
+        Binding binding = (Binding)i.next();
+            
+        BindingOperation matchingBindingOperation = null;
+  
+        for (Iterator j = binding.getBindingOperations().iterator(); j.hasNext(); )
+        {
+          BindingOperation bindingOperation = (BindingOperation)j.next();
+          if (operationName.equals(bindingOperation.getName()))
+          { 
+            matchingBindingOperation = bindingOperation;
+            break;
+          }
+        }         
+  
+        if (matchingBindingOperation == null)
+        {                                                                            
+          Element bindingElement = WSDLUtil.getInstance().getElementForObject(binding);
+          subMenu.add(new AddBindingOperationAction(bindingElement, operation, prefix));
+        }    
+      }
+    }
+    return subMenu;
+  }*/
+
+  /*
+  protected MenuManager createAddBindingMenuForIOF(WSDLElement iof) 
+  {
+    MenuManager subMenu = new MenuManager("Add Binding");                    
+  
+    Definition definition = iof.getEnclosingDefinition(); 
+    Operation operation = (Operation)iof.eContainer();
+  
+    ComponentReferenceUtil util = new ComponentReferenceUtil(definition);
+  
+    String operationName = operation.getName();
+    if (operationName != null)
+    {  
+      for (Iterator i = util.getBindings(operation).iterator(); i.hasNext(); )
+      {   
+        Binding binding = (Binding)i.next();
+  
+        boolean hasName = false;
+        for (Iterator j = binding.getBindingOperations().iterator(); j.hasNext(); )
+        {
+          BindingOperation bindingOperation = (BindingOperation)j.next();
+          if (operationName.equals(bindingOperation.getName()))
+          {
+            hasName = true;
+            break;
+          }
+        }         
+  
+        if (!hasName)
+        {                                                                            
+          // TODO... should we add the operation to all of the bindings?
+          //
+          Element bindingElement = WSDLUtil.getInstance().getElementForObject(binding);
+          subMenu.add(new AddBindingOperationAction(bindingElement, operationName));
+        }
+      }
+    }
+    return subMenu;
+  }
+  */
+
+  protected MenuManager createSetBindingMenu(Port port, Element portElement, boolean isEditable)
+  {
+    MenuManager submenu = new MenuManager(WSDLEditorPlugin.getWSDLString("_UI_ACTION_SET_BINDING"));
+
+    Definition definition = port.getEnclosingDefinition();
+    String prefix = definition.getPrefix(WSDLConstants.WSDL_NAMESPACE_URI);
+    Element definitionElement = WSDLEditorUtil.getInstance().getElementForObject(definition);
+
+    SetNewComponentAction setNewAction = new SetNewComponentAction(WSDLEditorPlugin.getWSDLString("_UI_ACTION_NEW_BINDING"), definitionElement, prefix, "binding", port);
+    setNewAction.setEditor(editorPart);
+    setNewAction.setEnabled(true);
+    submenu.add(setNewAction);     
+    
+    SetExistingComponentAction action = new SetExistingComponentAction(WSDLEditorPlugin.getWSDLString("_UI_ACTION_EXISTING_BINDING"), definitionElement, prefix, "binding", port);
+    action.setEditor(editorPart);
+    action.setEnabled(isEditable);
+    submenu.add(action);
+    
+    return submenu;
+  }
+
+  protected MenuManager createSetPortTypeMenu(Binding binding, boolean isEditable)
+  {      
+    MenuManager submenu = new MenuManager(WSDLEditorPlugin.getWSDLString("_UI_ACTION_SET_PORTTYPE"));
+
+    if (binding != null)
+    {
+      Definition definition = binding.getEnclosingDefinition();
+      Element definitionElement = WSDLEditorUtil.getInstance().getElementForObject(definition);
+      String prefix = definition.getPrefix(WSDLConstants.WSDL_NAMESPACE_URI);
+	  
+      SetNewComponentAction setNewAction = new SetNewComponentAction(WSDLEditorPlugin.getWSDLString("_UI_ACTION_NEW_PORTTYPE"), definitionElement, prefix, "portType", binding);
+      setNewAction.setEditor(editorPart);
+      setNewAction.setEnabled(true);
+      submenu.add(setNewAction);      
+
+      SetExistingComponentAction action = new SetExistingComponentAction(WSDLEditorPlugin.getWSDLString("_UI_ACTION_EXISTING_PORTTYPE"), definitionElement, prefix, "portType", binding);
+      action.setEditor(editorPart);
+      action.setEnabled(isEditable);      
+      submenu.add(action);
+    }
+    return submenu;
+  }
+
+  protected MenuManager createSetMessageMenu(WSDLElement wsdlElement, boolean isEditable)
+  {
+    Definition definition = wsdlElement.getEnclosingDefinition();
+    Element definitionElement = WSDLEditorUtil.getInstance().getElementForObject(definition);
+    Element referencingElement = WSDLEditorUtil.getInstance().getElementForObject(wsdlElement);
+	
+    MenuManager submenu = new MenuManager(WSDLEditorPlugin.getWSDLString("_UI_ACTION_SET_MESSAGE"));
+    if (definitionElement != null && referencingElement != null)
+    {
+      String prefix = definition.getPrefix(WSDLConstants.WSDL_NAMESPACE_URI);
+      
+      SetNewComponentAction setNewAction = new SetNewComponentAction(WSDLEditorPlugin.getWSDLString("_UI_ACTION_NEW_MESSAGE"), definitionElement, prefix, "message", wsdlElement);
+      setNewAction.setEditor(editorPart);
+      setNewAction.setEnabled(true);
+      submenu.add(setNewAction);  
+      
+      SetExistingComponentAction action = new SetExistingComponentAction(WSDLEditorPlugin.getWSDLString("_UI_ACTION_EXISTING_MESSAGE"), definitionElement, prefix, "message", wsdlElement);
+      action.setEditor(editorPart);
+      action.setEnabled(isEditable);
+      submenu.add(action);
+    }
+    
+    return submenu;
+  }
+
+  protected MenuManager createSetPartMenu(Part part, Element portElement, String referenceKind, boolean isEditable)
+  {
+    Definition definition = part.getEnclosingDefinition();
+    String prefix = definition.getPrefix(WSDLConstants.WSDL_NAMESPACE_URI);
+    Element definitionElement = WSDLEditorUtil.getInstance().getElementForObject(definition);
+
+    String actionName;
+    MenuManager submenu = null;
+    if (referenceKind.equalsIgnoreCase("element")) // NON NLS
+    {
+      actionName = WSDLEditorPlugin.getWSDLString("_UI_ACTION_EXISTING_ELEMENT");
+      submenu = new MenuManager(WSDLEditorPlugin.getWSDLString("_UI_ACTION_SET_ELEMENT"));
+	  
+      SetNewComponentAction setNewElementAction = new SetNewComponentAction(WSDLEditorPlugin.getWSDLString("_UI_ACTION_NEW_ELEMENT"), definitionElement, prefix, "element", part);
+      setNewElementAction.setEditor(editorPart);
+      setNewElementAction.setEnabled(true);
+      setNewElementAction.setReferenceKind(referenceKind);
+      submenu.add(setNewElementAction);
+    }
+    else
+    {
+      actionName = WSDLEditorPlugin.getWSDLString("_UI_ACTION_EXISTING_TYPE");
+      submenu = new MenuManager(WSDLEditorPlugin.getWSDLString("_UI_ACTION_SET_TYPE"));
+      
+      SetNewComponentAction setNewComplexAction = new SetNewComponentAction(WSDLEditorPlugin.getWSDLString("_UI_ACTION_NEW_COMPLEX_TYPE"), definitionElement, prefix, "complex type", part);
+      setNewComplexAction.setEditor(editorPart);
+      setNewComplexAction.setEnabled(true);
+      setNewComplexAction.setReferenceKind(referenceKind);
+      setNewComplexAction.setTypeKind("complex");
+      Image image = XSDEditorPlugin.getXSDImage("icons/XSDComplexType.gif");
+      setNewComplexAction.setImageDescriptor(ImageDescriptor.createFromImage(image));
+      submenu.add(setNewComplexAction);
+      
+      SetNewComponentAction setNewSimpleAction = new SetNewComponentAction(WSDLEditorPlugin.getWSDLString("_UI_ACTION_NEW_SIMPLE_TYPE"), definitionElement, prefix, "simple type", part);
+      setNewSimpleAction.setEditor(editorPart);
+      setNewSimpleAction.setEnabled(true);
+      setNewSimpleAction.setReferenceKind(referenceKind);
+      setNewSimpleAction.setTypeKind("simple");
+      image = XSDEditorPlugin.getXSDImage("icons/XSDSimpleType.gif");
+      setNewSimpleAction.setImageDescriptor(ImageDescriptor.createFromImage(image));
+
+      submenu.add(setNewSimpleAction); 
+    }
+
+    
+    SetExistingComponentAction action = new SetExistingComponentAction(actionName, definitionElement, prefix, actionName, part);
+    action.setReferenceKind(referenceKind);
+    action.setEditor(editorPart);
+    action.setEnabled(isEditable);
+    submenu.add(action);
+    
+    return submenu;
+  }
+  
+//  private WSDLElement showPasteAction(WSDLElement element, IEditorPart ePart) {
+//  	WSDLElement parentElement = null;
+//  	
+//  	if (ePart instanceof WSDLEditor) {
+//  		WSDLElement clipboardElement = ((WSDLEditor) ePart).getClipboardContents();
+//  		
+//  		if (element instanceof PortType) {
+//  			if (clipboardElement instanceof Operation) {
+//  				parentElement = element;
+//  			}
+//  		}
+//  		if (element instanceof Operation) {
+//  			if (clipboardElement instanceof Operation) {
+//  				parentElement = (WSDLElement) ((Operation) element).eContainer();
+//  			}
+//  		}
+//  	}
+//  	
+//  	return parentElement;
+//  }
+}
+
+class AddBindingOperationAction extends AddElementAction
+{
+  protected String name;
+  protected Operation operation;
+
+  public AddBindingOperationAction(Node parentNode, String name, String prefix)
+  {
+    // super(WSDLEditorPlugin.getWSDLString("_UI_ACTION_ADD") + " " + WSDLEditorPlugin.getWSDLString("_UI_LABEL_BINDING_OPERATION"), "icons/operationbinding_obj.gif", parentNode, prefix, "operation");
+    super(WSDLEditorPlugin.getWSDLString("_UI_ACTION_ADD_BINDING_OPERATION"), "icons/operationbinding_obj.gif", parentNode, prefix, "operation");
+    this.name = name;
+  }
+
+  public AddBindingOperationAction(Node parentNode, Operation operation, String prefix)
+  {
+    this(parentNode, operation.getName(), prefix);
+    this.operation = operation;
+  }
+
+  protected void addAttributes(Element newElement)
+  {
+    newElement.setAttribute("name", name);
+  }
+
+  protected void performAddElement()
+  {
+    super.performAddElement();
+
+    if (operation != null)
+    {
+      if (operation.getInput() != null)
+      {
+        new AddBindingInputAction(editorPart, newElement, prefix).run();
+      }
+      if (operation.getOutput() != null)
+      {
+        new AddBindingOutputAction(editorPart, newElement, prefix).run();
+      }
+      for (Iterator i = operation.getEFaults().iterator(); i.hasNext();)
+      {
+        Fault fault = (Fault) i.next();
+        new AddBindingFaultAction(newElement, fault, prefix).run();
+      }
+      format(operation.getElement());
+    }
+  }
+}
+
+
+class AddOperationAction extends AddElementAction
+{
+  protected String name = "NewOperation";
+  protected PortType portType;
+  protected boolean createSubComponents = false;
+
+  public AddOperationAction(IEditorPart editorPart, PortType portType, Node parentNode, String prefix)
+  {
+    super(WSDLEditorPlugin.getWSDLString("_UI_ACTION_ADD_OPERATION"), "icons/operation_obj.gif", parentNode, prefix, "operation");
+    setEditorPart(editorPart);
+    setDefinition(portType.getEnclosingDefinition());
+    this.portType = portType;
+  }
+
+  public boolean showDialog()
+  {
+    name = NameUtil.buildUniqueOperationName(portType);
+    name = showDialogHelper(WSDLEditorPlugin.getWSDLString("_UI_ACTION_NEW_OPERATION"), name, NameUtil.getUsedOperationNames(portType));
+    return name != null;
+  }
+
+//  protected void addAttributes(Element newElement)
+//  {
+//    newElement.setAttribute("name", name);
+//  }
+
+  protected void performAddElement()
+  {
+  	if (createSubComponents) {
+  	  	CreateWSDLElementHelper.operationName = name;
+  	  	CreateWSDLElementHelper.PART_TYPE_OR_DEFINITION = CreateWSDLElementHelper.getPartInfo(portType);
+  		Operation operation = CreateWSDLElementHelper.createOperation(portType);
+  		format(operation.getElement());  		
+  		selectObject(operation);
+  		expandEditParts(operation,true);
+  	}
+  	else {
+  		// Add Operation
+  		AddOperationCommand opAction = new AddOperationCommand(portType, name);
+		opAction.run();
+		Operation operation = (Operation) opAction.getWSDLElement();
+		
+		// Add Output
+  		AddOutputCommand outAction = new AddOutputCommand(operation, NameUtil.buildUniqueInputName(portType, operation.getName(), ""));
+  		outAction.run();
+  		
+		// Add Input
+		AddInputCommand inAction = new AddInputCommand(operation, NameUtil.buildUniqueOutputName(portType, operation.getName(), ""));
+  		inAction.run();
+
+  		format(operation.getElement());
+
+ 	  	selectObject(operation);
+ 	  	expandEditParts(operation, true);
+  	}
+  }
+
+	private void expandEditParts(Object element, boolean expandChildren) {
+	    if (element != null) {
+	    	EditPartViewer editPartViewer = ((WSDLEditor) editorPart).getGraphViewer().getComponentViewer();
+	    	Map editPartMap = editPartViewer.getEditPartRegistry();
+	    	WSDLTreeNodeEditPart wsdlEditPart = (WSDLTreeNodeEditPart) editPartMap.get(element);
+			wsdlEditPart.setExpanded(true);
+			
+			if (expandChildren) {
+				Iterator iterator = WSDLEditorUtil.getModelGraphViewChildren(element).iterator();
+				
+				while (iterator.hasNext()) {
+					expandEditParts(iterator.next(), expandChildren);
+				}
+			}
+	    }
+	}
+
+  public String showDialogHelper(String title, String defaultName, List usedNames)
+  {   
+    String result = defaultName; 
+    NewComponentWithChildDialog dialog = new NewComponentWithChildDialog(WSDLEditorPlugin.getShell(), title, defaultName, usedNames);
+    int rc = dialog.createAndOpen();
+    if (rc == IDialogConstants.OK_ID)
+    {
+      result = dialog.getName();  
+      createSubComponents = dialog.createSubComponents();
+    }
+    else
+    {
+      result = null;
+    }               
+    return result;
+  }
+}
+
+abstract class AddIOFAction extends AddElementAction
+{
+  protected Operation operation;
+
+  public AddIOFAction(IEditorPart editorPart, String text, String imageDescriptorKey, Node parentNode, String prefix, String localName, Operation operation)
+  {
+    super(text, imageDescriptorKey, parentNode, prefix, localName);
+    this.operation = operation;
+    setEditorPart(editorPart);
+    setDefinition(operation.getEnclosingDefinition());
+  }
+
+  abstract protected void performAddElementToBindingOperation(BindingOperation bindingOperation, Element bindingOperationElement);
+
+  /*
+  protected void addAttributes(Element newElement)
+  {
+    newElement.setAttribute("message", "");
+  }
+  */
+
+  protected void performAddElement()
+  {
+    if (operation != null)
+    {
+      Definition definition = operation.getEnclosingDefinition();
+      ComponentReferenceUtil util = new ComponentReferenceUtil(definition);
+
+      for (Iterator i = util.getBindingOperations(operation).iterator(); i.hasNext();)
+      {
+        BindingOperation bindingOperation = (BindingOperation) i.next();
+        Element bindingOperationElement = WSDLEditorUtil.getInstance().getElementForObject(bindingOperation);
+        if (bindingOperationElement != null)
+        {
+          performAddElementToBindingOperation(bindingOperation, bindingOperationElement);
+        }
+      }
+      format(operation.getElement());
+    }
+  }
+}
+
+class AddInputAction extends AddIOFAction
+{
+  public AddInputAction(IEditorPart editorPart, Node parentNode, Operation operation, String prefix)
+  {
+    super(editorPart, WSDLEditorPlugin.getWSDLString("_UI_ACTION_ADD_INPUT"), "icons/input_obj.gif", parentNode, prefix, "input", operation);
+  }
+
+  protected void performAddElementToBindingOperation(BindingOperation bindingOperation, Element bindingOperationElement)
+  {
+    if (bindingOperation.getBindingInput() == null)
+    {
+      new AddBindingInputAction(editorPart, bindingOperationElement, prefix).run();
+    }
+  }
+  
+  protected void performAddElement() {
+  	PortType portType = (PortType) ((WSDLElementImpl) operation).getContainer();
+  	CreateWSDLElementHelper.PART_TYPE_OR_DEFINITION = CreateWSDLElementHelper.getPartInfo(portType);
+  	Input input = CreateWSDLElementHelper.createInput(portType, operation, null); 
+  	format(input.getElement());
+  	selectObject(input);
+  }
+}
+
+class AddOutputAction extends AddIOFAction
+{
+  public AddOutputAction(IEditorPart editorPart, Node parentNode, Operation operation, String prefix)
+  {
+    super(editorPart, WSDLEditorPlugin.getWSDLString("_UI_ACTION_ADD_OUTPUT"), "icons/output_obj.gif", parentNode, prefix, "output", operation);
+  }
+
+  protected void performAddElementToBindingOperation(BindingOperation bindingOperation, Element bindingOperationElement)
+  {
+    if (bindingOperation.getBindingOutput() == null)
+    {
+      new AddBindingOutputAction(editorPart, bindingOperationElement, prefix).run();
+    }
+  }
+  
+  protected void performAddElement() {
+  	// Determine Part info
+  	PortType portType = (PortType) ((WSDLElementImpl) operation).getContainer();
+  	CreateWSDLElementHelper.PART_TYPE_OR_DEFINITION = CreateWSDLElementHelper.getPartInfo(portType);
+  	Output output = CreateWSDLElementHelper.createOutput(portType, operation); 
+  	format(output.getElement());
+  	selectObject(output);
+  }
+}
+
+class AddFaultAction extends AddIOFAction
+{
+  protected String name = "NewFault";
+  public AddFaultAction(IEditorPart editorPart, Node parentNode, Operation operation, String prefix)
+  {
+    super(editorPart, WSDLEditorPlugin.getWSDLString("_UI_ACTION_ADD_FAULT"), "icons/fault_obj.gif", parentNode, prefix, "fault", operation);
+    name = NameUtil.buildUniqueFaultName(operation);
+  }
+
+  public boolean showDialog()
+  {
+    name = NameUtil.buildUniqueFaultName(operation);
+    name = showDialogHelper(WSDLEditorPlugin.getWSDLString("_UI_ACTION_NEW_FAULT"), name, NameUtil.getUsedFaultNames(operation));
+    return name != null;
+  }
+
+  /*
+  protected void addAttributes(Element newElement)
+  {
+    newElement.setAttribute("message", "");
+    newElement.setAttribute("name", name);
+  }
+  */
+
+  protected void performAddElementToBindingOperation(BindingOperation bindingOperation, Element bindingOperationElement)
+  {
+    if (bindingOperation.getBindingFault(name) == null)
+    {
+      new AddBindingFaultAction(bindingOperationElement, prefix).run();
+    }
+  }
+  
+  protected void performAddElement() {
+  	CreateWSDLElementHelper.faultName = name;
+  	CreateWSDLElementHelper.PART_TYPE_OR_DEFINITION = CreateWSDLElementHelper.getPartInfo(operation);
+  	Fault fault = CreateWSDLElementHelper.createFault(operation);
+  	format(fault.getElement());  	
+  	selectObject(fault);
+  }
+}
+
+class AddBindingInputAction extends AddElementAction
+{
+  public AddBindingInputAction(IEditorPart editorPart, Node parentNode, String prefix)
+  {
+    super(WSDLEditorPlugin.getWSDLString("_UI_ACTION_ADD_INPUT"), "icons/input_obj.gif", parentNode, prefix, "input");
+    setEditorPart(editorPart);
+  }
+}
+
+class AddBindingOutputAction extends AddElementAction
+{
+  public AddBindingOutputAction(IEditorPart editorPart, Node parentNode, String prefix)
+  {
+    super(WSDLEditorPlugin.getWSDLString("_UI_ACTION_ADD_OUTPUT"), "icons/output_obj.gif", parentNode, prefix, "output");
+    setEditorPart(editorPart);
+  }
+}
+
+class AddBindingFaultAction extends AddElementAction
+{
+  protected Fault fault;
+
+  public AddBindingFaultAction(Node parentNode, String prefix)
+  {
+    super(WSDLEditorPlugin.getWSDLString("_UI_ACTION_ADD_FAULT"), "icons/fault_obj.gif", parentNode, prefix, "fault");
+  }
+
+  public AddBindingFaultAction(Node parentNode, Fault fault, String prefix)
+  {
+    this(parentNode, prefix);
+    this.fault = fault;
+  }
+
+  protected void addAttributes(Element newElement)
+  {
+    if (fault == null)
+    {
+      newElement.setAttribute("name", "NewFault");
+    }
+    else
+    {
+      newElement.setAttribute("name", fault.getName());
+    }
+  }
+}
+
+class AddMessageAction extends AddElementAction
+{
+  protected Definition definition;
+  protected String name;
+
+  public AddMessageAction(Definition definition, String name, Node parentNode, String prefix)
+  {
+    super(WSDLEditorPlugin.getWSDLString("_UI_ACTION_ADD_MESSAGE"), "icons/message_obj.gif", parentNode, prefix, "message");
+    this.definition = definition;
+    this.name = name;
+    setComputeTopLevelRefChild(true);
+  }
+
+  public AddMessageAction(Definition definition, String name, Node parentNode, String prefix, Document document)
+  {
+    super(WSDLEditorPlugin.getWSDLString("_UI_ACTION_ADD_MESSAGE"), "icons/message_obj.gif", parentNode, prefix, "message");
+    this.definition = definition;
+    this.name = name;
+    this.setDefinition(definition);
+    this.document = document;
+    setComputeTopLevelRefChild(true);
+  }
+  
+  public boolean showDialog()
+  {
+    name = NameUtil.buildUniqueMessageName(definition, name);
+    name = showDialogHelper(WSDLEditorPlugin.getWSDLString("_UI_ACTION_NEW_MESSAGE"), name, NameUtil.getUsedMessageNames(definition));
+    return name != null;
+  }
+
+//  protected void addAttributes(Element newElement)
+//  {
+//    newElement.setAttribute("name", name);
+//  }
+  
+  protected void performAddElement() {
+  	NodeList list = document.getChildNodes();
+  	if (parentNode == null|| list.getLength() == 0) {
+  		createDefinitionStub();
+  	}
+  	
+  	AddMessageCommand action = new AddMessageCommand(definition, name);
+	action.run();
+	Message message = (Message) action.getWSDLElement();
+	CreateWSDLElementHelper.createPart(message);
+	format(message.getElement());
+	selectObject(message);
+  }
+
+  public String getName()
+  {
+    return name;
+  }
+}
+
+class AddPartAction extends AddElementAction
+{
+  protected Message message;
+  protected String name;
+
+  public AddPartAction(IEditorPart editorPart, Message message, Node parentNode, String prefix)
+  {
+    super(WSDLEditorPlugin.getWSDLString("_UI_ACTION_ADD_PART"), "icons/part_obj.gif", parentNode, prefix, "part");
+    this.message = message;
+    setEditorPart(editorPart);
+    setDefinition(message.getEnclosingDefinition());
+  }
+
+  public boolean showDialog()
+  {
+    name = NameUtil.buildUniquePartName(message, message.getQName().getLocalPart());
+    name = showDialogHelper(WSDLEditorPlugin.getWSDLString("_UI_ACTION_NEW_PART"), name, NameUtil.getUsedPartNames(message));
+    return name != null;
+  }
+
+  protected void addAttributes(Element newElement)
+  {
+    newElement.setAttribute("name", name);
+    String xsdPrefix = message.getEnclosingDefinition().getPrefix(WSDLConstants.XSD_NAMESPACE_URI);
+    if (xsdPrefix == null)
+    {
+    	Element definitionElement = WSDLEditorUtil.getInstance().getElementForObject(message.getEnclosingDefinition());    	
+        new AddNamespaceDeclarationsAction(definitionElement, WSDLConstants.XSD_NAMESPACE_URI, "xsd").run();
+		xsdPrefix = message.getEnclosingDefinition().getPrefix(WSDLConstants.XSD_NAMESPACE_URI);
+    }
+			
+    String defaultTypeName = "string";
+    if (xsdPrefix != null && xsdPrefix.length() > 0)
+    {
+      defaultTypeName = xsdPrefix + ":" + defaultTypeName;
+    }
+    newElement.setAttribute("type", defaultTypeName);
+  }
+}
+
+class AddServiceAction extends AddElementAction
+{
+  protected String name;
+  protected Definition definition;
+
+  public AddServiceAction(Definition definition, String name, Node parentNode, String prefix)
+  {
+    super(WSDLEditorPlugin.getWSDLString("_UI_ACTION_ADD_SERVICE"), "icons/service_obj.gif", parentNode, prefix, "service");
+    this.definition = definition;
+    this.name = name;
+    setComputeTopLevelRefChild(true);
+  }
+
+  public AddServiceAction(Definition definition, String name, Node parentNode, String prefix, Document document)
+  {
+    super(WSDLEditorPlugin.getWSDLString("_UI_ACTION_ADD_SERVICE"), "icons/service_obj.gif", parentNode, prefix, "service");
+    this.definition = definition;
+    this.name = name;
+    this.setDefinition(definition);
+    this.document = document;
+    setComputeTopLevelRefChild(true);
+  }
+
+  public boolean showDialog()
+  {
+    if (name == null)
+    {
+      name = NameUtil.buildUniqueServiceName(definition);
+    }
+    name = showDialogHelper(WSDLEditorPlugin.getWSDLString("_UI_ACTION_NEW_SERVICE"), name, NameUtil.getUsedServiceNames(definition));
+    return name != null;
+  }
+
+  protected void addAttributes(Element newElement)
+  {
+    newElement.setAttribute("name", name);
+  }
+  
+  protected void performAddElement() {  	
+  	NodeList list = document.getChildNodes();
+  	if (parentNode == null || list.getLength() == 0) {
+  		createDefinitionStub();
+  	}
+  	
+  	super.performAddElement();
+  }
+}
+
+class AddPortTypeAction extends AddElementAction
+{
+  protected String name;
+  protected Definition definition;
+
+  public AddPortTypeAction(Definition definition, String name, Node parentNode, String prefix)
+  {
+    super(WSDLEditorPlugin.getWSDLString("_UI_ACTION_ADD_PORTTYPE"), "icons/porttype_obj.gif", parentNode, prefix, "portType");
+    this.definition = definition;
+    this.name = name;
+    setComputeTopLevelRefChild(true);
+  }
+
+  public AddPortTypeAction(Definition definition, String name, Node parentNode, String prefix, Document document)
+  {
+    super(WSDLEditorPlugin.getWSDLString("_UI_ACTION_ADD_PORTTYPE"), "icons/porttype_obj.gif", parentNode, prefix, "portType");
+    this.definition = definition;
+    this.name = name;
+    this.setDefinition(definition);
+    this.document = document;
+    setComputeTopLevelRefChild(true);
+  }
+  
+  public boolean showDialog()
+  {
+    name = NameUtil.buildUniquePortTypeName(definition, name);
+    name = showDialogHelper(WSDLEditorPlugin.getWSDLString("_UI_ACTION_NEW_PORTTYPE"), name, NameUtil.getUsedPortTypeNames(definition));
+    return name != null;
+  }
+
+  protected void addAttributes(Element newElement)
+  {
+    newElement.setAttribute("name", name);
+  }
+
+  public String getPortTypeName()
+  {
+    return name;
+  }
+  
+  protected void performAddElement() {
+  	NodeList list = document.getChildNodes();
+  	if (parentNode == null || list.getLength() == 0) {
+  		createDefinitionStub();
+  	}
+  	
+  	super.performAddElement();
+  }
+}
+
+class AddBindingAction extends Action
+{
+  protected Definition definition;
+  protected Document document;
+
+  public AddBindingAction(Definition definition, Document document)
+  {
+    super(WSDLEditorPlugin.getWSDLString("_UI_ACTION_ADD_BINDING"), ImageDescriptor.createFromFile(WSDLEditorPlugin.class, "icons/binding_obj.gif")); //$NON-NLS-1$
+    //setToolTipText(WSDLEditorPlugin.getInstance().getWSDLString("_UI_LABEL_BINDING_WIZARD")); //$NON-NLS-1$
+    this.definition = definition;
+    this.document = document;
+  }
+
+  public void run()
+  {
+    BindingWizard wizard = new BindingWizard(definition, document);
+    WizardDialog wizardDialog = new WizardDialog(Display.getCurrent().getActiveShell(), wizard);
+    wizardDialog.create();
+
+    int result = wizardDialog.open();
+
+    if (result == Window.OK)
+    {
+      //todo...      
+    }
+  }
+}
+
+class AddPortAction extends Action
+{
+	protected Service service;
+
+	public AddPortAction(Service service)
+	{
+		super(WSDLEditorPlugin.getWSDLString("_UI_ACTION_ADD_PORT"), ImageDescriptor.createFromFile(WSDLEditorPlugin.class, "icons/binding_obj.gif")); //$NON-NLS-1$
+		//setToolTipText(WSDLEditorPlugin.getInstance().getWSDLString("_UI_LABEL_BINDING_WIZARD")); //$NON-NLS-1$
+		this.service = service;
+	}
+
+	public void run()
+	{
+		PortWizard wizard = new PortWizard(service);
+		WizardDialog wizardDialog = new WizardDialog(Display.getCurrent().getActiveShell(), wizard);
+		wizardDialog.create();
+
+		int result = wizardDialog.open();
+		if (result == Window.OK)
+		{
+			//todo...      
+		}
+	}
+}
+
+class GenerateBindingContentAction extends Action
+{
+	protected Binding binding;
+	public GenerateBindingContentAction(Binding binding, boolean isEditable)
+	{
+		super(WSDLEditorPlugin.getWSDLString("_UI_GENERATE_BINDING_CONTENT"));
+		this.binding = binding;
+		setEnabled(isEditable);
+	}
+	
+	public void run()
+	{
+		BindingWizard wizard = new BindingWizard(binding.getEnclosingDefinition(), binding, BindingWizard.KIND_REGENERATE_BINDING);
+		wizard.setBindingName(ComponentReferenceUtil.getName(binding));
+		wizard.setPortTypeName(ComponentReferenceUtil.getPortTypeReference(binding));
+		WizardDialog wizardDialog = new WizardDialog(Display.getCurrent().getActiveShell(), wizard);
+		wizardDialog.create();
+		wizardDialog.open();	
+	}
+}
+
+//This is a temporary class to allow renaming.  This should be replaced when direct
+//renaming is ready
+class RenameDialogAction extends Action {
+	private WSDLElement element;
+	private String defaultName = "NewName";
+	private List usedNames = new ArrayList();
+	private boolean useSmartRename = false;
+	private boolean showDialog = false;
+	
+	public RenameDialogAction(WSDLElement selection) {
+		setText(WSDLEditorPlugin.getWSDLString("_UI_ACTION_RENAME"));
+		element = selection;
+		initialize();
+	}
+	
+	public void run() {
+		String result;
+
+		NewComponentDialog dialog = new NewComponentDialog(WSDLEditorPlugin.getShell(), WSDLEditorPlugin.getWSDLString("_UI_ACTION_RENAME"), defaultName, usedNames);
+		int rc = dialog.createAndOpen();
+		if (rc == IDialogConstants.OK_ID)
+		{
+		  result = dialog.getName();
+		  if (useSmartRename) {
+		  	SmartRenameAction smartRename = new SmartRenameAction(element, result);	
+		  	smartRename.run();
+		  }
+		  else {
+		  	RenameAction rename = new RenameAction(element, result);
+		  	rename.run();
+		  }
+		}
+	}
+	
+	public void initialize() {
+		if (element instanceof Fault) {
+			usedNames = NameUtil.getUsedFaultNames((Operation) ((Fault) element).eContainer());
+			defaultName = ((Fault) element).getName();
+			
+			showDialog = true;
+			useSmartRename = true;
+		}
+		else if (element instanceof Message) {
+			usedNames = NameUtil.getUsedMessageNames(element.getEnclosingDefinition());
+			defaultName = ((Message) element).getQName().getLocalPart();
+			
+			showDialog = true;
+			useSmartRename = true;
+		}
+		else if (element instanceof Operation) {
+			usedNames = NameUtil.getUsedOperationNames((PortType) ((Operation) element).eContainer());		
+			defaultName = ((Operation) element).getName();
+			
+			showDialog = true;
+			useSmartRename = true;
+		}
+		else if (element instanceof Part) {
+			usedNames = NameUtil.getUsedPartNames((Message) ((Part) element).eContainer());			
+			defaultName = ((Part) element).getName();
+			
+			showDialog = true;
+			useSmartRename = true;
+		}
+		else if (element instanceof PortType) {
+			usedNames = NameUtil.getUsedPortTypeNames(element.getEnclosingDefinition());
+			defaultName = ((PortType) element).getQName().getLocalPart();
+			
+			showDialog = true;
+			useSmartRename = false;
+		}
+		else if (element instanceof Port) {
+			usedNames = NameUtil.getUsedPortNames((Service) ((Port) element).eContainer());
+			defaultName = ((Port) element).getName();
+			
+			showDialog = true;
+			useSmartRename = true;
+		}
+		else if (element instanceof Binding) {
+			usedNames = NameUtil.getUsedBindingNames(element.getEnclosingDefinition());			
+			defaultName = ((Binding) element).getQName().getLocalPart();
+			
+			showDialog = true;
+			useSmartRename = false;
+		}
+		else if (element instanceof Service) {
+			usedNames = NameUtil.getUsedServiceNames(element.getEnclosingDefinition());
+			defaultName = ((Service) element).getQName().getLocalPart();
+			
+			showDialog = true;
+			useSmartRename = false;
+		}
+		usedNames.remove(defaultName);
+	}
+	
+	public boolean showRenameDialog() {
+		return showDialog;
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/WSDLMenuListener.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/WSDLMenuListener.java
new file mode 100644
index 0000000..a71c238
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/actions/WSDLMenuListener.java
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.actions;
+
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.wst.wsdl.WSDLElement;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditor;
+import org.eclipse.wst.wsdl.ui.internal.model.WSDLGroupObject;
+import org.w3c.dom.Node;
+
+
+public class WSDLMenuListener implements IMenuListener
+{                      
+  protected ISelectionProvider selectionProvider;
+  protected ExtensibleMenuActionContributor extensibleMenuActionContributor;
+
+  public WSDLMenuListener(WSDLEditor editor, ISelectionProvider selectionProvider)
+  {
+    super();                                                               
+    this.extensibleMenuActionContributor = new ExtensibleMenuActionContributor(editor);
+    this.selectionProvider = selectionProvider;              
+  }
+      
+  protected Object getSelectedObject()
+  {      
+    ISelection selection = selectionProvider.getSelection();    
+    return selection.isEmpty() ? null : ((IStructuredSelection)selection).getFirstElement();   
+  }
+
+  public void menuAboutToShow(IMenuManager manager)
+  {                                                                                         
+    Object object = getSelectedObject();
+    Node node = null;
+    if (object instanceof Node)
+    {
+      node = (Node)object;
+    }
+    else if (object instanceof WSDLElement)
+    {
+      node = ((WSDLElement)object).getElement();   
+    }                                                                            
+    else if (object instanceof WSDLGroupObject)
+    {
+      node =  ((WSDLGroupObject)object).getDefinition().getElement();
+    }
+    extensibleMenuActionContributor.contributeMenuActions(manager, node, object);
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddBindingCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddBindingCommand.java
similarity index 95%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddBindingCommand.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddBindingCommand.java
index 21251bb..899817a 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddBindingCommand.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddBindingCommand.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddBindingFaultCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddBindingFaultCommand.java
similarity index 95%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddBindingFaultCommand.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddBindingFaultCommand.java
index 0099bb3..c8e02ae 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddBindingFaultCommand.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddBindingFaultCommand.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddBindingInputCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddBindingInputCommand.java
similarity index 95%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddBindingInputCommand.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddBindingInputCommand.java
index fa8825b..5303b44 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddBindingInputCommand.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddBindingInputCommand.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddBindingOperationCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddBindingOperationCommand.java
similarity index 97%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddBindingOperationCommand.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddBindingOperationCommand.java
index cadc5ea..45e0f96 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddBindingOperationCommand.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddBindingOperationCommand.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddBindingOutputCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddBindingOutputCommand.java
similarity index 95%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddBindingOutputCommand.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddBindingOutputCommand.java
index 480da50..4286b6c 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddBindingOutputCommand.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddBindingOutputCommand.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddFaultCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddFaultCommand.java
similarity index 97%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddFaultCommand.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddFaultCommand.java
index 1853f06..deb638a 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddFaultCommand.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddFaultCommand.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddImportCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddImportCommand.java
similarity index 96%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddImportCommand.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddImportCommand.java
index 8439dbf..7fc4eb6 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddImportCommand.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddImportCommand.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddInputCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddInputCommand.java
similarity index 97%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddInputCommand.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddInputCommand.java
index b8db14d..0e33b71 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddInputCommand.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddInputCommand.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddMessageCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddMessageCommand.java
similarity index 97%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddMessageCommand.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddMessageCommand.java
index fd46f8c..9079724 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddMessageCommand.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddMessageCommand.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddMessageReferenceCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddMessageReferenceCommand.java
similarity index 97%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddMessageReferenceCommand.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddMessageReferenceCommand.java
index 5c3be9b..1ec11ea 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddMessageReferenceCommand.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddMessageReferenceCommand.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddOperationCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddOperationCommand.java
similarity index 98%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddOperationCommand.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddOperationCommand.java
index 44f408e..8059fc2 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddOperationCommand.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddOperationCommand.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddOutputCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddOutputCommand.java
similarity index 97%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddOutputCommand.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddOutputCommand.java
index ef03915..5c57c58 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddOutputCommand.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddOutputCommand.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddPartCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddPartCommand.java
similarity index 98%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddPartCommand.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddPartCommand.java
index bc5f688..2ed9d68 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddPartCommand.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddPartCommand.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddPortCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddPortCommand.java
similarity index 95%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddPortCommand.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddPortCommand.java
index c326901..a647c52 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddPortCommand.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddPortCommand.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddPortTypeCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddPortTypeCommand.java
similarity index 96%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddPortTypeCommand.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddPortTypeCommand.java
index db8f1ea..5eb4d5a 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddPortTypeCommand.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddPortTypeCommand.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddServiceCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddServiceCommand.java
similarity index 96%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddServiceCommand.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddServiceCommand.java
index f66d645..d9fed45 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddServiceCommand.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddServiceCommand.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddTypesCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddTypesCommand.java
similarity index 95%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddTypesCommand.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddTypesCommand.java
index d87e58c..b568fd1 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddTypesCommand.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddTypesCommand.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddUnknownExtensibilityElementCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddUnknownExtensibilityElementCommand.java
similarity index 97%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddUnknownExtensibilityElementCommand.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddUnknownExtensibilityElementCommand.java
index f0487bc..ab3352d 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddUnknownExtensibilityElementCommand.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddUnknownExtensibilityElementCommand.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddXSDElementDeclarationCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddXSDElementDeclarationCommand.java
similarity index 98%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddXSDElementDeclarationCommand.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddXSDElementDeclarationCommand.java
index 319f068..5fce11e 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddXSDElementDeclarationCommand.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddXSDElementDeclarationCommand.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddXSDSchemaCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddXSDSchemaCommand.java
similarity index 97%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddXSDSchemaCommand.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddXSDSchemaCommand.java
index adfbda8..73bd1fd 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddXSDSchemaCommand.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddXSDSchemaCommand.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddXSDTypeDefinitionCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddXSDTypeDefinitionCommand.java
similarity index 98%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddXSDTypeDefinitionCommand.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddXSDTypeDefinitionCommand.java
index 5cd7cea..e0ec076 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddXSDTypeDefinitionCommand.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddXSDTypeDefinitionCommand.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/WSDLElementCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/WSDLElementCommand.java
similarity index 91%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/WSDLElementCommand.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/WSDLElementCommand.java
index a018051..3fc9c24 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/WSDLElementCommand.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/WSDLElementCommand.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/contentgenerator/ContentGenerator.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/contentgenerator/ContentGenerator.java
new file mode 100644
index 0000000..ff3bfc7
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/contentgenerator/ContentGenerator.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.contentgenerator;  
+        
+import org.eclipse.wst.wsdl.Definition;
+import org.eclipse.wst.wsdl.Fault;
+import org.eclipse.wst.wsdl.Input;
+import org.eclipse.wst.wsdl.Operation;
+import org.eclipse.wst.wsdl.Output;
+import org.eclipse.wst.wsdl.Port;
+import org.eclipse.wst.wsdl.PortType;
+import org.w3c.dom.Element;
+
+
+
+public interface ContentGenerator
+{        
+	
+  public static String ADDRESS_LOCATION = "http://tempuri.org/";  
+  public void init(Definition definition, Object generator, Object[] options);
+
+  public String[] getRequiredNamespaces();
+  
+  public String[] getPreferredNamespacePrefixes();
+
+  // generates the 'address' extensiblity element for a port
+  //
+  public void generatePortContent(Element portElement, Port port);
+ 
+  public void generateBindingContent(Element bindingElement, PortType portType);
+
+  public void generateBindingOperationContent(Element bindingOperationElement, Operation operation);
+ 
+  public void generateBindingInputContent(Element bindingInputElement, Input input);    
+
+  public void generateBindingOutputContent(Element bindingOutputElement, Output output);
+
+  public void generateBindingFaultContent(Element bindingFaultElement, Fault fault);
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/contentgenerator/HttpContentGenerator.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/contentgenerator/HttpContentGenerator.java
new file mode 100644
index 0000000..3599cef
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/contentgenerator/HttpContentGenerator.java
@@ -0,0 +1,109 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.contentgenerator;
+
+import org.eclipse.wst.wsdl.Definition;
+import org.eclipse.wst.wsdl.Fault;
+import org.eclipse.wst.wsdl.Input;
+import org.eclipse.wst.wsdl.Operation;
+import org.eclipse.wst.wsdl.Output;
+import org.eclipse.wst.wsdl.Port;
+import org.eclipse.wst.wsdl.PortType;
+import org.w3c.dom.Element;
+
+
+public class HttpContentGenerator implements ContentGenerator
+{
+  protected Definition definition;
+  protected boolean isPost;
+  protected String addressLocation = ContentGenerator.ADDRESS_LOCATION;
+
+  protected final static String[] requiredNamespaces = { "http://schemas.xmlsoap.org/wsdl/mime/", "http://schemas.xmlsoap.org/wsdl/http/" };
+  protected final static String[] preferredNamespacePrefixes = { "mime", "http" };
+
+  public void init(Definition definition, Object generator, Object[] options)
+  {
+    this.definition = definition;
+
+    if (options != null)
+    {
+      if (options.length > 0 && options[0] != null)
+      {
+        Boolean isPostOption = (Boolean) options[0];
+        isPost = isPostOption.booleanValue();
+      }
+      if (options.length > 1 && options[1] != null)
+      {
+        addressLocation = (String) options[1];
+      }
+    }
+  }
+
+  public String[] getRequiredNamespaces()
+  {
+    return requiredNamespaces;
+  }
+
+  public String[] getPreferredNamespacePrefixes()
+  {
+    return preferredNamespacePrefixes;
+  }
+
+  public void generatePortContent(Element portElement, Port port)
+  {
+    Element element = createElement(portElement, "http", "address");
+    element.setAttribute("location", addressLocation);
+  }
+
+  public void generateBindingContent(Element bindingElement, PortType portType)
+  {
+    Element element = createElement(bindingElement, "http", "binding");
+    element.setAttribute("verb", isPost ? "POST" : "GET");
+  }
+
+  public void generateBindingOperationContent(Element bindingOperationElement, Operation operation)
+  {
+    Element element = createElement(bindingOperationElement, "http", "operation");
+    element.setAttribute("location", "/" + operation.getName());
+  }
+
+  public void generateBindingInputContent(Element bindingInputElement, Input input)
+  {
+    if (isPost)
+    {
+      Element element = createElement(bindingInputElement, "mime", "content");
+      element.setAttribute("type", "application/x-www-form-urlencoded");
+    }
+    else
+    {
+      createElement(bindingInputElement, "http", "urlEncoded");
+    }
+  }
+
+  public void generateBindingOutputContent(Element bindingOutputElement, Output output)
+  {
+    Element element = createElement(bindingOutputElement, "mime", "content");
+    element.setAttribute("type", "text/xml");
+  }
+
+  public void generateBindingFaultContent(Element bindingFaultElement, Fault fault)
+  {
+    //TODO!!
+  }
+
+  protected Element createElement(Element parentElement, String prefix, String elementName)
+  {
+    String name = prefix != null ? (prefix + ":" + elementName) : elementName;
+    Element result = parentElement.getOwnerDocument().createElement(name);
+    parentElement.appendChild(result);
+    return result;
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/contentgenerator/SoapContentGenerator.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/contentgenerator/SoapContentGenerator.java
new file mode 100644
index 0000000..d928c33
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/contentgenerator/SoapContentGenerator.java
@@ -0,0 +1,159 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.contentgenerator;  
+        
+import org.eclipse.wst.wsdl.Definition;
+import org.eclipse.wst.wsdl.Fault;
+import org.eclipse.wst.wsdl.Input;
+import org.eclipse.wst.wsdl.Operation;
+import org.eclipse.wst.wsdl.Output;
+import org.eclipse.wst.wsdl.Port;
+import org.eclipse.wst.wsdl.PortType;
+import org.w3c.dom.Element;
+
+
+public class SoapContentGenerator implements ContentGenerator
+{ 
+  private final int DOCUMENT_LITERAL = 1;
+  private final int RPC_LITERAL      = 2;
+  private final int RPC_ENCODED      = 3;
+
+  protected int bindingOption = DOCUMENT_LITERAL;
+  protected String namespaceValue = "";
+  protected String addressLocation = ContentGenerator.ADDRESS_LOCATION;                   
+  protected Definition definition;                                    
+
+  protected final static String[] requiredNamespaces = {"http://schemas.xmlsoap.org/wsdl/soap/"};
+  protected final static String[] preferredNamespacePrefixes = {"soap"};
+
+
+  public void init(Definition definition, Object generator, Object[] options)
+  {              
+    this.definition = definition;
+                       
+    if (options != null)
+    {
+      bindingOption = computeBindingOption(options);
+
+      if (options.length > 1 && options[1] != null)
+      {
+      	addressLocation = (String)options[1];
+      }  
+    }
+    if (definition.getTargetNamespace() != null)
+    {
+      namespaceValue = definition.getTargetNamespace();
+    } 
+  }
+  
+  private int computeBindingOption(Object[] options) {
+  	int option = DOCUMENT_LITERAL;
+    if (options.length > 0 && options[0] != null)
+    {
+		boolean isDocumentLiteralOption = ((Boolean)options[0]).booleanValue();
+		if (isDocumentLiteralOption)
+			option =  DOCUMENT_LITERAL;
+		else
+			option = RPC_ENCODED;		
+		
+    	if (options.length >= 3 && options[2] != null) {
+    		// Extra info sent in
+    		if (((Boolean)options[2]).booleanValue())
+    			option = RPC_LITERAL;
+    	}
+    }
+
+    return option;
+  }
+     
+  public String[] getRequiredNamespaces()
+  {
+    return requiredNamespaces;
+  }
+  
+  public String[] getPreferredNamespacePrefixes()
+  {
+    return preferredNamespacePrefixes;
+  }  
+
+  public void generatePortContent(Element portElement, Port port)
+  {
+    Element element = createElement(portElement, "soap", "address");
+    element.setAttribute("location", addressLocation);     
+  }  
+
+  public void generateBindingContent(Element bindingElement, PortType portType)
+  {
+    Element element = createElement(bindingElement, "soap", "binding");
+    element.setAttribute("style", (bindingOption == DOCUMENT_LITERAL) ? "document" : "rpc"); 
+    element.setAttribute("transport", "http://schemas.xmlsoap.org/soap/http");
+  }
+
+  public void generateBindingOperationContent(Element bindingOperationElement, Operation operation)
+  {
+    Element element = createElement(bindingOperationElement, "soap", "operation");
+    
+    String soapActionValue = namespaceValue;                                        
+    if (!soapActionValue.endsWith("/"))
+    {                
+      soapActionValue += "/";
+    }                        
+    soapActionValue += operation.getName();
+    element.setAttribute("soapAction", soapActionValue);
+  }  
+
+  public void generateBindingInputContent(Element bindingInputElement, Input input)
+  {
+    generateSoapBody(bindingInputElement);
+  }
+
+  public void generateBindingOutputContent(Element bindingOutputElement, Output output)
+  {
+    generateSoapBody(bindingOutputElement);
+  }         
+
+  public void generateBindingFaultContent(Element bindingFaultElement, Fault fault)
+  {                              
+    Element element = createElement(bindingFaultElement, "soap", "fault");      
+    element.setAttribute("name", fault.getName()); 
+    element.setAttribute("use", (bindingOption == RPC_ENCODED) ? "encoded" : "literal");
+    if (bindingOption == RPC_ENCODED)
+    {
+      element.setAttribute("encodingStyle", "http://schemas.xmlsoap.org/soap/encoding/");
+      element.setAttribute("namespace", namespaceValue);
+    }
+    else if (bindingOption == RPC_LITERAL) {
+        element.setAttribute("namespace", namespaceValue);
+    }
+  }  
+
+  protected void generateSoapBody(Element parentElement)
+  {
+    Element element = createElement(parentElement, "soap", "body");      
+    element.setAttribute("use", (bindingOption == RPC_ENCODED) ? "encoded" : "literal"); 
+    if (bindingOption == RPC_ENCODED)
+    {
+      element.setAttribute("encodingStyle", "http://schemas.xmlsoap.org/soap/encoding/");
+      element.setAttribute("namespace", namespaceValue);
+    }
+    else if (bindingOption == RPC_LITERAL) {
+    	element.setAttribute("namespace", namespaceValue);
+    }
+  }
+
+  protected Element createElement(Element parentElement, String prefix, String elementName)
+  {                                         
+    String name = prefix != null ? (prefix + ":" + elementName) : elementName;
+    Element result = parentElement.getOwnerDocument().createElement(name);
+    parentElement.appendChild(result);
+    return result;
+  }
+} 
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/wizards/ContentGeneratorOptionsPage.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/contentgenerator/ui/ContentGeneratorOptionsPage.java
similarity index 88%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/wizards/ContentGeneratorOptionsPage.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/contentgenerator/ui/ContentGeneratorOptionsPage.java
index 9a16e1a..bca40e9 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/wizards/ContentGeneratorOptionsPage.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/contentgenerator/ui/ContentGeneratorOptionsPage.java
@@ -1,14 +1,14 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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.wizards;  
+package org.eclipse.wst.wsdl.ui.internal.contentgenerator.ui;  
         
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.wst.wsdl.internal.generator.BaseGenerator;
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/wizards/HttpBindingOptionsPage.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/contentgenerator/ui/HttpBindingOptionsPage.java
similarity index 96%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/wizards/HttpBindingOptionsPage.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/contentgenerator/ui/HttpBindingOptionsPage.java
index f424a77..1e355e3 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/wizards/HttpBindingOptionsPage.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/contentgenerator/ui/HttpBindingOptionsPage.java
@@ -1,14 +1,14 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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.wizards;
+package org.eclipse.wst.wsdl.ui.internal.contentgenerator.ui;
 
 import java.util.List;
 
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/contentgenerator/ui/HttpPortOptionsPage.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/contentgenerator/ui/HttpPortOptionsPage.java
new file mode 100644
index 0000000..28ea27a
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/contentgenerator/ui/HttpPortOptionsPage.java
@@ -0,0 +1,98 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.contentgenerator.ui;
+
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.wst.wsdl.binding.http.internal.generator.HTTPContentGenerator;
+import org.eclipse.wst.wsdl.internal.generator.BaseGenerator;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+
+
+public class HttpPortOptionsPage implements ContentGeneratorOptionsPage, ModifyListener
+{
+  protected Text addressField;
+  protected Composite control;
+  protected BaseGenerator generator;
+
+  public HttpPortOptionsPage()
+  {
+  }
+
+  public void init(BaseGenerator generator)
+  {
+    this.generator = generator;
+  }
+
+  public Composite createControl(Composite parent)
+  {
+    control = new Composite(parent, SWT.NONE);
+    GridLayout layout = new GridLayout();
+    layout.marginWidth = 0;
+    control.setLayout(layout);
+    control.setLayoutData(new GridData(GridData.FILL_BOTH));
+
+    Label separator = new Label(control, SWT.SEPARATOR | SWT.HORIZONTAL);
+    GridData gd= new GridData();
+    gd.horizontalAlignment= GridData.FILL;
+    gd.grabExcessHorizontalSpace= true;
+    separator.setLayoutData(gd);
+
+    Label optionsHeading = new Label(control, SWT.NONE);
+    optionsHeading.setText(WSDLEditorPlugin.getWSDLString("_UI_HTTP_PORT_DETAILS"));
+
+    Composite nameValueGroup = new Composite(control, SWT.NONE);
+    nameValueGroup.setLayoutData(new GridData(GridData.FILL_BOTH));
+    GridLayout layout2 = new GridLayout(2, false);
+    layout2.marginWidth = 0;
+    nameValueGroup.setLayout(layout2);
+
+    Label addressLabel = new Label(nameValueGroup, SWT.NONE);
+    addressLabel.setText(WSDLEditorPlugin.getWSDLString("_UI_LOCATION") + " ");
+    addressField = new Text(nameValueGroup, SWT.BORDER);
+    addressField.setText("http://example.com/");
+    addressField.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+    addressField.addModifyListener(this);
+
+    return control;
+  }
+
+  public boolean isOverwriteApplicable()
+  {
+    return false;
+  }
+
+  public void modifyText(ModifyEvent e)
+  {
+	  computeOptions();
+  }
+  
+  private void computeOptions() {
+	if (generator.getContentGenerator() instanceof HTTPContentGenerator) {
+		((HTTPContentGenerator) generator.getContentGenerator()).setAddressLocation(addressField.getText());
+	}
+  }
+
+  public void setOptionsOnGenerator() {
+	  computeOptions();
+  }
+  
+  public Composite getControl() {
+	  return control;
+  }
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/wizards/SoapBindingOptionsPage.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/contentgenerator/ui/SoapBindingOptionsPage.java
similarity index 97%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/wizards/SoapBindingOptionsPage.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/contentgenerator/ui/SoapBindingOptionsPage.java
index b7003aa..a9e32d2 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/wizards/SoapBindingOptionsPage.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/contentgenerator/ui/SoapBindingOptionsPage.java
@@ -1,14 +1,14 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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.wizards;
+package org.eclipse.wst.wsdl.ui.internal.contentgenerator.ui;
 
 import java.util.List;
 
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/contentgenerator/ui/SoapPortOptionsPage.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/contentgenerator/ui/SoapPortOptionsPage.java
new file mode 100644
index 0000000..137394f
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/contentgenerator/ui/SoapPortOptionsPage.java
@@ -0,0 +1,97 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.contentgenerator.ui;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.wst.wsdl.binding.soap.internal.generator.SOAPContentGenerator;
+import org.eclipse.wst.wsdl.internal.generator.BaseGenerator;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+
+
+public class SoapPortOptionsPage implements ContentGeneratorOptionsPage, ModifyListener
+{
+  protected Text addressField;
+  protected Composite control;
+  protected BaseGenerator generator;
+
+  public SoapPortOptionsPage()
+  {
+  }
+
+  public void init(BaseGenerator generator)
+  {
+    this.generator = generator;
+  }
+
+  public Composite createControl(Composite parent)
+  {
+    control = new Composite(parent, SWT.NONE);
+    GridLayout layout = new GridLayout();
+    layout.marginWidth = 0;
+    control.setLayout(layout);
+    control.setLayoutData(new GridData(GridData.FILL_BOTH));
+
+    Label separator = new Label(control, SWT.SEPARATOR | SWT.HORIZONTAL);
+    GridData gd= new GridData();
+    gd.horizontalAlignment= GridData.FILL;
+    gd.grabExcessHorizontalSpace= true;
+    separator.setLayoutData(gd);
+
+    Label optionsHeading = new Label(control, SWT.NONE);
+    optionsHeading.setText(WSDLEditorPlugin.getWSDLString("_UI_SOAP_PORT_DETAILS"));
+
+    Composite nameValueGroup = new Composite(control, SWT.NONE);
+    nameValueGroup.setLayoutData(new GridData(GridData.FILL_BOTH));
+    GridLayout layout2 = new GridLayout(2, false);
+    layout2.marginWidth = 0;
+    nameValueGroup.setLayout(layout2);
+
+    Label addressLabel = new Label(nameValueGroup, SWT.NONE);
+    addressLabel.setText(WSDLEditorPlugin.getWSDLString("_UI_LOCATION") + " ");
+    addressField = new Text(nameValueGroup, SWT.BORDER);
+    addressField.setText("http://example.com/");
+    addressField.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+    addressField.addModifyListener(this);
+
+    return control;
+  }
+
+  public boolean isOverwriteApplicable()
+  {
+    return false;
+  }
+
+  public void modifyText(ModifyEvent e)
+  {
+	  computeOptions();
+  }
+  
+  private void computeOptions() {
+	if (generator.getContentGenerator() instanceof SOAPContentGenerator) {
+		((SOAPContentGenerator) generator.getContentGenerator()).setAddressLocation(addressField.getText());
+	}
+  }
+  
+  public void setOptionsOnGenerator() {
+	  computeOptions();
+  }
+  
+  public Composite getControl() {
+	  return control;
+  }
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/dialogs/GenerateBindingOnSaveDialog.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/dialogs/GenerateBindingOnSaveDialog.java
similarity index 95%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/dialogs/GenerateBindingOnSaveDialog.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/dialogs/GenerateBindingOnSaveDialog.java
index 5d153a6..23634b9 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/dialogs/GenerateBindingOnSaveDialog.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/dialogs/GenerateBindingOnSaveDialog.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 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
+ * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Common 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
  *******************************************************************************/
@@ -95,4 +95,4 @@
 	}
 	
 	public void widgetDefaultSelected(SelectionEvent e) {}
-}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/dialogs/ImportAddResourceListener.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/dialogs/ImportAddResourceListener.java
new file mode 100644
index 0000000..b696cad
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/dialogs/ImportAddResourceListener.java
@@ -0,0 +1,72 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.dialogs;
+
+import java.util.Collection;
+import java.util.Vector;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResourceChangeEvent;
+import org.eclipse.core.resources.IResourceChangeListener;
+import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.resources.IResourceDeltaVisitor;
+
+public class ImportAddResourceListener implements IResourceChangeListener, IResourceDeltaVisitor
+{
+  Vector importedFiles;
+
+  ImportAddResourceListener()
+  {
+    importedFiles = new Vector(); 
+  }
+  
+  public void resourceChanged(IResourceChangeEvent event)
+  {
+    IResourceDelta resourceDelta = event.getDelta();
+    
+    try
+    {
+      if (resourceDelta != null) 
+      {
+        resourceDelta.accept(this);
+      }
+    }
+    catch (Exception e)
+    {
+//      B2BGUIPlugin.getPlugin().getMsgLogger().write("Exception caught during resource change" + e);
+//      B2BGUIPlugin.getPlugin().getMsgLogger().writeCurrentThread(); 
+    }      
+  }
+
+  public boolean visit(IResourceDelta delta)
+  {
+    if (delta.getKind() == IResourceDelta.ADDED)
+    {
+      if (delta.getResource() instanceof IFile) 
+        importedFiles.add(delta.getResource());
+    }
+    return true;
+  }
+
+  public Collection getImportedFiles()
+  {
+    return importedFiles;
+  }
+    
+  // This returns the first imported file in the list of imported files
+  public IFile getImportedFile()
+  {
+    if (importedFiles.isEmpty() == false) 
+      return (IFile)importedFiles.firstElement();
+  
+    return null;
+  }
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/dialogs/InvokeSetDialog.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/dialogs/InvokeSetDialog.java
new file mode 100644
index 0000000..ba1e630
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/dialogs/InvokeSetDialog.java
@@ -0,0 +1,126 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.dialogs;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IFileEditorInput;
+import org.eclipse.wst.wsdl.Binding;
+import org.eclipse.wst.wsdl.Definition;
+import org.eclipse.wst.wsdl.Fault;
+import org.eclipse.wst.wsdl.Input;
+import org.eclipse.wst.wsdl.Output;
+import org.eclipse.wst.wsdl.Part;
+import org.eclipse.wst.wsdl.Port;
+import org.eclipse.wst.wsdl.WSDLElement;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.eclipse.wst.wsdl.ui.internal.dialogs.types.WSDLComponentSelectionDialog;
+import org.eclipse.wst.wsdl.ui.internal.dialogs.types.WSDLComponentSelectionProvider;
+import org.eclipse.wst.wsdl.ui.internal.dialogs.types.WSDLSetComponentHelper;
+import org.eclipse.wst.wsdl.ui.internal.util.WSDLEditorUtil;
+import org.eclipse.wst.wsdl.util.WSDLConstants;
+
+public class InvokeSetDialog
+{
+  String kind;
+  String newValue = "";
+  
+  public void setReferenceKind(String kind)
+  {
+    this.kind = kind;
+  }
+  
+  public String getValue()
+  {
+    return newValue; 
+  }
+  
+  public void run(Object input, IEditorPart editorPart)
+  {
+      WSDLComponentSelectionDialog dialog = null;
+      Shell shell = Display.getCurrent().getActiveShell();
+      IFile iFile = ((IFileEditorInput) editorPart.getEditorInput()).getFile();
+      Definition definition = ((WSDLElement) input).getEnclosingDefinition();
+      String property = "";
+      
+    if (input instanceof Binding)
+    {
+        String dialogTitle = WSDLEditorPlugin.getWSDLString("_UI_TITLE_SPECIFY_PORTTYPE");
+        
+        WSDLComponentSelectionProvider provider = new WSDLComponentSelectionProvider(iFile, definition, WSDLConstants.PORT_TYPE);
+        dialog = new WSDLComponentSelectionDialog(shell, dialogTitle, provider);
+        provider.setDialog(dialog);
+        property = "type";
+    }
+    else if (input instanceof Port)
+    {
+        String dialogTitle = WSDLEditorPlugin.getWSDLString("_UI_TITLE_SPECIFY_BINDING");
+        
+        WSDLComponentSelectionProvider provider = new WSDLComponentSelectionProvider(iFile, definition, WSDLConstants.BINDING);
+        dialog = new WSDLComponentSelectionDialog(shell, dialogTitle, provider);
+        provider.setDialog(dialog);
+        property = "binding";
+    }
+    else if (input instanceof Part)
+    {
+        List validExtensions = new ArrayList(2);
+        validExtensions.add("wsdl");
+        validExtensions.add("xsd");
+        WSDLComponentSelectionProvider provider = null;
+        if (kind.equalsIgnoreCase("type")) {
+            property = ""; 
+            String dialogTitle = WSDLEditorPlugin.getWSDLString("_UI_TITLE_SPECIFY_TYPE");
+            
+            provider = new WSDLComponentSelectionProvider(iFile, definition, WSDLEditorUtil.TYPE, validExtensions);
+            dialog = new WSDLComponentSelectionDialog(shell, dialogTitle, provider);
+        }
+        else {
+            property = ""; 
+            String dialogTitle = WSDLEditorPlugin.getWSDLString("_UI_TITLE_SPECIFY_ELEMENT");
+            
+            provider = new WSDLComponentSelectionProvider(iFile, definition, WSDLEditorUtil.ELEMENT, validExtensions);
+            dialog = new WSDLComponentSelectionDialog(shell, dialogTitle, provider);
+        }
+        provider.setDialog(dialog);
+    }
+    else if (input instanceof Input || input instanceof Output || input instanceof Fault)
+    {
+        String dialogTitle = WSDLEditorPlugin.getWSDLString("_UI_TITLE_SPECIFY_MESSAGE");
+
+        WSDLComponentSelectionProvider provider = new WSDLComponentSelectionProvider(iFile, definition, WSDLConstants.MESSAGE);
+        dialog = new WSDLComponentSelectionDialog(shell, dialogTitle, provider);   
+        provider.setDialog(dialog);
+        property = "message";
+    }
+
+    dialog.setBlockOnOpen(true);
+    dialog.create();
+
+    if (dialog.open() == Window.OK) {
+        WSDLSetComponentHelper helper = new WSDLSetComponentHelper(iFile, definition);
+        if (kind != null && kind.equalsIgnoreCase("type")) {
+            helper.setXSDTypeComponent((Part) input, dialog.getSelection());
+        }
+        else if (kind != null && kind.equalsIgnoreCase("element")){
+            helper.setXSDElementComponent((Part) input, dialog.getSelection());
+        }
+        else {
+            helper.setWSDLComponent((WSDLElement) input, property, dialog.getSelection());
+        }
+    } 
+  }
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/dialogs/types/WSDLComponentFinder.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/dialogs/types/WSDLComponentFinder.java
new file mode 100644
index 0000000..297501c
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/dialogs/types/WSDLComponentFinder.java
@@ -0,0 +1,71 @@
+/*******************************************************************************
+ * Copyright (c) 2004 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.dialogs.types;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.core.runtime.Path;
+import org.eclipse.wst.xsd.ui.internal.dialogs.types.xml.XMLComponentFinder;
+import org.eclipse.wst.xsd.ui.internal.dialogs.types.xml.XMLQuickScan;
+
+public class WSDLComponentFinder extends XMLComponentFinder {
+    List lookupTagPaths;
+    
+    public WSDLComponentFinder(List tagPaths) {
+        lookupTagPaths = new ArrayList();
+        lookupTagPaths.addAll(tagPaths);
+    }
+    
+    public List getWorkbenchResourceComponents(int scope) {
+        List components = new ArrayList();
+        List filePaths = new ArrayList();
+        
+        // We don't want to search through the current file we're working on.
+        if (currentIFile != null) {
+            excludeFiles.add(currentIFile.getLocation().toOSString());
+        }
+        
+        // Find files matching the search criteria specified in List extensions and
+        // List excludeFiles.
+        switch (scope) {
+        case ENCLOSING_PROJECT_SCOPE:
+            filePaths = getEnclosingProjectFiles();
+            break;
+            
+        case ENTIRE_WORKSPACE_SCOPE:
+            filePaths = getWorkspaceFiles();
+            break;
+            
+        default:            
+            break;
+        }
+        
+        // Search for the components in each of the files specified in the path.
+        List attributes = new ArrayList();
+        String[] nameAttr = new String[1];
+        nameAttr[0] = "name";
+        attributes.add(nameAttr);
+        attributes.add(nameAttr);
+        attributes.add(nameAttr);
+        attributes.add(nameAttr);
+
+        Iterator pathsIterator = filePaths.iterator();
+        while (pathsIterator.hasNext()) {
+//           String stringPath = ((Path) pathsIterator.next()).toOSString();
+           String stringPath = ((Path) pathsIterator.next()).toString();
+           components.addAll(XMLQuickScan.getTagInfo(stringPath, lookupTagPaths, attributes));
+        }
+        
+        return components;
+    }
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/dialogs/types/WSDLComponentSelectionDialog.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/dialogs/types/WSDLComponentSelectionDialog.java
new file mode 100644
index 0000000..885640f
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/dialogs/types/WSDLComponentSelectionDialog.java
@@ -0,0 +1,22 @@
+/*******************************************************************************
+ * Copyright (c) 2004 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.dialogs.types;
+
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.wst.xsd.ui.internal.dialogs.types.common.IComponentSelectionProvider;
+import org.eclipse.wst.xsd.ui.internal.dialogs.types.xml.XMLComponentSelectionDialog;
+
+public class WSDLComponentSelectionDialog extends XMLComponentSelectionDialog {
+	
+    public WSDLComponentSelectionDialog(Shell shell, String dialogTitle, IComponentSelectionProvider provider) {
+        super(shell, dialogTitle, provider);
+    }  
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/dialogs/types/WSDLComponentSelectionProvider.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/dialogs/types/WSDLComponentSelectionProvider.java
new file mode 100644
index 0000000..9ef24c0
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/dialogs/types/WSDLComponentSelectionProvider.java
@@ -0,0 +1,609 @@
+/*******************************************************************************
+ * Copyright (c) 2004 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.dialogs.types;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.wst.wsdl.Definition;
+import org.eclipse.wst.wsdl.Import;
+import org.eclipse.wst.wsdl.WSDLElement;
+import org.eclipse.wst.wsdl.XSDSchemaExtensibilityElement;
+import org.eclipse.wst.wsdl.internal.impl.ImportImpl;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.eclipse.wst.wsdl.util.WSDLConstants;
+import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
+import org.eclipse.wst.xsd.ui.internal.dialogs.types.common.IComponentList;
+import org.eclipse.wst.xsd.ui.internal.dialogs.types.xml.XMLComponentFinder;
+import org.eclipse.wst.xsd.ui.internal.dialogs.types.xml.XMLComponentSelectionDialog;
+import org.eclipse.wst.xsd.ui.internal.dialogs.types.xml.XMLComponentSelectionProvider;
+import org.eclipse.wst.xsd.ui.internal.dialogs.types.xml.XMLComponentSpecification;
+import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
+import org.eclipse.wst.wsdl.ui.internal.util.WSDLEditorUtil;
+import org.eclipse.xsd.XSDComplexTypeDefinition;
+import org.eclipse.xsd.XSDElementDeclaration;
+import org.eclipse.xsd.XSDImport;
+import org.eclipse.xsd.XSDNamedComponent;
+import org.eclipse.xsd.XSDSchema;
+import org.eclipse.xsd.XSDSchemaContent;
+import org.eclipse.xsd.XSDSimpleTypeDefinition;
+import org.eclipse.xsd.impl.XSDImportImpl;
+import org.eclipse.xsd.util.XSDConstants;
+
+public class WSDLComponentSelectionProvider extends XMLComponentSelectionProvider {
+    public static final String BUILT_IN_TYPE = "BUILT_IN_TYPE";
+    
+    private WSDLComponentFinder wsdlComponentFinder;
+    private WSDLComponentSelectionDialog dialog;
+    private WSDLComponentLabelProvider labelProvider;
+    private Definition definition;
+    private List lookupTagPaths;
+    private int kind;
+    
+    /*
+     * Takes in the IFile we are currently editing.
+     */
+    public WSDLComponentSelectionProvider(IFile file, Definition definition, int kind) {
+    	this.kind = kind;
+        List validExt = new ArrayList(1);
+        validExt.add("wsdl");
+        this.lookupTagPaths = getLookupTagPath();
+        wsdlComponentFinder = new WSDLComponentFinder(lookupTagPaths);
+        wsdlComponentFinder.setFile(file);
+        wsdlComponentFinder.setValidExtensions(validExt);
+        this.definition = definition;
+        labelProvider = new WSDLComponentLabelProvider();
+    }
+    
+    protected List getLookupTagPath()
+    {    	
+    	List list = new ArrayList();
+    	switch (kind)
+		{
+		case WSDLConstants.BINDING :
+		{
+			list.add("/definitions/binding");
+			break;
+		}
+		case WSDLConstants.PORT_TYPE :
+		{
+			list.add("/definitions/portType");
+			break;
+		}	
+		case WSDLConstants.MESSAGE :
+		{
+			list.add("/definitions/message");
+			break;
+		}   
+		case WSDLEditorUtil.TYPE :
+		{
+			list.add("/definitions/types/schema/simpleType");
+			list.add("/definitions/types/schema/complexType");
+			list.add("/schema/complexType");
+			list.add("/schema/simpleType");
+			break;
+		}
+		case WSDLEditorUtil.ELEMENT :
+		{
+			list.add("/definitions/types/schema/element");
+			list.add("/schema/element");
+			break;
+		}
+		}    	
+    	return list;
+    }
+
+    public WSDLComponentSelectionProvider(IFile file, Definition definition, int kind, List validExt) {
+        this(file, definition, kind);
+        wsdlComponentFinder.setValidExtensions(validExt);
+    }
+    
+    public void setDialog(WSDLComponentSelectionDialog dialog) {
+        this.dialog = dialog;
+    }
+    
+    public String getType(Object element) {
+        return null;
+    }
+    
+    private void createWSDLComponentObjects(IComponentList list, List inputComponents, String tagPath) {
+        Iterator it = inputComponents.iterator();
+        while (it.hasNext()) {
+            WSDLElement wsdlElement = (WSDLElement) it.next();
+            XMLComponentSpecification spec = new XMLComponentSpecification(tagPath); 
+            spec.addAttributeInfo("name", wsdlElement.getElement().getAttribute("name"));
+            spec.setTargetNamespace(wsdlElement.getEnclosingDefinition().getTargetNamespace());
+            
+            String normalizedFile = getNormalizedLocation(wsdlElement.getEnclosingDefinition().getLocation());
+            spec.setFileLocation(normalizedFile);
+            
+            addDataItemToTreeNode(list, spec);
+        }
+    }
+    
+    private void createXSDComponentObjects(IComponentList list, List inputComponents, String tagPath) {
+        Iterator it = inputComponents.iterator();
+        while (it.hasNext()) {
+            XSDNamedComponent xsdElement = (XSDNamedComponent) it.next();
+            XMLComponentSpecification spec = new XMLComponentSpecification(tagPath); 
+            spec.addAttributeInfo("name", xsdElement.getName());
+            spec.setTargetNamespace(xsdElement.getTargetNamespace());
+            
+            String normalizedFile = getNormalizedLocation(xsdElement.getSchema().getSchemaLocation());
+            spec.setFileLocation(normalizedFile);
+            
+            addDataItemToTreeNode(list, spec);
+        }
+    }
+        
+    public void getComponents(IComponentList list, boolean quick) {
+        if (quick) {
+            Iterator tags = lookupTagPaths.iterator();
+            while (tags.hasNext()) {
+                getComponentsQuick(list, (String) tags.next());
+            }
+        }
+        else {
+            // Grab components from workspace locations
+            String scope = "";
+            if (dialog != null) {
+                scope = dialog.getSearchScope();
+            }
+            
+            List comps = new ArrayList();
+            if (scope.equals(XMLComponentSelectionDialog.SCOPE_ENCLOSING_PROJECT)) {
+                comps = wsdlComponentFinder.getWorkbenchResourceComponents(XMLComponentFinder.ENCLOSING_PROJECT_SCOPE);
+            }
+            else if (scope.equals(XMLComponentSelectionDialog.SCOPE_WORKSPACE)) {
+                comps = wsdlComponentFinder.getWorkbenchResourceComponents(XMLComponentFinder.ENTIRE_WORKSPACE_SCOPE);            
+            }
+
+            Iterator compsIt = comps.iterator();
+            while (compsIt.hasNext()) {
+                XMLComponentSpecification item = (XMLComponentSpecification) compsIt.next();
+                addDataItemToTreeNode(list, item);
+            }
+        }
+    }
+    
+    private void getComponentsQuick(IComponentList list, String tagPath) {
+        // Grab components within the file
+        if (tagPath.equals("/definitions/binding")) {
+            // Grab explictly defined components
+            createWSDLComponentObjects(list, definition.getEBindings(), tagPath);
+            
+            // Grab directly imported components
+            Iterator importsIt = getWSDLFileImports(definition.getEImports()).iterator();
+            while (importsIt.hasNext()) {
+                Import importItem = (Import) importsIt.next();
+                Definition importDefinition = importItem.getEDefinition();
+                List importedComponents = importDefinition.getEBindings();
+                
+                createWSDLComponentObjects(list, importedComponents, tagPath);
+            }
+        }
+        else if (tagPath.equals("/definitions/portType")) {
+            // Grab explictly defined components
+            createWSDLComponentObjects(list, definition.getEPortTypes(), tagPath);
+            
+            // Grab directly imported components
+            Iterator importsIt = getWSDLFileImports(definition.getEImports()).iterator();
+            while (importsIt.hasNext()) {
+                Import importItem = (Import) importsIt.next();
+                Definition importDefinition = importItem.getEDefinition();
+                List importedComponents = importDefinition.getEPortTypes();
+                
+                createWSDLComponentObjects(list, importedComponents, tagPath);
+            }
+        }
+        else if (tagPath.equals("/definitions/message")) {
+            // Grab explictly defined components
+            createWSDLComponentObjects(list, definition.getEMessages(), tagPath);
+            
+            // Grab directly imported components
+            Iterator importsIt = getWSDLFileImports(definition.getEImports()).iterator();
+            while (importsIt.hasNext()) {
+                Import importItem = (Import) importsIt.next();
+                Definition importDefinition = importItem.getEDefinition();
+                List importedComponents = importDefinition.getEMessages();
+                
+                createWSDLComponentObjects(list, importedComponents, tagPath);
+            }
+        }
+        else if (tagPath.equals("/definitions/types/schema/complexType")) {
+            createXSDInlineTypesObjects(list, tagPath);
+        }
+        else if (tagPath.equals("/definitions/types/schema/simpleType")) {
+            createXSDInlineTypesObjects(list, tagPath);
+        }
+        else if (tagPath.equals("/definitions/types/schema/element")) {
+            createXSDElementObjects(list, tagPath);
+            createRegularImportXSDElementObjects(list);
+        }
+        else if (tagPath.equals("/schema/complexType")) {
+            createXSDInlineWrapperTypeObjects(list, tagPath);
+            
+            createXSDBuiltInTypeObjects(list);
+            createRegularImportXSDTypeObjects(list);
+        }
+        else if (tagPath.equals("/schema/simpleType")) {
+            createXSDInlineWrapperTypeObjects(list, tagPath);
+        }
+        else if (tagPath.equals("/schema/element")) {
+            createXSDInlineWrapperElementObjects(list, tagPath);
+        }
+    }
+    
+    private List getWSDLFileImports(List wsdlImports) {
+        List list = new ArrayList();
+        Iterator it = wsdlImports.iterator();
+        while (it.hasNext()) {
+            ImportImpl importItem = (ImportImpl) it.next();
+            importItem.importDefinitionOrSchema();          // Load if necessary
+            if (importItem.getESchema() == null) {
+                list.add(importItem);
+            }
+        }
+        
+        return list;
+    }
+    
+    private void createXSDBuiltInTypeObjects(IComponentList list) { 
+        for (int i = 0; i < XSDDOMHelper.dataType.length; i++) {
+            String builtIn = XSDDOMHelper.dataType[i][0];
+            XMLComponentSpecification spec = new XMLComponentSpecification(BUILT_IN_TYPE); 
+            spec.addAttributeInfo("name", builtIn);
+            spec.setTargetNamespace(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001);
+
+//            String normalizedFile = getNormalizedLocation(definition.getLocation());
+//            spec.setFileLocation(normalizedFile);
+            spec.setFileLocation("Built-in");    
+            
+            addDataItemToTreeNode(list, spec);
+        }
+    }
+    
+    private void createRegularImportXSDTypeObjects(IComponentList list) {
+        // Handle regular imports(xsd and wsdl).
+        Iterator imports = definition.getEImports().iterator();
+        while (imports.hasNext()) {
+            Import importItem = (Import) imports.next();
+            ((ImportImpl) importItem).importDefinitionOrSchema();
+            List schemas = new ArrayList();
+            String complexPath = "";
+            String simplePath = "";
+            
+            if (importItem.getESchema() != null) {
+                // Import is a xsd file
+                schemas.add(importItem.getESchema());
+                complexPath = "/schema/complexType";
+                simplePath = "/schema/simpleType";
+            }
+            else if (importItem.getEDefinition() != null) {
+                // Import is a wsdl file
+                Definition definition = importItem.getEDefinition();
+                if (definition.getETypes() != null) {
+	                Iterator schemaIt = definition.getETypes().getEExtensibilityElements().iterator();
+	                while (schemaIt.hasNext()) {
+	                    XSDSchemaExtensibilityElement eeElement = (XSDSchemaExtensibilityElement) schemaIt.next();
+	                    schemas.add(eeElement.getSchema());
+	                    complexPath = "/definitions/types/schema/complexType";
+	                    simplePath = "/definitions/types/schema/simpleType";
+	                }
+                }
+            }
+            
+            if (schemas.size() > 0) {
+                Iterator schemaIt = schemas.iterator();
+                while (schemaIt.hasNext()) {
+                    Iterator typesIt = ((XSDSchema) schemaIt.next()).getTypeDefinitions().iterator();
+                    List complexList = new ArrayList();
+                    List simpleList = new ArrayList();
+                    while (typesIt.hasNext()) {
+                        Object component = typesIt.next();
+                        if (component instanceof XSDComplexTypeDefinition) {
+                            complexList.add(component);
+                        }
+                        else if (component instanceof XSDSimpleTypeDefinition) {
+                            simpleList.add(component);
+                        }
+                    }
+                    
+                    createXSDComponentObjects(list, complexList, complexPath);
+                    createXSDComponentObjects(list, simpleList, simplePath);
+                }
+            }
+        }
+    }
+    
+    private void createRegularImportXSDElementObjects(IComponentList list) {
+        // Handle regular imports(xsd and wsdl).
+        Iterator imports = definition.getEImports().iterator();
+        while (imports.hasNext()) {
+            Import importItem = (Import) imports.next();
+            ((ImportImpl) importItem).importDefinitionOrSchema();
+            List schemas = new ArrayList();
+            String path = "";
+            
+            if (importItem.getESchema() != null) {
+                // Import is a xsd file
+                schemas.add(importItem.getESchema());
+                path = "/schema/element";
+            }
+            else if (importItem.getEDefinition() != null) {
+                // Import is a wsdl file
+                Definition definition = importItem.getEDefinition();
+                if (definition.getETypes() != null) {
+	                Iterator schemaIt = definition.getETypes().getEExtensibilityElements().iterator();
+	                while (schemaIt.hasNext()) {
+	                    XSDSchemaExtensibilityElement eeElement = (XSDSchemaExtensibilityElement) schemaIt.next();
+	                    schemas.add(eeElement.getSchema());
+	                    path = "/definitions/types/schema/element";
+	                }
+                }
+            }
+            
+            if (schemas.size() > 0) {
+                Iterator schemaIt = schemas.iterator();
+                while (schemaIt.hasNext()) {
+                    List elementList = ((XSDSchema) schemaIt.next()).getElementDeclarations();
+                    createXSDComponentObjects(list, elementList, path);
+                }
+            }
+        }
+    }
+    
+    private void createXSDInlineTypesObjects(IComponentList list, String tagPath) {
+        // Handle inline schemas
+    	if (definition.getETypes() == null) {
+    		return;
+    	}
+    	
+        Iterator inlineSchemasIt = definition.getETypes().getSchemas().iterator();
+        while (inlineSchemasIt.hasNext()) {
+            XSDSchema schema = (XSDSchema) inlineSchemasIt.next();
+            
+            if (schema.getTargetNamespace() != null && !schema.getTargetNamespace().equals("")) {
+                    List keepTypes = new ArrayList();
+                    Iterator typeIterator = schema.getTypeDefinitions().iterator();
+                    // Filter out unwanted Types
+                    if (tagPath.equals("/definitions/types/schema/complexType")) {
+                        while (typeIterator.hasNext()) {
+                            Object type = typeIterator.next();
+                            if (type instanceof XSDComplexTypeDefinition &&
+                                    ((XSDComplexTypeDefinition) type).getSchema().equals(schema)) {
+                                keepTypes.add(type);
+                            }
+                        }
+                    }
+                    else if (tagPath.equals("/definitions/types/schema/simpleType")) {
+                        while (typeIterator.hasNext()) {
+                            Object type = typeIterator.next();
+                            if (type instanceof XSDSimpleTypeDefinition &&
+                                    ((XSDSimpleTypeDefinition) type).getSchema().equals(schema)) {
+                                keepTypes.add(type);
+                            }
+                        }
+                    }
+                    
+                    createXSDComponentObjects(list, keepTypes, tagPath);
+            }
+        }
+    }
+
+    private void createXSDElementObjects(IComponentList list, String tagPath) {
+    	if (definition.getETypes() == null) {
+    		return;
+    	}
+    	
+        Iterator inlineSchemasIt = definition.getETypes().getSchemas().iterator();
+        while (inlineSchemasIt.hasNext()) {
+            XSDSchema schema = (XSDSchema) inlineSchemasIt.next();
+            
+            List keepElements = new ArrayList();
+            if (schema.getTargetNamespace() != null && !schema.getTargetNamespace().equals("")) {
+                Iterator elementIt = schema.getElementDeclarations().iterator();
+                while (elementIt.hasNext()) {
+                    // Only look for elements explicitly defined in the Schema (not through imports).
+                    XSDElementDeclaration xsdElement = (XSDElementDeclaration) elementIt.next();
+                    if (xsdElement.getSchema().equals(schema)) {
+                        keepElements.add(xsdElement);
+                    }
+                }
+                
+                createXSDComponentObjects(list, keepElements, tagPath);
+            }
+        }
+    }
+    
+    private void createXSDInlineWrapperTypeObjects(IComponentList list, String tagPath) {
+        // Handle inline schemas
+    	if (definition.getETypes() == null) {
+    		return;
+    	}
+    	
+        Iterator inlineSchemasIt = definition.getETypes().getSchemas().iterator();
+        while (inlineSchemasIt.hasNext()) {
+            XSDSchema schema = (XSDSchema) inlineSchemasIt.next();
+            
+            if (schema.getTargetNamespace() == null || schema.getTargetNamespace().equals("")) {
+                List keepTypes = new ArrayList();
+                
+                List imports = new ArrayList();
+                Iterator contents = schema.getContents().iterator();
+                while (contents.hasNext()) {
+                    XSDSchemaContent content = (XSDSchemaContent) contents.next();
+                    if (content instanceof XSDImport) {
+                        imports.add(content);             
+                    }
+                }
+                
+                Iterator importIterator = imports.iterator();
+                while (importIterator.hasNext()) {
+                    XSDImport importObject = (XSDImport) importIterator.next();
+                    XSDSchema importSchema = ((XSDImportImpl) importObject).importSchema();
+                    Iterator typesIt = importSchema.getTypeDefinitions().iterator();
+                    while (typesIt.hasNext()) {
+                        Object typeObject = typesIt.next();
+                        if (tagPath.equals("/schema/complexType") &&
+                            typeObject instanceof XSDComplexTypeDefinition) {
+                            keepTypes.add(typeObject);
+                        }
+                        else if (tagPath.equals("/schema/simpleType") &&
+                                 typeObject instanceof XSDSimpleTypeDefinition) {
+                            keepTypes.add(typeObject);
+                        }
+                    }
+                    
+                }
+
+                createXSDComponentObjects(list, keepTypes, tagPath);
+            }
+        }
+    }
+    
+    private void createXSDInlineWrapperElementObjects(IComponentList list, String tagPath) {
+    	if (definition.getETypes() == null) {
+    		return;
+    	}
+    	
+        Iterator inlineSchemasIt = definition.getETypes().getSchemas().iterator();
+        while (inlineSchemasIt.hasNext()) {
+            XSDSchema schema = (XSDSchema) inlineSchemasIt.next();
+            
+            if (schema.getTargetNamespace() == null || schema.getTargetNamespace().equals("")) {
+                Iterator contents = schema.getContents().iterator();
+                List imports = new ArrayList();
+                while (contents.hasNext()) {
+                    XSDSchemaContent content = (XSDSchemaContent) contents.next();
+                    if (content instanceof XSDImport) {
+                        imports.add(content);             
+                    }
+                }
+                
+                Iterator importIterator = imports.iterator();
+                while (importIterator.hasNext()) {
+                    XSDImport importObject = (XSDImport) importIterator.next();
+                    XSDSchema importSchema = ((XSDImportImpl) importObject).importSchema();
+
+                    createXSDComponentObjects(list, importSchema.getElementDeclarations(), tagPath);    
+                }                
+            }
+        }
+    }
+
+//      private ITypeSystemProvider getTypeSystemProvider() {
+//            ITypeSystemProvider provider = WSDLEditorUtil.getInstance().getTypeSystemProvider(definition);
+//            if (provider instanceof ExtensibleTypeSystemProvider) {
+//                provider = (ExtensibleTypeSystemProvider) provider; 
+//            }
+//            else {
+//                return null;
+//            }
+//            
+//            return provider;
+//      }
+
+    
+  
+    public ILabelProvider getLabelProvider() {
+        return labelProvider;
+    }    
+    
+	public String getListTitle() {
+
+		switch (kind)
+		{
+		case WSDLConstants.BINDING :
+		{
+			return WSDLEditorPlugin.getWSDLString("_UI_LABEL_MATCHING_BINDINGS");
+		}
+		case WSDLConstants.PORT_TYPE :
+		{
+			return WSDLEditorPlugin.getWSDLString("_UI_LABEL_MATCHING_PORTTYPES");
+		}	
+		case WSDLConstants.MESSAGE :
+		{
+			return WSDLEditorPlugin.getWSDLString("_UI_LABEL_MATCHING_MESSAGES");
+		}   
+		case WSDLEditorUtil.TYPE :
+		{
+			return WSDLEditorPlugin.getWSDLString("_UI_LABEL_MATCHING_TYPES");
+		}
+		case WSDLEditorUtil.ELEMENT :
+		{
+			return WSDLEditorPlugin.getWSDLString("_UI_LABEL_MATCHING_ELEMENTS");
+		}
+		}    	
+		return null;	   
+	}
+
+	public String getNameFieldTitle() {
+		switch (kind)
+		{
+		case WSDLConstants.BINDING :
+		{
+			return WSDLEditorPlugin.getWSDLString("_UI_LABEL_BINDING_NAME");
+		}
+		case WSDLConstants.PORT_TYPE :
+		{
+			return WSDLEditorPlugin.getWSDLString("_UI_LABEL_PORTTYPE_NAME");
+		}	
+		case WSDLConstants.MESSAGE :
+		{
+			return WSDLEditorPlugin.getWSDLString("_UI_LABEL_MESSAGE_NAME");
+		}   
+		case WSDLEditorUtil.TYPE :
+		{
+			return WSDLEditorPlugin.getWSDLString("_UI_LABEL_TYPE_NAME");
+		}
+		case WSDLEditorUtil.ELEMENT :
+		{
+			return WSDLEditorPlugin.getWSDLString("_UI_LABEL_ELEMENT_NAME");
+		}
+		}    	
+		return null;	   
+	}
+    public class WSDLComponentLabelProvider extends XMLComponentSelectionLabelProvider {
+        public Image getImage(Object element) {
+            XMLComponentTreeObject specification = (XMLComponentTreeObject) element;
+            XMLComponentSpecification spec = (XMLComponentSpecification) specification.getXMLComponentSpecification().get(0);
+            if (spec.getTagPath().equals("/definitions/binding")) {
+                return WSDLEditorPlugin.getInstance().getImage("icons/binding_obj.gif");
+            }
+            else if (spec.getTagPath().equals("/definitions/portType")) {
+                return WSDLEditorPlugin.getInstance().getImage("icons/port_obj.gif");
+            }
+            else if (spec.getTagPath().equals("/definitions/message")) {
+                return WSDLEditorPlugin.getInstance().getImage("icons/message_obj.gif");
+            }
+            else if (spec.getTagPath().equals("/definitions/types/schema/complexType") ||
+                     spec.getTagPath().equals("/schema/complexType")) {
+                return XSDEditorPlugin.getXSDImage("icons/XSDComplexType.gif");
+            }
+            else if (spec.getTagPath().equals("/definitions/types/schema/simpleType") ||
+                     spec.getTagPath().equals("/schema/simpleType") ||
+                     spec.getTagPath().equals("BUILT_IN_TYPE")) {
+                return XSDEditorPlugin.getXSDImage("icons/XSDSimpleType.gif");
+            }
+            else if (spec.getTagPath().equals("/definitions/types/schema/element") ||
+                     spec.getTagPath().equals("/schema/element")) {
+                return XSDEditorPlugin.getXSDImage("icons/XSDElement.gif");
+            }
+    
+            return null;
+        }
+    }
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/util/WSDLSetComponentHelper.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/dialogs/types/WSDLSetComponentHelper.java
similarity index 79%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/util/WSDLSetComponentHelper.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/dialogs/types/WSDLSetComponentHelper.java
index 330ed74..f14c6b1 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/util/WSDLSetComponentHelper.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/dialogs/types/WSDLSetComponentHelper.java
@@ -1,14 +1,14 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2004 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.util;
+package org.eclipse.wst.wsdl.ui.internal.dialogs.types;
 
 import java.net.URL;
 import java.util.ArrayList;
@@ -19,21 +19,24 @@
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Platform;
-import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSpecification;
 import org.eclipse.wst.common.uriresolver.internal.util.URIHelper;
 import org.eclipse.wst.wsdl.Definition;
+import org.eclipse.wst.wsdl.Import;
 import org.eclipse.wst.wsdl.Part;
 import org.eclipse.wst.wsdl.WSDLElement;
 import org.eclipse.wst.wsdl.XSDSchemaExtensibilityElement;
-import org.eclipse.wst.wsdl.internal.impl.ImportImpl;
 import org.eclipse.wst.wsdl.ui.internal.actions.AddElementDeclarationAction;
 import org.eclipse.wst.wsdl.ui.internal.actions.AddImportAction;
 import org.eclipse.wst.wsdl.ui.internal.actions.AddWSISchemaImportAction;
+import org.eclipse.wst.wsdl.ui.internal.util.ComponentReferenceUtil;
+import org.eclipse.wst.wsdl.ui.internal.util.WSDLEditorUtil;
 import org.eclipse.wst.wsdl.util.WSDLConstants;
+import org.eclipse.wst.xsd.ui.internal.dialogs.types.xml.XMLComponentSpecification;
 import org.eclipse.xsd.XSDImport;
 import org.eclipse.xsd.XSDSchema;
 import org.eclipse.xsd.XSDSchemaContent;
 
+
 public class WSDLSetComponentHelper {
     private Definition definition;
     private IFile currentIFile;
@@ -43,7 +46,7 @@
         this.definition = definition;
     }
     
-    public void setWSDLComponent(WSDLElement inputElement, String property, ComponentSpecification spec) {
+    public void setWSDLComponent(WSDLElement inputElement, String property, XMLComponentSpecification spec) {
         addImportIfNecessary(spec);
         String componentObject = getPrefixedComponentName(spec);
 
@@ -52,8 +55,8 @@
         wsdlElement.setAttribute(property, componentObject); //$NON-NLS-1$
     }
     
-    public void setXSDTypeComponent(Part part, ComponentSpecification spec) {
-        if (spec.getName() != null && spec.getQualifier() != null) {
+    public void setXSDTypeComponent(Part part, XMLComponentSpecification spec) {
+        if (!spec.getTagPath().equals(WSDLComponentSelectionProvider.BUILT_IN_TYPE)) {
             addImportIfNecessary(spec);
         }
         String componentObject = getPrefixedComponentName(spec);
@@ -61,7 +64,7 @@
         ComponentReferenceUtil.setComponentReference((Part) part, true, componentObject);
     }
     
-    public void setXSDElementComponent(Part part, ComponentSpecification spec) {
+    public void setXSDElementComponent(Part part, XMLComponentSpecification spec) {
         addImportIfNecessary(spec);
         String componentObject = getPrefixedComponentName(spec);
         
@@ -70,11 +73,11 @@
     
     /*
      * Return the prefixed component name described by the given
-     * ComponentSpecification object.
+     * XMLComponentSpecification object.
      */
-    public String getPrefixedComponentName(ComponentSpecification spec) {
-        String name = (String) spec.getName();
-        List prefixes = getPrefixes(definition, spec.getQualifier());
+    public String getPrefixedComponentName(XMLComponentSpecification spec) {
+        String name = (String) spec.getAttributeInfo("name");
+        List prefixes = getPrefixes(definition, spec.getTargetNamespace());
         if (prefixes.size() > 0) {
             name = prefixes.get(0) + ":" + name;
         }
@@ -96,13 +99,12 @@
     }
 
     
-    private void addImportIfNecessary(ComponentSpecification spec) {
+    private void addImportIfNecessary(XMLComponentSpecification spec) {
         boolean foundMatch = false;
         
         // Check itself
-        Path currentFileLocation = new Path(currentIFile.getLocation().toString());
-        if (spec.getFile() == null || currentFileLocation.equals(spec.getFile().getLocation())) {
-        	// if the ComponentSpecification's getFile() returns null, forget about adding necessary imports
+        String currentFileLocation = currentIFile.getLocation().toString();
+        if (currentFileLocation.equals(spec.getFileLocation())) {
             foundMatch = true;
         }
         
@@ -112,19 +114,17 @@
             
             while (importsIt.hasNext()) {
                 String importLocation = "";
-                ImportImpl importItem = (ImportImpl) importsIt.next();
-                importItem.importDefinitionOrSchema();
-                
+                Import importItem = (Import) importsIt.next();
                 if (importItem.getESchema() != null) {
                     XSDSchema schema = importItem.getESchema();
                     importLocation = getNormalizedLocation(schema.getSchemaLocation());
                 }
-                else {
+                else {            
                     Definition importDefinition = importItem.getEDefinition();
                     importLocation = getNormalizedLocation(importDefinition.getLocation()); 
                 }            
     
-                if (importLocation.equals(spec.getFile().getLocation().toOSString())) {
+                if (importLocation.equals(spec.getFileLocation())) {
                     foundMatch = true;
                     break;
                 }
@@ -159,7 +159,7 @@
                 String resolvedString = resolvedSchema.getSchemaLocation();
                 String importLocation = getNormalizedLocation(resolvedString);
                 
-                if (importLocation.equals(spec.getFile().getLocation().toOSString())) {
+                if (importLocation.equals(spec.getFileLocation())) {
                     foundMatch = true;
                     break;
                 }
@@ -169,21 +169,21 @@
         if (!foundMatch) {
             boolean wsiStyleImport = isXSDSchemaFile(spec);
             if (wsiStyleImport) {
-                AddElementDeclarationAction action = new AddElementDeclarationAction(definition, spec.getQualifier(), "xsd");
+                AddElementDeclarationAction action = new AddElementDeclarationAction(definition, spec.getTargetNamespace(), "xsd");
                 action.run();
              
-                String location = URIHelper.getRelativeURI(spec.getFile().getLocation(), currentIFile.getLocation());
-                AddWSISchemaImportAction addImport = new AddWSISchemaImportAction(definition, spec.getQualifier(), location);
+                String location = URIHelper.getRelativeURI(new Path(spec.getFileLocation()), currentIFile.getLocation());
+                AddWSISchemaImportAction addImport = new AddWSISchemaImportAction(definition, spec.getTargetNamespace(), location);
                 addImport.run();
             }
             else {
-                String newSelectedFileLoc = spec.getFile().getLocation().toOSString();
+                String newSelectedFileLoc = spec.getFileLocation();
                 String currentFileLoc = getNormalizedLocation(definition.getLocation());
                 String relativeLoc = ComponentReferenceUtil.computeRelativeURI(newSelectedFileLoc, currentFileLoc, true);
                 
                 org.w3c.dom.Element definitionElement = WSDLEditorUtil.getInstance().getElementForObject(definition);
                 String prefix = definition.getPrefix(WSDLConstants.WSDL_NAMESPACE_URI);
-                String namespace = spec.getQualifier();
+                String namespace = spec.getTargetNamespace();
                 
                 AddImportAction addImportAction = new AddImportAction(null, definition, definitionElement, prefix, namespace, relativeLoc);
                 addImportAction.run();            
@@ -194,11 +194,11 @@
         }
     }
     /*
-     * Try to determine if the passed in ComponentSpecification refers to
+     * Try to determine if the passed in XMLComponentSpecification refers to
      * an XSD or WSDL file.  If it's an XSD, return true.
      */
-    private boolean isXSDSchemaFile(ComponentSpecification spec) {
-        String fileLocation = spec.getFile().getLocation().toOSString();
+    private boolean isXSDSchemaFile(XMLComponentSpecification spec) {
+        String fileLocation = spec.getFileLocation();
         int periodIndex = fileLocation.lastIndexOf(".");
         
         if (periodIndex > 0) {
@@ -241,4 +241,6 @@
         
         return location; 
       }
+    
+    
 }
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/extensions/ExtensibilityItemTreeProviderRegistry.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/extension/ExtensibilityItemTreeProviderRegistry.java
similarity index 91%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/extensions/ExtensibilityItemTreeProviderRegistry.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/extension/ExtensibilityItemTreeProviderRegistry.java
index 75612cc..326428b 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/extensions/ExtensibilityItemTreeProviderRegistry.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/extension/ExtensibilityItemTreeProviderRegistry.java
@@ -1,14 +1,14 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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.extensions;
+package org.eclipse.wst.wsdl.ui.internal.extension;
 
 import org.eclipse.jface.viewers.ILabelProvider;
 
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/extension/IDetailsViewerProvider.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/extension/IDetailsViewerProvider.java
new file mode 100644
index 0000000..d1f474f
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/extension/IDetailsViewerProvider.java
@@ -0,0 +1,21 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.extension;
+
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.IEditorPart;
+
+public interface IDetailsViewerProvider
+{                                      
+  public Object getViewerKey(Object modelObject);
+  public Viewer createViewer(Object modelObject, Composite parent, IEditorPart editorPart);
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/extension/IEditPartProvider.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/extension/IEditPartProvider.java
new file mode 100644
index 0000000..01c8237
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/extension/IEditPartProvider.java
@@ -0,0 +1,19 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.extension;
+
+import org.eclipse.jface.action.IMenuManager;
+import org.w3c.dom.Node;
+
+public interface IEditPartProvider
+{                                      
+  public void contributeMenuActions(IMenuManager manager, Node node, Object object);
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/extension/IMenuActionContributor.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/extension/IMenuActionContributor.java
new file mode 100644
index 0000000..a1ff915
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/extension/IMenuActionContributor.java
@@ -0,0 +1,19 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.extension;
+
+import org.eclipse.jface.action.IMenuManager;
+import org.w3c.dom.Node;
+
+public interface IMenuActionContributor
+{                                      
+  public void contributeMenuActions(IMenuManager manager, Node node, Object object);
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/extension/IModelQueryContributor.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/extension/IModelQueryContributor.java
new file mode 100644
index 0000000..95d9a75
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/extension/IModelQueryContributor.java
@@ -0,0 +1,20 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.extension;
+
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
+                   
+// Note this class will likely be removed in the future when the ModelQuery's extension mechanism is updated
+//
+public interface IModelQueryContributor
+{                                      
+  public void setModel(IDOMModel xmlModel);
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/extensions/INodeAssociationProvider.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/extension/INodeAssociationProvider.java
similarity index 86%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/extensions/INodeAssociationProvider.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/extension/INodeAssociationProvider.java
index 23f0ae0..ee956ce 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/extensions/INodeAssociationProvider.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/extension/INodeAssociationProvider.java
@@ -1,14 +1,14 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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.extensions;
+package org.eclipse.wst.wsdl.ui.internal.extension;
 
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/extensions/INodeReconciler.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/extension/INodeReconciler.java
similarity index 86%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/extensions/INodeReconciler.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/extension/INodeReconciler.java
index 63b2547..86cfebb 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/extensions/INodeReconciler.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/extension/INodeReconciler.java
@@ -1,14 +1,14 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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.extensions;
+package org.eclipse.wst.wsdl.ui.internal.extension;
 
 import org.w3c.dom.Element;
 
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/extensions/ITreeChildProvider.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/extension/ITreeChildProvider.java
similarity index 89%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/extensions/ITreeChildProvider.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/extension/ITreeChildProvider.java
index 8ebf532..aac380e 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/extensions/ITreeChildProvider.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/extension/ITreeChildProvider.java
@@ -1,14 +1,14 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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.extensions;
+package org.eclipse.wst.wsdl.ui.internal.extension;
 
 /**
  * This class allows extension writers to provide specialize tree content behaviour.
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/extensions/ITypeSystemProvider.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/extension/ITypeSystemProvider.java
similarity index 91%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/extensions/ITypeSystemProvider.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/extension/ITypeSystemProvider.java
index ba14820..4700ede 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/extensions/ITypeSystemProvider.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/extension/ITypeSystemProvider.java
@@ -1,14 +1,14 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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.extensions;
+package org.eclipse.wst.wsdl.ui.internal.extension;
 
 import java.util.List;
 
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/extensions/NSKeyedExtensionRegistry.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/extension/NSKeyedExtensionRegistry.java
similarity index 79%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/extensions/NSKeyedExtensionRegistry.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/extension/NSKeyedExtensionRegistry.java
index e67efbf..03b7ea4 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/extensions/NSKeyedExtensionRegistry.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/extension/NSKeyedExtensionRegistry.java
@@ -1,19 +1,17 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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.extensions;
+package org.eclipse.wst.wsdl.ui.internal.extension;
 
 import java.util.HashMap;
 
-import org.osgi.framework.Bundle;
-
 public class NSKeyedExtensionRegistry
 {
   protected HashMap map = new HashMap();
@@ -23,22 +21,22 @@
   {
   }
 
-  public void put(String namespaceURI, String className, Bundle bundle)
+  public void put(String namespaceURI, String className, ClassLoader classLoader)
   {
     ExtensionInfo info = (ExtensionInfo) map.get(namespaceURI);
     if (info == null)
     {
-      info = new SinglePropertyExtensionInfo(className, bundle);
+      info = new SinglePropertyExtensionInfo(className, classLoader);
       map.put(namespaceURI, info);
     }
   }
 
-  public void put(String namespaceURI, HashMap propertyToClassNameMap, Bundle bundle)
+  public void put(String namespaceURI, HashMap propertyToClassNameMap, ClassLoader classLoader)
   {
     ExtensionInfo info = (ExtensionInfo) map.get(namespaceURI);
     if (info == null)
     {
-      info = new MultiPropertyExtensionInfo(propertyToClassNameMap, bundle);
+      info = new MultiPropertyExtensionInfo(propertyToClassNameMap, classLoader);
       map.put(namespaceURI, info);
     }
   }
@@ -61,11 +59,11 @@
 
   private abstract class ExtensionInfo
   {
-    protected Bundle bundle;
+    protected ClassLoader classLoader;
 
-    public ExtensionInfo(Bundle bundle)
+    public ExtensionInfo(ClassLoader classLoader)
     {
-      this.bundle = bundle;
+      this.classLoader = classLoader;
     }
 
     public abstract Object getObject(String property);
@@ -77,9 +75,9 @@
     protected Object object;
     protected boolean error;
 
-    public SinglePropertyExtensionInfo(String className, Bundle bundle)
+    public SinglePropertyExtensionInfo(String className, ClassLoader classLoader)
     {
-      super(bundle);
+      super(classLoader);
       this.className = className;
     }
 
@@ -89,7 +87,7 @@
       {
         try
         {
-          Class theClass = bundle.loadClass(className);
+          Class theClass = classLoader != null ? classLoader.loadClass(className) : Class.forName(className);
           object = theClass.newInstance();
         }
         catch (Exception e)
@@ -107,9 +105,9 @@
     protected HashMap propertyToClassNameTable;
     protected HashMap propertyToObjectTable = new HashMap();
 
-    public MultiPropertyExtensionInfo(HashMap propertToClassNameTable, Bundle bundle)
+    public MultiPropertyExtensionInfo(HashMap propertToClassNameTable, ClassLoader classLoader)
     {
-      super(bundle);
+      super(classLoader);
       this.propertyToClassNameTable = propertToClassNameTable;
     }
 
@@ -124,7 +122,7 @@
         {
           try
           {
-            Class theClass = bundle.loadClass(className);
+            Class theClass = classLoader != null ? classLoader.loadClass(className) : Class.forName(className);
             result = theClass.newInstance();
             propertyToObjectTable.put(property, result);
           }
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/extensions/WSDLEditorExtension.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/extension/WSDLEditorExtension.java
similarity index 87%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/extensions/WSDLEditorExtension.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/extension/WSDLEditorExtension.java
index 40bc944..5bbaf6c 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/extensions/WSDLEditorExtension.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/extension/WSDLEditorExtension.java
@@ -1,16 +1,16 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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.extensions;
+package org.eclipse.wst.wsdl.ui.internal.extension;
 
-import org.eclipse.ui.IEditorPart;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditor;
 
 public interface WSDLEditorExtension
 {                                          
@@ -32,5 +32,5 @@
   
   boolean isExtensionTypeSupported(int type);
   boolean isApplicable(Object modelObject);
-  Object createExtensionObject(int type, IEditorPart editor);
+  Object createExtensionObject(int type, WSDLEditor wsdlEditor);
 }
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/extension/WSDLEditorExtensionRegistry.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/extension/WSDLEditorExtensionRegistry.java
new file mode 100644
index 0000000..f8e2435
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/extension/WSDLEditorExtensionRegistry.java
@@ -0,0 +1,107 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.extension;
+        
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditor;
+
+public class WSDLEditorExtensionRegistry
+{                   
+  //protected List classNameClassLoaderPairList = new ArrayList();
+  //protected HashMap treeProviderMap = new HashMap(); 
+  protected List registeredExtensionList = new ArrayList();
+
+  public WSDLEditorExtensionRegistry()
+  {
+    add(new WSDLEditor.BuiltInWSDLEditorExtension());
+  }            
+
+  //public ExtensibilityItemTreeProvider getExtensibilityItemTreeProvider(String namespaceURI)
+  //{
+  //  return (ExtensibilityItemTreeProvider)treeProviderMap.get(namespaceURI);
+  //}
+
+  //public void putExtensibilityItemTreeProvider(String namespaceURI, ExtensibilityItemTreeProvider treeProvider)
+  //{
+  //  treeProviderMap.put(namespaceURI, treeProvider);
+  //}
+  
+  public List getRegisteredExtensions()
+  {                            
+    return registeredExtensionList;                                
+  }                       
+
+  public WSDLEditorExtension getApplicableExtension(int type, Object object)
+  { 
+    WSDLEditorExtension result = null;                                    
+    for (Iterator i = getRegisteredExtensions().iterator(); i.hasNext(); )
+    {
+      WSDLEditorExtension extension = (WSDLEditorExtension)i.next();
+      if (extension.isExtensionTypeSupported(type) && extension.isApplicable(object))
+      { 
+        result = extension;
+        break;
+      }
+    }         
+    return result;                                                           
+  }
+
+  public WSDLEditorExtension[] getRegisteredExtensions(int type)
+  { 
+    List list = new ArrayList();                                    
+    for (Iterator i = getRegisteredExtensions().iterator(); i.hasNext(); )
+    {
+      WSDLEditorExtension extension = (WSDLEditorExtension)i.next();
+      if (extension.isExtensionTypeSupported(type))
+      { 
+        list.add(extension);
+      }
+    } 
+
+    WSDLEditorExtension[] result = new WSDLEditorExtension[list.size()];
+    int count = 0;
+    for (Iterator i = list.iterator(); i.hasNext(); )
+    { 
+      WSDLEditorExtension extension = (WSDLEditorExtension)i.next();
+      result[count] = extension;
+      count++;
+    }
+    return result;                          
+  }
+             
+  public void addAsFirst(WSDLEditorExtension extension)
+  {               
+    getRegisteredExtensions().add(0, extension);
+  }    
+
+  public void add(WSDLEditorExtension extension)
+  {               
+    getRegisteredExtensions().add(extension);
+  }          
+
+  public void add(ClassLoader classLoader, String className)
+  {                      
+    // TODO... consider defered instantiation of WSDLEditorExtensions         
+    try
+    {       
+      Class theClass = classLoader != null ? classLoader.loadClass(className) : Class.forName(className);
+      WSDLEditorExtension extension = (WSDLEditorExtension)theClass.newInstance();
+      registeredExtensionList.add(extension);
+    }
+    catch (Exception e)
+    {
+    	e.printStackTrace();
+    }
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/filter/ExtensiblityElementFilter.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/filter/ExtensiblityElementFilter.java
similarity index 91%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/filter/ExtensiblityElementFilter.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/filter/ExtensiblityElementFilter.java
index 8131477..61bf0d2 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/filter/ExtensiblityElementFilter.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/filter/ExtensiblityElementFilter.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/filter/HttpExtensiblityElementFilter.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/filter/HttpExtensiblityElementFilter.java
similarity index 95%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/filter/HttpExtensiblityElementFilter.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/filter/HttpExtensiblityElementFilter.java
index d41fd7f..859259c 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/filter/HttpExtensiblityElementFilter.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/filter/HttpExtensiblityElementFilter.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/filter/MimeExtensiblityElementFilter.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/filter/MimeExtensiblityElementFilter.java
similarity index 95%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/filter/MimeExtensiblityElementFilter.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/filter/MimeExtensiblityElementFilter.java
index f5e7ad1..eaa701f 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/filter/MimeExtensiblityElementFilter.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/filter/MimeExtensiblityElementFilter.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/filter/SoapExtensiblityElementFilter.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/filter/SoapExtensiblityElementFilter.java
similarity index 95%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/filter/SoapExtensiblityElementFilter.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/filter/SoapExtensiblityElementFilter.java
index 821b16b..fbfe95c 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/filter/SoapExtensiblityElementFilter.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/filter/SoapExtensiblityElementFilter.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/filter/XSDExtensiblityElementFilter.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/filter/XSDExtensiblityElementFilter.java
similarity index 94%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/filter/XSDExtensiblityElementFilter.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/filter/XSDExtensiblityElementFilter.java
index 95567e9..c9d3aec 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/filter/XSDExtensiblityElementFilter.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/filter/XSDExtensiblityElementFilter.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/gef/util/editparts/InteractorHelper.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/gef/util/editparts/InteractorHelper.java
new file mode 100644
index 0000000..4709c16
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/gef/util/editparts/InteractorHelper.java
@@ -0,0 +1,99 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.gef.util.editparts;
+
+import java.util.Iterator;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.LayoutManager;
+import org.eclipse.draw2d.MouseEvent;
+import org.eclipse.draw2d.MouseListener;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
+import org.eclipse.wst.wsdl.ui.internal.gef.util.figures.Interactor;
+import org.eclipse.wst.xsd.ui.internal.gef.util.figures.IExpandable;
+
+                 
+// hooks up an interactor with an edit part and the figure that needs to be expanded and collapsed
+//
+public class InteractorHelper implements MouseListener
+{                             
+  protected boolean needToPerformDefaultExpansion = true;
+  protected EditPart editPart;               
+  protected Interactor interactor;                                                        
+  protected IExpandable expandable;
+
+  public InteractorHelper(EditPart editPart, Interactor interactor, IExpandable expandable)
+  {                          
+    this.editPart = editPart;
+    this.interactor = interactor;
+    this.expandable = expandable;
+    interactor.addMouseListener(this);
+    expandable.setExpanded(interactor.isExpanded());
+  }                  
+
+  public void setExpanded(boolean isExpanded)
+  {
+    interactor.setExpanded(isExpanded);
+    interactorExpansionChanged(isExpanded);
+  }
+  
+  protected void interactorExpansionChanged(boolean isInteractorExpanded)
+  { 
+    expandable.setExpanded(isInteractorExpanded);
+    expandable.setVisible(isInteractorExpanded);
+
+    editPart.refresh();
+
+    EditPart root = editPart.getRoot();
+    if (root instanceof AbstractGraphicalEditPart)
+    {                               
+      IFigure rootFigure = ((AbstractGraphicalEditPart)root).getFigure();
+      invalidateAll(rootFigure);
+      rootFigure.validate();
+      rootFigure.repaint();
+    }      
+  }
+
+         
+  protected void invalidateAll(IFigure figure)
+  {
+    figure.invalidate();   
+    LayoutManager manager = figure.getLayoutManager();
+    if (manager != null)
+    {
+      manager.invalidate();
+    }
+    for (Iterator i = figure.getChildren().iterator(); i.hasNext(); )
+    {
+      IFigure child = (IFigure)i.next();
+      invalidateAll(child);
+    }
+  } 
+     
+
+  // implements MouseListener
+  //
+  public void mouseDoubleClicked(MouseEvent me) 
+  {      
+  }
+ 
+  public void mousePressed(MouseEvent me)
+  {      
+    boolean newExpansionState = !interactor.isExpanded();
+    interactor.setExpanded(newExpansionState);
+    interactorExpansionChanged(newExpansionState);
+  }
+ 
+  public void mouseReleased(MouseEvent me)  
+  { 
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/gef/util/editparts/MultiContentPaneEditPart.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/gef/util/editparts/MultiContentPaneEditPart.java
new file mode 100644
index 0000000..115179a
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/gef/util/editparts/MultiContentPaneEditPart.java
@@ -0,0 +1,129 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.gef.util.editparts;
+                               
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
+
+
+public abstract class MultiContentPaneEditPart extends AbstractGraphicalEditPart
+{
+  protected IFigure[] contentPanes;
+  protected int[] contentPaneIndexAdjustment;
+                         
+  protected IFigure[] initContentPanes()
+  {                             
+    return null;
+  }    
+
+  protected int getContentPane(Object model)
+  {  
+    return 0;
+  }
+    
+  protected List sortByContentPane(List list)
+  {                    
+    return list;
+  }  
+
+
+  protected void setFigure(IFigure figure)
+  {
+	  super.setFigure(figure);
+    contentPanes = initContentPanes();   
+    if (contentPanes != null)
+    {
+      contentPaneIndexAdjustment = new int[contentPanes.length];
+    }
+  }        
+     
+
+  protected void updateContentPaneInfoIndexAdjustment(List list)
+  { 
+    int index = 0;  
+    int listSize = list.size();
+
+    for (int  j = 0; j < contentPanes.length; j++)
+    { 
+      contentPaneIndexAdjustment[j] = index;
+      while (index < listSize)
+      {              
+        Object model = list.get(index);
+        if (getContentPane(model) != j)
+        {
+          break;
+        }                          
+        index++;
+      }
+    }
+  }
+                            
+
+  protected void refreshChildren()
+  {                        
+    if (contentPanes != null)
+    {
+      List sortedList = sortByContentPane(getModelChildren());
+      updateContentPaneInfoIndexAdjustment(sortedList);
+    }
+    super.refreshChildren();
+  }
+                            
+
+  protected void addChildVisual(EditPart childEditPart, int index)
+  {                
+    if (contentPanes != null)
+    {
+      int j = getContentPane(childEditPart.getModel());
+      if (contentPaneIndexAdjustment.length > j)
+      {
+        int adjustedIndex = index - contentPaneIndexAdjustment[j];
+        if (adjustedIndex >= 0)
+        {
+  	      IFigure child = ((GraphicalEditPart)childEditPart).getFigure();
+  	      contentPanes[j].add(child, adjustedIndex);
+        }
+      }
+    }  
+    else
+    {
+      super.addChildVisual(childEditPart, index);
+    }
+  }
+
+  
+  protected void removeChildVisual(EditPart childEditPart)
+  {                         
+    if (contentPanes != null)
+    {
+      int j = getContentPane(childEditPart.getModel());
+      IFigure child = ((GraphicalEditPart)childEditPart).getFigure();
+      contentPanes[j].remove(child);  
+    }    
+    else
+    {
+      super.removeChildVisual(childEditPart);
+    }
+  }
+
+  protected void reorderChild(EditPart editpart, int index)
+  {
+    removeChildVisual(editpart);
+    List children = getChildren();
+    children.remove(editpart);
+    children.add(index, editpart);
+    addChildVisual(editpart, index);
+  }
+}     
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IASDObjectListener.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/gef/util/editpolicies/IDirectEditPolicyDelegate.java
similarity index 63%
copy from bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IASDObjectListener.java
copy to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/gef/util/editpolicies/IDirectEditPolicyDelegate.java
index 4477644..e2a84e8 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IASDObjectListener.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/gef/util/editpolicies/IDirectEditPolicyDelegate.java
@@ -1,15 +1,18 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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.asd.facade;
+package org.eclipse.wst.wsdl.ui.internal.gef.util.editpolicies;
+   
+import org.eclipse.jface.viewers.CellEditor;
 
-public interface IASDObjectListener {
-	public void propertyChanged(Object object, String property);
-}
+public interface IDirectEditPolicyDelegate
+{       
+  public void performEdit(CellEditor cellEditor);  
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/gef/util/editpolicies/TextCellEditorManager.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/gef/util/editpolicies/TextCellEditorManager.java
new file mode 100644
index 0000000..7bac729
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/gef/util/editpolicies/TextCellEditorManager.java
@@ -0,0 +1,74 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.gef.util.editpolicies;
+                                                  
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.tools.CellEditorLocator;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.jface.viewers.CellEditor;
+import org.eclipse.jface.viewers.TextCellEditor;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.widgets.Text;
+
+public abstract class TextCellEditorManager extends DirectEditManager implements IDirectEditPolicyDelegate
+{
+  protected Label label;                                 
+
+  public TextCellEditorManager(GraphicalEditPart source,	Label label)
+  {
+	  super(source, TextCellEditor.class, new InternalCellEditorLocator(label));
+    this.label = label;     
+  }
+
+  protected void initCellEditor() 
+  {                                             
+  	String initialLabelText = label.getText();
+  	getCellEditor().setValue(initialLabelText);
+  	Text text = (Text)getCellEditor().getControl();
+  	text.setFont(label.getFont());
+    text.setForeground(label.getForegroundColor());
+    text.setBackground(label.getBackgroundColor());
+  	text.selectAll();
+  }	          
+
+  protected abstract void performModify(String value);
+    
+  public static class InternalCellEditorLocator implements CellEditorLocator
+  {
+    protected Label label;
+
+    public InternalCellEditorLocator(Label label)
+    {
+      this.label = label;
+    }                   
+
+    public void relocate(CellEditor celleditor) 
+    {
+      Text text = (Text)celleditor.getControl();  
+	    Point sel = text.getSelection();
+	    Point pref = text.computeSize(-1, -1);
+	    Rectangle rect = label.getTextBounds().getCopy();
+	    label.translateToAbsolute(rect);
+	    text.setBounds(rect.x-4, rect.y-1, pref.x+1, pref.y+1);	
+	    text.setSelection(0);
+	    text.setSelection(sel); 
+    }
+  }    
+
+  // implements DirectEditPolicyDelegate
+  // 
+  public void performEdit(CellEditor cellEditor)
+  {
+    performModify((String)cellEditor.getValue());
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/gef/util/figures/CenterLayout.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/gef/util/figures/CenterLayout.java
new file mode 100644
index 0000000..f83f385
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/gef/util/figures/CenterLayout.java
@@ -0,0 +1,155 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.gef.util.figures;
+
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.draw2d.AbstractLayout;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.draw2d.geometry.Rectangle;
+
+
+/**
+ * Figures using the StackLayout as their layout manager have
+ * their children placed on top of one another. Order of 
+ * placement is determined by the order in which the children
+ * were added, first child added placed on the bottom.
+ */
+public class CenterLayout	extends AbstractLayout
+{       
+  public static final int ALIGNMENT_TOP = 1;
+  public static final int ALIGNMENT_CENTER = 2;
+  public static final int ALIGNMENT_BOTTOM = 3;
+                        
+  protected int spacing;
+  protected int verticalAlignment = ALIGNMENT_CENTER;
+  
+  public CenterLayout(){}
+  public CenterLayout(int spacing){ this.spacing = spacing; }
+  
+ 
+  /**
+   * Calculates and returns the preferred size of the input container.
+   * This is the size of the largest child of the container, as all
+   * other children fit into this size.
+   *
+   * @param figure  Container figure for which preferred size is required.
+   * @return  The preferred size of the input figure.
+   */
+//  protected Dimension calculatePreferredSize(IFigure figure)
+  protected Dimension calculatePreferredSize(IFigure figure, int width, int height)
+  {
+  	Dimension d = calculatePreferredClientAreaSize(figure);
+//  	d.expand(figure.getInsets().getWidth(),
+//  	         figure.getInsets().getHeight());
+    d.expand(width, height);
+  	d.union(getBorderPreferredSize(figure));
+  	return d;
+  }
+  
+  protected Dimension calculatePreferredClientAreaSize(IFigure figure)
+  {
+  	Dimension d = new Dimension();
+  	List children = figure.getChildren();
+  	for (Iterator i = children.iterator(); i.hasNext(); )
+    {
+  		IFigure child = (IFigure)i.next();
+      Dimension childSize = child.getPreferredSize();
+      d.height += childSize.height;
+      d.width = Math.max(childSize.width, d.width);
+  	}	                    
+    int childrenSize = children.size();       
+    if (childrenSize > 0)
+    {
+      d.height += spacing * children.size() - 1;
+    }
+  	return d;
+  }
+  
+  /*
+   * Returns the minimum size required by the input container.
+   * This is the size of the largest child of the container, as all
+   * other children fit into this size.
+   */
+  // TODO GEF PORT
+  public Dimension getMinimumSize(IFigure figure, int width, int height)
+  {
+  	Dimension d = new Dimension();
+  	List children = figure.getChildren();
+  	IFigure child;
+  	for (int i=0; i < children.size(); i++)
+    {
+  		child = (IFigure)children.get(i);
+  		d.union(child.getMinimumSize());
+  	}
+  	d.expand(figure.getInsets().getWidth(), figure.getInsets().getHeight());
+  	return d;
+  }
+  // TODO GEF PORT
+  public Dimension getPreferredSize(IFigure figure, int width, int height)
+  {
+  	return calculatePreferredSize(figure, figure.getInsets().getWidth(), figure.getInsets().getHeight());
+  }
+  
+  
+  public void layout(IFigure figure)
+  {
+  	Rectangle r = figure.getClientArea();
+  	List children = figure.getChildren();
+    
+    Dimension preferredClientAreaSize = calculatePreferredClientAreaSize(figure);
+  
+    int x = r.x + (r.width - preferredClientAreaSize.width) / 2;
+    int y = 0;
+  
+    switch (getVerticalAlignment())
+    {
+      case ALIGNMENT_TOP :  
+      {
+        y = r.y;
+        break;
+      }
+      case ALIGNMENT_CENTER :
+      {
+        y = r.y + (r.height - preferredClientAreaSize.height) / 2;
+        break;
+      }
+      case ALIGNMENT_BOTTOM :
+      {
+        y = r.y + (r.height - preferredClientAreaSize.height);
+        break;
+      }
+    }
+        
+  	for (Iterator i = children.iterator(); i.hasNext(); )
+    {
+  		IFigure child = (IFigure)i.next();
+      Dimension childSize = child.getPreferredSize();
+  		child.setBounds(new Rectangle(x, y, childSize.width, childSize.height));
+      y += childSize.height + spacing;
+  	}
+  }
+  
+  /**
+   * @param verticalAlignment The verticalAlignment to set.
+   */
+  public void setVerticalAlignment(int verticalAlignment)
+  {
+    this.verticalAlignment = verticalAlignment;
+  }
+  
+  protected int getVerticalAlignment()
+  {
+    return verticalAlignment;
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/gef/util/figures/IGraphNodeFigure.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/gef/util/figures/IGraphNodeFigure.java
new file mode 100644
index 0000000..bd9d85a
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/gef/util/figures/IGraphNodeFigure.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.gef.util.figures;
+            
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+
+public interface IGraphNodeFigure extends IFigure
+{                       
+  public static final int UP_CONNECTION = 1; 
+  public static final int DOWN_CONNECTION = 2;
+  public static final int LEFT_CONNECTION = 3;
+  public static final int RIGHT_CONNECTION = 4;
+
+  public IFigure getSelectionFigure();
+  public IFigure getConnectionFigure();
+  public List getConnectedFigures(int type);
+  public int getConnectionType();      
+  public void addConnectedFigure(IGraphNodeFigure figure);
+  public void removeConnectedFigure(IGraphNodeFigure figure);
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/gef/util/figures/Interactor.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/gef/util/figures/Interactor.java
new file mode 100644
index 0000000..3e27c03
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/gef/util/figures/Interactor.java
@@ -0,0 +1,55 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.gef.util.figures;
+            
+import org.eclipse.draw2d.Graphics;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.draw2d.geometry.Rectangle;
+
+/**
+ * Interactor the +/- control commonly found in trees
+ */
+public class Interactor extends RectangleFigure
+{
+  protected boolean isExpanded;
+
+  public Interactor()
+  {
+    super(); 
+    setPreferredSize(new Dimension(9, 9));               
+  }  
+
+  public void setExpanded(boolean isExpanded)
+  {                                         
+    this.isExpanded = isExpanded;
+    repaint();
+  }
+
+  public boolean isExpanded()
+  {
+    return isExpanded;
+  }
+    
+  protected void fillShape(Graphics g)
+  {
+    super.fillShape(g);
+    Rectangle r = getBounds();                          
+    int mx = r.x + r.width / 2;
+    int my = r.y + r.height / 2;    
+    int s = 2;       
+    g.drawLine(r.x + s, my, r.x + r.width - s - 1, my); 
+    if (!isExpanded)
+    {
+      g.drawLine(mx, r.y + s, mx, r.y + r.height - s -1);
+    }
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/gef/util/figures/RoundedLineBorder.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/gef/util/figures/RoundedLineBorder.java
new file mode 100644
index 0000000..b1bfad4
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/gef/util/figures/RoundedLineBorder.java
@@ -0,0 +1,67 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.gef.util.figures;
+            
+import org.eclipse.draw2d.Graphics;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.LineBorder;
+import org.eclipse.draw2d.geometry.Insets;
+import org.eclipse.swt.graphics.Color;
+
+public class RoundedLineBorder extends LineBorder
+{               
+  protected int arcLength;   
+  protected int lineStyle = Graphics.LINE_SOLID;
+
+  public RoundedLineBorder(Color c, int width, int arcLength)
+  {
+	  super(c, width);     
+    this.arcLength = arcLength;
+  }
+
+  public RoundedLineBorder(int width, int arcLength)
+  {
+	  super(width);     
+    this.arcLength = arcLength;
+  }
+  
+  public RoundedLineBorder(Color c, int width, int arcLength, int lineStyle)
+  {
+    super(c, width);
+    this.arcLength = arcLength;
+    this.lineStyle = lineStyle;
+  }
+
+  public RoundedLineBorder(int width, int arcLength, int lineStyle)
+  {
+    super(width);
+    this.arcLength = arcLength;
+    this.lineStyle = lineStyle;
+  }
+
+  public void paint(IFigure figure, Graphics graphics, Insets insets)
+  {
+	  tempRect.setBounds(getPaintRectangle(figure, insets));
+    int width = getWidth();
+    Color color = getColor();
+  	if (width%2 == 1)
+    {
+		  tempRect.width--;
+		  tempRect.height--;
+	  }
+	  tempRect.shrink(width/2,width/2);
+	  graphics.setLineWidth(width);
+    graphics.setLineStyle(lineStyle);
+	  if (color != null)
+		  graphics.setForegroundColor(color);
+	  graphics.drawRoundRectangle(tempRect, arcLength, arcLength);
+  }
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/FigureCanvasKeyboardHandler.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/FigureCanvasKeyboardHandler.java
new file mode 100644
index 0000000..e861ddf
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/FigureCanvasKeyboardHandler.java
@@ -0,0 +1,102 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.graph;
+
+import org.eclipse.draw2d.FigureCanvas;
+import org.eclipse.draw2d.RangeModel;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.KeyAdapter;
+import org.eclipse.swt.events.KeyEvent;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Widget;
+
+public class FigureCanvasKeyboardHandler extends KeyAdapter
+{
+  public static final int H_SCROLL_INCREMENT = 5;
+  public static final int V_SCROLL_INCREMENT = 30;
+
+  /**
+   * Constructor for FigureCanvasKeyboardHandler.
+   */
+  public FigureCanvasKeyboardHandler()
+  {
+    super();
+  }
+
+  public void keyPressed(KeyEvent e)
+  {
+    Widget w = e.widget;
+    if (w instanceof FigureCanvas)
+    {
+      processKey(e.keyCode, (FigureCanvas)w);
+    }
+  }
+
+  private void processKey(int keyCode, FigureCanvas figureCanvas)
+  {
+    switch (keyCode)
+    {
+      case SWT.ARROW_DOWN :
+        scrollVertical(figureCanvas, false);
+        break;
+      case SWT.ARROW_UP :
+        scrollVertical(figureCanvas, true);
+        break;
+      case SWT.ARROW_LEFT :
+        scrollHorizontal(figureCanvas, true);
+        break;
+      case SWT.ARROW_RIGHT :
+        scrollHorizontal(figureCanvas, false);
+        break;
+      case SWT.PAGE_UP :
+        scrollPage(figureCanvas, true);
+        break;
+      case SWT.PAGE_DOWN :
+        scrollPage(figureCanvas, false);
+        break;
+    }
+  }
+
+  private int verifyScrollBarOffset(RangeModel model, int value)
+  {
+    value = Math.max(model.getMinimum(), value);
+    return Math.min(model.getMaximum() - model.getExtent(), value);
+  }
+
+  private void scrollVertical(FigureCanvas figureCanvas, boolean up)
+  {
+    Point location = figureCanvas.getViewport().getViewLocation();
+    int vOffset = up ? -V_SCROLL_INCREMENT : V_SCROLL_INCREMENT;
+    int x = verifyScrollBarOffset(figureCanvas.getViewport().getHorizontalRangeModel(), location.x);
+    int y = verifyScrollBarOffset(figureCanvas.getViewport().getVerticalRangeModel(), location.y + vOffset);
+    figureCanvas.scrollSmoothTo(x, y);
+  }
+
+  private void scrollHorizontal(FigureCanvas figureCanvas, boolean left)
+  {
+    Point location = figureCanvas.getViewport().getViewLocation();
+    int hOffset = left ? -H_SCROLL_INCREMENT : H_SCROLL_INCREMENT;
+    int x = verifyScrollBarOffset(figureCanvas.getViewport().getHorizontalRangeModel(), location.x + hOffset);
+    int y = verifyScrollBarOffset(figureCanvas.getViewport().getVerticalRangeModel(), location.y);
+    figureCanvas.scrollSmoothTo(x, y);
+  }
+
+  private void scrollPage(FigureCanvas figureCanvas, boolean up)
+  {
+    Rectangle clientArea = figureCanvas.getClientArea();
+    int increment = up ? -clientArea.height : clientArea.height;
+    Point location = figureCanvas.getViewport().getViewLocation();
+    int x = verifyScrollBarOffset(figureCanvas.getViewport().getHorizontalRangeModel(), location.x);
+    int y = verifyScrollBarOffset(figureCanvas.getViewport().getVerticalRangeModel(), location.y + increment);
+    figureCanvas.scrollSmoothTo(x, y);
+  }
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/GraphViewToolBar.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/GraphViewToolBar.java
new file mode 100644
index 0000000..5fec3a0
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/GraphViewToolBar.java
@@ -0,0 +1,165 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.graph;
+                                                 
+import java.util.List;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.ViewForm;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.TraverseEvent;
+import org.eclipse.swt.events.TraverseListener;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.ToolBar;
+import org.eclipse.swt.widgets.ToolItem;
+import org.eclipse.wst.wsdl.Definition;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditor;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.eclipse.wst.wsdl.ui.internal.graph.model.WSDLGraphModelAdapterFactory;
+import org.eclipse.xsd.XSDConcreteComponent;
+import org.eclipse.xsd.XSDSchema;
+import org.eclipse.xsd.XSDSchemaDirective;
+
+ 
+public class GraphViewToolBar extends ViewForm
+{
+    ToolBar graphToolBar;  // the toolbar at the top of the graph view
+    //ToolItem toolItem;   // the view tool item
+    Composite frameBar;  // The composite that contains the toolbar
+    WSDLEditor editor;                        
+
+    ToolItem showBindingsButton;   // the view tool item   
+    ToolItem backButton;
+
+    public GraphViewToolBar(WSDLEditor wsdlEditor, Composite c, int style)
+    {
+      super(c, style);
+      this.editor = wsdlEditor;
+      frameBar = new Composite(this, SWT.NONE);
+      /*
+      CLabel label = new CLabel(frameBar, SWT.NONE);
+      label.setText("View :");
+      */
+      org.eclipse.swt.layout.GridLayout frameLayout = new org.eclipse.swt.layout.GridLayout();
+      frameLayout.numColumns = 3;
+      frameLayout.horizontalSpacing = 0;
+      frameLayout.marginWidth = 0;
+      frameLayout.marginHeight = 0;     
+
+      frameBar.setLayout(frameLayout);
+      
+      graphToolBar = new ToolBar(frameBar, SWT.FLAT);
+      graphToolBar.addTraverseListener(new TraverseListener()
+      {
+        public void keyTraversed(TraverseEvent e)
+        {
+          if (e.detail == SWT.TRAVERSE_MNEMONIC)
+           e.doit = false;
+        }
+      });
+              
+
+      backButton = new ToolItem(graphToolBar, SWT.PUSH);
+      backButton.setImage(WSDLEditorPlugin.getInstance().getImage("icons/back.gif"));
+      // backButton.setToolTipText(WSDLEditorPlugin.getWSDLString("_UI_BACK_TO", "Definition"));
+      backButton.setToolTipText(WSDLEditorPlugin.getWSDLString("_UI_BACK"));
+      backButton.setEnabled(false);
+      backButton.addSelectionListener(new org.eclipse.swt.events.SelectionAdapter()
+      {
+        public void widgetSelected(SelectionEvent e)
+        {
+          Object object = editor.getGraphViewer().getComponentViewer().getInput();
+          if (object instanceof XSDSchema)
+          {
+            editor.getGraphViewer().setInput(editor.getDefinition());
+          }
+          else if (object instanceof XSDConcreteComponent)
+          {
+            // Need to common this up with xsdeditor's BackAction code
+            XSDSchema xsdSchema = ((XSDConcreteComponent)object).getSchema();
+            boolean flag = true;
+            while (flag)
+            {
+              List list = xsdSchema.getReferencingDirectives();
+              if (list.size() > 0)
+              {
+                XSDSchemaDirective xsdSchemaDirective = (XSDSchemaDirective)list.get(0);
+                if (xsdSchemaDirective.getSchema() != null)
+                {
+                  xsdSchema = xsdSchemaDirective.getSchema();
+                }
+                else
+                {
+                  flag = false;
+                }
+              }
+              else
+              {
+                flag = false;
+              }
+            }
+
+            editor.getGraphViewer().setInput(xsdSchema);
+          }
+          else
+          {
+            editor.getGraphViewer().setInput(editor.getDefinition());
+          }
+        }
+      }); 
+
+      // hack to make the button look like a toggle button.  SWT.TOGGLE is not an allowed style
+      // for a ToolItem, but SWT.RADIO is.  SWT.RADIO makes it look like a toggle.......
+      showBindingsButton = new ToolItem(graphToolBar, SWT.RADIO);
+      showBindingsButton.setImage(WSDLEditorPlugin.getInstance().getImage("icons/hidebinding.gif"));
+      showBindingsButton.setToolTipText(WSDLEditorPlugin.getWSDLString("_UI_HIDE_BINDINGS")); 
+      showBindingsButton.addSelectionListener(new org.eclipse.swt.events.SelectionAdapter()
+      {
+      	private boolean currentlySelected = false;
+      	
+        public void widgetSelected(SelectionEvent e)
+        {                                             
+          ViewMode vm = WSDLGraphModelAdapterFactory.getViewMode((Definition)editor.getDefinition());
+          vm.setBindingVisible(!vm.isBindingVisible());
+          
+          // hack to make the button look like a toggle button
+          ToolItem item = (ToolItem) e.widget;
+          if (currentlySelected) {
+          	item.setSelection(false);
+          	currentlySelected = false;
+          }
+          else {
+          	currentlySelected = true;
+          }
+        }
+      }); 
+
+      setTopLeft(frameBar);
+    }
+    
+    public void setBackButtonEnabled(boolean state)
+    {
+      backButton.setEnabled(state);
+    }
+
+    
+//    public void updateHoverHelp(Object object)
+//    {
+//      if (object instanceof XSDSchema)
+//      {
+//        backButton.setToolTipText(WSDLEditorPlugin.getWSDLString("_UI_BACK_TO", "Definition"));
+//      }
+//      else if (object instanceof XSDConcreteComponent)
+//      {
+//        backButton.setToolTipText(WSDLEditorPlugin.getWSDLString("_UI_BACK_TO", "XML Schema"));
+//      }
+//    }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/DesignViewGraphicsConstants.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/GraphicsConstants.java
similarity index 80%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/DesignViewGraphicsConstants.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/GraphicsConstants.java
index 304600d..8170eba 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/design/DesignViewGraphicsConstants.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/GraphicsConstants.java
@@ -1,14 +1,14 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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.asd.design;
+package org.eclipse.wst.wsdl.ui.internal.graph;
 
 import org.eclipse.draw2d.ColorConstants;
 import org.eclipse.swt.SWT;
@@ -19,7 +19,7 @@
 /**
  * A collection of color and font related constants.
  */
-public interface DesignViewGraphicsConstants 
+public interface GraphicsConstants 
 {                          
   public final static Display display = Display.getDefault(); 
                                                  
@@ -32,10 +32,6 @@
   public final static Color readOnlyBorderColor     = new Color(null, 164, 164, 164); 
   public final static Color red                     = new Color(null, 255,   0,   0); 
 
-  public final static Color tableOperationHeadingColor = new Color(null, 224, 233, 246);
-  public final static Color tableMessageHeadingColor = new Color(null, 230, 240, 245);
-  public final static Color tableCellSelectionColor = new Color(null, 238, 232, 170); //new Color(null, 240, 230, 140); //1, 15, 42);
-
   public final static Color readOnlyBackgroundColor = ColorConstants.white;
 
   public final static Font  smallBoldFont           = new Font(Display.getCurrent(), "Tahoma", 8, SWT.BOLD);
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/ViewMode.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/ViewMode.java
new file mode 100644
index 0000000..6275daf
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/ViewMode.java
@@ -0,0 +1,163 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.graph;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+
+public class ViewMode 
+{
+  public static final int BINDING     =   1;
+  public static final int MESSAGE     =   2;
+  public static final int PORT_TYPE   =   3;
+  public static final int SERVICE     =   4;
+  public static final int TYPES       =   5;
+
+  public static final String BINDING_DESCRIPTION     = WSDLEditorPlugin.getWSDLString("_UI_LABEL_BINDING");
+  public static final String MESSAGE_DESCRIPTION     = WSDLEditorPlugin.getWSDLString("_UI_LABEL_MESSAGE");
+  public static final String PORT_TYPE_DESCRIPTION   = WSDLEditorPlugin.getWSDLString("_UI_LABEL_PORTTYPE");
+  public static final String SERVICE_DESCRIPTION     = WSDLEditorPlugin.getWSDLString("_UI_LABEL_SERVICE");
+  public static final String TYPES_DESCRIPTION       = WSDLEditorPlugin.getWSDLString("_UI_LABEL_TYPES");
+
+
+  protected boolean isBindingVisible = true;
+  protected int mode = SERVICE;
+  protected List listenerList = new ArrayList();
+
+  public ViewMode()
+  {
+  }                              
+
+  public void setBindingVisible(boolean isVisible)
+  {
+    if (isBindingVisible != isVisible)
+    {
+      isBindingVisible = isVisible;
+      fireChangeNotification();
+    }
+  }
+
+  public boolean isBindingVisible()
+  {                                                   
+    return isBindingVisible;
+  }
+
+  public static int getModeForDescription(String description)
+  {               
+    int result = SERVICE;
+    if (description.equals(BINDING_DESCRIPTION))
+    {               
+      result = BINDING; 
+    }
+    else if (description.equals(MESSAGE_DESCRIPTION))
+    {        
+      result = MESSAGE;
+    }
+    else if (description.equals(PORT_TYPE_DESCRIPTION))
+    { 
+      result = PORT_TYPE;
+    }
+    else if (description.equals(SERVICE_DESCRIPTION))
+    {    
+      result = SERVICE;
+    }
+    else if (description.equals(TYPES_DESCRIPTION))
+    {  
+      result = TYPES;
+    }    
+    return result;
+  }
+
+  public static String getDescriptionForMode(int mode)
+  {               
+    String result = SERVICE_DESCRIPTION;
+    switch (mode)
+    {
+      case BINDING :
+      {             
+        result = BINDING_DESCRIPTION;
+        break;
+      }
+      case MESSAGE : 
+      {             
+        result = MESSAGE_DESCRIPTION;
+        break;
+      }
+      case PORT_TYPE : 
+      {             
+        result = PORT_TYPE_DESCRIPTION;
+        break;
+      }
+      case SERVICE : 
+      {             
+        result = SERVICE_DESCRIPTION;
+        break;
+      }
+      case TYPES :  
+      {             
+        result = TYPES_DESCRIPTION;
+        break;
+      }
+    }
+    return result;
+  }
+
+  public interface Listener
+  {
+    public void viewModeChanged(ViewMode mode);
+  }
+
+  public void setMode(int mode)
+  {
+    this.mode = mode;
+    fireChangeNotification();
+  }
+
+  public void setMode(String description)
+  {
+    this.mode = getModeForDescription(description);
+    fireChangeNotification();
+  }
+
+  public int getMode()
+  {
+    return mode;
+  } 
+
+  public String getModeDescription()
+  {
+    return getDescriptionForMode(mode);
+  }
+
+  public void addListener(Listener listener)
+  {
+    if (!listenerList.contains(listener))
+    { 
+      listenerList.add(listener);
+    }  
+  }
+
+  public void removeListener(Listener listener)
+  {
+    listenerList.remove(listener);
+  }  
+
+  public void fireChangeNotification()
+  {
+    for (Iterator i = listenerList.iterator(); i.hasNext(); )
+    {
+      Listener listener = (Listener)i.next();
+      listener.viewModeChanged(this);
+    }
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/WSDLComponentViewer.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/WSDLComponentViewer.java
new file mode 100644
index 0000000..b551a22
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/WSDLComponentViewer.java
@@ -0,0 +1,247 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.graph;
+
+import java.util.List;
+
+import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.draw2d.Graphics;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gef.ContextMenuProvider;
+import org.eclipse.gef.DefaultEditDomain;
+import org.eclipse.gef.EditDomain;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPartViewer;
+import org.eclipse.gef.LayerConstants;
+import org.eclipse.gef.editparts.ScalableRootEditPart;
+import org.eclipse.gef.tools.SelectionTool;
+import org.eclipse.gef.ui.parts.ScrollingGraphicalViewer;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.KeyAdapter;
+import org.eclipse.swt.events.KeyEvent;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.wst.wsdl.Definition;
+import org.eclipse.wst.wsdl.WSDLElement;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditor;
+import org.eclipse.wst.wsdl.ui.internal.actions.ExtensibleMenuActionContributor;
+import org.eclipse.wst.wsdl.ui.internal.gef.util.figures.CenterLayout;
+import org.eclipse.wst.wsdl.ui.internal.graph.editparts.ComponentViewerRootEditPart;
+import org.eclipse.wst.wsdl.ui.internal.graph.figures.MyConnectionRenderingHelper;
+import org.eclipse.wst.wsdl.ui.internal.model.WSDLGroupObject;
+import org.eclipse.wst.wsdl.ui.internal.util.OpenOnSelectionHelper;
+import org.eclipse.wst.xsd.ui.internal.gef.util.figures.ConnectionRenderingFigure;
+import org.eclipse.wst.xsd.ui.internal.gef.util.figures.IConnectionRenderingViewer;
+import org.w3c.dom.Node;
+
+public class WSDLComponentViewer extends ScrollingGraphicalViewer implements IConnectionRenderingViewer
+{
+  protected EditDomain editDomain;
+  protected WSDLEditor editor;
+  protected ISelectionProvider menuSelectionProvider;
+  protected ComponentViewerRootEditPart componentViewerRootEditPart;
+  protected ConnectionRenderingFigure connectionRenderingFigure;
+  protected boolean isPreserveExpansionEnabled;
+
+  public WSDLComponentViewer(WSDLEditor editor, ISelectionProvider menuSelectionProvider)
+  {
+    super();
+    this.editor = editor;
+    this.menuSelectionProvider = menuSelectionProvider;
+  }
+
+  public void setPreserveExpansionEnabled(boolean isPreserveExpansionEnabled)
+  {
+    this.isPreserveExpansionEnabled = isPreserveExpansionEnabled;
+  }
+
+  public boolean isPreserveExpansionEnabled()
+  {
+    return isPreserveExpansionEnabled;
+  }
+
+  public ConnectionRenderingFigure getConnectionRenderingFigure()
+  {
+    return connectionRenderingFigure;
+  }
+
+  public Object getInput()
+  {
+    return componentViewerRootEditPart.getModel();
+  }
+
+  public void setInput(Object object)
+  {
+    componentViewerRootEditPart.setInput(object);
+    
+    if (object instanceof Definition)
+    {
+      editor.getGraphViewer().setBackButtonEnabled(false);
+    }
+    else
+    {
+      editor.getGraphViewer().setBackButtonEnabled(true);
+    }
+    
+    // todo.. revisit this to understand why we don't get a set input
+    // when drilling down into a schema element or type
+    //
+    int layoutAlignment = (object instanceof Definition) ? 
+                          CenterLayout.ALIGNMENT_TOP :
+                          CenterLayout.ALIGNMENT_CENTER;
+    
+    ScalableRootEditPart graphicalRootEditPart = (ScalableRootEditPart)getRootEditPart();
+    CenterLayout centerLayout = (CenterLayout)graphicalRootEditPart.getLayer(LayerConstants.PRIMARY_LAYER).getLayoutManager();
+    centerLayout.setVerticalAlignment(layoutAlignment);
+  }
+
+  //public void setSelection(Object object)
+  //{                                      
+  //}
+
+  protected void hookControl()
+  {
+    super.hookControl();
+
+    getControl().setBackground(ColorConstants.white);
+
+    editDomain = new DefaultEditDomain(null);
+    ((DefaultEditDomain)editDomain).setDefaultTool(new SelectionTool());
+    editDomain.loadDefaultTool();
+    editDomain.addViewer(this);
+
+    componentViewerRootEditPart = new ComponentViewerRootEditPart();
+
+    KeyAdapter keyListener = new KeyAdapter()
+    {
+      public void keyReleased(KeyEvent e)
+      {   	
+        if (e.keyCode == SWT.F3)
+        {
+          ISelection selection = editor.getSelectionManager().getSelection();
+          if (selection instanceof IStructuredSelection)
+          {
+            Object object = ((IStructuredSelection)selection).getFirstElement();
+            if (object instanceof EObject)
+            {
+			  OpenOnSelectionHelper helper = new OpenOnSelectionHelper(editor.getDefinition());
+              helper.openEditor((EObject)object);
+            }
+          }
+
+        }
+      }
+    };
+    getControl().addKeyListener(keyListener);
+
+    setContents(componentViewerRootEditPart);
+    //getFigureCanvas().addKeyListener(new FigureCanvasKeyboardHandler(editor));
+    getRootEditPart().activate();
+
+    componentViewerRootEditPart.setInput(editor.getDefinition());
+
+    ScalableRootEditPart graphicalRootEditPart = (ScalableRootEditPart)getRootEditPart();
+
+    // set the layout for the primary layer so that the children are always centered
+    //
+    CenterLayout centerLayout = new CenterLayout();
+    centerLayout.setVerticalAlignment(CenterLayout.ALIGNMENT_TOP);
+    graphicalRootEditPart.getLayer(LayerConstants.PRIMARY_LAYER).setLayoutManager(centerLayout); //new ContainerLayout());//
+
+    ContextMenuProvider menuProvider = new InternalContextMenuProvider(this, editor); 
+    setContextMenu(menuProvider);
+    
+    // add context menu to the graph
+    MenuManager manager = new MenuManager("#popup");
+    manager.addMenuListener(menuProvider);
+    manager.setRemoveAllWhenShown(true);
+    Menu menu = manager.createContextMenu(getControl());
+    getControl().setMenu(menu);    
+    
+    // enable popupMenus extension
+    ((IEditorSite) editor.getSite()).registerContextMenu("org.eclipse.wst.wsdl.ui.popup.graph", manager, menuSelectionProvider, false);
+  
+    // add the ConnectionFigure which is responsible for drawing all of the lines in the view
+    //                       
+    IFigure figure = graphicalRootEditPart.getLayer(LayerConstants.CONNECTION_LAYER);
+    figure.setLayoutManager(new StackLayout());
+
+    final MyConnectionRenderingHelper connectionRenderingHelper = new MyConnectionRenderingHelper(this);
+
+    connectionRenderingFigure = new ConnectionRenderingFigure(graphicalRootEditPart.getLayer(LayerConstants.PRIMARY_LAYER))
+    {
+      protected void fillShape(Graphics graphics)
+      {
+        super.fillShape(graphics);
+        connectionRenderingHelper.fillShapeHelper(graphics);
+      }
+    };
+    figure.add(connectionRenderingFigure);
+    figure.validate();
+  }
+  
+  public WSDLEditor getWSDLEditor() {
+  	return editor;
+  }
+
+  public class InternalContextMenuProvider extends ContextMenuProvider
+  {
+    protected EditPartViewer viewer;
+    protected ExtensibleMenuActionContributor extensibleMenuActionContributor;
+
+    public InternalContextMenuProvider(EditPartViewer viewer, WSDLEditor editor)
+    {
+      super(viewer);
+      this.viewer = viewer;
+      extensibleMenuActionContributor = new ExtensibleMenuActionContributor(editor);
+    }
+
+    public void buildContextMenu(IMenuManager menu)
+    {
+      List list = getSelectedEditParts();
+      if (list.size() > 0)
+      {
+        EditPart editPart = (EditPart)list.get(0);
+        Object object = editPart.getModel();
+
+        //if (editPart instanceof PropertyEditPart)
+        //{
+        //  object = ((PropertyEditPart)editPart).getOwnerModel();
+        //}               
+
+        if (object != null)
+        {
+          Node node = null;
+          if (object instanceof Node)
+          {
+            node = (Node)object;
+          }
+          else if (object instanceof WSDLElement)
+          {
+            node = ((WSDLElement)object).getElement();
+          }
+          else if (object instanceof WSDLGroupObject)
+          {
+            node = ((WSDLGroupObject)object).getDefinition().getElement();
+          }
+          extensibleMenuActionContributor.contributeMenuActions(menu, node, object);
+        }
+      }
+    }
+  }
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/WSDLGraphViewer.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/WSDLGraphViewer.java
new file mode 100644
index 0000000..b6a7ddf
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/WSDLGraphViewer.java
@@ -0,0 +1,365 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.graph;
+                                                 
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gef.EditPart;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.KeyAdapter;
+import org.eclipse.swt.events.KeyEvent;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.actions.ActionFactory;
+import org.eclipse.wst.wsdl.Definition;
+import org.eclipse.wst.wsdl.WSDLElement;
+import org.eclipse.wst.wsdl.XSDSchemaExtensibilityElement;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditor;
+import org.eclipse.wst.wsdl.ui.internal.actions.CopyGlobalAction;
+import org.eclipse.wst.wsdl.ui.internal.actions.DeleteWSDLAndXSDAction;
+import org.eclipse.wst.wsdl.ui.internal.actions.PasteGlobalAction;
+import org.eclipse.wst.wsdl.ui.internal.graph.editparts.ComponentViewerRootEditPart;
+import org.eclipse.wst.wsdl.ui.internal.graph.editparts.GroupEditPart;
+import org.eclipse.wst.wsdl.ui.internal.graph.editparts.TreeNodeEditPart;
+import org.eclipse.wst.wsdl.ui.internal.model.WSDLGroupObject;
+import org.eclipse.wst.wsdl.ui.internal.util.SelectionAdapter;
+import org.eclipse.wst.wsdl.ui.internal.util.WSDLEditorUtil;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
+import org.eclipse.xsd.XSDComplexTypeDefinition;
+import org.eclipse.xsd.XSDConcreteComponent;
+import org.eclipse.xsd.XSDElementDeclaration;
+import org.eclipse.xsd.XSDModelGroupDefinition;
+import org.eclipse.xsd.XSDSchema;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+public class WSDLGraphViewer implements ISelectionChangedListener
+{
+  protected Control componentViewerControl; 
+  protected WSDLComponentViewer componentViewer;
+  protected Definition definition;              
+  protected WSDLEditor editor;  
+  protected InternalSelectionAdapter internalSelectionAdapter = new InternalSelectionAdapter();
+
+  GraphViewToolBar form;  // Tool bar view form
+  
+  public WSDLGraphViewer(WSDLEditor editor)
+  {
+    super();
+    this.editor = editor;                 
+  }    
+
+  public void setDefinition(Definition definition)
+  {
+    this.definition = definition;              
+  }
+
+  public ISelectionProvider getSelectionProvider()
+  {
+    return internalSelectionAdapter;
+  }
+
+  public Control createControl(Composite parent)
+  {
+    componentViewer = new WSDLComponentViewer(editor, editor.getSelectionManager());
+
+    componentViewer.addSelectionChangedListener(internalSelectionAdapter);
+    internalSelectionAdapter.addSelectionChangedListener(editor.getSelectionManager());
+
+    form = new GraphViewToolBar(editor, parent, SWT.NONE);
+
+    componentViewerControl = componentViewer.createControl(form);
+    form.setContent(componentViewerControl);
+
+    editor.getSelectionManager().addSelectionChangedListener(this);
+    
+    componentViewerControl.addKeyListener(new KeyAdapter() {
+    	public void keyPressed(KeyEvent e) {
+    		if (e.character == SWT.DEL) {
+    			List selections = ((IStructuredSelection) editor.getSelectionManager().getSelection()).toList();
+       			DeleteWSDLAndXSDAction deleteAction = new DeleteWSDLAndXSDAction(selections, editor.getDefinition().getElement(), editor);
+       			deleteAction.run();
+    		}
+    	}    	
+    });
+    
+    return componentViewerControl; 
+  }
+
+  public WSDLComponentViewer getComponentViewer()
+  {
+    return componentViewer;
+  }
+
+
+  Node inputNode;    
+  public void setInput(Object object)
+  {
+    componentViewer.setInput(object);
+  }
+  
+  public void setBackButtonEnabled(boolean state)
+  {
+    form.setBackButtonEnabled(state);
+  }
+
+  //protected boolean isDeleted(Object object)
+  //}            
+
+    
+  // this is called when selection changes in the selection manager
+  //
+
+
+  
+  protected Object getInputComponentForNode(Node node)   
+  {
+    // TODO... logic to get WSDLElement or other object (e.g. XSD or extension for the Node)
+    // TODO... consider case where the model is simply a chunk of DOM
+    return null;
+  }
+   
+  protected Object getSelectionComponentForNode(Node node)   
+  {
+    // TODO... logic to get WSDLElement or other object (e.g. XSD or extension for the Node)
+    // TODO... consider case where the model is simply a chunk of DOM
+    return null;
+  } 
+
+  protected class InternalSelectionAdapter extends SelectionAdapter implements ISelectionChangedListener
+  {
+    public Object getObjectForOtherModel(Object object)
+    {            
+      Object result = null;
+      if (object instanceof EditPart)
+      {       
+        // fix for defect 4294 ... this test prevents selection from changing
+        // when a component is renamed which indirectly causes it to be removed and
+        // re-added from the 'sorted' list
+        //
+        if (!(object instanceof ComponentViewerRootEditPart))
+        {  
+          EditPart editPart = (EditPart)object;
+          result = editPart.getModel();
+        }  
+      }
+      return result;
+    }  
+
+    public void selectionChanged(SelectionChangedEvent event)                                       
+    {                                        
+      setSelection(event.getSelection()); 
+    }  
+  }
+    
+  // this gets called when the selection changes within the selection manager
+  //
+  public void selectionChanged(SelectionChangedEvent event) 
+  {   
+    //System.out.println("WSDLGraphViewer.selectionChanged( " + event.getSource() + ")");
+  	
+  	 IStructuredSelection selectionObject = (IStructuredSelection)event.getSelection();
+     Object modelObject = selectionObject.getFirstElement();
+     if (modelObject instanceof WSDLElement) {
+     	Element node = ((WSDLElement) modelObject).getElement();
+         boolean isEditable = (node instanceof IDOMNode);
+         
+     	Action copyAction = new CopyGlobalAction((WSDLElement) modelObject, editor);
+     	Action pasteAction = new PasteGlobalAction((WSDLElement) modelObject, editor);
+ 		
+ 		IActionBars actionBars = editor.getEditorSite().getActionBars();
+ 		actionBars.setGlobalActionHandler(ActionFactory.COPY.getId(), copyAction);
+ 		actionBars.setGlobalActionHandler(ActionFactory.PASTE.getId(), pasteAction);
+ 		actionBars.updateActionBars();
+ 		
+ 		if (!isEditable) {
+ 			copyAction.setEnabled(false);
+ 			pasteAction.setEnabled(false);
+ 		}
+     }
+
+    if (event.getSource() != internalSelectionAdapter && event.getSource() != (editor.getTextEditor()).getSelectionProvider())
+    {   
+      boolean isEmptySelectionRequired = true;
+      if (event.getSelection() instanceof IStructuredSelection)
+      {
+        IStructuredSelection selection = (IStructuredSelection)event.getSelection();
+        Object model = selection.getFirstElement();
+
+        if (model != null)
+        {                                                                           
+          EditPart editPart = getEditPart(componentViewer.getRootEditPart(), model);
+          if (editPart == null)
+          {                                                                         
+            editPart = expandToReveal(componentViewer.getRootEditPart(), model);
+          }
+          if (editPart == null)
+          {
+          	if (model instanceof XSDConcreteComponent) {
+          		model = getTopLevelComponent((XSDConcreteComponent) model);
+          		
+				if (model instanceof XSDElementDeclaration ||
+					model instanceof XSDComplexTypeDefinition ||
+					model instanceof XSDModelGroupDefinition ||
+					model instanceof XSDSchema) {
+						componentViewer.setInput(model);
+				}
+            }
+          	else if (model instanceof WSDLElement || model instanceof WSDLGroupObject) {
+          		// We need to switch the output to Definition
+          		componentViewer.setInput(editor.getDefinition());
+          		editPart = getEditPart(componentViewer.getRootEditPart(), model);
+          		if (editPart == null)
+          		{                                                                         
+          			editPart = expandToReveal(componentViewer.getRootEditPart(), model);
+          		}
+          	}
+            else
+            {
+              // bad hack to convert xsd editor category to xsd object
+              // see also WSDLTabbedPropertySheetPage
+              Node node = WSDLEditorUtil.getInstance().getNodeForObject(model);
+              Object o = WSDLEditorUtil.getInstance().findModelObjectForElement(editor.getDefinition(), (Element)node);
+              if (o instanceof XSDSchemaExtensibilityElement)
+              {
+                Object obj = ((XSDSchemaExtensibilityElement)o).getSchema();
+                componentViewer.setInput(obj);
+              }
+            }
+          }
+          if (editPart != null)
+          {
+            isEmptySelectionRequired = false;
+            componentViewer.setSelection(new StructuredSelection(editPart));
+            scrollIntoView(editPart);
+          }   
+        }
+      }
+      if (isEmptySelectionRequired)
+      {
+        componentViewer.setSelection(new StructuredSelection());
+      }
+    }
+  }
+  
+  protected XSDConcreteComponent getTopLevelComponent(XSDConcreteComponent component)
+  {
+    XSDConcreteComponent prev = component;
+    XSDConcreteComponent container = component;
+    while ( container != null && !(container instanceof XSDSchema))
+    {
+      prev = container;     
+      container = container.getContainer();
+    }
+    return container != null ? prev : null;
+  }
+
+  protected EditPart getEditPart(EditPart editPart, Object model)  
+  {                     
+    EditPart result = null;
+    if (editPart.getModel() == model)
+    {
+      result = editPart;      
+    }                   
+    else
+    {
+      for (Iterator i = editPart.getChildren().iterator(); i.hasNext(); )
+      {
+        result = getEditPart((EditPart)i.next(), model);
+        if (result != null)
+        {
+          break;
+        }
+      }
+    }
+    return result;
+  }
+
+
+  public EditPart expandToReveal(EditPart editPart, Object model)
+  {   
+    // here we create the parent list
+    //
+    List parentList = new ArrayList();
+    for (Object o = model; o != null; o = getParent(o))
+    {
+      parentList.add(0, o);
+    }               
+    EditPart result = expandToRevealHelper(editPart, parentList, 0);    
+                 
+    return result;
+  }   
+
+
+  public EditPart expandToRevealHelper(EditPart editPart, List parentList, int index)
+  {                                      
+    EditPart result = null;
+    int parentListSize =  parentList.size();
+    Object model = index < parentListSize ? parentList.get(index) : null;
+    if (model != null && editPart != null)
+    { 
+      // search editpart and its descendants to find a match for this model object
+      //
+      result = getEditPart(editPart, model);  
+      //System.out.println("getEditPart(" + index + ", " + model + ") = " + result);
+    }
+
+    if (result != null)
+    {
+      if (index < (parentListSize - 1))
+      {
+        // we've found the editPart for the item in the parentList 
+        // now we need to find the next item 
+        if (result instanceof TreeNodeEditPart)
+        {
+          ((TreeNodeEditPart)result).setExpanded(true);
+        }           
+        result = expandToRevealHelper(result, parentList, index + 1);
+      }
+    }
+    return result;
+  }
+    
+    
+  protected Object getParent(Object model)
+  { 
+    Object parent = null;
+    if (model instanceof EObject)
+    {
+      parent = ((EObject)model).eContainer();
+    }                                        
+    return parent;
+  }     
+
+
+  public void scrollIntoView(EditPart editPart)
+  {                
+    for (EditPart parent = editPart.getParent(); parent != null; parent = parent.getParent())
+    {
+      if (parent instanceof GroupEditPart)
+      {
+        GroupEditPart groupEditPart = (GroupEditPart)parent;
+        groupEditPart.scrollToRevealEditPart(editPart);
+        break;
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/AbstractConnectionManager.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/AbstractConnectionManager.java
new file mode 100644
index 0000000..6f84aaa
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/AbstractConnectionManager.java
@@ -0,0 +1,213 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.graph.editparts;
+                                  
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.wst.wsdl.Binding;
+import org.eclipse.wst.wsdl.BindingFault;
+import org.eclipse.wst.wsdl.BindingInput;
+import org.eclipse.wst.wsdl.BindingOperation;
+import org.eclipse.wst.wsdl.BindingOutput;
+import org.eclipse.wst.wsdl.Fault;
+import org.eclipse.wst.wsdl.Input;
+import org.eclipse.wst.wsdl.Operation;
+import org.eclipse.wst.wsdl.Output;
+import org.eclipse.wst.wsdl.PortType;
+import org.eclipse.wst.wsdl.WSDLElement;
+import org.eclipse.wst.wsdl.internal.util.WSDLSwitch;
+import org.eclipse.wst.wsdl.ui.internal.util.WSDLEditorUtil;
+import org.eclipse.wst.wsdl.util.WSDLConstants;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+                                                   
+public class AbstractConnectionManager implements IConnectionManager
+{            
+  public static final int PROPAGATE_FORWARD = 0;
+  public static final int PROPAGATE_BACK    = 1;
+  public static final int SELECTED          = 2;
+
+  protected GroupEditPart groupEditPart;
+
+  public AbstractConnectionManager(GroupEditPart groupEditPart)
+  {
+    this.groupEditPart = groupEditPart;
+  }                                    
+                                                
+  protected WSDLSwitch createSwitch(int selectionType)
+  {
+    return new WSDLSwitch();
+  }
+
+  public void propagateForward(Object model)
+  {  
+    if (model instanceof WSDLElement)
+    {
+      WSDLSwitch theSwitch = createSwitch(PROPAGATE_FORWARD);
+      theSwitch.doSwitch((EObject)model);    
+      groupEditPart.scrollToRevealInputConnection();
+    }       
+    else
+    {
+      removeConnections();
+    }
+    propagateForwardToNext(model);
+  }
+
+  public void propagateBack(Object model)
+  {                               
+    if (model instanceof WSDLElement)
+    {                        
+      WSDLSwitch theSwitch = createSwitch(PROPAGATE_BACK);
+      theSwitch.doSwitch((EObject)model);   
+      groupEditPart.scrollToRevealOutputConnection();
+    }
+    else
+    {
+      removeConnections();
+    }
+    propagateBackToPrevious(model);
+  }
+
+  public void setSelectedModelObject(Object model)
+  {  
+	if (model instanceof Node)
+	{
+    	Node node = (Node)model;
+		//Definition definition = groupEditPart.getDefinition();
+        while(node != null)
+        {        
+    	  if (WSDLConstants.WSDL_NAMESPACE_URI.equals(node.getNamespaceURI()))
+    	  {
+    		break;
+    	  }  
+    	  else
+    	  {
+    	  	node = node.getParentNode();
+    	  }
+        }
+        if (node instanceof Element)
+        {
+        	model = WSDLEditorUtil.getInstance().findModelObjectForElement( groupEditPart.getDefinition(), (Element)node);
+        }  
+	}
+	  	
+    if (model instanceof WSDLElement)
+    {
+      WSDLSwitch theSwitch = createSwitch(SELECTED);
+      theSwitch.doSwitch((EObject)model);                                                       
+    }
+    else 
+    {
+      removeConnections();
+    }
+    propagateForwardToNext(model);
+    propagateBackToPrevious(model);
+  } 
+
+ 
+  protected void removeConnections()
+  {
+    groupEditPart.setEmphasizedModelObject(null);
+    groupEditPart.setInputConnectionModelObject(null);
+    groupEditPart.setOutputConnectionModelObject(null);
+  }
+     
+  protected void propagateForwardToNext(Object model)
+  {
+    GroupEditPart group = groupEditPart.getNext();
+    if (group != null)
+    {
+      IConnectionManager connectionManager = group.getConnectionManager();
+      if (connectionManager != null)
+      {
+        connectionManager.propagateForward(model);
+      }
+    }
+  }
+
+  protected void propagateBackToPrevious(Object model)
+  {
+    GroupEditPart group = groupEditPart.getPrevious();
+    if (group != null)
+    {
+      IConnectionManager connectionManager = group.getConnectionManager();
+      if (connectionManager != null)
+      {
+        connectionManager.propagateBack(model);
+      }
+    }
+  }  
+
+  protected Binding getEnclosingBinding(EObject object)
+  { 
+    Binding binding = null;
+    if (object instanceof Binding)
+    {     
+      binding = (Binding)object;
+    }
+    else if (object instanceof BindingOperation)
+    {     
+      binding = (Binding)object.eContainer();
+    }
+    else if (object instanceof BindingInput ||
+             object instanceof BindingOutput ||
+             object instanceof BindingFault)
+    {
+      binding = (Binding)object.eContainer().eContainer();
+    }
+    return binding;
+  }   
+
+  protected PortType getEnclosingPortType(EObject object)
+  { 
+    PortType portType = null;
+    if (object instanceof Operation)
+    {     
+      portType = (PortType)object.eContainer();
+    }
+    else if (object instanceof Input ||
+             object instanceof Output ||
+             object instanceof Fault)
+    {
+    	
+      portType = object.eContainer() != null ? (PortType)object.eContainer().eContainer() : null;
+    } 
+    else if (object instanceof PortType)
+    {
+      portType = (PortType)object;	
+    }                         
+    return portType;
+  }
+  
+  protected Operation getEnclosingOperation(EObject object)
+  { 
+    Operation operation = null;
+    if (object instanceof Operation)
+    {     
+      operation = (Operation)object;
+    }
+    else if (object instanceof Input ||
+             object instanceof Output ||
+             object instanceof Fault)
+    {
+      operation = (Operation)object.eContainer();
+    } 	                
+    return operation;
+  } 
+	
+  protected EObject getMessageReference(EObject object)
+  {      
+    return (object instanceof Input ||
+            object instanceof Output ||
+            object instanceof Fault) ? object : null;  
+  }	
+}  
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/BindingsGroupConnectionManager.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/BindingsGroupConnectionManager.java
new file mode 100644
index 0000000..61ce315
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/BindingsGroupConnectionManager.java
@@ -0,0 +1,186 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.graph.editparts;
+                                  
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.wst.wsdl.Binding;
+import org.eclipse.wst.wsdl.BindingFault;
+import org.eclipse.wst.wsdl.BindingInput;
+import org.eclipse.wst.wsdl.BindingOperation;
+import org.eclipse.wst.wsdl.BindingOutput;
+import org.eclipse.wst.wsdl.Fault;
+import org.eclipse.wst.wsdl.Input;
+import org.eclipse.wst.wsdl.Operation;
+import org.eclipse.wst.wsdl.Output;
+import org.eclipse.wst.wsdl.Port;
+import org.eclipse.wst.wsdl.PortType;
+import org.eclipse.wst.wsdl.internal.util.WSDLSwitch;
+import org.eclipse.wst.wsdl.ui.internal.util.ComponentReferenceUtil;
+
+                                                   
+public class BindingsGroupConnectionManager extends AbstractConnectionManager
+{ 
+  public BindingsGroupConnectionManager(GroupEditPart groupEditPart)
+  {
+    super(groupEditPart);
+  }                                    
+
+    
+  class InternalWSDLSwitch extends WSDLSwitch
+  {                             
+    protected ComponentReferenceUtil util = new ComponentReferenceUtil(groupEditPart.getDefinition());
+
+    public Object caseBinding(Binding binding)
+    {                
+      groupEditPart.setEmphasizedModelObject(binding);      
+      groupEditPart.setInputConnectionModelObject(binding);
+      groupEditPart.setOutputConnectionModelObject(binding);
+      return Boolean.TRUE;
+    }  
+      
+    public Object caseBindingFault(BindingFault bindingFault)
+    {    
+      groupEditPart.setEmphasizedModelObject(getEnclosingBinding(bindingFault)); 
+      groupEditPart.setInputConnectionModelObject(getEnclosingBinding(bindingFault));
+      groupEditPart.setOutputConnectionModelObject(bindingFault);
+      return Boolean.TRUE;
+    }
+
+    public Object caseBindingInput(BindingInput bindingInput)
+    {                                                
+      groupEditPart.setEmphasizedModelObject(getEnclosingBinding(bindingInput)); 
+      groupEditPart.setInputConnectionModelObject(getEnclosingBinding(bindingInput));
+      groupEditPart.setOutputConnectionModelObject(bindingInput);
+      return Boolean.TRUE;
+    }
+      
+    public Object caseBindingOperation(BindingOperation bindingOperation)
+    {                       
+      groupEditPart.setEmphasizedModelObject(getEnclosingBinding(bindingOperation));
+      groupEditPart.setInputConnectionModelObject(getEnclosingBinding(bindingOperation));
+      groupEditPart.setOutputConnectionModelObject(bindingOperation);
+      return Boolean.TRUE;
+    }
+      
+    public Object caseBindingOutput(BindingOutput bindingOutput)
+    {                
+      groupEditPart.setEmphasizedModelObject(getEnclosingBinding(bindingOutput));
+      groupEditPart.setInputConnectionModelObject(getEnclosingBinding(bindingOutput));
+      groupEditPart.setOutputConnectionModelObject(bindingOutput);
+      return Boolean.TRUE;
+    }                                            
+                 
+    public Object caseFault(Fault fault)
+    {                                               
+      handleInterfaceHelper(fault); 
+      return Boolean.TRUE;
+    } 
+          
+    public Object caseInput(Input input)
+    { 
+                
+      handleInterfaceHelper(input);
+      return Boolean.TRUE;
+    }     
+            
+    public Object caseOperation(Operation operation) 
+    {      
+      handleInterfaceHelper(operation);     
+      return Boolean.TRUE;
+    }
+          
+    public Object caseOutput(Output output)
+    {  
+      handleInterfaceHelper(output);
+      return Boolean.TRUE;
+    }   
+                                        
+    public Object casePortType(PortType portType)
+    {                     
+      handleInterfaceHelper(portType);
+      return Boolean.TRUE;
+    }  
+
+    public Object casePort(Port port)
+    {          
+      Binding binding = port.getEBinding();
+      groupEditPart.setEmphasizedModelObject(binding); 
+      groupEditPart.setInputConnectionModelObject(binding);
+      groupEditPart.setOutputConnectionModelObject(binding);
+      return Boolean.TRUE;
+    }                                         
+      
+    public Object defaultCase(EObject object)
+    {                       
+      groupEditPart.setEmphasizedModelObject(null);
+      groupEditPart.setInputConnectionModelObject(null);
+      groupEditPart.setOutputConnectionModelObject(null);
+      return Boolean.TRUE;
+    }   
+    
+    protected Binding getPreviousMatchingBinding(PortType portType)
+    {
+      Binding result = null;
+      Object previousContext = groupEditPart.getOutputConnectionModelObject();
+      if (previousContext == null)      
+      {
+        previousContext = groupEditPart.getEmphasizedModelObject();
+      }
+      if (previousContext instanceof EObject) 
+      {
+        Binding binding = getEnclosingBinding((EObject)previousContext);
+        if (binding != null && binding.getEPortType() == portType)
+        {
+          result = binding;  
+        }        
+      }
+      return result;
+    }     
+
+    protected void handleInterfaceHelper(EObject interfaceObject)
+    {   
+      Binding binding = null;
+      PortType portType = getEnclosingPortType(interfaceObject);
+      if (portType != null)
+      {              
+        binding = getPreviousMatchingBinding(portType);     
+        if (binding == null)
+        {      
+          List list = util.getBindings(portType);
+          binding = list.size() > 0 ? (Binding)list.get(0) : null;  
+        }
+        if (binding != null)
+        {
+          groupEditPart.setEmphasizedModelObject(binding);   
+          groupEditPart.setInputConnectionModelObject(binding);     
+          EObject bindingObject = util.getBindingObject(interfaceObject, binding);
+          groupEditPart.setOutputConnectionModelObject(bindingObject);                  
+        }
+      }
+      if (binding == null)
+      {
+        defaultCase(null);
+      }
+    }   
+  }    
+    
+  protected WSDLSwitch createSwitch(int selectionType)
+  {
+    return new InternalWSDLSwitch();
+  }
+  
+  protected void propagateBackToPrevious(Object model)
+  {   
+    super.propagateBackToPrevious(groupEditPart.getInputConnectionModelObject());
+  }  
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/ComponentViewerRootEditPart.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/ComponentViewerRootEditPart.java
new file mode 100644
index 0000000..a014114
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/ComponentViewerRootEditPart.java
@@ -0,0 +1,99 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.graph.editparts;
+                                    
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.Panel;
+import org.eclipse.gef.EditPart;
+import org.eclipse.wst.wsdl.ui.internal.model.ModelAdapter;
+import org.eclipse.wst.xsd.ui.internal.gef.util.editparts.AbstractComponentViewerRootEditPart;
+import org.eclipse.wst.xsd.ui.internal.gef.util.figures.ContainerLayout;
+              
+
+public class ComponentViewerRootEditPart extends AbstractComponentViewerRootEditPart
+{                       
+  protected final static String MESSAGE_PLACE_HOLDER = "MESSAGE_PLACE_HOLDER";
+  protected Object input; 
+
+  public void setInput(Object newInput)
+  {
+    input = newInput;  
+    setModel(input);
+    refreshChildren();
+  }
+
+  protected IFigure createFigure()
+  {
+    Panel panel = new Panel();
+    panel.setBorder(new MarginBorder(30, 30, 30, 30));
+    //panel.setBackgroundColor(GraphicsConstants.red);
+    
+    ContainerLayout layout = new ContainerLayout();
+    layout.setHorizontal(false);
+    panel.setLayoutManager(layout);
+    return panel;
+  } 
+   
+
+  protected EditPart createChild(Object model)
+  {
+    EditPart editPart = null;
+    if (model == MESSAGE_PLACE_HOLDER)
+    {
+      editPart = new NotAvailableMessageEditPart();
+      editPart.setModel(model);
+    } 
+    else
+    {
+      editPart = ExtensibleEditPartFactory.getInstance().createEditPart(this, model);
+    }
+    return editPart;
+  }  
+  
+
+  protected List getModelChildren() 
+  {   
+    List result = new ArrayList();
+
+    if (input != null)
+    {              
+      result.add(input);
+    }     
+    else
+    {
+      result.add(MESSAGE_PLACE_HOLDER);
+    }       
+
+    return result;
+  }    
+                                                           
+
+  public void propertyChanged(Object object, String property)
+  {                                                                                                  
+    if (property == ModelAdapter.CHILDREN_PROPERTY)
+    {
+      refreshChildren();
+    }
+    else if (property == ModelAdapter.DETAIL_PROPERTY)
+    { 
+      refreshVisuals(); 
+    }                                       
+    else
+    {
+      refreshChildren();
+      refreshVisuals();
+    }
+  }                                          
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/DefinitionEditPart.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/DefinitionEditPart.java
new file mode 100644
index 0000000..b7cf866
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/DefinitionEditPart.java
@@ -0,0 +1,417 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.graph.editparts;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.wst.wsdl.Definition;
+import org.eclipse.wst.wsdl.Import;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.eclipse.wst.wsdl.ui.internal.gef.util.figures.RoundedLineBorder;
+import org.eclipse.wst.wsdl.ui.internal.model.WSDLGroupObject;
+import org.eclipse.wst.wsdl.ui.internal.util.OpenOnSelectionHelper;
+import org.eclipse.wst.xsd.ui.internal.gef.util.figures.ContainerFigure;
+import org.eclipse.wst.xsd.ui.internal.gef.util.figures.ContainerLayout;
+import org.eclipse.wst.xsd.ui.internal.gef.util.figures.FillLayout;
+
+public class DefinitionEditPart extends WSDLEditPart implements ISelectionChangedListener //, ModelAdapterListener
+{
+  protected Label label;
+  protected ContainerFigure outlined;
+
+  protected ContainerFigure rightContentPane;
+  protected ContainerFigure topContentPane;
+  protected ContainerFigure middleContentPane;
+  protected ContainerFigure bottomContentPane;
+  protected static final String SELECTED_EDIT_PART_REFERENCE = "SELECTED_EDIT_PART_REFERENCE";
+
+  public void activate()
+  {
+    super.activate();
+    getViewer().addSelectionChangedListener(this);
+  }
+  /** 
+   * Apart from the deactivation done in super, the source
+   * and target connections are deactivated, and the visual
+   * part of the this is removed.
+   *
+   * @see #activate() 
+   */
+  public void deactivate()
+  {
+    getViewer().removeSelectionChangedListener(this);
+    super.deactivate();
+  }
+
+  protected IFigure[] initContentPanes()
+  {
+    IFigure[] contentPanes = new IFigure[4];
+    contentPanes[0] = rightContentPane;
+    contentPanes[1] = topContentPane;
+    contentPanes[2] = middleContentPane;
+    contentPanes[3] = bottomContentPane;
+    return contentPanes;
+  }
+
+  protected int getContentPane(Object model)
+  {
+    int result = 0;
+
+    if (model == SELECTED_EDIT_PART_REFERENCE)
+    {
+      result = 0;
+    }
+    else if (model instanceof WSDLGroupObject)
+    {
+      WSDLGroupObject groupObject = (WSDLGroupObject)model;
+      switch (groupObject.getType())
+      {
+        case WSDLGroupObject.IMPORTS_GROUP :
+        case WSDLGroupObject.TYPES_GROUP :
+          //case WSDLGroupObject.EXTENSIBILITY_ELEMENTS_GROUP :
+          {
+            result = 1;
+            break;
+          }
+        case WSDLGroupObject.BINDINGS_GROUP :
+        case WSDLGroupObject.MESSAGES_GROUP :
+        case WSDLGroupObject.PORT_TYPES_GROUP :
+        case WSDLGroupObject.SERVICES_GROUP :
+          {
+            result = 2;
+            break;
+          }
+        case WSDLGroupObject.EXTENSIBILITY_ELEMENTS_GROUP :
+          {
+            result = 3;
+            break;
+          }
+      }
+    }
+    return result;
+  }
+
+  protected EditPart createChild(Object model)
+  {
+    EditPart editPart = null;
+    if (model == SELECTED_EDIT_PART_REFERENCE)
+    {
+      editPart = new PartReferenceSectionEditPart();
+      editPart.setModel(model);
+      editPart.setParent(this);
+    }
+    else
+    {
+      editPart = super.createChild(model);
+    }
+    return editPart;
+  }
+
+  protected IFigure createFigure()
+  {
+    ContainerFigure outer = new ContainerFigure();
+    ContainerLayout anchoredLayout = new ContainerLayout()
+    {
+      protected int alignFigure(IFigure parent, IFigure child)
+      {
+        return (child == outlined) ? 0 : -1;
+      }
+    };
+    outer.setLayoutManager(anchoredLayout);
+    /*
+    ContainerFigure outer = new ConnectedEditPartFigure(this)
+    {
+      public IFigure getConnectionFigure()
+      {
+        return selectedPartEditPart != null ? selectedPartEditPart.getFigure() : this;
+      }               
+    };*/
+    outer.getContainerLayout().setHorizontal(true);
+    //outer.setBorder(new MarginBorder(0, 20, 0, 0));
+
+    outlined = new ContainerFigure();
+    outer.add(outlined);
+    //outlined.getContainerLayout().setHorizontal(false);
+    outlined.setLayoutManager(new FillLayout());
+    outlined.setBorder(new RoundedLineBorder(1, 6));
+    outlined.setForegroundColor(groupBorderColor);
+
+    ContainerFigure rightPane = new ContainerFigure();
+    rightPane.setBorder(new MarginBorder(0, 0, 0, 300));
+    rightPane.getContainerLayout().setHorizontal(false);
+    outer.add(rightPane);
+
+    //RectangleFigure spacer = new RectangleFigure();
+    //rightPane.add(spacer);
+    //spacer.setPreferredSize(new Dimension(450, 200));
+
+    rightContentPane = new ContainerFigure();
+    rightPane.add(rightContentPane);
+    rightContentPane.setBorder(new MarginBorder(15, 20, 15, 15));
+
+    ContainerFigure labelHolder = new ContainerFigure();
+    outlined.add(labelHolder);
+
+    label = new Label();
+    labelHolder.add(label);
+    label.setBorder(new MarginBorder(2, 5, 0, 5));
+    label.setFont(mediumFont);
+    label.setText(WSDLEditorPlugin.getWSDLString("_UI_LABEL_DEFINITION"));
+    label.setForegroundColor(ColorConstants.black);
+
+    topContentPane = new ContainerFigure();
+    outlined.add(topContentPane);
+
+    FillLayout fillLayout = new FillLayout(15);
+    fillLayout.setHorizontal(true);
+    topContentPane.setLayoutManager(fillLayout);
+    topContentPane.setBorder(new MarginBorder(10, 10, 10, 10));
+
+    middleContentPane = new ContainerFigure();
+    outlined.add(middleContentPane);
+    fillLayout = new FillLayout(15);
+    fillLayout.setHorizontal(true);
+    middleContentPane.setLayoutManager(fillLayout);
+    middleContentPane.setBorder(new MarginBorder(0, 10, 10, 10));
+
+    bottomContentPane = new ContainerFigure();
+    outlined.add(bottomContentPane);
+    bottomContentPane.setLayoutManager(new FillLayout());
+    bottomContentPane.setBorder(new MarginBorder(0, 10, 10, 10));
+
+    return outer;
+  }
+
+  //public IFigure getContentPane()
+  //{
+  //  return contentPane;
+  //}   
+  public PartReferenceSectionEditPart getPartReferenceSectionEditPart()
+  {
+    PartReferenceSectionEditPart result = null;
+    for (Iterator i = getChildren().iterator(); i.hasNext();)
+    {
+      EditPart editPart = (EditPart)i.next();
+      if (editPart.getModel() == SELECTED_EDIT_PART_REFERENCE)
+      {
+        result = (PartReferenceSectionEditPart)editPart;
+        break;
+      }
+    }
+    return result;
+  }
+
+  public GroupEditPart getGroupEditPart(int type)
+  {
+    GroupEditPart result = null;
+    for (Iterator i = getChildren().iterator(); i.hasNext();)
+    {
+      Object o = i.next();
+      if (o instanceof GroupEditPart)
+      {
+        GroupEditPart groupEditPart = (GroupEditPart)o;
+        if (groupEditPart.getType() == type)
+        {
+          result = groupEditPart;
+          break;
+        }
+      }
+    }
+    return result;
+  }
+
+  public List getModelChildren()
+  {
+    List list = new ArrayList();
+    list.add(SELECTED_EDIT_PART_REFERENCE);
+    list.addAll(super.getModelChildren());
+    return list;
+  }
+
+  public void handleOpenRequest(EditPart editPart)
+  {
+    GroupEditPart groupEditPart = null;
+    if (editPart.getModel() instanceof Import)
+    {
+      Import theImport = (Import)editPart.getModel();
+      Definition definition = (Definition)getModel();
+      OpenOnSelectionHelper helper = new OpenOnSelectionHelper(definition);
+      helper.openEditor(theImport);
+    }
+    else
+    {
+      for (EditPart parent = (EditPart)editPart.getParent(); parent != null; parent = parent.getParent())
+      {
+        if (parent instanceof GroupEditPart)
+        {
+          groupEditPart = (GroupEditPart)parent;
+          break;
+        }
+      }
+
+      if (groupEditPart != null)
+      {
+        GroupEditPart nextGroupEditPart = groupEditPart.getNext();
+        if (nextGroupEditPart != null)
+        {
+          if (nextGroupEditPart.inputConnection instanceof TreeNodeEditPart)
+          {
+            ((TreeNodeEditPart) (nextGroupEditPart.inputConnection)).setExpanded(true);
+          }
+        }
+        GroupEditPart prevGroupEditPart = groupEditPart.getPrevious();
+        if (prevGroupEditPart != null)
+        {
+          if (prevGroupEditPart.outputConnection instanceof TreeNodeEditPart)
+          {
+            ((TreeNodeEditPart) (prevGroupEditPart.outputConnection)).setExpanded(true);
+          }
+        }
+      }
+      updateConnections();
+    }
+  }
+
+  public void selectionChanged(SelectionChangedEvent event)
+  {
+    updateConnections();
+  }
+
+  public void updateConnections()
+  {
+    // todo         
+    if (isActive())
+    {
+      try
+      {
+        final AbstractGraphicalEditPart selectedEditPart = getSelectedEditPart(getViewer().getSelection());
+        GroupEditPart group = getContainingGroup(selectedEditPart);
+        if (group != null && group.getConnectionManager() != null)
+        {
+          group.getConnectionManager().setSelectedModelObject(selectedEditPart.getModel());
+        }
+        else if (!isAncestor(getPartReferenceSectionEditPart(), selectedEditPart))
+        {
+          group = getGroupEditPart(WSDLGroupObject.PORT_TYPES_GROUP);
+          group.getConnectionManager().setSelectedModelObject(null);
+        }
+      }
+      catch (Exception e)
+      {
+        e.printStackTrace();
+      }
+    }
+  }
+
+  public GroupEditPart getContainingGroup(AbstractGraphicalEditPart editPart)
+  {
+    GroupEditPart result = null;
+    for (EditPart parent = editPart.getParent(); parent != null; parent = parent.getParent())
+    {
+      if (parent instanceof GroupEditPart)
+      {
+        result = (GroupEditPart)parent;
+        break;
+      }
+    }
+    return result;
+  }
+
+  public GroupEditPart getNextGroupEditPart(GroupEditPart groupEditPart)
+  {
+    GroupEditPart result = null;
+    GroupEditPart prev = null;
+    for (Iterator i = getChildren().iterator(); i.hasNext();)
+    {
+      Object o = i.next();
+      if (o instanceof GroupEditPart)
+      {
+        GroupEditPart editPart = (GroupEditPart)o;
+        if (prev == groupEditPart)
+        {
+          result = editPart;
+          break;
+        }
+        prev = editPart;
+      }
+    }
+    return result;
+  }
+
+  public GroupEditPart getPreviousGroupEditPart(GroupEditPart groupEditPart)
+  {
+    GroupEditPart prev = null;
+    for (Iterator i = getChildren().iterator(); i.hasNext();)
+    {
+      Object o = i.next();
+      if (o instanceof GroupEditPart)
+      {
+        GroupEditPart editPart = (GroupEditPart)o;
+        if (editPart == groupEditPart)
+        {
+          break;
+        }
+        prev = editPart;
+      }
+    }
+    return prev;
+  }
+
+  protected AbstractGraphicalEditPart getSelectedEditPart(ISelection selection)
+  {
+    AbstractGraphicalEditPart editPart = null;
+    if (selection instanceof IStructuredSelection)
+    {
+      IStructuredSelection s = (IStructuredSelection)selection;
+      Object first = s.getFirstElement();
+      if (first instanceof AbstractGraphicalEditPart)
+      {
+        editPart = (AbstractGraphicalEditPart)first;
+      }
+    }
+    return editPart;
+  }
+
+  public void refreshChildren()
+  {
+    super.refreshChildren();
+    updateConnections();
+  }
+
+  public boolean isAncestor(EditPart ancestor, EditPart child)
+  {
+    boolean result = false;
+    if (ancestor != null && child != null)
+    {
+      for (EditPart editPart = child; editPart != null; editPart = editPart.getParent())
+      {
+        if (editPart == ancestor)
+        {
+          result = true;
+          break;
+        }
+      }
+    }
+    return result;
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/DrillDownEditPart.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/DrillDownEditPart.java
new file mode 100644
index 0000000..07207c3
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/DrillDownEditPart.java
@@ -0,0 +1,154 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.graph.editparts;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.RequestConstants;
+import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
+import org.eclipse.gef.editpolicies.SelectionHandlesEditPolicy;
+import org.eclipse.gef.handles.MoveHandle;
+import org.eclipse.gef.handles.MoveHandleLocator;
+import org.eclipse.gef.requests.LocationRequest;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.eclipse.wst.wsdl.ui.internal.graph.WSDLComponentViewer;
+import org.eclipse.wst.xsd.ui.internal.gef.util.figures.ContainerFigure;
+
+public class DrillDownEditPart extends AbstractGraphicalEditPart
+{
+  protected Label drillDownButtonLabel; 
+  protected Label label;            
+
+  protected IFigure createFigure()
+  {                                     
+    ContainerFigure figure = new ContainerFigure();  
+    drillDownButtonLabel = new Label();
+    drillDownButtonLabel.setIcon(WSDLEditorPlugin.getInstance().getImage("icons/forward.gif"));
+    figure.add(drillDownButtonLabel);
+    label = new Label();
+    label.setText(WSDLEditorPlugin.getWSDLString("_UI_LABEL_UNKNOWN"));
+    
+//  evil hack to provide underlines
+    boolean isLinux = java.io.File.separator.equals("/");
+    if (!isLinux)
+    {
+      Font underlineFont = new Font(Display.getCurrent(), "Tahoma", 8, SWT.NONE); 
+      FontData oldData = underlineFont.getFontData()[0];
+      FontData fontData = new FontData(oldData.getName(), oldData.getHeight(), SWT.NONE);
+      try
+      {
+        // TODO... clean this awful code up... we seem to be leaking here too
+        // we can't call this directly since the methods are OS dependant
+        // fontData.data.lfUnderline = 1
+        // so instead we use reflection
+        Object data = fontData.getClass().getField("data").get(fontData);
+        System.out.println("data" + data.getClass());
+        data.getClass().getField("lfUnderline").setByte(data, (byte)1);
+        Font font = new Font(Display.getCurrent(), fontData);
+        label.setFont(font);        
+      }
+      catch (Exception e)
+      {    
+      }
+    }
+    figure.add(label);
+    
+    return figure;
+  }    
+
+
+  protected void createEditPolicies() 
+  {
+  	DrillDownEditPartSelectionHandlesEditPolicy policy = new DrillDownEditPartSelectionHandlesEditPolicy();
+    installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, policy);      
+  }
+
+  public void performRequest(Request request)
+  {  
+	  if (request.getType() == RequestConstants.REQ_DIRECT_EDIT ||
+        request.getType() == RequestConstants.REQ_OPEN)
+    {                                         
+      if (request instanceof LocationRequest)
+      {
+        LocationRequest locationRequest = (LocationRequest)request;
+        Point p = locationRequest.getLocation();
+        
+        if (hitTest(drillDownButtonLabel, p) || hitTest(label, p))
+        {
+  		    performDrillDownAction();
+        }              
+      }
+    }
+  }  
+
+  protected EditPart createChild(Object model) 
+  {
+    return null;
+  }  
+
+  protected List getModelChildren() 
+  {   
+    return Collections.EMPTY_LIST;
+  } 
+
+  public boolean hitTest(IFigure target, Point location)
+  {
+    Rectangle b = target.getBounds().getCopy();
+    target.translateToAbsolute(b);  
+    return b.contains(location);
+  }  
+
+  protected void performDrillDownAction()
+  {                                                                                    
+    Runnable runnable = new Runnable()
+    {
+      public void run()
+      {
+        ((WSDLComponentViewer)getViewer()).setInput(getModel());
+      }
+    };
+    Display.getCurrent().asyncExec(runnable);
+  }
+  
+  private class DrillDownEditPartSelectionHandlesEditPolicy extends SelectionHandlesEditPolicy {
+  	 protected List createSelectionHandles()
+  	  {              
+  	    List list = new ArrayList();
+  	    EditPart editPart = getHost();  
+  	  
+  	    if (editPart instanceof GraphicalEditPart)
+  	    {
+  	      GraphicalEditPart graphicalEditPart = (GraphicalEditPart)editPart;
+  	      IFigure figure = graphicalEditPart.getFigure();
+
+  	      MoveHandleLocator loc = new MoveHandleLocator(figure);    
+  	      MoveHandle moveHandle = new MoveHandle(graphicalEditPart, loc);     
+  	      list.add(moveHandle);
+  	    }
+
+  	    return list;
+  	  }
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/ExtensibleEditPartFactory.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/ExtensibleEditPartFactory.java
new file mode 100644
index 0000000..7783b1c
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/ExtensibleEditPartFactory.java
@@ -0,0 +1,81 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.graph.editparts;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPartFactory;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.eclipse.wst.wsdl.ui.internal.extension.WSDLEditorExtension;
+import org.eclipse.wst.wsdl.ui.internal.extension.WSDLEditorExtensionRegistry;
+
+public class ExtensibleEditPartFactory implements EditPartFactory
+{                           
+  protected WSDLEditorExtension[] extensions;
+  protected EditPartFactory[] editPartFactories;
+
+  protected static ExtensibleEditPartFactory instance;
+                      
+  public static ExtensibleEditPartFactory getInstance()
+  {
+    if (instance == null)
+    {               
+      instance = new ExtensibleEditPartFactory();
+    }
+    return instance;
+  }
+                                              
+  public ExtensibleEditPartFactory()
+  {
+    WSDLEditorExtensionRegistry registry = WSDLEditorPlugin.getInstance().getWSDLEditorExtensionRegistry(); 
+
+    extensions = registry.getRegisteredExtensions(WSDLEditorExtension.EDIT_PART_FACTORY); 
+    editPartFactories = new EditPartFactory[extensions.length]; 
+    for (int i = 0; i < extensions.length; i++)
+    {
+      editPartFactories[i] = (EditPartFactory)extensions[i].createExtensionObject(WSDLEditorExtension.EDIT_PART_FACTORY, null);
+    }
+  }        
+
+  protected EditPartFactory getApplicableEditPartFactory(Object object)
+  {                             
+    EditPartFactory result = null;
+    for (int i = 0; i < extensions.length; i++)
+    {
+      if (extensions[i].isApplicable(object))
+      {
+        result  = editPartFactories[i];
+        if (result != null)
+        {
+          break;
+        }
+      }
+    }
+
+    return result;
+  }  
+
+  public EditPart createEditPart(EditPart parent, Object model)
+  {                     
+    EditPart result = null;
+    EditPartFactory factory = getApplicableEditPartFactory(model);
+    if (factory != null)   
+    {
+      result = factory.createEditPart(parent, model);
+    }  
+    else
+    {
+      result = new UnknownObjectEditPart();
+      result.setModel(model);
+      result.setParent(parent);
+    }
+    return result;
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/GroupEditPart.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/GroupEditPart.java
new file mode 100644
index 0000000..5d11eee
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/GroupEditPart.java
@@ -0,0 +1,479 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.graph.editparts;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.draw2d.FigureListener;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.ScrollPane;
+import org.eclipse.draw2d.Viewport;
+import org.eclipse.draw2d.ViewportLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.LayerConstants;
+import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
+import org.eclipse.gef.editparts.ScalableRootEditPart;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.wst.wsdl.Definition;
+import org.eclipse.wst.wsdl.ui.internal.gef.util.figures.RoundedLineBorder;
+import org.eclipse.wst.wsdl.ui.internal.graph.WSDLComponentViewer;
+import org.eclipse.wst.wsdl.ui.internal.model.ModelAdapter;
+import org.eclipse.wst.wsdl.ui.internal.model.WSDLGroupObject;
+import org.eclipse.wst.xsd.ui.internal.gef.util.figures.ContainerFigure;
+import org.eclipse.wst.xsd.ui.internal.gef.util.figures.ContainerLayout;
+import org.eclipse.wst.xsd.ui.internal.gef.util.figures.FillLayout;
+
+public class GroupEditPart extends WSDLEditPart
+{
+  protected ScrollPane scrollpane;
+  protected Label label;
+
+  protected Object emphasizedModelObject;
+  protected Object inputConnectionModelObject;
+  protected Object outputConnectionModelObject;
+
+  public WSDLTreeNodeEditPart emphasizedEditPart;
+  public AbstractGraphicalEditPart inputConnection;
+  public AbstractGraphicalEditPart outputConnection;
+
+  public GroupEditPart nextGroupEditPart;
+  public IConnectionManager connectionManager;
+
+  protected InternalFigureListener figureListener = new InternalFigureListener();
+
+  class InternalFigureListener implements FigureListener
+  {
+    public void figureMoved(IFigure source)
+    {
+      ScalableRootEditPart root = (ScalableRootEditPart)getViewer().getRootEditPart();
+      root.getLayer(LayerConstants.CONNECTION_LAYER).repaint();
+    }
+  }
+
+  public Object getEmphasizedModelObject()
+  {
+    return emphasizedModelObject;
+  }
+
+  public Definition getDefinition()
+  {
+    return ((WSDLGroupObject)getModel()).getDefinition();
+  }
+
+  //protected void setEmphasizedObject(EditPart editPart)
+  //{                                                            
+  //  UnknownObjectEditPart ep = null;
+  //  if (editPart instanceof UnknownObjectEditPart)
+  //  {
+  //   ep = (UnknownObjectEditPart)editPart;
+  //  }
+  //
+  //  if (emphasizedEditPart != null)
+  //  {
+  //    emphasizedEditPart.setEmphasized(false);
+  //  }
+  //  if (ep != null)
+  //  {
+  //    emphasizedEditPart = ep;
+  //    emphasizedEditPart.setEmphasized(true);
+  //  }
+  //}  
+
+  public void setEmphasizedModelObject(Object model)
+  {
+    emphasizedModelObject = model;
+
+    if (emphasizedEditPart != null)
+    {
+      emphasizedEditPart.setEmphasized(false);
+    }
+
+    EditPart editPart = getMatchingChildEditPart(model);
+    emphasizedEditPart = (editPart instanceof WSDLTreeNodeEditPart) ? (WSDLTreeNodeEditPart)editPart : null;
+
+    if (emphasizedEditPart != null)
+    {
+      emphasizedEditPart.setEmphasized(true);
+    }
+  }
+
+  public void scrollToRevealEditPart(EditPart editPart)
+  {
+    if (editPart instanceof AbstractGraphicalEditPart)
+    {
+      scrollToEditPart((AbstractGraphicalEditPart)editPart);
+    }
+  }
+
+  public void scrollToRevealInputConnection()
+  {
+    if (inputConnection != null)
+    {
+      scrollToEditPart(inputConnection);
+    }
+  }
+
+  public void scrollToRevealOutputConnection()
+  {
+    if (outputConnection != null)
+    {
+      scrollToEditPart(outputConnection);
+    }
+  }
+
+  public void setInputConnectionModelObject(Object model)
+  {
+    inputConnection = getMatchingChildEditPart(model);
+    inputConnectionModelObject = model;
+  }
+
+  public Object getInputConnectionModelObject()
+  {
+    return inputConnectionModelObject;
+  }
+
+  public Object getOutputConnectionModelObject()
+  {
+    return outputConnectionModelObject;
+  }
+
+  public void setOutputConnectionModelObject(Object model)
+  {
+    outputConnection = getMatchingChildEditPart(model);
+    outputConnectionModelObject = model;
+  }
+
+  protected void createConnectionManager()
+  {
+    switch (getType())
+    {
+      case WSDLGroupObject.MESSAGES_GROUP :
+        {
+          connectionManager = new MessagesGroupConnectionManager(this);
+          break;
+        }
+      case WSDLGroupObject.SERVICES_GROUP :
+        {
+          connectionManager = new ServicesGroupConnectionManager(this);
+          break;
+        }
+      case WSDLGroupObject.BINDINGS_GROUP :
+        {
+          connectionManager = new BindingsGroupConnectionManager(this);
+          break;
+        }
+      case WSDLGroupObject.PORT_TYPES_GROUP :
+        {
+          connectionManager = new PortTypesGroupConnectionManager(this);
+          break;
+        }
+    }
+  }
+
+  public IConnectionManager getConnectionManager()
+  {
+    return connectionManager;
+  }
+
+  public ContainerFigure outerPane;
+
+  public IFigure createFigure()
+  {
+    createConnectionManager();
+
+    outerPane = new ContainerFigure();
+    outerPane.setBorder(new RoundedLineBorder(1, 6));
+    outerPane.setForegroundColor(groupBorderColor);
+
+    ContainerFigure r = new ContainerFigure();
+    //r.setCornerDimensions(new Dimension(4, 4));   
+    r.setOutline(false);
+    r.setMinimumSize(new Dimension(0, 0));
+
+    r.setFill(true);
+
+    r.setBackgroundColor(groupHeaderColor);
+    outerPane.add(r);
+
+    //ContainerFigure labelHolder = new ContainerFigure();                             
+    //labelHolder.add(label);
+    label = new Label();
+    label.setForegroundColor(ColorConstants.black);
+    label.setBorder(new MarginBorder(2, 4, 2, 4));
+    r.add(label); //Holder);
+
+    RectangleFigure line = new RectangleFigure();
+    line.setPreferredSize(20, 1);
+    outerPane.add(line);
+
+    int minHeight = 250;
+    switch (getType())
+    {
+    	case WSDLGroupObject.IMPORTS_GROUP :
+		case WSDLGroupObject.TYPES_GROUP :
+		{
+			minHeight = 50;
+			break;	
+		}
+		case WSDLGroupObject.EXTENSIBILITY_ELEMENTS_GROUP :
+		{
+			minHeight = 150;
+			break;
+		}
+    }
+
+	final int theMinHeight = minHeight;
+    FillLayout outerLayout = new FillLayout()
+    {
+      protected Dimension calculatePreferredSize(IFigure parent, int width, int height)
+      {
+        Dimension d = super.calculatePreferredSize(parent, width, height);
+        d.union(new Dimension(100, theMinHeight));
+        return d;
+      }
+    };
+    outerLayout.setHorizontal(false);
+    //layout.setSpacing(5);
+    outerPane.setLayoutManager(outerLayout);
+
+    scrollpane = new ScrollPane();
+    scrollpane.setForegroundColor(ColorConstants.black);
+    scrollpane.setVerticalScrollBarVisibility(ScrollPane.AUTOMATIC); //ScrollPane.ALWAYS);
+    outerPane.add(scrollpane);
+
+    ContainerFigure pane = new ContainerFigure();
+    pane.setBorder(new MarginBorder(5, 8, 5, 8));
+    ContainerLayout layout = new ContainerLayout();
+    layout.setHorizontal(false);
+    layout.setSpacing(0);
+    pane.setLayoutManager(layout);
+
+    Viewport viewport = new Viewport();
+    viewport.setContentsTracksHeight(true);
+    ViewportLayout viewportLayout = new ViewportLayout()
+    {
+      protected Dimension calculatePreferredSize(IFigure parent, int width, int height)
+      {
+        Dimension d = super.calculatePreferredSize(parent, width, height);
+        d.height = Math.min(d.height, theMinHeight - 25); //getViewer().getControl().getBounds().height);
+        return d;
+      }
+    };
+    viewport.setLayoutManager(viewportLayout);
+
+    scrollpane.setViewport(viewport);
+    scrollpane.setContents(pane);
+    pane.addFigureListener(figureListener);
+
+    return outerPane;
+  }
+
+  protected void refreshVisuals()
+  {
+    ModelAdapter adapter = getModelAdapter(getModel());
+    if (adapter != null)
+    {
+      label.setText((String)adapter.getProperty(getModel(), ModelAdapter.LABEL_PROPERTY));
+      //label.setIcon((Image)adapter.getProperty(getModel(), ModelAdapter.IMAGE_PROPERTY));
+    }
+    super.refreshVisuals();
+  }
+
+  protected void createEditPolicies()
+  {
+  }
+
+  public IFigure getContentPane()
+  {
+    return scrollpane.getContents();
+  }
+
+  protected void scrollToEditPart(final AbstractGraphicalEditPart targetEditPart)
+  {
+    Runnable r = new Runnable()
+    {
+      public void run()
+      {
+        scrollToEditPartHelper(targetEditPart);
+      }
+    };
+    Display.getCurrent().asyncExec(r);
+  }
+
+  protected void scrollToEditPartHelper(AbstractGraphicalEditPart targetEditPart)
+  {
+    if (targetEditPart != null)
+    {
+      Rectangle r1 = targetEditPart.getFigure().getBounds();
+      Rectangle r2 = getContentPane().getBounds();
+      scrollpane.scrollVerticalTo((r1.y - r2.y) - scrollpane.getBounds().height / 2);
+    }
+  }
+
+  public AbstractGraphicalEditPart getMatchingChildEditPart(Object model)
+  {
+    List list = new ArrayList();
+    for (Object o = model; o != null && !(o instanceof Definition); o = getParent(o))
+    {
+      list.add(0, o);
+    }
+    return getMatchingChildEditPart(this, list, 0, true);
+  }
+
+  protected Object getParent(Object model)
+  {
+    Object parent = null;
+    if (model instanceof EObject)
+    {
+      parent = ((EObject)model).eContainer();
+    }
+    return parent;
+  }
+
+  protected AbstractGraphicalEditPart getMatchingChildEditPart(AbstractGraphicalEditPart editPart, List list, int index, boolean getUnexpandedParent)
+  {
+    AbstractGraphicalEditPart result = (getUnexpandedParent && editPart != this) ? editPart : null;
+    Object model = list.size() > index ? list.get(index) : null;
+    if (model != null && editPart != null)
+    {
+      for (Iterator i = editPart.getChildren().iterator(); i.hasNext();)
+      {
+        AbstractGraphicalEditPart child = (AbstractGraphicalEditPart)i.next();
+        if (child.getModel() == model)
+        {
+          result = child;
+          break;
+        }
+      }
+      index++;
+      if (index < list.size())
+      {
+        result = getMatchingChildEditPart(result, list, index, getUnexpandedParent);
+      }
+    }
+    return result;
+  }
+
+  public int getType()
+  {
+    return ((WSDLGroupObject)getModel()).getType();
+  }
+
+  public GroupEditPart getNext()
+  {
+    return ((DefinitionEditPart)getParent()).getNextGroupEditPart(this);
+  }
+
+  public GroupEditPart getPrevious()
+  {
+    return ((DefinitionEditPart)getParent()).getPreviousGroupEditPart(this);
+  }
+
+  private void _refreshChildren()
+  {
+    int i;
+    EditPart editPart;
+    Object model;
+
+    Map modelToEditPart = new HashMap();
+    List children = getChildren();
+
+    for (i = 0; i < children.size(); i++)
+    {
+      editPart = (EditPart)children.get(i);
+      modelToEditPart.put(editPart.getModel(), editPart);
+    }
+
+    List modelObjects = getModelChildren();
+
+    for (i = 0; i < modelObjects.size(); i++)
+    {
+      model = modelObjects.get(i);
+
+      //Do a quick check to see if editPart[i] == model[i]
+      if (i < children.size())
+      {
+        editPart = (EditPart)children.get(i);
+        Object editPartModel = editPart.getModel();
+        if (editPartModel == model)
+        {
+          continue;
+        }
+        else if (editPartModel.getClass() == model.getClass())
+        {
+          modelToEditPart.remove(editPartModel);
+
+          if (isActive())
+            editPart.deactivate();
+
+          editPart.setModel(model);
+
+          if (isActive())
+          {
+            editPart.activate();
+            editPart.refresh();
+          }
+          continue;
+        }
+      }
+
+      //Look to see if the EditPart is already around but in the wrong location
+      editPart = (EditPart)modelToEditPart.get(model);
+
+      if (editPart != null)
+        reorderChild(editPart, i);
+      else
+      {
+        //An editpart for this model doesn't exist yet.  Create and insert one.
+        editPart = createChild(model);
+        addChild(editPart, i);
+      }
+    }
+    List trash = new ArrayList();
+    for (; i < children.size(); i++)
+      trash.add(children.get(i));
+    for (i = 0; i < trash.size(); i++)
+    {
+      EditPart ep = (EditPart)trash.get(i);
+      removeChild(ep);
+    }
+  }
+
+  public void refreshChildren()
+  {
+    boolean reuseChildren = false;
+    if (getViewer() instanceof WSDLComponentViewer)
+    {
+      WSDLComponentViewer wsdlComponentViewer = (WSDLComponentViewer)getViewer();
+      reuseChildren = wsdlComponentViewer.isPreserveExpansionEnabled();
+    }
+
+    if (reuseChildren)
+    {
+      _refreshChildren();
+    }
+    else
+    {
+      super.refreshChildren();
+    }
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IASDObjectListener.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/IConnectionManager.java
similarity index 61%
copy from bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IASDObjectListener.java
copy to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/IConnectionManager.java
index 4477644..bd0d0a8 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IASDObjectListener.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/IConnectionManager.java
@@ -1,15 +1,18 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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.asd.facade;
+package org.eclipse.wst.wsdl.ui.internal.graph.editparts;
 
-public interface IASDObjectListener {
-	public void propertyChanged(Object object, String property);
-}
+public interface IConnectionManager
+{ 
+  public void propagateForward(Object model);
+  public void propagateBack(Object model);
+  public void setSelectedModelObject(Object model);
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IASDObjectListener.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/IFeedbackHandler.java
similarity index 67%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IASDObjectListener.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/IFeedbackHandler.java
index 4477644..b6ac2b5 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IASDObjectListener.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/IFeedbackHandler.java
@@ -1,15 +1,17 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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.asd.facade;
+package org.eclipse.wst.wsdl.ui.internal.graph.editparts;
 
-public interface IASDObjectListener {
-	public void propertyChanged(Object object, String property);
-}
+public interface IFeedbackHandler
+{
+  public void addFeedback();
+  public void removeFeedback();
+}              
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/MessagesGroupConnectionManager.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/MessagesGroupConnectionManager.java
new file mode 100644
index 0000000..231455d
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/MessagesGroupConnectionManager.java
@@ -0,0 +1,110 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.graph.editparts;
+                                  
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.wst.wsdl.Fault;
+import org.eclipse.wst.wsdl.Input;
+import org.eclipse.wst.wsdl.Message;
+import org.eclipse.wst.wsdl.Output;
+import org.eclipse.wst.wsdl.Part;
+import org.eclipse.wst.wsdl.internal.util.WSDLSwitch;
+
+                                                   
+public class MessagesGroupConnectionManager extends AbstractConnectionManager
+{ 
+  public MessagesGroupConnectionManager(GroupEditPart groupEditPart)
+  {
+    super(groupEditPart);
+  }                                    
+              
+  class InternalWSDLSwitch extends WSDLSwitch
+  {            
+    public Object caseFault(Fault fault)
+    {                      
+      groupEditPart.setEmphasizedModelObject(fault.getEMessage());
+      groupEditPart.setInputConnectionModelObject(fault.getEMessage());
+      groupEditPart.setOutputConnectionModelObject(getFirstPart(fault.getEMessage()));
+      return Boolean.TRUE;
+    } 
+          
+    public Object caseInput(Input input)
+    {       
+      groupEditPart.setEmphasizedModelObject(input.getEMessage());
+      groupEditPart.setInputConnectionModelObject(input.getEMessage());
+      groupEditPart.setOutputConnectionModelObject(getFirstPart(input.getEMessage()));
+      return Boolean.TRUE;
+    }     
+
+    public Object caseMessage(Message message)
+    {  
+      groupEditPart.setEmphasizedModelObject(message);  
+      groupEditPart.setInputConnectionModelObject(message);
+      groupEditPart.setOutputConnectionModelObject(getFirstPart(message));
+      return Boolean.TRUE;
+    } 
+                      
+    public Object caseOutput(Output output)
+    {  
+      groupEditPart.setEmphasizedModelObject(output.getEMessage());  
+      groupEditPart.setInputConnectionModelObject(output.getEMessage());
+      groupEditPart.setOutputConnectionModelObject(getFirstPart(output.getEMessage()));
+      return Boolean.TRUE;
+    }                                                         
+
+    public Object casePart(Part part)
+    {  
+      groupEditPart.setEmphasizedModelObject(part.eContainer());  
+      groupEditPart.setInputConnectionModelObject(part.eContainer());
+      groupEditPart.setOutputConnectionModelObject(part);
+      return Boolean.TRUE;
+    } 
+      
+    public Object defaultCase(EObject object)
+    {                       
+      groupEditPart.setEmphasizedModelObject(null);
+      groupEditPart.setInputConnectionModelObject(null);
+      groupEditPart.setOutputConnectionModelObject(null);
+      return Boolean.TRUE;
+    }      
+
+    public Object doSwitch(EObject theEObject)
+    {
+      Object result = super.doSwitch(theEObject);
+      ((DefinitionEditPart)groupEditPart.getParent()).getPartReferenceSectionEditPart().setInput(groupEditPart.getOutputConnectionModelObject());
+      return result;
+    }
+  }
+
+  protected WSDLSwitch createSwitch(int selectionType)
+  {
+    return new InternalWSDLSwitch();
+  }   
+
+  protected Part getFirstPart(Message message)
+  {           
+    Part result = null;
+    if (message != null)
+    {    
+      List parts = message.getEParts();
+      result = (parts.size() > 0) ? (Part)parts.get(0) : null;
+    }
+    return result;
+  }
+  
+  protected void propagateBackToPrevious(Object model)
+  {  	
+  	model = (model instanceof Part) ?((Part)model).eContainer() : model; 
+    super.propagateBackToPrevious(model);
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/NotAvailableMessageEditPart.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/NotAvailableMessageEditPart.java
new file mode 100644
index 0000000..6a4a500
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/NotAvailableMessageEditPart.java
@@ -0,0 +1,49 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.graph.editparts;
+                          
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+
+              
+
+public class NotAvailableMessageEditPart extends AbstractGraphicalEditPart 
+{            
+  public NotAvailableMessageEditPart()
+  {
+  }   
+  
+  protected IFigure createFigure()
+  {                            
+    Label label = new Label(WSDLEditorPlugin.getWSDLString("_UI_LABEL_VIEW_NOT_AVAILABLE"));
+    return label;
+  }    
+
+  protected List getModelChildren() 
+  {                  
+    return Collections.EMPTY_LIST;
+  }    
+
+  protected EditPart createChild(Object model)
+  {
+    return null;
+  }
+ 
+  protected void createEditPolicies()
+  {  
+  }   
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/PartReferenceSectionEditPart.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/PartReferenceSectionEditPart.java
new file mode 100644
index 0000000..8ab8dee
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/PartReferenceSectionEditPart.java
@@ -0,0 +1,141 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.graph.editparts;
+                                  
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPartFactory;
+import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
+import org.eclipse.wst.wsdl.Definition;
+import org.eclipse.wst.wsdl.Part;
+import org.eclipse.wst.wsdl.ui.internal.graph.model.WSDLGraphModelAdapterFactory;
+import org.eclipse.wst.wsdl.ui.internal.model.ModelAdapter;
+import org.eclipse.wst.wsdl.ui.internal.model.ModelAdapterListener;
+import org.eclipse.wst.xsd.ui.internal.gef.util.figures.ContainerFigure;
+import org.eclipse.xsd.XSDElementDeclaration;
+                                                   
+
+public class PartReferenceSectionEditPart extends AbstractGraphicalEditPart implements ModelAdapterListener
+{ 
+  protected Object input;
+  protected Definition definition;
+              
+  protected IFigure createFigure()
+  {                                                  
+    ContainerFigure outer = new ContainerFigure(); 
+    return outer;
+  } 
+
+  protected void setInput(Object object)
+  {                    
+    if (input != null)
+    {
+      removeModelAdapterListener(input, this);
+	  removeModelAdapterListener(definition, this);
+    }
+    input = object;
+    if (input != null)
+    {
+      addModelAdapterListener(input, this);
+	  definition = getParent() != null ? (Definition)getParent().getModel() : null;
+      addModelAdapterListener(definition, this);
+    }
+    refresh();
+    getFigure().repaint();
+  }
+  
+	public void deactivate() 
+	  {       
+		  if (input != null)
+		  { 	
+	        removeModelAdapterListener(input, this);
+	        removeModelAdapterListener(definition, this);
+		  }  
+			super.deactivate(); 
+		}  
+
+  protected List getModelChildren() 
+  { 
+    List list = new ArrayList();
+    if (input instanceof Part)
+    {
+      Part part = (Part)input;
+      Object component = part.getTypeDefinition();
+      if (component != null) 
+      {
+        // TODO... i'm pulling a fast one here.... we should call the extension
+        // to see if he wants to show a child here
+        if (component instanceof org.eclipse.xsd.XSDComplexTypeDefinition)
+        {
+          list.add(component);
+        }
+      }
+      else
+      {
+        // This is before the new org.eclipse.wst.wsdl model
+        // where it handled DOM nodes
+        // component = part.getElement();
+        XSDElementDeclaration ed = part.getElementDeclaration();
+        if (ed != null && ed.getContainer() != null)
+        {
+          list.add(ed);
+        }
+      }
+    }                    
+    return list;
+  }
+       
+  protected void createEditPolicies() 
+  {
+  }       
+
+  protected EditPart createChild(Object model) 
+  {
+    return getEditPartFactory().createEditPart(this, model);
+  } 
+
+  protected EditPartFactory getEditPartFactory()
+  {
+    return ExtensibleEditPartFactory.getInstance();
+  } 
+
+  public void propertyChanged(Object object, String property)
+  {                     
+    refreshChildren();
+  }  
+
+  protected ModelAdapter getModelAdapter(Object modelObject)
+  {
+    return WSDLGraphModelAdapterFactory.getWSDLGraphModelAdapterFactory().getAdapter(modelObject);
+  } 
+
+  protected void addModelAdapterListener(Object modelObject, ModelAdapterListener listener)
+  {
+    ModelAdapter adapter = getModelAdapter(modelObject);
+    if (adapter != null)
+    {
+      adapter.addListener(listener);
+    }
+  }
+
+  protected void removeModelAdapterListener(Object modelObject, ModelAdapterListener listener)
+  {
+    ModelAdapter adapter = getModelAdapter(modelObject);
+    if (adapter != null)
+    {
+      adapter.removeListener(listener);
+    }
+  }  
+
+}   
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/PortTypesGroupConnectionManager.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/PortTypesGroupConnectionManager.java
new file mode 100644
index 0000000..d6520e2
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/PortTypesGroupConnectionManager.java
@@ -0,0 +1,351 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.graph.editparts;
+                                  
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.wst.wsdl.Binding;
+import org.eclipse.wst.wsdl.BindingFault;
+import org.eclipse.wst.wsdl.BindingInput;
+import org.eclipse.wst.wsdl.BindingOperation;
+import org.eclipse.wst.wsdl.BindingOutput;
+import org.eclipse.wst.wsdl.Definition;
+import org.eclipse.wst.wsdl.Fault;
+import org.eclipse.wst.wsdl.Input;
+import org.eclipse.wst.wsdl.Message;
+import org.eclipse.wst.wsdl.Operation;
+import org.eclipse.wst.wsdl.Output;
+import org.eclipse.wst.wsdl.Port;
+import org.eclipse.wst.wsdl.PortType;
+import org.eclipse.wst.wsdl.WSDLElement;
+import org.eclipse.wst.wsdl.internal.util.WSDLSwitch;
+import org.eclipse.wst.wsdl.ui.internal.model.WSDLGroupObject;
+import org.eclipse.wst.wsdl.ui.internal.util.ComponentReferenceUtil;
+
+                                                   
+public class PortTypesGroupConnectionManager extends AbstractConnectionManager
+{ 
+  public PortTypesGroupConnectionManager(GroupEditPart groupEditPart)
+  {
+    super(groupEditPart);
+  }                                    
+
+    
+  class InternalWSDLSwitch extends WSDLSwitch
+  {        
+    public boolean isBindingGroupShowing()
+    {
+      GroupEditPart prevGroupEditPart = groupEditPart.getPrevious();
+      return prevGroupEditPart  != null && prevGroupEditPart.getType() == WSDLGroupObject.BINDINGS_GROUP;
+    } 
+
+    public Object caseBinding(Binding binding)
+    {                             
+      Object portType = getPortTypeForBindingObject(binding);
+      groupEditPart.setEmphasizedModelObject(portType);      
+      groupEditPart.setInputConnectionModelObject(portType);
+      groupEditPart.setOutputConnectionModelObject(null);
+      return Boolean.TRUE;
+    }  
+
+    public Object caseBindingFault(BindingFault bindingFault)
+    {                
+      groupEditPart.setEmphasizedModelObject(getPortTypeForBindingObject(bindingFault));
+      Fault fault = ComponentReferenceUtil.computeFault(bindingFault);
+      groupEditPart.setInputConnectionModelObject(fault);
+      groupEditPart.setOutputConnectionModelObject(fault);
+      return Boolean.TRUE;
+    } 
+      
+    public Object caseBindingInput(BindingInput bindingInput)
+    {    
+      groupEditPart.setEmphasizedModelObject(getPortTypeForBindingObject(bindingInput)); 
+      Input input = ComponentReferenceUtil.computeInput(bindingInput);
+      groupEditPart.setInputConnectionModelObject(input);
+      groupEditPart.setOutputConnectionModelObject(input);
+      return Boolean.TRUE;
+    }
+      
+    public Object caseBindingOperation(BindingOperation bindingOperation)
+    {                       
+      groupEditPart.setEmphasizedModelObject(getPortTypeForBindingObject(bindingOperation));
+      groupEditPart.setInputConnectionModelObject(ComponentReferenceUtil.computeOperation(bindingOperation));
+      groupEditPart.setOutputConnectionModelObject(null);
+      return Boolean.TRUE;
+    }
+      
+    public Object caseBindingOutput(BindingOutput bindingOutput)
+    {                
+      groupEditPart.setEmphasizedModelObject(getPortTypeForBindingObject(bindingOutput));
+      Output output = ComponentReferenceUtil.computeOutput(bindingOutput);
+      groupEditPart.setInputConnectionModelObject(output);
+      groupEditPart.setOutputConnectionModelObject(output);
+      return Boolean.TRUE;
+    }                                            
+                 
+    public Object caseFault(Fault fault)
+    {                      
+      groupEditPart.setEmphasizedModelObject(getEnclosingPortType(fault));   
+      if (isBindingGroupShowing())
+      {
+        groupEditPart.setInputConnectionModelObject(fault);
+      }
+      else
+      {
+        groupEditPart.setInputConnectionModelObject(getEnclosingPortType(fault));
+      }
+      groupEditPart.setOutputConnectionModelObject(fault);
+      return Boolean.TRUE;
+    } 
+          
+    public Object caseInput(Input input)
+    {       
+      groupEditPart.setEmphasizedModelObject(getEnclosingPortType(input));   
+      if (isBindingGroupShowing())
+      {
+        groupEditPart.setInputConnectionModelObject(input);
+      }
+      else
+      {
+        groupEditPart.setInputConnectionModelObject(getEnclosingPortType(input));
+      }
+      groupEditPart.setOutputConnectionModelObject(input);
+      return Boolean.TRUE;
+    }     
+    
+    public Object caseMessage(Message message)
+    {
+      Object previousContext = groupEditPart.getOutputConnectionModelObject();
+      if (previousContext == null)      
+      {
+        previousContext = groupEditPart.getEmphasizedModelObject();
+      }
+      
+      EObject messageReference = null;      
+      if (previousContext == null || previousContext instanceof EObject)
+      {
+      messageReference = getMessageReference(message, (EObject)previousContext);
+      }
+
+      if (messageReference != null)
+      {
+        doSwitch(messageReference);
+      }
+      else
+      {
+      defaultCase(null);
+      }
+      return Boolean.TRUE;
+    }  
+            
+    public Object caseOperation(Operation operation) 
+    {      
+      groupEditPart.setEmphasizedModelObject(getEnclosingPortType(operation));
+      if (isBindingGroupShowing())
+      {
+        groupEditPart.setInputConnectionModelObject(operation);
+      }
+      else
+      {
+        groupEditPart.setInputConnectionModelObject(getEnclosingPortType(operation));
+      }
+      groupEditPart.setOutputConnectionModelObject(null);      
+      return Boolean.TRUE;
+    }
+          
+    public Object caseOutput(Output output)
+    {  
+      groupEditPart.setEmphasizedModelObject(getEnclosingPortType(output));   
+      if (isBindingGroupShowing())
+      {
+        groupEditPart.setInputConnectionModelObject(output);
+      }
+      else
+      {
+        groupEditPart.setInputConnectionModelObject(getEnclosingPortType(output));
+      }
+      groupEditPart.setOutputConnectionModelObject(output);  
+      return Boolean.TRUE;
+    }   
+                                        
+    public Object casePortType(PortType portType)
+    { 
+      groupEditPart.setEmphasizedModelObject(portType); 
+      groupEditPart.setInputConnectionModelObject(portType);
+      groupEditPart.setOutputConnectionModelObject(null);
+      return Boolean.TRUE;
+    }  
+
+    public Object casePort(Port port)
+    {          
+      Binding binding = port.getEBinding();
+      PortType portType = binding != null ? binding.getEPortType() : null;
+      groupEditPart.setEmphasizedModelObject(portType);     
+      groupEditPart.setInputConnectionModelObject(portType);
+      groupEditPart.setOutputConnectionModelObject(null);
+      return Boolean.TRUE;
+    }                                         
+      
+    public Object defaultCase(EObject object)
+    {                       
+      groupEditPart.setEmphasizedModelObject(null);
+      groupEditPart.setInputConnectionModelObject(null);
+      groupEditPart.setOutputConnectionModelObject(null);
+      return Boolean.TRUE;
+    }      
+  } 
+
+  protected WSDLSwitch createSwitch(int selectionType)
+  {
+    return new InternalWSDLSwitch();
+  }
+
+  protected PortType getPortTypeForBindingObject(EObject object)
+  { 
+    Binding binding = getEnclosingBinding(object);
+    return binding.getEPortType();
+  }   
+            
+  public void propagateForward(Object model)
+  { 
+    if (model instanceof WSDLElement)
+    {
+      WSDLSwitch theSwitch = createSwitch(PROPAGATE_FORWARD);
+      theSwitch.doSwitch((EObject)model);    
+      groupEditPart.scrollToRevealInputConnection();
+    }       
+    else
+    {
+      removeConnections();
+    }
+
+    Object o = groupEditPart.getOutputConnectionModelObject();
+    propagateForwardToNext(o != null ? o : model); 
+  }
+  
+  protected void propagateBackToPrevious(Object model)
+  {
+    model = (model instanceof Message) ? groupEditPart.getInputConnectionModelObject() : model; 
+    super.propagateBackToPrevious(model);
+  } 
+  
+
+  protected Message getReferencedMessage(EObject o)
+  {      
+    Message result = null;
+    if (o instanceof Input)
+    {
+      result = ((Input)o).getEMessage();
+    }                                   
+    else if (o instanceof Output)
+    {
+      result = ((Output)o).getEMessage();
+    }  
+    else if (o instanceof Fault)
+    {
+      result = ((Fault)o).getEMessage();
+    }                     
+    return result;
+  }
+  
+  protected boolean isMatchingMessageReference(EObject messageReference, Message message)
+  {
+    Message m = getReferencedMessage(messageReference);
+    return (m != null) && (m == messageReference);
+  }
+  
+  public EObject getMessageReference(Message message, EObject prevContext)
+  {
+    EObject result = null;
+        
+    PortType prevPortType = getEnclosingPortType(prevContext);
+    Operation prevOperation = getEnclosingOperation(prevContext);  
+    EObject prevMessageReference = getMessageReference(prevContext);
+    
+    if (prevPortType != null)
+    {
+      result = getMessageReference(message, prevPortType, prevOperation, prevMessageReference);  
+    }   
+    if (result == null)
+    {    
+      Definition definition = groupEditPart.getDefinition();
+      ComponentReferenceUtil util = new ComponentReferenceUtil(definition);
+      for (Iterator i = util.getPortTypes().iterator(); i.hasNext(); )
+      {
+        PortType portType = (PortType)i.next();              
+        result = getMessageReference(message, portType, null, null);  
+        
+        if (result != null)
+        {
+          break;
+        }
+      }
+    }
+    return result;
+  }
+  
+  public EObject getMessageReference(Message message, PortType portType, Operation prevOperation, EObject prevMessageReference)
+  {
+    EObject result = null;
+    if (prevMessageReference != null && isMatchingMessageReference(prevMessageReference, message)) 
+    {
+      result = prevMessageReference;
+    }
+      
+    if (result == null && prevOperation != null)
+    {
+      result = getMessageReference(message, prevOperation);       
+    }
+            
+    if (result == null)
+    {             
+      for (Iterator i = portType.getOperations().iterator(); i.hasNext();)
+      { 
+        Operation operation = (Operation)i.next();
+        result = getMessageReference(message, operation);
+        if (result != null)
+        {
+          break; 
+        }
+      }
+    }
+    return result;    
+  } 
+  
+  public EObject getMessageReference(Message message, Operation operation)
+  {
+    EObject result = null;
+    Input input = operation.getEInput();
+    Output output = operation.getEOutput(); 
+    if (input != null && input.getMessage() == message)
+    {
+      result = input;
+    }
+    else if (output != null && output.getMessage() == message)
+    {
+      result = output;
+    }
+    if (result == null)
+    {
+      for (Iterator i = operation.getEFaults().iterator(); i.hasNext();)
+      {
+        Fault fault = (Fault)i.next();
+        if (fault.getMessage() == message)
+        {
+          result = fault;
+          break;
+        }  
+      }
+    }
+    return result;        
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/ServicesGroupConnectionManager.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/ServicesGroupConnectionManager.java
new file mode 100644
index 0000000..cc9543d
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/ServicesGroupConnectionManager.java
@@ -0,0 +1,170 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.graph.editparts;
+                                  
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.wst.wsdl.Binding;
+import org.eclipse.wst.wsdl.BindingFault;
+import org.eclipse.wst.wsdl.BindingInput;
+import org.eclipse.wst.wsdl.BindingOperation;
+import org.eclipse.wst.wsdl.BindingOutput;
+import org.eclipse.wst.wsdl.Fault;
+import org.eclipse.wst.wsdl.Input;
+import org.eclipse.wst.wsdl.Operation;
+import org.eclipse.wst.wsdl.Output;
+import org.eclipse.wst.wsdl.Port;
+import org.eclipse.wst.wsdl.PortType;
+import org.eclipse.wst.wsdl.internal.util.WSDLSwitch;
+import org.eclipse.wst.wsdl.ui.internal.util.ComponentReferenceUtil;
+
+                                                   
+public class ServicesGroupConnectionManager extends AbstractConnectionManager
+{   
+  public ServicesGroupConnectionManager(GroupEditPart groupEditPart)
+  {
+    super(groupEditPart);
+  }                                    
+    
+  protected class InternalWSDLSwitch extends WSDLSwitch
+  {
+   	public Object caseBinding(Binding binding)
+    {                   
+      handleBindingHelper(binding);
+      return Boolean.TRUE;
+    }         
+
+    public Object caseBindingFault(BindingFault bindingFault)
+    {    
+      handleBindingHelper(getEnclosingBinding(bindingFault)); 
+      return Boolean.TRUE;
+    }
+
+    public Object caseBindingInput(BindingInput bindingInput)
+    {    
+      handleBindingHelper(getEnclosingBinding(bindingInput)); 
+      return Boolean.TRUE;
+    }
+      
+    public Object caseBindingOperation(BindingOperation bindingOperation)
+    {                       
+      handleBindingHelper(getEnclosingBinding(bindingOperation));
+      return Boolean.TRUE;
+    }
+      
+    public Object caseBindingOutput(BindingOutput bindingOutput)
+    {                
+      handleBindingHelper(getEnclosingBinding(bindingOutput));
+      return Boolean.TRUE;
+    }      
+
+    public Object caseFault(Fault fault)
+    {                      
+      handlePortTypeHelper(getEnclosingPortType(fault));   
+      return Boolean.TRUE;
+    } 
+          
+    public Object caseInput(Input input)
+    {       
+      handlePortTypeHelper(getEnclosingPortType(input));   
+      return Boolean.TRUE;
+    }     
+            
+    public Object caseOperation(Operation operation) 
+    {      
+      handlePortTypeHelper(getEnclosingPortType(operation));    
+      return Boolean.TRUE;
+    }
+          
+    public Object caseOutput(Output output)
+    {  
+      handlePortTypeHelper(getEnclosingPortType(output));   
+      return Boolean.TRUE;
+    }  
+
+   	public Object casePort(Port port)
+    {           
+      groupEditPart.setEmphasizedModelObject(port);     
+      groupEditPart.setOutputConnectionModelObject(port);
+      return Boolean.TRUE;
+    }   
+
+   	public Object casePortType(PortType portType)
+    {           
+      handlePortTypeHelper(portType);
+      return Boolean.TRUE;
+    }          
+        
+   	public Object defaultCase(EObject object)
+    {
+      groupEditPart.setEmphasizedModelObject(null);
+      groupEditPart.setOutputConnectionModelObject(null);
+      return Boolean.TRUE;
+    }          
+
+    //
+    protected void handlePortTypeHelper(PortType portType)
+    {       
+      if (portType != null)
+      { 
+        Port port = null;   
+        Object previousContext = groupEditPart.getOutputConnectionModelObject();
+        if (previousContext == null)      
+        {
+          previousContext = groupEditPart.getEmphasizedModelObject();
+        }
+        if (previousContext instanceof Port)
+        {
+          Port previousPort = (Port)previousContext;
+          if (previousPort.getEBinding() != null && previousPort.getEBinding().getEPortType() == portType)
+          {
+            port = previousPort;
+          }          
+        }                  
+
+        if (port == null)
+        {
+          ComponentReferenceUtil util = new ComponentReferenceUtil(groupEditPart.getDefinition());           
+          List list = util.getPortsForPortType(portType);          
+          if (list.size() > 0)
+          {
+            port = (Port)list.get(0);
+          }                          
+        }
+
+        groupEditPart.setEmphasizedModelObject(port);     
+        groupEditPart.setOutputConnectionModelObject(port);
+      } 
+    }   
+
+    protected void handleBindingHelper(Binding binding)
+    {       
+      if (binding != null)
+      {
+        ComponentReferenceUtil util = new ComponentReferenceUtil(groupEditPart.getDefinition());
+        List list = util.getPortsForBinding(binding);
+        Port port = null;
+        if (list.size() > 0)
+        {
+          port = (Port)list.get(0);
+        }                          
+        groupEditPart.setEmphasizedModelObject(port);     
+        groupEditPart.setOutputConnectionModelObject(port);                                          
+      }
+    }
+  }
+
+  protected WSDLSwitch createSwitch(int selectionType)
+  {
+    return new InternalWSDLSwitch();
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/TreeNodeEditPart.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/TreeNodeEditPart.java
new file mode 100644
index 0000000..cd66aab
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/TreeNodeEditPart.java
@@ -0,0 +1,343 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.graph.editparts;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPartFactory;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
+import org.eclipse.gef.editpolicies.SelectionEditPolicy;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.eclipse.wst.wsdl.ui.internal.gef.util.editparts.InteractorHelper;
+import org.eclipse.wst.wsdl.ui.internal.graph.GraphicsConstants;
+import org.eclipse.wst.wsdl.ui.internal.graph.WSDLComponentViewer;
+import org.eclipse.wst.wsdl.ui.internal.graph.editpolicies.WSDLSelectionHandlesEditPolicyImpl;
+import org.eclipse.wst.wsdl.ui.internal.graph.figures.TreeNodeContentFigure;
+import org.eclipse.wst.wsdl.ui.internal.model.ModelAdapter;
+import org.eclipse.wst.wsdl.ui.internal.model.ModelAdapterListener;
+import org.eclipse.wst.xsd.ui.internal.gef.util.figures.ContainerFigure;
+
+public abstract class TreeNodeEditPart extends AbstractGraphicalEditPart implements ModelAdapterListener, GraphicsConstants, IFeedbackHandler
+{
+  protected Label label;
+  protected Label label2;
+  protected ContainerFigure labelHolder = new ContainerFigure();
+  protected TreeNodeContentFigure contentFigure;
+  protected InteractorHelper interactorHelper;
+  protected boolean isSelected = false;
+  protected boolean isReadOnly = false;
+
+  public void activate()
+  {
+    super.activate();
+    addModelAdapterListener(getModel(), this);
+    //viewer = getViewer();
+  }
+
+  int removeNotifyCount = 0;
+
+  public void removeNotify()
+  {
+    removeNotifyCount++;
+    if (removeNotifyCount == 1)
+    {
+      super.removeNotify();
+    }
+  }
+
+  /** 
+   * Apart from the deactivation done in super, the source
+   * and target connections are deactivated, and the visual
+   * part of the this is removed.
+   *
+   * @see #activate() 
+   */
+  public void deactivate()
+  {
+    removeModelAdapterListener(getModel(), this);
+    super.deactivate();
+  }
+
+  protected void createEditPolicies()
+  {
+    //SelectionHandlesEditPolicyImpl policy = new SelectionHandlesEditPolicyImpl();
+    //installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, policy);
+
+    SelectionEditPolicy feedBackSelectionEditPolicy = new WSDLSelectionHandlesEditPolicyImpl();
+    installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, feedBackSelectionEditPolicy);
+  }
+
+  protected EditPart createChild(Object model)
+  {
+    return getEditPartFactory().createEditPart(this, model);
+  }
+
+  public void propertyChanged(Object object, String property)
+  {
+    if (property == ModelAdapter.CHILDREN_PROPERTY)
+    {
+      refreshChildren();
+    }
+    else if (property == ModelAdapter.DETAIL_PROPERTY)
+    {
+      refreshVisuals();
+    }
+    else
+    {
+      refreshChildren();
+      refreshVisuals();
+    }
+  }
+
+  protected IFigure createFigure()
+  {
+    createContentFigure();
+    createFigureContent();
+    return contentFigure;
+  }
+
+  protected void createContentFigure()
+  {
+    contentFigure = new TreeNodeContentFigure();
+  }
+
+  protected void createFigureContent()
+  {
+    // add a bit of space between the interactor and icon
+    //                      
+    RectangleFigure space = new RectangleFigure();
+    space.setVisible(false);
+    space.setPreferredSize(new Dimension(3, 3));
+    contentFigure.getIconArea().add(space);
+
+    labelHolder = new ContainerFigure();
+    labelHolder.setFill(true);
+    contentFigure.getIconArea().add(labelHolder);
+
+    label = new Label(WSDLEditorPlugin.getWSDLString("_UI_LABEL_UNKNOWN_OBJECT"));
+    label.setForegroundColor(ColorConstants.black);
+    labelHolder.add(label);
+
+    interactorHelper = new InteractorHelper(this, contentFigure.getInteractor(), contentFigure.getInnerContentArea());
+  }
+
+  public IFigure getContentPane()
+  {
+    return contentFigure.getInnerContentArea();
+  }
+
+  public Color computeLabelColor()
+  {
+    Color color = ColorConstants.black;
+    if (isSelected)
+    {
+      color = ColorConstants.white;
+    }
+    else if (isReadOnly)
+    {
+      color = ColorConstants.gray;
+    }
+    return color;
+  }
+
+  public void refreshVisuals()
+  {
+    ModelAdapter adapter = getModelAdapter(getModel());
+    if (adapter != null)
+    {
+      isReadOnly = Boolean.TRUE.equals(adapter.getProperty(getModel(), "isReadOnly"));
+      label.setForegroundColor(computeLabelColor());
+      label.setText((String)adapter.getProperty(getModel(), ModelAdapter.LABEL_PROPERTY));
+      label.setIcon((Image)adapter.getProperty(getModel(), ModelAdapter.IMAGE_PROPERTY));
+    }
+    else
+    {
+      label.setText(WSDLEditorPlugin.getWSDLString("_UI_LABEL_UNKNOWN_NODE") + getModel().getClass().getName());
+    }
+  }
+
+  private void _refreshChildren()
+  {
+    int i;
+    EditPart editPart;
+    Object model;
+
+    Map modelToEditPart = new HashMap();
+    List children = getChildren();
+
+    for (i = 0; i < children.size(); i++)
+    {
+      editPart = (EditPart)children.get(i);
+      modelToEditPart.put(editPart.getModel(), editPart);
+    }
+
+    List modelObjects = getModelChildren();
+
+    for (i = 0; i < modelObjects.size(); i++)
+    {
+      model = modelObjects.get(i);
+
+      //Do a quick check to see if editPart[i] == model[i]
+      if (i < children.size())
+      {
+        editPart = (EditPart)children.get(i);
+        Object editPartModel = editPart.getModel();
+        if (editPartModel == model)
+        {
+          continue;
+        }
+        else if (editPartModel.getClass() == model.getClass())
+        {
+          modelToEditPart.remove(editPartModel);
+
+          if (isActive())
+            editPart.deactivate();
+
+          editPart.setModel(model);
+
+          if (isActive())
+          {
+            editPart.activate();
+            editPart.refresh();
+          }
+          continue;
+        }
+      }
+
+      //Look to see if the EditPart is already around but in the wrong location
+      editPart = (EditPart)modelToEditPart.get(model);
+
+      if (editPart != null)
+        reorderChild(editPart, i);
+      else
+      {
+        //An editpart for this model doesn't exist yet.  Create and insert one.
+        editPart = createChild(model);
+        addChild(editPart, i);
+      }
+    }
+    List trash = new ArrayList();
+    for (; i < children.size(); i++)
+      trash.add(children.get(i));
+    for (i = 0; i < trash.size(); i++)
+    {
+      EditPart ep = (EditPart)trash.get(i);
+      removeChild(ep);
+    }
+  }
+
+  public void refreshChildren()
+  {
+
+    boolean reuseChildren = false;
+    if (getViewer() instanceof WSDLComponentViewer)
+    {
+      WSDLComponentViewer wsdlComponentViewer = (WSDLComponentViewer)getViewer();
+      reuseChildren = wsdlComponentViewer.isPreserveExpansionEnabled();
+    }
+
+    if (reuseChildren)
+    {
+      _refreshChildren();
+    }
+    else
+    {
+      super.refreshChildren();
+    }
+
+    contentFigure.getInteractor().setVisible(hasChildren());
+  }
+
+  public List getModelChildren()
+  {
+    return contentFigure.getInteractor().isExpanded() ? getModelChildrenHelper() : Collections.EMPTY_LIST;
+  }
+
+  protected List getModelChildrenHelper()
+  {
+    List result = null;
+    ModelAdapter modelAdapter = getModelAdapter(getModel());
+    if (modelAdapter != null)
+    {
+      result = (List)modelAdapter.getProperty(getModel(), ModelAdapter.CHILDREN_PROPERTY);
+    }
+    return result != null ? result : Collections.EMPTY_LIST;
+  }
+
+  protected boolean hasChildren()
+  {
+    return getModelChildrenHelper().size() > 0;
+  }
+
+  protected abstract ModelAdapter getModelAdapter(Object model);
+
+  protected EditPartFactory getEditPartFactory()
+  {
+    return ExtensibleEditPartFactory.getInstance();
+  }
+
+  protected void addModelAdapterListener(Object modelObject, ModelAdapterListener listener)
+  {
+    ModelAdapter adapter = getModelAdapter(modelObject);
+    if (adapter != null)
+    {
+      adapter.addListener(listener);
+    }
+  }
+
+  protected void removeModelAdapterListener(Object modelObject, ModelAdapterListener listener)
+  {
+    ModelAdapter adapter = getModelAdapter(modelObject);
+    if (adapter != null)
+    {
+      adapter.removeListener(listener);
+    }
+  }
+
+  public void addFeedback()
+  {
+    isSelected = true;
+    labelHolder.setBackgroundColor(ColorConstants.black);
+    label.setForegroundColor(computeLabelColor());
+    labelHolder.setFill(true);
+  }
+
+  public void removeFeedback()
+  {
+    isSelected = false;
+    labelHolder.setBackgroundColor(null);
+    label.setForegroundColor(computeLabelColor());
+    labelHolder.setFill(false);
+  }
+
+  public boolean isExpanded()
+  {
+    return contentFigure.getInteractor().isExpanded();
+  }
+
+  public void setExpanded(boolean arg)
+  {
+    interactorHelper.setExpanded(arg);
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/UnknownObjectEditPart.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/UnknownObjectEditPart.java
new file mode 100644
index 0000000..2354fbf
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/UnknownObjectEditPart.java
@@ -0,0 +1,22 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.graph.editparts;
+                                         
+import org.eclipse.wst.wsdl.ui.internal.model.ModelAdapter;
+
+
+public class UnknownObjectEditPart extends TreeNodeEditPart
+{
+  protected ModelAdapter getModelAdapter(Object model)
+  {
+    return null;
+  }                                                                               
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/WSDLEditPart.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/WSDLEditPart.java
new file mode 100644
index 0000000..a8872a4
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/WSDLEditPart.java
@@ -0,0 +1,152 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.graph.editparts;
+                                     
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPartFactory;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.editpolicies.SelectionEditPolicy;
+import org.eclipse.wst.wsdl.ui.internal.gef.util.editparts.MultiContentPaneEditPart;
+import org.eclipse.wst.wsdl.ui.internal.graph.GraphicsConstants;
+import org.eclipse.wst.wsdl.ui.internal.graph.model.WSDLGraphModelAdapterFactory;
+import org.eclipse.wst.wsdl.ui.internal.model.ModelAdapter;
+import org.eclipse.wst.wsdl.ui.internal.model.ModelAdapterListener;
+
+
+public abstract class WSDLEditPart extends MultiContentPaneEditPart implements ModelAdapterListener, GraphicsConstants
+{
+	/**
+	 * Activates the <code>EditPart</code> by setting the
+	 * appropriate flags, and activating its children.
+	 * activation signals to the EditPart that is should start observing
+	 * it's model, and that is should support editing at this time.
+	 * An EditPart will have a parent prior to activiation.
+	 * @see #deactivate()
+	 */
+	public void activate() 
+  {
+		super.activate();         
+    addModelAdapterListener(getModel(), this);   
+	}
+	/** 
+	 * Apart from the deactivation done in super, the source
+	 * and target connections are deactivated, and the visual
+	 * part of the this is removed.
+	 *
+	 * @see #activate() 
+	 */
+	public void deactivate() 
+  {                    
+    removeModelAdapterListener(getModel(), this); 
+		super.deactivate(); 
+	}   
+    
+  protected void createEditPolicies() 
+  {
+    SelectionEditPolicy policy = new SelectionEditPolicy()
+    {        
+      protected  void hideSelection() 
+      {
+        EditPart editPart = getHost();
+        if (editPart instanceof IFeedbackHandler)
+        {
+          ((IFeedbackHandler)editPart).removeFeedback();
+        }
+      }
+
+      protected  void showSelection()  
+      { 
+        EditPart editPart = getHost();
+        if (editPart instanceof IFeedbackHandler)
+        {
+          ((IFeedbackHandler)editPart).addFeedback();
+        }
+      }             
+    };
+    installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, policy);           
+  }  
+
+  protected EditPart createChild(Object model) 
+  {
+    return getEditPartFactory().createEditPart(this, model);
+  } 
+
+  public void propertyChanged(Object object, String property)
+  {                                                                                                  
+    if (property == ModelAdapter.CHILDREN_PROPERTY)
+    {
+      refreshChildren();
+    }
+    else if (property == ModelAdapter.DETAIL_PROPERTY)
+    { 
+      refreshVisuals(); 
+    }                                       
+    else
+    {
+      refreshChildren();
+      refreshVisuals();
+    }
+  }  
+
+  protected List getModelChildren() 
+  {   
+    List result = null;
+    ModelAdapter modelAdapter = getModelAdapter(getModel());
+    if (modelAdapter != null)
+    {
+      result = (List)modelAdapter.getProperty(getModel(), ModelAdapter.CHILDREN_PROPERTY);
+    }
+    return result != null ? result : Collections.EMPTY_LIST;
+  } 
+
+  protected EditPartFactory getEditPartFactory()
+  {
+    return ExtensibleEditPartFactory.getInstance();
+  } 
+
+  protected ModelAdapter getModelAdapter(Object modelObject)
+  {
+    // TODO : port check
+    return WSDLGraphModelAdapterFactory.getWSDLGraphModelAdapterFactory().getAdapter(modelObject);
+//    return WSDLGraphModelAdapterFactory.EcoreUtil.getAdapter(getWSDLGraphModelAdapterFactory().eAdapters(),modelObject);
+  } 
+
+  protected void addModelAdapterListener(Object modelObject, ModelAdapterListener listener)
+  {
+    ModelAdapter adapter = getModelAdapter(modelObject);
+    if (adapter != null)
+    {
+      adapter.addListener(listener);
+    }
+  }
+
+  protected void removeModelAdapterListener(Object modelObject, ModelAdapterListener listener)
+  {
+    ModelAdapter adapter = getModelAdapter(modelObject);
+    if (adapter != null)
+    {
+      adapter.removeListener(listener);
+    }
+  }  
+
+  public boolean hitTest(IFigure target, Point location)
+  {
+    Rectangle b = target.getBounds().getCopy();
+    target.translateToAbsolute(b);  
+    return b.contains(location);
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/WSDLEditPartFactory.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/WSDLEditPartFactory.java
new file mode 100644
index 0000000..62e4a2c
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/WSDLEditPartFactory.java
@@ -0,0 +1,80 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.graph.editparts;
+                              
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPartFactory;
+import org.eclipse.wst.wsdl.Definition;
+import org.eclipse.wst.wsdl.WSDLElement;
+import org.eclipse.wst.wsdl.internal.util.WSDLSwitch;
+import org.eclipse.wst.wsdl.ui.internal.model.WSDLGroupObject;
+
+
+public class WSDLEditPartFactory implements EditPartFactory
+{ 
+  protected static WSDLEditPartFactory instance;                            
+
+  public static WSDLEditPartFactory getInstance()
+  {
+    if (instance == null)
+    {
+      instance = new WSDLEditPartFactory();
+    }
+    return instance;
+  }
+           
+
+
+  public EditPart createEditPart(final EditPart parent, Object model)
+  {             
+      WSDLSwitch wsdlSwitch = new WSDLSwitch()
+      {                   
+      	public Object caseWSDLElement(WSDLElement wsdlElement)
+        {   
+          return new WSDLTreeNodeEditPart();
+	    }   
+       
+      	public Object caseDefinition(Definition definition)
+        {   
+          return new DefinitionEditPart();
+	    }  
+				
+		public Object defaultCase(EObject object)
+		{
+	       return new WSDLTreeNodeEditPart();
+		}
+      };
+	 
+	  
+    EditPart editPart = null;       	
+    if (model instanceof EObject)
+    {
+      editPart = (EditPart)wsdlSwitch.doSwitch((EObject)model);
+    }
+    else if (model instanceof WSDLGroupObject)
+    {
+      editPart = new GroupEditPart();
+    }                                
+
+    if (editPart != null)   
+    {
+      editPart.setModel(model);
+      editPart.setParent(parent);
+    }
+    else
+    {      
+      System.out.println("can't create editPart for " + model);
+      Thread.dumpStack();
+    }
+    return editPart;
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/WSDLTreeNodeEditPart.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/WSDLTreeNodeEditPart.java
new file mode 100644
index 0000000..a6c9339
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editparts/WSDLTreeNodeEditPart.java
@@ -0,0 +1,166 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.graph.editparts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.gef.DragTracker;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.RequestConstants;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.wst.wsdl.Part;
+import org.eclipse.wst.wsdl.ui.internal.graph.editpolicies.WSDLDragAndDropEditPolicy;
+import org.eclipse.wst.wsdl.ui.internal.graph.editpolicies.WSDLGraphNodeDragTracker;
+import org.eclipse.wst.wsdl.ui.internal.graph.editpolicies.WSDLSelectionHandlesEditPolicyImpl;
+import org.eclipse.wst.wsdl.ui.internal.graph.figures.TreeNodeContentFigure;
+import org.eclipse.wst.wsdl.ui.internal.graph.model.WSDLGraphModelAdapterFactory;
+import org.eclipse.wst.wsdl.ui.internal.model.ModelAdapter;
+import org.eclipse.wst.wsdl.ui.internal.util.ComponentReferenceUtil;
+
+public class WSDLTreeNodeEditPart extends TreeNodeEditPart
+{ 
+  protected Label label2;                                     
+  protected boolean isEmphasized = false;  
+
+  protected static final Color emphasisColor = new Color(null, 238, 238, 238);
+  protected static final Color label2ForegroundColor = new Color(null, 82, 82, 158);        
+  protected static final Color label2ForegroundColorSelected = new Color(null, 182, 182, 255);
+
+  protected ModelAdapter getModelAdapter(Object modelObject)
+  {
+    return WSDLGraphModelAdapterFactory.getWSDLGraphModelAdapterFactory().getAdapter(modelObject);
+  }                                       
+
+  protected void createContentFigure()
+  {
+	contentFigure = new TreeNodeContentFigure()
+	{
+	  public IFigure getConnectionFigure()
+	  {  	
+  	    return isTopLevel() ? outlinedArea : iconArea;
+	  }   	  
+	};      
+  }
+  
+  protected boolean isTopLevel()
+  {
+    return getParent() instanceof GroupEditPart;
+  }
+	
+  protected void createFigureContent()
+  {                  
+    super.createFigureContent();
+      
+    if (getModel() instanceof Part)
+    {
+      label2 = new Label();
+      labelHolder.add(label2);
+      label2.setBorder(new MarginBorder(0, 5, 0, 0));
+      label2.setForegroundColor(label2ForegroundColor);
+    }
+  }   
+
+  public void setEmphasized(boolean isEmphasized)
+  {
+    this.isEmphasized = isEmphasized;
+    refreshVisuals();
+  }
+  
+  protected void updateEmphasis()
+  {
+    boolean isEmphasisShowing = isEmphasized && (!isSelected || getModelChildren().size() > 0);
+    if (isEmphasisShowing)
+    {              
+      contentFigure.getOutlinedArea().setBackgroundColor(emphasisColor); 
+    }                                                                                    
+
+    contentFigure.getOutlinedArea().setFill(isEmphasisShowing);
+    contentFigure.getOutlinedArea().setOutlined(isEmphasisShowing);    
+    contentFigure.setForegroundColor(elementBorderColor);
+  }
+
+  public void refreshVisuals()
+  {   
+    updateEmphasis();
+
+    super.refreshVisuals();
+   
+    if (label2 != null)
+    {
+      Part part = (Part)getModel();
+	  //String label = ComponentReferenceUtil.isType(part) ? "type" : "element";
+	  String value = ComponentReferenceUtil.getPartReferenceValue(part);  
+      label2.setText("(" + value + ")");
+    }
+  }         
+
+  public void performRequest(Request request)
+  {  
+    if (request.getType() == RequestConstants.REQ_OPEN)
+    {                                        
+      for (EditPart parent = (EditPart)getParent(); parent != null; parent = parent.getParent())
+      {
+        if (parent instanceof DefinitionEditPart)
+        {
+          ((DefinitionEditPart)parent).handleOpenRequest(this);
+          break;
+        }
+      }
+    }    
+    //else if (request.getType() == RequestConstants.REQ_DIRECT_EDIT)
+    //{                            
+    //  performDirectEdit();
+    //}
+  }     
+
+  public void addFeedback()
+  {    
+    super.addFeedback();
+    if (label2 != null)        
+    {
+      label2.setForegroundColor(label2ForegroundColorSelected);
+    }    
+    updateEmphasis();
+  }   
+
+  public void removeFeedback()
+  { 
+    super.removeFeedback();
+    if (label2 != null)        
+    {
+      label2.setForegroundColor(label2ForegroundColor);
+    }
+    updateEmphasis();
+  }                     
+  
+  protected void createEditPolicies()
+  { 
+    super.createEditPolicies();
+    selectionHandlesEditPolicy = new WSDLSelectionHandlesEditPolicyImpl();
+    installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, new WSDLDragAndDropEditPolicy(getViewer(), selectionHandlesEditPolicy));
+    installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, selectionHandlesEditPolicy);
+  }  
+  
+  WSDLSelectionHandlesEditPolicyImpl selectionHandlesEditPolicy;
+
+  public IFigure getSelectionFigure()
+  {
+    return getFigure();
+  }
+
+  public DragTracker getDragTracker(Request request)
+  {
+    return new WSDLGraphNodeDragTracker((EditPart)this);
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editpolicies/EditUtil.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editpolicies/EditUtil.java
new file mode 100644
index 0000000..69bcb3f
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editpolicies/EditUtil.java
@@ -0,0 +1,135 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.graph.editpolicies;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.wst.wsdl.Binding;
+import org.eclipse.wst.wsdl.Fault;
+import org.eclipse.wst.wsdl.Input;
+import org.eclipse.wst.wsdl.Output;
+import org.eclipse.wst.wsdl.Part;
+import org.eclipse.wst.wsdl.Port;
+import org.eclipse.wst.wsdl.WSDLElement;
+import org.eclipse.wst.wsdl.ui.internal.util.ComponentReferenceUtil;
+import org.w3c.dom.Element;
+
+//import org.eclipse.wst.wsdl.ui.internal.reconciler.WSDLToDOMElementUtil;
+
+
+public class EditUtil
+{
+  public static List getPossiblePropertyValues(Object model, String propertyName)
+  {
+    List list = null;
+    if (model instanceof Port)
+    {
+      Port port = (Port)model;   
+      ComponentReferenceUtil util = new ComponentReferenceUtil(port.getEnclosingDefinition());
+      list = util.getBindingNames();
+    }                                                   
+    else if (model instanceof Binding)
+    {
+      Binding binding = (Binding)model;   
+      ComponentReferenceUtil util = new ComponentReferenceUtil(binding.getEnclosingDefinition());
+      list = util.getPortTypeNames();
+    }    
+    else if (model instanceof Part)
+    {
+      Part part = (Part)model;    
+      boolean isType = ComponentReferenceUtil.isType(part);
+      list = ComponentReferenceUtil.getComponentNameList(part, isType);
+    } 
+    else if (model instanceof Input ||
+             model instanceof Output ||
+             model instanceof Fault)
+    { 
+      WSDLElement wsdlElement = (WSDLElement)model;   
+      ComponentReferenceUtil util = new ComponentReferenceUtil(wsdlElement.getEnclosingDefinition());
+      list = util.getMessageNames();
+    } 
+
+    if (list == null)
+    {                
+      list = new ArrayList();                            
+      list.add("A");
+      list.add("B");
+      list.add("C");
+    }
+    return list;
+  }
+
+  public static void setPropertyValue(Object model, String propertyName, String value)
+  { 
+    if (model instanceof Part)
+    {                     
+      Part part = (Part)model; 
+      boolean isType = ComponentReferenceUtil.isType(part);
+      ComponentReferenceUtil.setComponentReference(part, isType, value);
+    } 
+    else if (model instanceof Port)
+    {
+      Element element = ((WSDLElement)model).getElement();
+      element.setAttribute("binding", value);
+    } 
+    else if (model instanceof Binding)
+    { 
+      Element element = ((WSDLElement)model).getElement();
+      element.setAttribute("type", value);
+    } 
+    else if (model instanceof Input ||
+             model instanceof Output ||
+             model instanceof Fault)
+    { 
+      Element element = ((WSDLElement)model).getElement();
+      element.setAttribute("message", value);
+    } 
+  }
+
+  public static String getPropertyValue(Object model, String propertyName)
+  { 
+    String result = null;
+
+    if (model instanceof Part)
+    {
+      Element element = ((WSDLElement)model).getElement();
+      result = element.getAttribute(propertyName);
+    } 
+    else if (model instanceof Port)
+    {
+      Element element = ((WSDLElement)model).getElement();
+      result = element.getAttribute("binding");
+    }   
+    else if (model instanceof Binding)
+    { 
+      Element element = ((WSDLElement)model).getElement();
+      result = element.getAttribute("type");
+    }   
+    else if (model instanceof Input ||
+             model instanceof Output ||
+             model instanceof Fault)
+    { 
+      Element element = ((WSDLElement)model).getElement();
+      result = element.getAttribute("message");
+    }              
+    return result;
+  }
+
+  public static void setName(Object model, String value)
+  { 
+    if (model instanceof WSDLElement)
+    {
+      Element element = ((WSDLElement)model).getElement();
+      element.setAttribute("name", value);
+    }  
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editpolicies/NameDirectEditManager.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editpolicies/NameDirectEditManager.java
new file mode 100644
index 0000000..7619958
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editpolicies/NameDirectEditManager.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.graph.editpolicies;
+
+import org.eclipse.draw2d.Label;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.wst.wsdl.ui.internal.actions.SmartRenameAction;
+import org.eclipse.wst.wsdl.ui.internal.gef.util.editpolicies.TextCellEditorManager;
+
+public class NameDirectEditManager extends TextCellEditorManager
+{
+  protected Object model;
+
+  public NameDirectEditManager(GraphicalEditPart source, Label label, Object model)
+  {
+    super(source, label);  
+    this.model = model;
+  }
+
+  public void performModify(final String value)
+  {          
+    Display.getCurrent().asyncExec(new SmartRenameAction(model, value));
+  }      
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editpolicies/WSDLDragAndDropCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editpolicies/WSDLDragAndDropCommand.java
new file mode 100644
index 0000000..5792516
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editpolicies/WSDLDragAndDropCommand.java
@@ -0,0 +1,143 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.graph.editpolicies;
+
+import java.util.Iterator;
+import java.util.List;
+import java.util.Vector;
+
+import org.eclipse.draw2d.FigureCanvas;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPartViewer;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.RequestConstants;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.requests.ChangeBoundsRequest;
+import org.eclipse.wst.wsdl.Fault;
+import org.eclipse.wst.wsdl.Input;
+import org.eclipse.wst.wsdl.Output;
+import org.eclipse.wst.wsdl.Part;
+import org.eclipse.wst.wsdl.WSDLElement;
+import org.eclipse.wst.wsdl.ui.internal.actions.CopyWSDLElementAction;
+import org.eclipse.wst.wsdl.ui.internal.actions.WSDLDragAction;
+import org.eclipse.wst.wsdl.ui.internal.actions.WSDLDragReorderAction;
+import org.eclipse.wst.wsdl.ui.internal.actions.WSDLDragSetMessageAction;
+import org.eclipse.wst.wsdl.ui.internal.graph.editparts.WSDLTreeNodeEditPart;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
+
+
+public class WSDLDragAndDropCommand extends Command //AbstractCommand
+{ 
+  protected EditPartViewer viewer;    
+  protected ChangeBoundsRequest request;
+  protected Point location;
+  protected WSDLDragAction dragAction;    
+  protected boolean canExecute = false;
+
+  public WSDLDragAndDropCommand(EditPartViewer viewer, ChangeBoundsRequest request)
+  {
+    this.viewer = viewer;                    
+    this.request = request;
+
+    location = request.getLocation();   
+    EditPart targetEditPart = viewer.findObjectAt(location); 
+
+    // Only support drag and drop for WSDLTreeNodeEditPart
+  	if (targetEditPart instanceof WSDLTreeNodeEditPart) {
+  		WSDLElement wsdlElement = (WSDLElement) targetEditPart.getModel();
+  		if (wsdlElement.getElement() instanceof IDOMNode) {
+  			((GraphicalEditPart)viewer.getRootEditPart()).getFigure().translateToRelative(location);
+  			WSDLTreeNodeEditPart movingChildEditPart;
+  			Vector dragActions = new Vector();
+
+  			if (request.getType().equals(RequestConstants.REQ_ADD))  { // This really shouldn't be REQ_ADD....
+  				List list = request.getEditParts();
+  				if (list.size() <= 0) {
+  					canExecute = false;
+  					return;
+  				}
+            
+  				// Grabbing the fist selection
+  				movingChildEditPart = (WSDLTreeNodeEditPart) list.get(0);
+  				Object model = movingChildEditPart.getModel();
+  				EditPart pointerEditPart = viewer.findObjectAt(location);
+ 
+  				if (model instanceof Input || model instanceof Output) {
+  					dragActions.add(new WSDLDragReorderAction(movingChildEditPart, pointerEditPart, getPointerLocation(location)));
+  					dragActions.add(new WSDLDragSetMessageAction(movingChildEditPart, pointerEditPart, location));
+  				}
+  				else if (model instanceof Part) {
+  					dragActions.add(new WSDLDragReorderAction(movingChildEditPart, pointerEditPart, getPointerLocation(location)));     
+  				}
+  				else if (model instanceof Fault) {
+  					dragActions.add(new WSDLDragSetMessageAction(movingChildEditPart, pointerEditPart, location));
+  				}            
+  			}
+  			else if (request.getType().equals(RequestConstants.REQ_CLONE)) {
+  				List list = request.getEditParts();
+  				if (list.size() > 0)
+  				{
+  					// Grabbing the fist selection
+  					movingChildEditPart = (WSDLTreeNodeEditPart) list.get(0);
+             
+  					dragActions.add(new CopyWSDLElementAction(viewer,
+             											  (WSDLElement) movingChildEditPart.getModel(),
+             										      (WSDLElement) targetEditPart.getModel(),
+														  null));
+  				}
+  			}
+        
+  			Iterator it = dragActions.iterator();
+  			while (it.hasNext()) {
+  				dragAction = (WSDLDragAction) it.next();
+  				canExecute = dragAction.canExecute();
+  				if (canExecute)
+  					break;
+  			}
+  		}
+  	}
+  }
+  
+  public boolean canExecute()
+  { 
+    return canExecute;
+  }     
+  
+  public void execute() {
+    if (canExecute)
+    { 
+      dragAction.run(); 
+    }
+  }
+  
+  public IFigure getFeedbackFigure() {
+  	if (dragAction != null) {
+  		return dragAction.getFeedbackFigure();
+  	}
+  	else {
+  		return null;
+  	}
+  }
+  
+  /*
+   * This method compensates for the current scroll position
+   */
+  private Point getPointerLocation(Point origPointerLocation) {
+  	 Point compensatedLocation = origPointerLocation;
+  	 FigureCanvas figureCanvas = (FigureCanvas) viewer.getControl();
+     int yOffset = figureCanvas.getViewport().getVerticalRangeModel().getValue();
+     compensatedLocation.y = compensatedLocation.y + yOffset;
+     
+     return compensatedLocation;
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editpolicies/WSDLDragAndDropEditPolicy.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editpolicies/WSDLDragAndDropEditPolicy.java
new file mode 100644
index 0000000..b5dddbc
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editpolicies/WSDLDragAndDropEditPolicy.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.graph.editpolicies;
+
+import org.eclipse.gef.EditPartViewer;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.ChangeBoundsRequest;
+
+public class WSDLDragAndDropEditPolicy extends org.eclipse.gef.editpolicies.GraphicalEditPolicy
+{ 
+  protected EditPartViewer viewer;    
+  protected WSDLSelectionHandlesEditPolicyImpl selectionHandlesEditPolicy;
+
+  public WSDLDragAndDropEditPolicy(EditPartViewer viewer, WSDLSelectionHandlesEditPolicyImpl selectionHandlesEditPolicy)
+  {
+    this.viewer = viewer;
+    this.selectionHandlesEditPolicy = selectionHandlesEditPolicy;
+  }
+
+  public boolean understandsRequest(Request req)
+  {
+	  return true;
+  }                             
+  
+  public org.eclipse.gef.commands.Command getCommand(Request request)
+  {
+    WSDLDragAndDropCommand command = null;                            
+    if (request instanceof ChangeBoundsRequest)
+    {
+      command = new WSDLDragAndDropCommand(viewer, (ChangeBoundsRequest)request);  
+      selectionHandlesEditPolicy.setDragAndDropCommand(command);
+    } 
+    return command;             
+  }                                                     
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editpolicies/WSDLGraphNodeDragTracker.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editpolicies/WSDLGraphNodeDragTracker.java
new file mode 100644
index 0000000..182b939
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editpolicies/WSDLGraphNodeDragTracker.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.graph.editpolicies;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.tools.DragEditPartsTracker;
+                                   
+public class WSDLGraphNodeDragTracker extends DragEditPartsTracker 
+{                                     
+  protected EditPart editPart; 
+           
+  public WSDLGraphNodeDragTracker(EditPart editPart)
+  {
+    super(editPart);
+    this.editPart = editPart;
+  } 
+                                              
+  protected Command getCommand() 
+  { 
+	  Request request = getTargetRequest();
+    return editPart.getCommand(request); 
+  }
+} 
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editpolicies/WSDLSelectionHandlesEditPolicyImpl.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editpolicies/WSDLSelectionHandlesEditPolicyImpl.java
new file mode 100644
index 0000000..b038d9a
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/editpolicies/WSDLSelectionHandlesEditPolicyImpl.java
@@ -0,0 +1,234 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.graph.editpolicies;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.editpolicies.SelectionHandlesEditPolicy;
+import org.eclipse.gef.handles.MoveHandle;
+import org.eclipse.gef.handles.MoveHandleLocator;
+import org.eclipse.gef.requests.ChangeBoundsRequest;
+import org.eclipse.wst.wsdl.ui.internal.graph.editparts.IFeedbackHandler;
+import org.eclipse.wst.wsdl.ui.internal.graph.editparts.WSDLTreeNodeEditPart;
+
+public class WSDLSelectionHandlesEditPolicyImpl	extends SelectionHandlesEditPolicy
+{
+  protected IFigure feedback;
+  protected Rectangle originalLocation;
+  protected WSDLDragAndDropCommand dragAndDropCommand;
+
+  protected List createSelectionHandles()
+  {              
+    List list = new ArrayList();
+    EditPart editPart = getHost();  
+
+    if (editPart instanceof GraphicalEditPart)
+    {
+      GraphicalEditPart graphicalEditPart = (GraphicalEditPart)editPart;
+      IFigure figure = (graphicalEditPart instanceof WSDLTreeNodeEditPart) ? 
+                          ((WSDLTreeNodeEditPart)graphicalEditPart).getSelectionFigure() :
+                          graphicalEditPart.getFigure();
+   
+      MoveHandleLocator loc = new MoveHandleLocator(figure);    
+      MoveHandle moveHandle = new MoveHandle(graphicalEditPart, loc);     
+      list.add(moveHandle);
+    }
+
+    return list;
+  }   
+  
+
+  public boolean understandsRequest(Request request)
+  {    
+    boolean result = false;
+
+	  if (REQ_MOVE.equals(request.getType()))
+    {  
+		  result = false; // return false to disable move for now 
+    }
+    else
+    {
+	    result = super.understandsRequest(request);
+    }
+    return result;
+  }
+  
+
+  public org.eclipse.gef.commands.Command getCommand(Request request) 
+  {                                          
+    return null;  
+  }   
+
+  public void setDragAndDropCommand(WSDLDragAndDropCommand dragAndDropCommand)
+  {
+    this.dragAndDropCommand = dragAndDropCommand;
+  }
+
+  protected org.eclipse.gef.commands.Command getMoveCommand(ChangeBoundsRequest request) 
+  {
+	  ChangeBoundsRequest req = new ChangeBoundsRequest(REQ_MOVE_CHILDREN);
+	  req.setEditParts(getHost());
+	
+	  req.setMoveDelta(request.getMoveDelta());
+	  req.setSizeDelta(request.getSizeDelta());
+	  req.setLocation(request.getLocation());
+
+	  return getHost().getParent().getCommand(req);
+  } 
+
+  public void showSourceFeedback(Request request)
+  {
+  	eraseChangeBoundsFeedback(null);
+  	
+  	if (dragAndDropCommand != null && dragAndDropCommand.canExecute()) {
+	  if (REQ_MOVE.equals(request.getType()) || REQ_ADD.equals(request.getType())) {
+		  showMoveChangeBoundsFeedback((ChangeBoundsRequest) request);
+	  }
+	  else if (REQ_CLONE.equals(request.getType())) {
+	  	  showCopyChangeBoundsFeedback((ChangeBoundsRequest) request);
+	  }
+  	}
+  }
+
+  protected void showMoveChangeBoundsFeedback(ChangeBoundsRequest request)
+  {
+  	if (dragAndDropCommand != null && dragAndDropCommand.getFeedbackFigure() != null) {
+  		feedback = dragAndDropCommand.getFeedbackFigure();
+  		addFeedback(feedback);
+  	}
+  }        
+
+  protected void showCopyChangeBoundsFeedback(ChangeBoundsRequest request)
+  {
+  	/*
+  	IFigure p = getDragSourceFeedbackFigure();
+  	Rectangle r = originalLocation.getTranslated(request.getMoveDelta());
+  	Dimension resize = request.getSizeDelta();
+  	r.width += resize.width;
+  	r.height+= resize.height;
+  
+  	((GraphicalEditPart)getHost()).getFigure().translateToAbsolute(r);
+  	p.translateToRelative(r);
+                
+    Rectangle pBounds = r.getCopy();                            
+
+    if (dragAndDropCommand != null && dragAndDropCommand.canExecute())
+    {                     
+      int size = request.getEditParts().size();
+      if (size > 0 && request.getEditParts().get(size - 1) == getHost())
+      {         
+        PointList pointList = dragAndDropCommand.getConnectionPoints(r);
+        if (pointList != null && pointList.size() > 0)
+        {
+          polyLine.setPoints(pointList);
+          
+          Point firstPoint = pointList.getFirstPoint();
+          if (firstPoint != null)
+          {
+            pBounds = pBounds.getUnion(new Rectangle(firstPoint.x, firstPoint.y, 1, 1));
+          }
+        }
+      }
+    }
+    p.setBounds(pBounds);
+    ghostShape.setBounds(r);
+  	p.validate();
+  	*/
+  }        
+/*
+  protected IFigure getDragSourceFeedbackFigure() 
+  {
+    EditPart editPart = getHost(); 
+    if (feedback == null && editPart instanceof WSDLTreeNodeEditPart)
+    {                                       
+      WSDLTreeNodeEditPart baseEditPart = (WSDLTreeNodeEditPart)editPart;
+      originalLocation = new Rectangle(baseEditPart.getSelectionFigure().getBounds());
+      feedback = createDragSourceFeedbackFigure(baseEditPart.getSelectionFigure());
+	}
+	return feedback;
+  }
+
+  protected IFigure createDragSourceFeedbackFigure(IFigure draggedFigure)
+  {  	
+  	Polyline polyLine = new Polyline();                         
+//    polyLine.setLineStyle(Graphics.LINE_DASHDOT);      
+    polyLine.setLineWidth(1);
+    addFeedback(polyLine);
+			
+  	return polyLine;
+	} 
+	*/
+
+  public void deactivate()
+  {
+	  if (feedback != null)
+    {
+		  removeFeedback(feedback);
+		  feedback = null;
+	  }
+	  hideFocus();
+	  super.deactivate();
+  }
+
+  /**
+   * Erase feedback indicating that the receiver object is 
+   * being dragged.  This method is called when a drag is
+   * completed or cancelled on the receiver object.
+   * @param dragTracker org.eclipse.gef.tools.DragTracker The drag tracker of the tool performing the drag.
+   */
+  protected void eraseChangeBoundsFeedback(ChangeBoundsRequest request) 
+  {
+	  if (feedback != null) 
+    {		      
+		  removeFeedback(feedback);
+	  }
+	  feedback = null;
+	  originalLocation = null;
+  }
+
+  /**
+   * Erase feedback indicating that the receiver object is 
+   * being dragged.  This method is called when a drag is
+   * completed or cancelled on the receiver object.
+   * @param dragTracker org.eclipse.gef.tools.DragTracker The drag tracker of the tool performing the drag.
+   */
+  public void eraseSourceFeedback(Request request) 
+  {
+    if (REQ_MOVE.equals(request.getType()) ||  REQ_ADD.equals(request.getType()))
+    {
+		  eraseChangeBoundsFeedback((ChangeBoundsRequest)request);
+    }
+  }
+
+  protected void hideSelection()
+  {
+    EditPart editPart = getHost();
+    if (editPart instanceof IFeedbackHandler)
+    {
+      ((IFeedbackHandler)editPart).removeFeedback();
+    }
+  }
+
+  protected void showSelection()
+  {
+    EditPart editPart = getHost();
+    if (editPart instanceof IFeedbackHandler)
+    {
+      ((IFeedbackHandler)editPart).addFeedback();
+    }
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/figures/ExpandableGraphNodeContentFigure.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/figures/ExpandableGraphNodeContentFigure.java
new file mode 100644
index 0000000..0120df3
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/figures/ExpandableGraphNodeContentFigure.java
@@ -0,0 +1,99 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.graph.figures;
+
+import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.wst.wsdl.ui.internal.gef.util.figures.Interactor;
+
+              
+              
+
+//  --------------------------------------------
+//  | ExpandableGraphNodeContentFigure         |
+//  |                                          |
+//  |   ----------------------------------     |
+//  |   | verticalGroup                  |     |
+//  |   |                                |     |
+//  |   | -----------------------------  |     |
+//  |   | | horizontalGroup           |  |     |
+//  |   | |                           |  |     |
+//  |   | | ---------------------     |  |     |
+//  |   | | | outlinedArea      |     |  |     |
+//  |   | | | ----------------- |     |  |     |
+//  |   | | | |[+]iconArea    | |     |  |     |
+//  |   | | | ----------------- |     |  |     |
+//  |   | | | ----------------- |     |  |     |
+//  |   | | | | innerContent  | |     |  |     |
+//  |   | | | ----------------- |     |  |     |
+//  |   | | ---------------------     |  |     |
+//  |   | -----------------------------  |     |
+//  |   |                                |     |
+//  |   ----------------------------------     |
+//  --------------------------------------------
+
+public class ExpandableGraphNodeContentFigure extends GraphNodeContentFigure
+{   
+  protected Interactor interactor; 
+  //protected ContainerFigure occurenceArea;  
+ 
+  public ExpandableGraphNodeContentFigure()
+  {
+    super();    
+  }      
+  
+  public Interactor getInteractor()
+  {
+    return interactor;
+  } 
+
+
+  protected void createFigure()
+  {   
+    //createPreceedingSpace(this);           
+    createVerticalGroup(this);
+    createOutlinedArea(verticalGroup);   
+    createInteractor(iconArea);
+    innerContentArea.setBorder(new MarginBorder(0, 10, 0, 0));
+    //createOccurenceArea(verticalGroup);   
+  }
+  
+              
+
+  protected void createInteractor(IFigure parent)
+  {
+    interactor = new Interactor();
+    interactor.setBorder(new MarginBorder(0, 0, 0, 5));
+    interactor.setForegroundColor(ColorConstants.black);
+    interactor.setBackgroundColor(ColorConstants.white); 
+    parent.add(interactor);
+  } 
+
+                                
+  protected void createPreceedingSpace(IFigure parent)
+  {
+    // create a small space
+    RectangleFigure space = new RectangleFigure();
+    space.setVisible(false);
+    space.setPreferredSize(new Dimension(10, 10));
+    parent.add(space);  
+  }  
+  
+
+  //protected void createOccurenceArea(IFigure parent)
+  //{
+  //  occurenceArea = new ContainerFigure();             
+  //  parent.add(occurenceArea);
+  //}                 
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/figures/GraphNodeContentFigure.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/figures/GraphNodeContentFigure.java
new file mode 100644
index 0000000..94af5a4
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/figures/GraphNodeContentFigure.java
@@ -0,0 +1,99 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.graph.figures;
+                                         
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.wst.xsd.ui.internal.gef.util.figures.ContainerFigure;
+import org.eclipse.wst.xsd.ui.internal.gef.util.figures.IConnectedFigure;
+              
+
+//  ------------------------------
+//  | GraphNodeContentFigure     |
+//  |                            |
+//  | -------------------------  |
+//  | | vertical group        |  |
+//  | | --------------------- |  |
+//  | | | outlined area     | |  |
+//  | | | ----------------- | |  |
+//  | | | | icon area     | | |  |
+//  | | | ----------------- | |  |
+//  | | | ----------------- | |  |
+//  | | | | inner content | | |  |
+//  | | | ----------------- | |  |
+//  | | --------------------- |  |
+//  | -------------------------  |
+//  ------------------------------
+
+public class GraphNodeContentFigure extends ContainerFigure implements IConnectedFigure
+{                        
+  protected ContainerFigure verticalGroup; 
+  protected ContainerFigure outlinedArea;
+  protected ContainerFigure iconArea;
+  protected ContainerFigure innerContentArea; 
+         
+  public GraphNodeContentFigure()
+  {                                    
+    createFigure();                    
+  }      
+                  
+  protected void createFigure()
+  {                     
+    //getContainerLayout().setHorizontal(true);
+    //setLayoutManager(new FillLayout());
+    createVerticalGroup(this);
+    createOutlinedArea(verticalGroup); 
+  }
+
+  protected void createVerticalGroup(IFigure parent)
+  {
+    verticalGroup = new ContainerFigure();
+    verticalGroup.getContainerLayout().setHorizontal(false);
+    ///verticalGroup.setLayoutManager(new FillLayout());
+    parent.add(verticalGroup);
+  }
+
+  protected void createOutlinedArea(IFigure parent)
+  { 
+    outlinedArea = new ContainerFigure();
+    //outlinedArea.setLayoutManager(new FillLayout());
+    outlinedArea.getContainerLayout().setHorizontal(false);
+    parent.add(outlinedArea);      
+     
+    iconArea = new ContainerFigure();
+    iconArea.getContainerLayout().setHorizontal(true);
+    outlinedArea.add(iconArea);
+
+    innerContentArea = new ContainerFigure();
+    //innerContentArea.setLayoutManager(new FillLayout());
+    innerContentArea.getContainerLayout().setHorizontal(false);
+    outlinedArea.add(innerContentArea);  
+  }   
+
+  public ContainerFigure getIconArea()
+  {
+    return iconArea;
+  }
+
+  public ContainerFigure getOutlinedArea()
+  {
+    return outlinedArea;
+  }
+
+  public ContainerFigure getInnerContentArea()
+  {
+    return innerContentArea;
+  } 
+
+  public IFigure getConnectionFigure()
+  {
+    return outlinedArea;
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/figures/MyConnectionRenderingHelper.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/figures/MyConnectionRenderingHelper.java
new file mode 100644
index 0000000..af8537d
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/figures/MyConnectionRenderingHelper.java
@@ -0,0 +1,261 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.graph.figures;
+
+import java.util.Iterator;
+
+import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.draw2d.Graphics;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPartViewer;
+import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
+import org.eclipse.wst.wsdl.ui.internal.graph.editparts.DefinitionEditPart;
+import org.eclipse.wst.wsdl.ui.internal.graph.editparts.GroupEditPart;
+import org.eclipse.wst.wsdl.ui.internal.graph.editparts.PartReferenceSectionEditPart;
+import org.eclipse.wst.wsdl.ui.internal.model.WSDLGroupObject;
+import org.eclipse.wst.xsd.ui.internal.gef.util.figures.IConnectedFigure;
+              
+
+public class MyConnectionRenderingHelper //implements ISelectionChangedListener
+{               
+  protected boolean isOutlined = true;
+  protected EditPartViewer viewer;
+
+  public MyConnectionRenderingHelper(EditPartViewer viewer)
+  {
+    this.viewer = viewer;    
+    //viewer.addSelectionChangedListener(this);
+    //setFocusTraversable(false); 
+    //setEnabled(false); 
+  }      
+  
+  //public void selectionChanged(SelectionChangedEvent event) 
+  //{
+  //}
+            
+  public void fillShapeHelper(Graphics graphics)
+  { 
+    drawLines(graphics, viewer.getRootEditPart());    
+  }
+                 
+  protected Rectangle getConnectionBounds(IFigure figure)
+  {                 
+    Rectangle r = null;
+    if (figure instanceof IConnectedFigure)
+    {
+      IConnectedFigure connectedFigure = (IConnectedFigure)figure;
+      r = connectedFigure.getConnectionFigure().getBounds();
+    }
+    else
+    {
+      r = figure.getBounds();
+    }
+    return r; 
+  }                      
+            
+  final static int DOTTED_LINE_HEIGHT = 20;
+  protected int getClippedY(int y, Rectangle bounds)
+  {                        
+    if (bounds != null)
+    {
+      if (y < bounds.y)
+      {
+        y = bounds.y;
+      }     
+      if (y  > (bounds.y + bounds.height))
+      {
+        y = bounds.y + bounds.height; 
+      }
+    }
+    return y;
+  }
+    
+  protected void drawLine(Graphics graphics, IFigure a, IFigure b, int mx, Rectangle bounds)
+  {
+        Rectangle r1 = getConnectionBounds(a);
+        Rectangle r2 = getConnectionBounds(b);
+        int x1 = r1.x + r1.width;
+        int y1 = r1.y + r1.height / 2;
+        int x2 = r2.x - 1;
+        int y2 = r2.y + r2.height / 2;
+          
+        int clippedY1 = getClippedY(y1, bounds);
+        int clippedY2 = getClippedY(y2, bounds);
+
+        graphics.setForegroundColor(ColorConstants.black);
+
+        if (clippedY1 == y1 || clippedY2 == y2)
+        {                       
+          if (clippedY1 == y1)
+          {                                                
+            // draw horizontal line
+            graphics.drawLine(x1, y1, mx, y1); 
+          }
+       
+          if (clippedY2 == y2)
+          {        
+            // draw horizontal line
+            graphics.drawLine(mx, y2, x2 - 1, y2);    
+
+            // draw the arrow head
+            //
+            graphics.drawLine(x2 - 1, y2, x2 - 4, y2 - 3); 
+            graphics.drawLine(x2 - 1, y2, x2 - 4, y2 + 3); 
+          }  
+                  
+            
+          // draw the vertical line including dotted ends
+          //
+          int lowClippedY = Math.min(clippedY1, clippedY2);
+          int highClippedY = Math.max(clippedY1, clippedY2);
+          int lowY = Math.min(y1, y2);
+          int highY = Math.max(y1, y2);
+            
+          if (lowY == lowClippedY && highY == highClippedY)
+          {
+            graphics.drawLine(mx, lowClippedY, mx, highClippedY);
+          }
+          else
+          { 
+            int dottedLineLength = Math.min(DOTTED_LINE_HEIGHT, (highY - lowY)/3);
+            if (lowY != lowClippedY)
+            {
+              graphics.setLineStyle(Graphics.LINE_DOT);
+              int dottedY = lowClippedY + dottedLineLength;
+              graphics.drawLine(mx, lowClippedY, mx, dottedY); 
+              graphics.setLineStyle(Graphics.LINE_SOLID);
+              graphics.drawLine(mx, dottedY, mx, highClippedY); 
+            }
+            else //if (highY != highClippedY)
+            {
+              graphics.setLineStyle(Graphics.LINE_DOT);
+              int dottedY = highClippedY - dottedLineLength;
+              graphics.drawLine(mx, highClippedY, mx, dottedY); 
+              graphics.setLineStyle(Graphics.LINE_SOLID);
+              graphics.drawLine(mx, dottedY, mx, lowClippedY); 
+            }                              
+          }
+        }
+  }
+
+  protected void drawLines(Graphics graphics, EditPart editPart)
+  { 
+    if (editPart instanceof GroupEditPart)
+    { 
+      GroupEditPart leftGroupEditPart = (GroupEditPart)editPart;
+      GroupEditPart rightGroupEditPart = leftGroupEditPart.getNext();
+
+      if (leftGroupEditPart != null && rightGroupEditPart != null)
+      {                                                  
+        if (leftGroupEditPart.outputConnection != null && rightGroupEditPart.inputConnection != null)
+        {
+          int mx = rightGroupEditPart.getFigure().getBounds().x - 5;                                                      
+
+          Rectangle l = leftGroupEditPart.outerPane.getBounds();
+          Rectangle r = leftGroupEditPart.outerPane.getBounds();
+
+          // here we compute the union of the group bounds... rectangle.union() doesn't seem to work
+          //
+          int ux1 = Math.min(l.x, r.x); 
+          int uy1 = Math.min(l.y, r.y);       
+          int ux2 = Math.max(l.x + l.width, r.x + r.width);
+          int uy2 = Math.max(l.y + l.height, r.y + r.height);
+          Rectangle bounds = new Rectangle(ux1, uy1, ux2 - ux1, uy2 - uy1);       
+          drawLine(graphics, leftGroupEditPart.outputConnection.getFigure(), rightGroupEditPart.inputConnection.getFigure(), mx, bounds);      
+        }
+      }                                              
+    }  
+    else if (editPart instanceof PartReferenceSectionEditPart)
+    {
+      AbstractGraphicalEditPart child = (editPart.getChildren().size() > 0) ? 
+                                        (AbstractGraphicalEditPart)editPart.getChildren().get(0) :
+                                        null;
+      if (child != null)
+      {
+        DefinitionEditPart def = (DefinitionEditPart)editPart.getParent();
+        GroupEditPart groupEditPart = def.getGroupEditPart(WSDLGroupObject.MESSAGES_GROUP);
+        if (groupEditPart != null && groupEditPart.outputConnection != null)
+        {
+          int mx = child.getFigure().getBounds().x - 12;
+          drawLine(graphics, groupEditPart.outputConnection.getFigure(), child.getFigure(), mx, null);
+        }
+      }
+    }
+    else
+    {
+      for (Iterator i = editPart.getChildren().iterator(); i.hasNext(); )
+      {
+        EditPart child = (EditPart)i.next();
+        drawLines(graphics, child);
+      }
+    } 
+  }    
+}     
+
+/*
+    /*
+    List children = figure.getChildren();
+    for (Iterator i = children.iterator(); i.hasNext(); )
+    {
+      IFigure child = (IFigure)i.next();
+      drawLines(graphics, child);    
+    } */ 
+      /*  
+      List connectedFigures = graphNodeFigure.getConnectedFigures(IConnectedEditPartFigure.RIGHT_CONNECTION);
+      int connectedFiguresSize = connectedFigures.size();              
+
+      if (connectedFiguresSize > 0) 
+      {                                         
+        IConnectedEditPartFigure firstGraphNodeFigure = (IConnectedEditPartFigure)connectedFigures.get(0);
+        Rectangle r = graphNodeFigure.getConnectionFigure().getBounds();    
+          
+        int x1 = r.x + r.width;
+        int y1 = r.y + r.height/2;
+                                                                                   
+        int startOfChildBox = firstGraphNodeFigure.getConnectionFigure().getBounds().x;
+        int x2 = x1 + (startOfChildBox - x1) / 3;
+        int y2 = y1;
+      
+        if (connectedFiguresSize == 1)
+        {
+          graphics.drawLine(x1, y1, startOfChildBox, y2);   
+        }
+        else // (connectedFigures.length > 1)
+        { 
+          graphics.drawLine(x1, y1, x2, y2);
+
+          int minY = Integer.MAX_VALUE;
+          int maxY = -1;
+
+          for (Iterator i = connectedFigures.iterator(); i.hasNext(); )
+          {                                 
+            IConnectedEditPartFigure connectedFigure = (IConnectedEditPartFigure)i.next();
+            Rectangle childConnectionRectangle = connectedFigure.getConnectionFigure().getBounds();
+            int y = childConnectionRectangle.y + childConnectionRectangle.height / 2;
+            minY = Math.min(minY, y);
+            maxY = Math.max(maxY, y);
+            graphics.drawLine(x2, y, childConnectionRectangle.x, y);
+          }                   
+          graphics.drawLine(x2, minY, x2, maxY);
+        }                          
+      }                             
+    }            
+
+    //boolean visitChildren = true;
+    List children = figure.getChildren();
+    for (Iterator i = children.iterator(); i.hasNext(); )
+    {
+      IFigure child = (IFigure)i.next();
+      drawLines(graphics, child);
+    }
+*/
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/figures/TreeNodeContentFigure.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/figures/TreeNodeContentFigure.java
new file mode 100644
index 0000000..628b798
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/figures/TreeNodeContentFigure.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.graph.figures;
+                                         
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+              
+
+public class TreeNodeContentFigure extends ExpandableGraphNodeContentFigure
+{            
+  protected void createOutlinedArea(IFigure parent)
+  {                   
+    super.createOutlinedArea(parent);
+    outlinedArea.setBorder(new MarginBorder(0,2,0,2)); 
+  }    
+  
+  public IFigure getConnectionFigure()
+  {
+    return outlinedArea;
+  }           
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/model/WSDLGraphModelAdapterFactory.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/model/WSDLGraphModelAdapterFactory.java
new file mode 100644
index 0000000..c336ce0
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/graph/model/WSDLGraphModelAdapterFactory.java
@@ -0,0 +1,394 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.graph.model;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.wst.wsdl.Binding;
+import org.eclipse.wst.wsdl.Definition;
+import org.eclipse.wst.wsdl.XSDSchemaExtensibilityElement;
+import org.eclipse.wst.wsdl.ui.internal.graph.ViewMode;
+import org.eclipse.wst.wsdl.ui.internal.model.ModelAdapter;
+import org.eclipse.wst.wsdl.ui.internal.model.ModelAdapterFactory;
+import org.eclipse.wst.wsdl.ui.internal.model.ModelAdapterListener;
+import org.eclipse.wst.wsdl.ui.internal.model.WSDLModelAdapterFactory;
+import org.eclipse.wst.wsdl.ui.internal.util.ComponentReferenceUtil;
+
+
+public class WSDLGraphModelAdapterFactory extends WSDLModelAdapterFactory
+{          
+  protected static WSDLGraphModelAdapterFactory wsdlGraphModelAdapterFactoryInstance;
+
+  public static WSDLGraphModelAdapterFactory getWSDLGraphModelAdapterFactory()
+  {                
+    if (wsdlGraphModelAdapterFactoryInstance == null)
+    {
+      wsdlGraphModelAdapterFactoryInstance = new WSDLGraphModelAdapterFactory();
+    }
+    return wsdlGraphModelAdapterFactoryInstance;
+  }  
+  
+  protected AdapterFactory createAdapterFactory()
+  {
+    return new GraphAdapterFactory();
+  }  
+
+  //protected boolean isExtensibilityElementConsideredChild()
+  //{
+  //  return false;
+  //}
+        
+
+  // There are many adapters associated with this factory.  Each DOM Node has its own adapter.
+  //
+  protected class GraphAdapterFactory extends WSDLAdapterFactoryImpl
+  {                                                                
+
+    public Adapter createDefinitionAdapter()
+    {
+      return new GraphDefinitionAdapter();
+    } 
+    
+    public Adapter createBindingAdapter()
+    {
+      return new GraphBindingAdapter();
+    } 
+
+    public Adapter createPartAdapter()
+    {
+      return new GraphPartAdapter();
+    }                                         
+
+    //public Adapter createPortAdapter()
+    //{
+    //  return new GraphPortAdapter();
+    //}
+
+    public Adapter createPortTypeAdapter()
+    {
+      return new GraphPortTypeAdapter();
+    }
+
+    //public Adapter createInputAdapter()
+    //{
+    //  return new GraphInputAdapter();
+    //} 
+
+    //public Adapter createOutputAdapter()
+    //{
+    //  return new GraphOutputAdapter();
+    //}   
+
+    //public Adapter createFaultAdapter()
+    //{
+    //  return new GraphFaultAdapter();
+    //}
+
+  	public Adapter createTypesAdapter() 
+    {                    
+      return new GraphTypesAdapter();
+    }
+  }      
+
+        
+  
+  protected class GraphDefinitionAdapter extends DefinitionAdapter implements ViewMode.Listener
+  {                
+    protected ViewMode viewMode = new ViewMode();  
+ 
+    public void setTarget(Notifier newTarget) 
+    {
+      super.setTarget(newTarget);   
+      viewMode.addListener(this);         
+    }
+                                                      
+    protected List getChildren()
+    {             
+      List list = new ArrayList();
+      list.add(permanentWSDLGroupObjectList.get(0));
+      list.add(permanentWSDLGroupObjectList.get(1));  
+      list.add(permanentWSDLGroupObjectList.get(5));
+      if (viewMode.isBindingVisible())
+      {
+        list.add(permanentWSDLGroupObjectList.get(4));
+      } 
+      list.add(permanentWSDLGroupObjectList.get(3));  
+      list.add(permanentWSDLGroupObjectList.get(2));  
+      if (extensibilityElementsGroup.getChildren().size() > 0)
+      {
+        list.add(extensibilityElementsGroup);
+      }
+      return list;      
+    }
+
+  
+    public void viewModeChanged(ViewMode mode)
+    {
+      firePropertyChangedHelper();
+    }    
+
+    public ViewMode getViewMode()
+    {
+      return viewMode;
+    }    
+
+    protected ModelAdapterFactory getModelAdapterFactory()
+    {
+      return getWSDLGraphModelAdapterFactory();
+    }
+  }
+
+
+
+
+  protected class GraphBindingAdapter extends BindingAdapter
+  { /*                                  
+    protected List getChildren()
+    {                
+      List list = new ArrayList();   
+      if (binding.getPortType() != null)
+      {
+        list.add(binding.getPortType());
+      }
+      return list;
+    }*/  
+  }
+      
+                        
+  protected class GraphPartAdapter extends PartAdapter
+  { /*  
+    protected List getChildren()
+    {                  
+      List list = new ArrayList();
+
+      Object component = part.getType();
+      if (component != null) 
+      {
+        // TODO... i'm pulling a fast one here.... we should call the extension
+        // to see if he wants to show a child here
+        if (component instanceof org.eclipse.xsd.XSDComplexTypeDefinition)
+        {
+          list.add(component);
+        }
+      }
+      else
+      {
+        component = part.getElement();
+        if (component != null)
+        {
+          list.add(component);
+        }
+      }
+
+      return list;
+    }*/   
+  }
+    
+  protected class GraphPortTypeAdapter extends PortTypeAdapter
+  {   
+    public Object getProperty(Object modelObject, String propertyName)
+    {           
+      Object result = null;
+      if (propertyName.equals("bindings"))
+      {    
+        ComponentReferenceUtil util = new ComponentReferenceUtil(portType.getEnclosingDefinition());
+        result = util.getBindings(portType);
+      }
+      else
+      {
+        result = super.getProperty(modelObject, propertyName);
+      }   
+      return result;
+    }  
+  }
+
+  protected class GraphPortAdapter extends PortAdapter implements ModelAdapterListener
+  {                                                
+    protected List getChildren()
+    {                
+      List list = new ArrayList(); 
+    
+      Binding binding = (Binding)port.getBinding();
+
+      if (binding != null)
+      {
+        list.add(binding);
+      }
+     
+      return list;
+    }
+                     
+    // propagate changes to the binding object
+    //
+    public void propertyChanged(Object object, String property)
+    {
+      firePropertyChanged(port, null);
+    }
+  }   
+            
+
+  protected class GraphInputAdapter extends InputAdapter
+  {
+    protected List getChildren()
+    {     
+      List list = new ArrayList();
+      if (input.getMessage() != null)
+      {
+        list.add(input.getMessage());
+      }       
+      return list;
+    }     
+
+    public Object getProperty(Object modelObject, String propertyName)
+    {           
+      Object result = null;
+      if (propertyName.equals("bindings"))
+      {    
+        ComponentReferenceUtil util = new ComponentReferenceUtil(input.getEnclosingDefinition());
+        result = util.getBindingInputs(input);
+      }
+      else
+      {
+        result = super.getProperty(modelObject, propertyName);
+      }   
+      return result;
+    }   
+  }
+
+
+  protected class GraphOutputAdapter extends OutputAdapter
+  {
+    protected List getChildren()
+    {     
+      List list = new ArrayList();
+      if (output.getMessage() != null)
+      {
+        list.add(output.getMessage());
+      }       
+      return list;
+    }  
+
+    public Object getProperty(Object modelObject, String propertyName)
+    {           
+      Object result = null;
+      if (propertyName.equals("bindings"))
+      {    
+        ComponentReferenceUtil util = new ComponentReferenceUtil(output.getEnclosingDefinition());
+        result = util.getBindingOutputs(output);
+      }
+      else
+      {
+        result = super.getProperty(modelObject, propertyName);
+      }   
+      return result;
+    }   
+  }
+
+  protected class GraphFaultAdapter extends FaultAdapter
+  {
+    protected List getChildren()
+    {     
+      List list = new ArrayList();
+      if (fault.getMessage() != null)
+      {
+        list.add(fault.getMessage());
+      }       
+      return list;
+    }  
+
+    public Object getProperty(Object modelObject, String propertyName)
+    {           
+      Object result = null;
+      if (propertyName.equals("bindings"))
+      {    
+        ComponentReferenceUtil util = new ComponentReferenceUtil(fault.getEnclosingDefinition());
+        result = util.getBindingFaults(fault);
+      }
+      else
+      {
+        result = super.getProperty(modelObject, propertyName);
+      }   
+      return result;
+    }                                     
+  }     
+
+  public class GraphTypesAdapter extends TypesAdapter
+  {                                             
+    protected List getChildren()
+    {  
+      List list = new ArrayList();
+      for (Iterator i = types.getEExtensibilityElements().iterator(); i.hasNext(); )
+      {
+        Object o = i.next();
+        if (o instanceof XSDSchemaExtensibilityElement)
+        {
+          XSDSchemaExtensibilityElement s = (XSDSchemaExtensibilityElement)o;
+          Object schema = s.getSchema();
+          if (schema != null)
+          {
+            list.add(schema);
+          }
+        } 
+        else
+        {
+          list.add(o);
+        }
+      }
+      return list;
+    }                                                                                                         
+  }
+  /*
+  protected class GraphBindingAdapter extends BindingAdapter
+  {                                   
+    protected List getChildren()
+    {                
+      List list = new ArrayList();   
+      if (binding.getPortType() != null)
+      {
+        list.add(binding.getPortType());
+      }
+      return list;
+    }  
+  }*/
+
+  // convenience methods
+  //
+  public static void addModelAdapterListener(Object modelObject, ModelAdapterListener listener)
+  {                                                               
+// TODO: port check
+    ModelAdapter adapter = getWSDLGraphModelAdapterFactory().getAdapter(modelObject);
+//    ModelAdapter adapter = EcoreUtil.getAdapter(getWSDLGraphModelAdapterFactory().eAdapters(),modelObject);
+    if (adapter != null)
+    {
+      adapter.addListener(listener);
+    }
+  }    
+
+  public static void removeModelAdapterListener(Object modelObject, ModelAdapterListener listener)
+  {                                                            
+    ModelAdapter adapter = getWSDLGraphModelAdapterFactory().getAdapter(modelObject);
+    if (adapter != null)
+    {
+      adapter.removeListener(listener);
+    }
+  } 
+
+  public static ViewMode getViewMode(Definition definition)
+  {
+    GraphDefinitionAdapter adapter = (GraphDefinitionAdapter)getWSDLGraphModelAdapterFactory().getAdapter(definition);
+    return adapter.getViewMode();
+  }           
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/back.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/back.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/back.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/back.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/binding_obj.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/binding_obj.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/binding_obj.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/binding_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/bindingheader_obj.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/bindingheader_obj.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/bindingheader_obj.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/bindingheader_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/browsebutton.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/browsebutton.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/browsebutton.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/browsebutton.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/complextype_obj.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/complextype_obj.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/complextype_obj.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/complextype_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/element_obj.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/element_obj.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/element_obj.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/element_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/error_co.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/error_co.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/error_co.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/error_co.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/fault_obj.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/fault_obj.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/fault_obj.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/fault_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/file_obj.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/file_obj.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/file_obj.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/file_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/fldr_el.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/fldr_el.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/fldr_el.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/fldr_el.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/forward.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/forward.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/forward.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/forward.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/hidebinding.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/hidebinding.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/hidebinding.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/hidebinding.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/httpaddress_obj.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/httpaddress_obj.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/httpaddress_obj.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/httpaddress_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/httpbinding_obj.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/httpbinding_obj.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/httpbinding_obj.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/httpbinding_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/httpoperation_obj.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/httpoperation_obj.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/httpoperation_obj.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/httpoperation_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/httpurlencoded_obj.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/httpurlencoded_obj.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/httpurlencoded_obj.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/httpurlencoded_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/httpurlreplacement_obj.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/httpurlreplacement_obj.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/httpurlreplacement_obj.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/httpurlreplacement_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/import_obj.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/import_obj.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/import_obj.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/import_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/importheader_obj.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/importheader_obj.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/importheader_obj.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/importheader_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/input_obj.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/input_obj.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/input_obj.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/input_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/message_obj.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/message_obj.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/message_obj.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/message_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/messageheader_obj.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/messageheader_obj.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/messageheader_obj.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/messageheader_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/namespace_obj.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/namespace_obj.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/namespace_obj.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/namespace_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/namespacedecl_obj.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/namespacedecl_obj.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/namespacedecl_obj.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/namespacedecl_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/new_wsdl_wiz.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/new_wsdl_wiz.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/new_wsdl_wiz.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/new_wsdl_wiz.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/operation_obj.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/operation_obj.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/operation_obj.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/operation_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/operationbinding_obj.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/operationbinding_obj.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/operationbinding_obj.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/operationbinding_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/output_no.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/output_no.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/output_no.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/output_no.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/output_obj.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/output_obj.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/output_obj.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/output_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/output_yes.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/output_yes.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/output_yes.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/output_yes.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/page_banner.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/page_banner.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/page_banner.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/page_banner.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/part_obj.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/part_obj.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/part_obj.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/part_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/port_obj.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/port_obj.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/port_obj.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/port_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/porttype_obj.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/porttype_obj.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/porttype_obj.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/porttype_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/porttypeheader_obj.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/porttypeheader_obj.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/porttypeheader_obj.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/porttypeheader_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/prtcmplxpltyp_obj.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/prtcmplxpltyp_obj.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/prtcmplxpltyp_obj.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/prtcmplxpltyp_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/prtelemt_obj.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/prtelemt_obj.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/prtelemt_obj.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/prtelemt_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/prtsmpltyp_obj.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/prtsmpltyp_obj.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/prtsmpltyp_obj.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/prtsmpltyp_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/service_obj.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/service_obj.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/service_obj.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/service_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/serviceheader_obj.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/serviceheader_obj.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/serviceheader_obj.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/serviceheader_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/simpletype_obj.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/simpletype_obj.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/simpletype_obj.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/simpletype_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/soap_obj.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/soap_obj.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/soap_obj.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/soap_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/soapaddress_obj.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/soapaddress_obj.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/soapaddress_obj.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/soapaddress_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/soapatt_obj.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/soapatt_obj.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/soapatt_obj.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/soapatt_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/soapbinding_obj.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/soapbinding_obj.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/soapbinding_obj.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/soapbinding_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/soapbody_obj.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/soapbody_obj.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/soapbody_obj.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/soapbody_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/soapfault_obj.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/soapfault_obj.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/soapfault_obj.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/soapfault_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/soapheader_obj.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/soapheader_obj.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/soapheader_obj.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/soapheader_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/soapheaderfault_obj.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/soapheaderfault_obj.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/soapheaderfault_obj.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/soapheaderfault_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/soapoperation_obj.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/soapoperation_obj.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/soapoperation_obj.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/soapoperation_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/types_obj.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/types_obj.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/types_obj.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/types_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/validate.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/validate.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/validate.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/validate.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/wsdl_file_obj.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/wsdl_file_obj.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/wsdl_file_obj.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/wsdl_file_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/xsd_file_obj.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/xsd_file_obj.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/xsd_file_obj.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/xsd_file_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/xsd_obj.gif b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/xsd_obj.gif
similarity index 100%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/icons/xsd_obj.gif
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/icons/xsd_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/model/ModelAdapter.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/model/ModelAdapter.java
new file mode 100644
index 0000000..0e53e7e
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/model/ModelAdapter.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.model;
+
+public interface ModelAdapter
+{               
+  public static final String CHILDREN_PROPERTY = "CHILDREN_PROPERTY";
+  public static final String LABEL_PROPERTY = "LABEL_PROPERTY";
+  public static final String IMAGE_PROPERTY = "IMAGE_PROPERTY";
+  public static final String DETAIL_PROPERTY = "DETAIL_PROPERTY";
+                                       
+  public void addListener(ModelAdapterListener l);
+  public void removeListener(ModelAdapterListener l);
+  public Object getProperty(Object modelObject, String propertyName); 
+  public void firePropertyChanged(Object modelObject, String propertyName);
+}
+
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IType.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/model/ModelAdapterFactory.java
similarity index 71%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IType.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/model/ModelAdapterFactory.java
index e51af41..9db0daa 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IType.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/model/ModelAdapterFactory.java
@@ -1,15 +1,16 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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.asd.facade;
+package org.eclipse.wst.wsdl.ui.internal.model;
 
-public interface IType extends INamedObject {
-	public IDescription getOwnerDescription();
-}
+public interface ModelAdapterFactory
+{
+  public ModelAdapter getAdapter(Object o);
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IASDObjectListener.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/model/ModelAdapterListener.java
similarity index 66%
copy from bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IASDObjectListener.java
copy to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/model/ModelAdapterListener.java
index 4477644..1e3e851 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/facade/IASDObjectListener.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/model/ModelAdapterListener.java
@@ -1,15 +1,16 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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.asd.facade;
+package org.eclipse.wst.wsdl.ui.internal.model;
 
-public interface IASDObjectListener {
-	public void propertyChanged(Object object, String property);
+public interface ModelAdapterListener
+{                             
+  public void propertyChanged(Object object, String property);
 }
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/model/WSDLGroupObject.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/model/WSDLGroupObject.java
new file mode 100644
index 0000000..5d9abfa
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/model/WSDLGroupObject.java
@@ -0,0 +1,414 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.model;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Vector;
+
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.wst.wsdl.Definition;
+import org.eclipse.wst.wsdl.Message;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.eclipse.wst.wsdl.ui.internal.util.ComponentReferenceUtil;
+import org.eclipse.wst.wsdl.ui.internal.util.WSDLEditorUtil;
+
+
+  
+// Note that the TYPES_GROUP group is just a place holder.  If the Types obejct actually exists 
+// for the root WSDL document, it will be used instead of this model group
+//
+public class WSDLGroupObject implements ModelAdapter
+{
+  public static final int IMPORTS_GROUP = 1;
+  public static final int MESSAGES_GROUP = 2;
+  public static final int SERVICES_GROUP = 3;
+  public static final int PORT_TYPES_GROUP = 4;
+  public static final int BINDINGS_GROUP = 5;
+  public static final int TYPES_GROUP = 6;  
+  public static final int EXTENSIBILITY_ELEMENTS_GROUP = 7;
+         
+  protected Definition definition;
+  protected int type;       
+  protected List listenerList = new ArrayList();
+  protected ModelAdapterFactory modelAdapterFactory;
+
+  public WSDLGroupObject(Definition definition, int type)
+  {
+    this(definition, type, null);
+  }  
+
+  public WSDLGroupObject(Definition definition, int type, ModelAdapterFactory modelAdapterFactory)
+  {
+    this.definition = definition;
+    this.type = type;        
+    this.modelAdapterFactory = modelAdapterFactory;
+  }
+     
+  public Definition getParent()
+  {
+    return definition;
+  }               
+
+  public Definition getDefinition()
+  {
+    return definition;
+  }               
+
+
+  public int getType()
+  {
+    return type;
+  }
+
+  public String getLabel()
+  {            
+    String name = "";
+    switch (type)
+    {
+      case IMPORTS_GROUP :
+      {           
+        name = WSDLEditorPlugin.getWSDLString("_UI_FOLDER_IMPORTS");  //$NON-NLS-1$
+        break;
+      }
+      case MESSAGES_GROUP :
+      {    
+        name = WSDLEditorPlugin.getWSDLString("_UI_FOLDER_MESSAGES"); //$NON-NLS-1$
+        break;
+      }
+      case SERVICES_GROUP :
+      {
+        name = WSDLEditorPlugin.getWSDLString("_UI_FOLDER_SERVICES"); //$NON-NLS-1$
+        break;
+      }
+      case BINDINGS_GROUP :
+      {                   
+        name = WSDLEditorPlugin.getWSDLString("_UI_FOLDER_BINDINGS"); //$NON-NLS-1$
+        break;
+      }    
+      case PORT_TYPES_GROUP :
+      {                   
+        name = WSDLEditorPlugin.getWSDLString("_UI_FOLDER_PORTTYPES"); //$NON-NLS-1$
+        break;
+      }  
+      case TYPES_GROUP :
+      {                   
+        name = WSDLEditorPlugin.getWSDLString("_UI_FOLDER_TYPES"); //$NON-NLS-1$
+        break;
+      } 
+      case EXTENSIBILITY_ELEMENTS_GROUP:
+      {
+        name = WSDLEditorPlugin.getWSDLString("_UI_FOLDER_EXTENSIBILITY_ELEMENTS"); //$NON-NLS-1$
+        break;
+      }
+    }  
+    return name;
+  }    
+         
+
+  public Image getImage()
+  {                
+    Image image = null;
+    switch (type)
+    {
+      case IMPORTS_GROUP :
+      {    
+        image = WSDLEditorPlugin.getInstance().getImage("icons/importheader_obj.gif"); //$NON-NLS-1$
+        break;
+      }
+      case MESSAGES_GROUP :
+      {    
+        image = WSDLEditorPlugin.getInstance().getImage("icons/messageheader_obj.gif"); //$NON-NLS-1$
+        break;
+      }
+      case SERVICES_GROUP :
+      {
+        image = WSDLEditorPlugin.getInstance().getImage("icons/serviceheader_obj.gif"); //$NON-NLS-1$
+        break;
+      }
+      case PORT_TYPES_GROUP :
+      {                   
+        image = WSDLEditorPlugin.getInstance().getImage("icons/porttypeheader_obj.gif"); //$NON-NLS-1$
+        break;
+      }
+      case BINDINGS_GROUP :
+      {                   
+        image = WSDLEditorPlugin.getInstance().getImage("icons/bindingheader_obj.gif"); //$NON-NLS-1$
+        break;
+      }    
+      case TYPES_GROUP :
+      {                   
+        image = WSDLEditorPlugin.getInstance().getImage("icons/types_obj.gif"); //$NON-NLS-1$
+        break;
+      } 
+      case EXTENSIBILITY_ELEMENTS_GROUP:
+      {
+        image = WSDLEditorPlugin.getInstance().getImage("icons/fldr_el.gif"); //$NON-NLS-1$
+        break;
+      }
+    }  
+    return image;
+  }   
+
+
+  // implement ModelAdapter                                                             
+  public void addListener(ModelAdapterListener listener)
+  {
+    if (!listenerList.contains(listener))
+    {
+      listenerList.add(listener);
+    }
+  }   
+
+  public void removeListener(ModelAdapterListener listener)
+  {
+    listenerList.remove(listener);
+  } 
+
+
+  public Object getProperty(Object modelObject, String propertyName)
+  {       
+    Object result = null;
+    if (propertyName.equals(CHILDREN_PROPERTY))
+    {
+      result = getChildren();      
+    }                    
+    else if (propertyName.equals(LABEL_PROPERTY))
+    {
+      result = getLabel();      
+    }    
+    else if (propertyName.equals(IMAGE_PROPERTY))
+    {
+      result = getImage();      
+    }       
+    return result;
+  }
+
+
+  public  void firePropertyChanged(Object notifier, String property)
+  {                       
+    List list = new ArrayList();
+    list.addAll(listenerList);
+    for (Iterator i = list .iterator(); i.hasNext(); )
+    {
+      ModelAdapterListener listener = (ModelAdapterListener)i.next();
+      listener.propertyChanged(notifier, property);
+    }
+  } 
+   
+
+  public List getChildren()
+  {
+    List list = Collections.EMPTY_LIST;
+              
+    ComponentReferenceUtil util = new ComponentReferenceUtil(definition);
+    switch (getType())
+    {
+      case WSDLGroupObject.IMPORTS_GROUP : 
+      {   
+        list = definition.getEImports();
+        break;
+      }
+      case WSDLGroupObject.MESSAGES_GROUP : 
+      {
+        try
+        {
+          list = sortMessages(util.getMessages());
+        }
+        catch(Exception e)
+        {
+          list = util.getMessages();
+        }  
+        break;
+      }
+      case WSDLGroupObject.SERVICES_GROUP : 
+      {
+        list = util.getServices();
+        break;
+      }
+      case WSDLGroupObject.PORT_TYPES_GROUP : 
+      {       
+        list = util.getPortTypes();
+        break;
+      }
+      case WSDLGroupObject.BINDINGS_GROUP : 
+      {
+        list = util.getBindings();
+        break;
+      }
+      case WSDLGroupObject.TYPES_GROUP : 
+      {                     
+        Object types = definition.getETypes();
+        if (types != null)                                                   
+        {
+          list = (List)modelAdapterFactory.getAdapter(types).getProperty(types, ModelAdapter.CHILDREN_PROPERTY);
+        }
+        break;
+      }     
+      case WSDLGroupObject.EXTENSIBILITY_ELEMENTS_GROUP:
+      {
+        list = WSDLEditorUtil.getInstance().getExtensibilityElementNodes(definition);
+        break;
+      }
+    }   
+    return list;
+  }
+  
+  private List initialSort(List inputList) {
+  	List messageGroups = new ArrayList();
+  	Iterator iterator = inputList.iterator();
+  	
+  	while (iterator.hasNext()) {
+  		Message newMessage = (Message) iterator.next();
+  		
+  		boolean messageAdded = false;
+  		for (int index = 0; index < messageGroups.size(); index++) {
+  			MessageGroup messageItem = (MessageGroup) messageGroups.get(index);
+  			
+  			if(messageItem.addMessage(newMessage)) {
+  				messageAdded = true;
+  				break;
+  			}
+  		}
+  		
+  		// Do we need to create a new MessageGroup object?
+  		if (!messageAdded) {
+  			MessageGroup msGroup = new MessageGroup(newMessage.getQName().getLocalPart());
+			msGroup.addMessage(newMessage);
+  			messageGroups.add(msGroup);
+  		}
+  	}
+
+  	return messageGroups;
+  }
+  
+  private List buildMessageList(List list) {
+  	List sortedMessageList = new ArrayList();
+  	
+  	Iterator iterator = list.iterator();
+  	while (iterator.hasNext()) {
+  		MessageGroup mGroup = (MessageGroup) iterator.next();
+  		sortedMessageList.addAll(mGroup.getMessages());
+  	}
+  	
+  	return sortedMessageList;
+  }
+
+  private List sortMessages(List inputList) {
+  	List sortedList = new ArrayList();
+  	sortedList.addAll(inputList);
+  	
+  	// Get a sorted list of MessageGroups
+  	sortedList = initialSort(inputList);
+
+  	Collections.sort(sortedList, new Comparator() {
+  		public int compare(Object o1, Object o2) {
+  			String name1 = ((MessageGroup) o1).getBaseName();
+  			String name2 = ((MessageGroup) o2).getBaseName();
+  			
+  			return name1.compareToIgnoreCase(name2);
+      	}  	
+  	});
+  	
+  	sortedList = buildMessageList(sortedList);
+  	return sortedList;
+  }
+  
+  private class MessageGroup {
+  	private String baseName;
+  	private Vector messages;
+  	
+  	public MessageGroup(String name) {
+  		this.baseName = computeBaseName(name);
+  		messages = new Vector();
+  	}
+  	
+  	public boolean addMessage(Message newMessage) {
+  		// do check if it belongs here?......
+  		String newMessageBaseName = computeBaseName(newMessage.getQName().getLocalPart());
+  		
+  		if (newMessageBaseName.equalsIgnoreCase(getBaseName())) {
+  			addToSortedList(newMessage);
+  			
+  			return true;
+  		}
+  		
+  		return false;
+  	}
+  	
+  	public Vector getMessages() {
+  		return messages;
+  	}
+  	
+  	public String getBaseName() {
+  		return baseName;
+  	}
+  	
+  	private int getFirstInstance(String subString) {
+  		for (int index = 0; index < messages.size(); index++) {
+  			Message message = (Message) messages.get(index);
+  			String messageName = message.getQName().getLocalPart();
+  			
+  			if (messageName.indexOf(subString, 1) > 0) {
+  				return index;
+  			}
+  		}
+  		  		
+  		return -1;
+  	}
+  	
+  	private void addToSortedList(Message message) {
+  		// We need to add the new Message in the right position
+  		int index = -1;
+  		String name = message.getQName().getLocalPart();
+  		if (name.indexOf("Request", 1) > 0) {
+  			// Add after first instance of 'Response'
+  			index = getFirstInstance("Response");
+  		}
+  		else if (name.indexOf("Response", 1) > 0) {
+  			// Add after first instance of 'Request'
+  			index = getFirstInstance("Request");
+  			if (index >= 0)
+  				index++;
+  		}
+  		
+  		if (index >= 0) {
+  			messages.add(index, message);
+  		}
+  		else {
+  			messages.add(message);
+  		}
+  	}
+  	
+  	private String computeBaseName(String name) {
+  		int resReqIndex = name.indexOf("Request", 1);
+  		int resReqLength;
+  		if (resReqIndex == -1) {
+  			resReqIndex = name.indexOf("Response", 1);
+  			resReqLength = "Response".length();
+  		}
+  		else {
+  			resReqLength = "Request".length();
+  		}
+  				
+  		// Did we even find a Request/Response in both strings?
+  		if (resReqIndex != -1) {
+  			return name.substring(0, resReqIndex) + name.substring(resReqIndex + resReqLength, name.length());
+  		}
+  		else {  		
+  			return name;
+  		}
+  	}
+  }  
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/model/WSDLModelAdapterFactory.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/model/WSDLModelAdapterFactory.java
new file mode 100644
index 0000000..8325e9e
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/model/WSDLModelAdapterFactory.java
@@ -0,0 +1,1238 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.model;
+        
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.wsdl.OperationType;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+import org.eclipse.emf.common.notify.impl.AdapterImpl;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.wst.wsdl.Binding;
+import org.eclipse.wst.wsdl.BindingFault;
+import org.eclipse.wst.wsdl.BindingInput;
+import org.eclipse.wst.wsdl.BindingOperation;
+import org.eclipse.wst.wsdl.BindingOutput;
+import org.eclipse.wst.wsdl.Definition;
+import org.eclipse.wst.wsdl.ExtensibilityElement;
+import org.eclipse.wst.wsdl.ExtensibleElement;
+import org.eclipse.wst.wsdl.Fault;
+import org.eclipse.wst.wsdl.Import;
+import org.eclipse.wst.wsdl.Input;
+import org.eclipse.wst.wsdl.Message;
+import org.eclipse.wst.wsdl.Operation;
+import org.eclipse.wst.wsdl.Output;
+import org.eclipse.wst.wsdl.Part;
+import org.eclipse.wst.wsdl.Port;
+import org.eclipse.wst.wsdl.PortType;
+import org.eclipse.wst.wsdl.Service;
+import org.eclipse.wst.wsdl.Types;
+import org.eclipse.wst.wsdl.UnknownExtensibilityElement;
+import org.eclipse.wst.wsdl.WSDLElement;
+import org.eclipse.wst.wsdl.internal.impl.OperationImpl;
+import org.eclipse.wst.wsdl.internal.util.WSDLSwitch;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.eclipse.wst.wsdl.ui.internal.extension.ITreeChildProvider;
+import org.eclipse.wst.wsdl.ui.internal.util.WSDLEditorUtil;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+
+public class WSDLModelAdapterFactory implements ModelAdapterFactory
+{                                      
+  protected static WSDLModelAdapterFactory wsdlModelAdapterFactoryInstance;
+
+  public AdapterFactory adapterFactory;
+                       
+  public WSDLModelAdapterFactory()
+  {
+    adapterFactory = createAdapterFactory();
+  }   
+                                                 
+  protected boolean isExtensibilityElementConsideredChild()
+  {
+    return true;
+  }
+
+  protected void addExtensiblityElementChildren(List list, ExtensibleElement extensibleElement)
+  {
+    if (isExtensibilityElementConsideredChild())
+    {
+      //list.addAll(WSDLEditorUtil.getInstance().getExtensibilityElementNodes(extensibleElement));
+      list.addAll(WSDLEditorUtil.getInstance().getExtensibilityElementNodes(extensibleElement));
+    }
+  }
+
+  public static WSDLModelAdapterFactory getWSDLModelAdapterFactory()
+  {                
+    if (wsdlModelAdapterFactoryInstance == null)
+    {
+      wsdlModelAdapterFactoryInstance = new WSDLModelAdapterFactory();
+    }
+    return wsdlModelAdapterFactoryInstance;
+  }  
+    
+
+  protected AdapterFactory createAdapterFactory()
+  {
+    return new WSDLAdapterFactoryImpl();
+  }            
+
+
+  public ModelAdapter getAdapter(Object o)
+  {                             
+    ModelAdapter adapter = null;
+    if (o instanceof WSDLElement)                     
+    {
+      adapter = (ModelAdapter)adapterFactory.adapt((WSDLElement)o, adapterFactory);
+    }
+    else if (o instanceof WSDLGroupObject)
+    {           
+      adapter = (WSDLGroupObject)o;
+    }
+    return adapter;
+  }                                    
+
+  //
+  //
+  //
+  public class WSDLAdapterFactoryImpl extends AdapterFactoryImpl
+  {                     
+    public Adapter createAdapter(Notifier target)
+    {                     
+      WSDLSwitch wsdlSwitch = new WSDLSwitch()
+      {                   
+      	public Object caseWSDLElement(WSDLElement wsdlElement)
+        {   
+          // note that the WSDLSwitch doesn't handle 
+          // caseExtensibilityElement when the object
+          // comes from another package... that why
+          // we have an instanceof check here
+		  if (wsdlElement instanceof ExtensibilityElement)
+		  {	
+			return createExtensibilityElementAdapter();  
+		  }
+		  else
+		  {	  
+            return createWSDLElementAdapter();
+		  }	
+	    }   
+
+      	public Object caseBinding(Binding binding)
+        {   
+          return createBindingAdapter();
+	      } 
+
+      	public Object caseBindingFault(BindingFault bindingFault)
+        {   
+          return createBindingFaultAdapter();
+	      } 
+
+      	public Object caseBindingInput(BindingInput bindingInput)
+        {   
+          return createBindingInputAdapter();
+	      } 
+
+      	public Object caseBindingOutput(BindingOutput bindingOutput)
+        {   
+          return createBindingOutputAdapter();
+	      } 
+                           
+      	public Object caseBindingOperation(BindingOperation bindingOperation)
+        {   
+          return createBindingOperationAdapter();
+	      } 
+ 
+      	public Object caseDefinition(Definition definition)
+        {   
+          return createDefinitionAdapter();
+	      }           
+
+      	public Object caseFault(Fault fault)
+        {   
+          return createFaultAdapter();
+	      } 
+
+      	public Object caseImport(Import i)
+        {   
+          return createImportAdapter();
+	      } 
+
+      	public Object caseInput(Input input)
+        {   
+          return createInputAdapter();
+	      } 	
+
+      	public Object caseOutput(Output output)
+        {   
+          return createOutputAdapter();
+	      } 
+
+      	public Object caseMessage(Message message)
+        {   
+          return createMessageAdapter();
+	      }       
+
+      	public Object caseOperation(Operation operation)
+        {   
+          return createOperationAdapter();
+	      } 
+
+      	public Object casePart(Part part)
+        {   
+          return createPartAdapter();
+	      }  
+
+      	public Object casePort(Port port)
+        {   
+          return createPortAdapter();
+	      }  
+
+      	public Object casePortType(PortType portType)
+        {   
+          return createPortTypeAdapter();
+	      }  
+
+      	public Object caseService(Service service)
+        {   
+          return createServiceAdapter();
+	      }  
+
+      	public Object caseTypes(Types types)
+        {   
+          return createTypesAdapter();
+	    } 
+        
+		public Object defaultCase(EObject object)
+		{
+		  // note that the WSDLSwitch doesn't handle 
+          // caseExtensibilityElement when the object
+          // comes from another package... that why
+          // we have an instanceof check here
+		   if (object instanceof ExtensibilityElement)
+		   {	   
+	         return createExtensibilityElementAdapter();
+		   }
+		   else
+		   {
+			 return null;
+		   }	   
+        }
+      };   
+
+      Object o = wsdlSwitch.doSwitch((EObject)target);
+
+
+      Adapter result = null;
+      if (o instanceof Adapter)
+      {
+        result  = (Adapter)o;
+      }
+      else
+      {          
+        System.out.println("did not create adapter for target : " + target);
+        Thread.dumpStack();
+      }                   
+      return result;
+    }      
+                               
+  
+    public Adapter createWSDLElementAdapter()
+    {
+      return new WSDLElementAdapter();
+    }
+
+  	public Adapter createBindingAdapter()
+    {
+      return new BindingAdapter();
+    }   
+
+ 	  public Adapter createBindingFaultAdapter()
+    {                                      
+      return new BindingFaultAdapter();
+    }           
+
+ 	  public Adapter createBindingInputAdapter()
+    {                                      
+      return new BindingInputAdapter();
+    }
+
+    public Adapter createBindingOutputAdapter()
+    {
+      return new BindingOutputAdapter();
+	  } 
+                
+    public Adapter createBindingOperationAdapter()
+    {     
+      return new BindingOperationAdapter();
+    }
+          
+  	public Adapter createDefinitionAdapter() 
+    {
+		  return new DefinitionAdapter();
+	  }
+
+  	public Adapter createFaultAdapter() 
+    {
+		  return new FaultAdapter();
+	  }
+
+  	public Adapter createImportAdapter() 
+    {
+		  return new ImportAdapter();
+	  }
+
+  	public Adapter createInputAdapter() 
+    {
+		  return new InputAdapter();
+	  }
+
+  	public Adapter createMessageAdapter() 
+    {
+		  return new MessageAdapter();
+	  }
+
+
+  	public Adapter createOperationAdapter() 
+    {
+		  return new OperationAdapter();
+	  }
+
+  	public Adapter createOutputAdapter() 
+    {
+		  return new OutputAdapter();
+	  }
+
+  	public Adapter createPartAdapter() 
+    {
+		  return new PartAdapter();
+	  }
+
+  	public Adapter createPortAdapter() 
+    {
+		  return new PortAdapter();
+	  }
+
+  	public Adapter createPortTypeAdapter() 
+    {
+		  return new PortTypeAdapter();
+	  }
+
+  	public Adapter createServiceAdapter() 
+    {                    
+		  return new ServiceAdapter();
+	  } 
+
+  	public Adapter createTypesAdapter() 
+    {                    
+		  return new TypesAdapter();
+	  } 
+    
+    public Adapter createExtensibilityElementAdapter()
+    {
+      return new ExtensibilityElementAdapter();
+    }
+
+	
+    // convenience method
+    //
+    public Adapter adapt(Notifier target)
+    {
+      return adapt(target, this);
+    }
+  }
+    
+  //
+  //
+  //
+  protected class WSDLElementAdapter extends AdapterImpl implements ModelAdapter
+  {   
+    protected List listenerList = new ArrayList();
+
+
+    public WSDLElementAdapter()
+    {
+    }  
+                                 
+    public boolean isAdapterForType(Object type)
+    {
+      return type == adapterFactory;
+    }                                             
+
+    public void addListener(ModelAdapterListener listener)
+    {
+      if (!listenerList.contains(listener))
+      {
+        listenerList.add(listener);
+      }  
+    }  
+
+    public void removeListener(ModelAdapterListener listener)
+    {
+      if (listenerList.contains(listener))
+      {
+        listenerList.remove(listener);
+      }
+    } 
+
+    public void firePropertyChanged(Object notifier, String property)
+    {         
+      List list = new ArrayList();
+      list.addAll(listenerList);               
+      for (Iterator i = list.iterator(); i.hasNext(); )
+      {
+        ModelAdapterListener listener = (ModelAdapterListener)i.next();
+        listener.propertyChanged(getTarget(), property);
+      }
+    }   
+
+    public void notifyChanged(Notification msg)
+    {                        
+      if (msg.getEventType() != Notification.RESOLVE)
+      {        
+        firePropertyChanged(msg.getNotifier(), null);
+      }
+    }  
+
+       
+    public Object getProperty(Object modelObject, String propertyName)
+    {           
+      Object result = null;
+      if (propertyName.equals(CHILDREN_PROPERTY))
+      {
+        result = getChildren();      
+      }                    
+      else if (propertyName.equals(LABEL_PROPERTY))
+      {
+        result = getLabel();      
+      }                    
+      else if (propertyName.equals(IMAGE_PROPERTY))
+      {
+        result = getImage();
+      } 
+      else if (propertyName.equals("extensibilityElements"))
+      { 
+        if (modelObject instanceof ExtensibleElement)
+        {
+          result = WSDLEditorUtil.getInstance().getExtensibilityElementNodes((ExtensibleElement)modelObject);
+        }
+      } 
+      else if (propertyName.equals("isReadOnly"))
+      {
+      	Element element = WSDLEditorUtil.getInstance().getElementForObject(target); 
+     	  result = (element instanceof IDOMNode) ? Boolean.FALSE : Boolean.TRUE;    
+      }
+      return result;
+    } 
+
+    protected List getChildren()
+    {
+      return Collections.EMPTY_LIST;
+    }                        
+
+    protected String getLabel()
+    {  
+      return "todo";
+    }
+
+    protected Image getImage()
+    {
+      return null;
+    }                       
+  }                     
+  
+
+  protected class BindingAdapter extends WSDLElementAdapter
+  {                
+    protected Binding binding;
+                         
+    public void setTarget(Notifier newTarget) 
+    {
+      super.setTarget(newTarget);
+      this.binding = (Binding)newTarget;
+    }
+                                                      
+    protected List getChildren()
+    {                  
+      List list = new ArrayList();                 
+      addExtensiblityElementChildren(list, binding);
+      List operationsList = binding.getEBindingOperations();
+      List tempList = new ArrayList();
+      tempList.addAll(operationsList);
+      
+      Collections.sort(tempList, new Comparator() {
+    	public int compare(Object o1, Object o2) {
+    		String s1 = ((BindingOperation) o1).getName();
+    		String s2 = ((BindingOperation) o2).getName();
+    		
+    		if (s1 == null) {
+    			s1 = "";
+    		}
+    		if (s2 == null) {
+    			s2 = "";
+    		}
+
+      		return s1.compareToIgnoreCase(s2);
+      	}
+      });
+      
+      list.addAll(tempList);
+      
+      return list;
+    }     
+
+    protected String getLabel()
+    {  
+      return binding.getQName().getLocalPart();
+    }
+
+    protected Image getImage()
+    {
+      return WSDLEditorPlugin.getInstance().getImage("icons/binding_obj.gif");
+    }                             
+  }  
+    
+
+  protected class BindingFaultAdapter extends WSDLElementAdapter
+  {                
+    protected BindingFault bindingFault;
+                         
+    public void setTarget(Notifier newTarget) 
+    {
+      super.setTarget(newTarget);
+      this.bindingFault = (BindingFault)newTarget;
+    }
+                                                      
+    protected List getChildren()
+    {                  
+      List list = new ArrayList();    
+      addExtensiblityElementChildren(list, bindingFault);
+      return list;
+    }     
+
+    protected String getLabel()
+    {  
+      return bindingFault.getName();
+    }
+
+    protected Image getImage()
+    {
+      return WSDLEditorPlugin.getInstance().getImage("icons/fault_obj.gif");
+    }               
+  } 
+
+
+  protected class BindingInputAdapter extends WSDLElementAdapter
+  {                
+    protected BindingInput bindingInput;
+                         
+    public void setTarget(Notifier newTarget) 
+    {
+      super.setTarget(newTarget);
+      this.bindingInput = (BindingInput)newTarget;
+    }
+                                                      
+    protected List getChildren()
+    {                  
+      List list = new ArrayList();    
+      addExtensiblityElementChildren(list, bindingInput);
+      return list;
+    }     
+
+    protected String getLabel()
+    {  
+      return "input";
+    }
+
+    protected Image getImage()
+    {
+      return WSDLEditorPlugin.getInstance().getImage("icons/input_obj.gif");
+    }                             
+  }  
+
+ 
+  protected class BindingOutputAdapter extends WSDLElementAdapter
+  {                
+    protected BindingOutput bindingOutput;
+                         
+    public void setTarget(Notifier newTarget) 
+    {
+      super.setTarget(newTarget);
+      this.bindingOutput = (BindingOutput)newTarget;
+    }
+                                                      
+    protected List getChildren()
+    {                  
+      List list = new ArrayList();    
+      addExtensiblityElementChildren(list, bindingOutput);
+      return list;
+    }     
+
+    protected String getLabel()
+    {  
+      return "output";
+    }
+
+    protected Image getImage()
+    {
+      return WSDLEditorPlugin.getInstance().getImage("icons/output_obj.gif");
+    }    
+  }  
+                              
+
+  protected class BindingOperationAdapter extends WSDLElementAdapter
+  {                
+    protected BindingOperation bindingOperation;
+                         
+    public void setTarget(Notifier newTarget) 
+    {
+      super.setTarget(newTarget);
+      this.bindingOperation = (BindingOperation)newTarget;
+    }
+                                                      
+    protected List getChildren()
+    {                  
+      List list = new ArrayList();         
+                  
+      addExtensiblityElementChildren(list, bindingOperation); 
+
+      if (bindingOperation.getBindingInput() != null)
+      {
+        list.add(bindingOperation.getBindingInput());
+      }
+      if (bindingOperation.getBindingOutput() != null)
+      {
+        list.add(bindingOperation.getBindingOutput());
+      }                             
+      list.addAll(bindingOperation.getEBindingFaults());
+      
+      return list;
+    }        
+                
+
+    protected String getLabel()
+    {  
+      return bindingOperation.getName();
+    }
+
+    protected Image getImage()
+    {
+      return WSDLEditorPlugin.getInstance().getImage("icons/operationbinding_obj.gif");
+    }               
+  }  
+
+  //
+  //
+  //
+  protected class DefinitionAdapter extends WSDLElementAdapter implements ModelAdapterListener
+  {                
+    protected List permanentWSDLGroupObjectList;
+    protected Definition definition;
+
+    protected WSDLGroupObject typesGroup;
+    protected WSDLGroupObject extensibilityElementsGroup;
+    protected Types types; 
+     
+    public void setTarget(Notifier newTarget) 
+    {
+      super.setTarget(newTarget);
+      this.definition = (Definition)newTarget;
+     
+      // this group is added and removed from the child list dynamically
+      // dependant on the presence of an 'actual' types element
+      //
+      typesGroup = new WSDLGroupObject(definition, WSDLGroupObject.TYPES_GROUP, getModelAdapterFactory());
+                                                          
+      // these groups always exist in the child list      
+      //
+      permanentWSDLGroupObjectList = new ArrayList();       
+      permanentWSDLGroupObjectList.add(new WSDLGroupObject(definition, WSDLGroupObject.IMPORTS_GROUP));
+      permanentWSDLGroupObjectList.add(typesGroup);  
+      permanentWSDLGroupObjectList.add(new WSDLGroupObject(definition, WSDLGroupObject.MESSAGES_GROUP));
+      permanentWSDLGroupObjectList.add(new WSDLGroupObject(definition, WSDLGroupObject.PORT_TYPES_GROUP));
+      permanentWSDLGroupObjectList.add(new WSDLGroupObject(definition, WSDLGroupObject.BINDINGS_GROUP));
+      permanentWSDLGroupObjectList.add(new WSDLGroupObject(definition, WSDLGroupObject.SERVICES_GROUP));
+      // we only add this group when it has content
+      //
+      extensibilityElementsGroup = new WSDLGroupObject(definition, WSDLGroupObject.EXTENSIBILITY_ELEMENTS_GROUP);
+
+      updateTypes();
+    }
+                                                      
+    protected List getChildren()
+    {       
+      List list = new ArrayList();
+      list.addAll(permanentWSDLGroupObjectList);   
+      //if (extensibilityElementsGroup.getChildren().size() > 0)
+      //{
+      list.add(extensibilityElementsGroup);
+      //}
+      return list;
+    }
+
+    public void notifyChanged(Notification msg)
+    {     
+      if (msg.getEventType() != Notification.RESOLVE)
+      {                           
+        updateTypes();
+        firePropertyChangedHelper();   
+      }
+    }        
+
+    protected void updateTypes()
+    {
+      if (types != definition.getETypes())
+      {
+        if (types != null)
+        {
+          removeModelAdapterListener(types, this);
+        }                                         
+        types = definition.getETypes();
+        if (types != null)
+        {
+          addModelAdapterListener(types, this);
+        }
+      }  
+    }
+
+    protected void firePropertyChangedHelper()
+    {                        
+      firePropertyChanged(getTarget(), null);
+
+      for (Iterator i = getChildren().iterator(); i.hasNext(); )
+      {                                                                              
+        ModelAdapter adapter = getAdapter(i.next());
+        adapter.firePropertyChanged(adapter, null);
+      }                                             
+    } 
+
+    // propagate changes to 'types' object
+    //
+    public void propertyChanged(Object object, String property)
+    {
+      typesGroup.firePropertyChanged(typesGroup, property);
+    } 
+
+    protected ModelAdapterFactory getModelAdapterFactory()
+    {
+      return getWSDLModelAdapterFactory();
+    }
+    
+    protected String getLabel()
+    {  
+      if (definition.getQName() != null) {
+    	  return definition.getQName().getLocalPart();
+      }
+      return "";
+    }
+
+    protected Image getImage()
+    {
+      return null;
+    }                       
+  }
+
+ 
+
+  protected class FaultAdapter extends WSDLElementAdapter
+  {                
+    protected Fault fault;
+                                    
+    public void setTarget(Notifier newTarget) 
+    {
+      super.setTarget(newTarget);
+      this.fault = (Fault)newTarget;
+    }
+                                                      
+    protected Image getImage()
+    {
+      return WSDLEditorPlugin.getInstance().getImage("icons/fault_obj.gif");
+    }   
+
+    protected String getLabel()
+    {  
+      return fault.getName();
+    }               
+  }   
+      
+
+  //
+  //
+  //
+  protected class ImportAdapter extends WSDLElementAdapter
+  {                
+    protected Import theImport;
+                         
+    public void setTarget(Notifier newTarget) 
+    {
+      super.setTarget(newTarget);
+      this.theImport = (Import)newTarget;
+    }
+                                                       
+    protected Image getImage()
+    {
+      return WSDLEditorPlugin.getInstance().getImage("icons/import_obj.gif");
+    }   
+
+    protected String getLabel()
+    {  
+      String result = theImport.getLocationURI();
+      if (result == null || result.length() == 0)
+      {
+      	result = WSDLEditorPlugin.getWSDLString("_UI_NO_IMPORT_SPECIFIED");
+      }
+      return result;
+    }               
+  } 
+
+
+  //
+  //
+  //
+  protected class InputAdapter extends WSDLElementAdapter
+  {                
+    protected Input input;
+                         
+    public void setTarget(Notifier newTarget) 
+    {
+      super.setTarget(newTarget);
+      this.input = (Input)newTarget;
+    }
+                                                       
+    protected Image getImage()
+    {
+      return WSDLEditorPlugin.getInstance().getImage("icons/input_obj.gif");
+    }   
+
+    protected String getLabel()
+    {  
+      return "input";
+    }               
+  }    
+
+   
+ 
+  //
+  //
+  //
+  protected class MessageAdapter extends WSDLElementAdapter
+  {                
+    protected Message message;
+                         
+    public void setTarget(Notifier newTarget) 
+    {
+      super.setTarget(newTarget);
+      this.message = (Message)newTarget;
+    }
+                                                      
+    protected List getChildren()
+    {
+      List list = new ArrayList();
+      list.addAll(message.getEParts());
+      return list;
+    }                        
+
+    protected String getLabel()
+    {  
+      if (message.getQName() == null) return ""; // revisit...it shouldn't be null 
+      return message.getQName().getLocalPart();
+    
+    }
+
+    protected Image getImage()
+    {
+      return WSDLEditorPlugin.getInstance().getImage("icons/message_obj.gif");
+    }
+  }
+
+
+  //
+  //
+  //
+  protected class OutputAdapter extends WSDLElementAdapter
+  {                
+    protected Output output;
+                         
+    public void setTarget(Notifier newTarget) 
+    {
+      super.setTarget(newTarget);
+      this.output = (Output)newTarget;
+    }                     
+        
+    protected String getLabel()
+    {  
+      return "output";
+    }
+
+    protected Image getImage()
+    {
+      return WSDLEditorPlugin.getInstance().getImage("icons/output_obj.gif");
+    }                                                        
+  }  
+
+  //
+  //
+  //
+  protected class OperationAdapter extends WSDLElementAdapter
+  {                
+    protected Operation operation;
+                         
+    public void setTarget(Notifier newTarget) 
+    {
+      super.setTarget(newTarget);
+      this.operation = (Operation)newTarget;
+    }
+                                                      
+    protected List getChildren()
+    {                  
+      List list = new ArrayList();
+      Input input = operation.getEInput();
+      Output output = operation.getEOutput();
+      
+      OperationType operationType = ((OperationImpl) operation).getStyle();
+      if (operationType != null) {
+      	if (operationType.equals(OperationType.REQUEST_RESPONSE) && input != null && output != null) {
+      		// Input, Output
+      		list.add(input);
+      		list.add(output);
+      	}
+      	else if (operationType.equals(OperationType.SOLICIT_RESPONSE) && input != null && output != null) {
+      		// Output, Input
+      		list.add(output);
+      		list.add(input);
+      	}
+      	else if (operationType.equals(OperationType.ONE_WAY) && input != null) {
+      		// Input
+      		list.add(input);
+      	}
+      	else if (operationType.equals(OperationType.NOTIFICATION) && output != null) {
+      		//Output
+      		list.add(output);
+      	}
+      }
+      list.addAll(operation.getFaults().values());
+      
+      return list;
+    }
+      
+//	private int getNodeIndex(NodeList nodeList, Node node) {
+//		int index = 0;
+//		while (index < nodeList.getLength() && !(nodeList.item(index).equals(node))) {
+//			index++;
+//		}
+//		
+//		if (index >= nodeList.getLength()) {
+//			index = -1;
+//		}
+//		
+//		return index;
+//	}
+
+    protected String getLabel()
+    {  
+      return operation.getName();
+    }
+
+    protected Image getImage()
+    {
+      return WSDLEditorPlugin.getInstance().getImage("icons/operation_obj.gif");
+    }               
+  }  
+   
+
+  //
+  //
+  //
+  protected class PartAdapter extends WSDLElementAdapter
+  {                
+    protected Part part;
+                         
+    public void setTarget(Notifier newTarget) 
+    {
+      super.setTarget(newTarget);
+      this.part = (Part)newTarget;
+    }                                                       
+
+    protected String getLabel()
+    {
+      return part.getName();
+    }
+
+    protected Image getImage()
+    {
+      return WSDLEditorPlugin.getInstance().getImage("icons/part_obj.gif");
+    }                             
+  }     
+
+  //
+  //
+  //
+  protected class PortAdapter extends WSDLElementAdapter implements ModelAdapterListener
+  {                
+    protected Port port;
+                         
+    public void setTarget(Notifier newTarget) 
+    {
+      super.setTarget(newTarget);
+      this.port = (Port)newTarget;
+    }
+                                                                             
+    protected String getLabel()
+    {  
+      return port.getName();
+    }
+
+    protected Image getImage()
+    {                                
+      return WSDLEditorPlugin.getInstance().getImage("icons/port_obj.gif");
+    }    
+
+    protected List getChildren()
+    {
+      return WSDLEditorUtil.getInstance().getExtensibilityElementNodes(port);  
+    }
+    // propagate changes to the binding object
+    //
+    public void propertyChanged(Object object, String property)
+    {
+      firePropertyChanged(port, property);
+    }
+  } 
+     
+  protected class ExtensibilityElementAdapter extends WSDLElementAdapter implements ModelAdapterListener
+  {                
+    protected ExtensibilityElement ee;
+                         
+    public void setTarget(Notifier newTarget) 
+    {
+      super.setTarget(newTarget);
+      this.ee = (ExtensibilityElement)newTarget;
+    }
+                                                                             
+    protected String getLabel()
+    {  
+      String result = null;
+      Node node = (Node) ee.getElement();
+
+      ILabelProvider labelProvider = getExtensibilityLabelProvider(node);
+      if (labelProvider != null)
+      {
+        result = labelProvider.getText(node);
+      }
+
+      if (result == null)
+      {
+        result = node.getNodeName();
+      }
+      return result;
+    }
+
+    protected Image getImage()
+    {                                
+      Image image = null;
+      Node node = (Node) ee.getElement();
+
+      ILabelProvider labelProvider = getExtensibilityLabelProvider(node);
+      if (labelProvider != null)
+      {
+        image = labelProvider.getImage(node);
+      }
+
+      if (image == null)
+      {
+        image = WSDLEditorPlugin.getInstance().getImage("icons/element_obj.gif");
+      }
+      return image;
+    }    
+
+    protected List getChildren()
+    {
+      List list = null;	  
+	  //TODO... we need to push getChildren down the ExtensiblityElement
+	  // for now let's just cast to UnkownExtensiblityElement
+	  if (ee instanceof UnknownExtensibilityElement)
+      {
+        list = ((UnknownExtensibilityElement)ee).getChildren();
+      }
+      return list; 
+    }
+
+    public void propertyChanged(Object object, String property)
+    {
+      firePropertyChanged(ee, property);
+    }
+    
+    protected ILabelProvider getExtensibilityLabelProvider(Node node)
+    {
+      ILabelProvider result = null;
+      String namespaceURI = node.getNamespaceURI();
+      if (namespaceURI != null)
+      {
+        result = WSDLEditorPlugin.getInstance().getExtensibilityItemTreeProviderRegistry().getLabelProvider(namespaceURI);
+      }
+      return result;
+    }
+    
+    protected ITreeChildProvider getExtensibilityContentProvider(Node node)
+    {
+      ITreeChildProvider result = null;
+      String namespaceURI = node.getNamespaceURI();
+      if (namespaceURI != null)
+      {
+        result = WSDLEditorPlugin.getInstance().getExtensibilityItemTreeProviderRegistry().getContentProvider(namespaceURI);
+      }
+      return result;
+    }
+
+    boolean isReadOnly()
+    {
+      return true;
+    }
+  } 
+
+
+  //
+  //
+  //
+  protected class PortTypeAdapter extends WSDLElementAdapter
+  {                
+    protected PortType portType;
+                         
+    public void setTarget(Notifier newTarget) 
+    {
+      super.setTarget(newTarget);
+      this.portType = (PortType)newTarget;
+    }
+                                                      
+    protected List getChildren()
+    {                  
+      List list = new ArrayList();
+      list.addAll(portType.getOperations());
+      
+      Collections.sort(list, new Comparator()
+      {
+        public int compare(Object o1, Object o2)
+        {
+          String o1Name = ((Operation) o1).getName();
+          String o2Name = ((Operation) o2).getName();
+          if (o1Name == null) o1Name = "";
+          if (o2Name == null) o2Name = "";
+          return (o1Name.compareToIgnoreCase(o2Name));
+        }
+      });
+      return list; 
+    }                    
+      
+    protected String getLabel()
+    {  
+      return portType.getQName().getLocalPart();
+    }
+
+    protected Image getImage()
+    {
+      return WSDLEditorPlugin.getInstance().getImage("icons/porttype_obj.gif");
+    }
+  } 
+     
+
+  protected class ServiceAdapter extends WSDLElementAdapter
+  {                
+    protected Service service;
+                         
+    public void setTarget(Notifier newTarget) 
+    {
+      super.setTarget(newTarget);
+      this.service = (Service)newTarget;
+    }
+                                                      
+    protected List getChildren()
+    {                  
+      List list = new ArrayList();
+      list.addAll(service.getEPorts());
+      return list; 
+    }                    
+      
+    protected String getLabel()
+    {  
+      return service.getQName().getLocalPart();
+    }
+
+    protected Image getImage()
+    {
+      return WSDLEditorPlugin.getInstance().getImage("icons/service_obj.gif");
+    }   
+  } 
+     
+  //
+  //
+  //
+  public class TypesAdapter extends WSDLElementAdapter
+  {
+    protected Types types; 
+                         
+    public void setTarget(Notifier newTarget) 
+    {
+      super.setTarget(newTarget);
+      this.types = (Types)newTarget;
+    }
+                                                      
+    protected List getChildren()
+    {                  
+      List list = new ArrayList();  
+      list.addAll(WSDLEditorUtil.getInstance().getExtensibilityElementNodes(types));
+      return list; 
+    }                    
+      
+    protected String getLabel()
+    {  
+      return "Types";
+    }
+
+    protected Image getImage()
+    {
+      return WSDLEditorPlugin.getInstance().getImage("icons/types_obj.gif");
+    }                                                                                      
+  }
+  
+  public static void addModelAdapterListener(Object modelObject, ModelAdapterListener listener)
+  {                                                               
+// TODO: port check
+    ModelAdapter adapter = getWSDLModelAdapterFactory().getAdapter(modelObject);
+//    ModelAdapter adapter = EcoreUtil.getAdapter(getWSDLModelAdapterFactory().eAdapters(),modelObject);
+    if (adapter != null)
+    {
+      adapter.addListener(listener);
+    }
+  }    
+
+  public static void removeModelAdapterListener(Object modelObject, ModelAdapterListener listener)
+  {                                                            
+// TODO: port check
+    ModelAdapter adapter = getWSDLModelAdapterFactory().getAdapter(modelObject);
+//    ModelAdapter adapter = EcoreUtil.getAdapter(getWSDLModelAdapterFactory().eAdapters(),modelObject);
+    if (adapter != null)
+    {
+      adapter.removeListener(listener);
+    }
+  }            
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/dialogs/EditNamespacesDialog.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/nsedit/EditNamespacesDialog.java
similarity index 96%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/dialogs/EditNamespacesDialog.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/nsedit/EditNamespacesDialog.java
index ad4eba5..60536f7 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/dialogs/EditNamespacesDialog.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/nsedit/EditNamespacesDialog.java
@@ -1,14 +1,14 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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.dialogs;
+package org.eclipse.wst.wsdl.ui.internal.nsedit;
 
 import java.util.List;
 
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/outline/ExtensibleOutlineProvider.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/outline/ExtensibleOutlineProvider.java
new file mode 100644
index 0000000..ac204bf
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/outline/ExtensibleOutlineProvider.java
@@ -0,0 +1,185 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.outline;
+
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.wst.wsdl.Definition;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditor;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.eclipse.wst.wsdl.ui.internal.extension.WSDLEditorExtension;
+import org.eclipse.wst.wsdl.ui.internal.extension.WSDLEditorExtensionRegistry;
+import org.eclipse.wst.wsdl.ui.internal.text.WSDLModelAdapter;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
+
+
+public class ExtensibleOutlineProvider implements ITreeContentProvider, ILabelProvider {
+	protected WSDLEditorExtension[] treeContentProviderExtensions;
+	protected ITreeContentProvider[] treeContentProviders;
+
+	protected WSDLEditorExtension[] labelProviderExtensions;
+	protected ILabelProvider[] labelProviders;
+
+	protected final static Object[] EMPTY_ARRAY = {};
+
+	public ExtensibleOutlineProvider(WSDLEditor wsdlEditor) {
+		WSDLEditorExtensionRegistry registry = WSDLEditorPlugin.getInstance().getWSDLEditorExtensionRegistry();
+
+		treeContentProviderExtensions = registry.getRegisteredExtensions(WSDLEditorExtension.OUTLINE_TREE_CONTENT_PROVIDER);
+		treeContentProviders = new ITreeContentProvider[treeContentProviderExtensions.length];
+		for (int i = 0; i < treeContentProviderExtensions.length; i++) {
+			treeContentProviders[i] = (ITreeContentProvider) treeContentProviderExtensions[i].createExtensionObject(WSDLEditorExtension.OUTLINE_TREE_CONTENT_PROVIDER, wsdlEditor);
+		}
+
+		labelProviderExtensions = registry.getRegisteredExtensions(WSDLEditorExtension.OUTLINE_LABEL_PROVIDER);
+		labelProviders = new ILabelProvider[labelProviderExtensions.length];
+		for (int i = 0; i < labelProviderExtensions.length; i++) {
+			labelProviders[i] = (ILabelProvider) labelProviderExtensions[i].createExtensionObject(WSDLEditorExtension.OUTLINE_LABEL_PROVIDER, wsdlEditor);
+		}
+	}
+
+
+	protected ITreeContentProvider getApplicableTreeContentProvider(Object object) {
+		ITreeContentProvider provider = null;
+		for (int i = 0; i < treeContentProviderExtensions.length; i++) {
+			if (treeContentProviderExtensions[i].isApplicable(object)) {
+				provider = treeContentProviders[i];
+				if (provider != null) {
+					break;
+				}
+			}
+		}
+		return provider;
+	}
+
+
+	protected ILabelProvider getApplicableLabelProvider(Object object) {
+		ILabelProvider provider = null;
+		for (int i = 0; i < labelProviderExtensions.length; i++) {
+			if (labelProviderExtensions[i].isApplicable(object)) {
+				provider = labelProviders[i];
+				if (provider != null) {
+					break;
+				}
+			}
+		}
+		return provider;
+	}
+
+	// implements ITreeContentProvider
+	//
+	public Object[] getChildren(Object parentElement) {
+		ITreeContentProvider provider = getApplicableTreeContentProvider(parentElement);
+		// System.out.println("getElements " + provider);
+		return provider != null ? provider.getChildren(parentElement) : EMPTY_ARRAY;
+	}
+
+	public Object getParent(Object element) {
+		ITreeContentProvider provider = getApplicableTreeContentProvider(element);
+		return provider != null ? provider.getParent(element) : null;
+	}
+
+	public boolean hasChildren(Object element) {
+		ITreeContentProvider provider = getApplicableTreeContentProvider(element);
+		return provider != null ? provider.hasChildren(element) : false;
+	}
+
+	public Object[] getElements(Object inputElement) {
+		// inputElement is initially a structured model, so turn it into a
+		// definition
+		Definition definition = getDefinition(inputElement);
+		ITreeContentProvider provider = getApplicableTreeContentProvider(definition);
+		// System.out.println("getElements " + provider);
+		return provider != null ? provider.getElements(definition) : EMPTY_ARRAY;
+	}
+
+	public void dispose() {
+		// TODO... call dispose dispose the created label and content
+		// providers
+		
+		for (int i = 0; i < treeContentProviders.length; i++) {
+			treeContentProviders[i].dispose();
+		}
+
+		for (int i = 0; i < labelProviderExtensions.length; i++) {
+			labelProviders[i].dispose();
+		}		
+	}
+
+	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+		Definition definition = getDefinition(newInput);
+		for (int i = 0; i < treeContentProviders.length; i++) {
+			treeContentProviders[i].inputChanged(viewer, oldInput, definition);
+		}
+	}
+
+	// implements ILabelProvider
+	//
+	public Image getImage(Object element) {
+		ILabelProvider provider = getApplicableLabelProvider(element);
+		return provider != null ? provider.getImage(element) : null;
+	}
+
+	public String getText(Object element) {
+		String result = null;
+		if (element != null) {
+			ILabelProvider provider = getApplicableLabelProvider(element);
+			result = provider != null ? provider.getText(element) : (element.toString() + "noProviderForClass=" + element.getClass().getName());
+		}
+		return result != null ? result : "";
+	}
+
+	public void addListener(ILabelProviderListener listener) {
+	}
+
+	public void removeListener(ILabelProviderListener listener) {
+	}
+
+	public boolean isLabelProperty(Object element, String property) {
+		return false;
+	}
+
+	/**
+	 * Gets the definition from model
+	 * 
+	 * @param model
+	 *            (of type Object but really should be IStructuredModel)
+	 * @return Definition
+	 */
+	private Definition getDefinition(Object model) {
+		Definition definition = null;
+
+		if (model instanceof IDOMModel) {
+			IDOMDocument domDoc = ((IDOMModel) model).getDocument();
+			if (domDoc != null) {
+				WSDLModelAdapter modelAdapter = (WSDLModelAdapter) domDoc.getAdapterFor(WSDLModelAdapter.class);
+
+				/*
+				 * ISSUE: if adapter does not already exist for domDoc
+				 * getAdapterFor will create one. So why is this null
+				 * check/creation needed?
+				 */
+				if (modelAdapter == null) {
+					modelAdapter = new WSDLModelAdapter();
+					domDoc.addAdapter(modelAdapter);
+					modelAdapter.createDefinition(domDoc.getDocumentElement(), domDoc);
+				}
+
+				definition = modelAdapter.getDefinition();
+			}
+		}
+		return definition;
+	}
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/label/providers/HTTPLabelProvider.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/outline/HTTPLabelProvider.java
similarity index 93%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/label/providers/HTTPLabelProvider.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/outline/HTTPLabelProvider.java
index df3f01e..5afe4fe 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/label/providers/HTTPLabelProvider.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/outline/HTTPLabelProvider.java
@@ -1,14 +1,14 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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.label.providers;
+package org.eclipse.wst.wsdl.ui.internal.outline;
 
 import java.util.HashMap;
 
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/outline/ModelAdapterContentProvider.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/outline/ModelAdapterContentProvider.java
new file mode 100644
index 0000000..7068aad
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/outline/ModelAdapterContentProvider.java
@@ -0,0 +1,120 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.outline;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.wst.wsdl.ui.internal.model.ModelAdapter;
+import org.eclipse.wst.wsdl.ui.internal.model.ModelAdapterFactory;
+import org.eclipse.wst.wsdl.ui.internal.model.ModelAdapterListener;
+
+
+
+public class ModelAdapterContentProvider implements ITreeContentProvider, ModelAdapterListener
+{                                 
+  protected Viewer viewer;
+  protected ModelAdapterFactory adapterFactory;
+
+  public ModelAdapterContentProvider(ModelAdapterFactory adapterFactory)
+  {                                      
+    this.adapterFactory = adapterFactory;  
+  }
+        
+  protected void attachListener(Object object)
+  {
+    ModelAdapter adapter = adapterFactory.getAdapter(object);
+// TODO: port check
+//    ModelAdapter adapter = EcoreUtil.getAdapter(adapterFactory.eAdapters(),object);
+    if (adapter != null)
+    {
+      adapter.addListener(this);
+    }
+  } 
+
+  public void propertyChanged(Object object, String property)
+  {             
+    if (viewer != null)
+    {
+      if (viewer instanceof StructuredViewer)
+      {
+        ((StructuredViewer)viewer).refresh(object);
+      }
+      else
+      {     
+        viewer.refresh();
+      }
+    }
+  }
+
+  /*
+   * @see ITreeContentProvider#getChildren(Object)
+   */
+  public Object[] getChildren(Object parentObject)
+  {                                     
+    attachListener(parentObject);
+
+    List list = null;
+// TODO: port check    
+    ModelAdapter modelAdapter = adapterFactory.getAdapter(parentObject);
+//    ModelAdapter modelAdapter = EcoreUtil.getAdapter(adapterFactory.eAdapters(),parentObject);
+    if (modelAdapter != null)
+    {
+      list = (List)modelAdapter.getProperty(parentObject, ModelAdapter.CHILDREN_PROPERTY);     
+    }
+    list =  list != null ? list : Collections.EMPTY_LIST;
+    return list.toArray();
+  }
+
+  /*
+   * @see ITreeContentProvider#getParent(Object)
+   */
+  public Object getParent(Object element)
+  {
+    return null;
+  }
+
+  /*
+   * @see ITreeContentProvider#hasChildren(Object)
+   */
+  public boolean hasChildren(Object element)
+  {
+    Object[] children = getChildren(element);
+    return children != null && children.length > 0;   
+  }
+
+  /*
+   * @see IStructuredContentProvider#getElements(Object)
+   */
+  public Object[] getElements(Object inputElement)
+  {
+    return getChildren(inputElement);
+  }
+
+  /*
+   * @see IContentProvider#dispose()
+   */
+  public void dispose()
+  { 
+    viewer = null;
+  }
+  
+  /*
+   * @see IContentProvider#inputChanged(Viewer, Object, Object)
+   */
+  public void inputChanged(Viewer viewer, Object oldInput, Object newInput)
+  {               
+    this.viewer = viewer;
+  }   
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/outline/ModelAdapterLabelProvider.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/outline/ModelAdapterLabelProvider.java
new file mode 100644
index 0000000..720c74c
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/outline/ModelAdapterLabelProvider.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.outline;
+        
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.wst.wsdl.ui.internal.model.ModelAdapter;
+import org.eclipse.wst.wsdl.ui.internal.model.ModelAdapterFactory;
+
+
+
+public class ModelAdapterLabelProvider extends LabelProvider
+{                     
+  protected ModelAdapterFactory adapterFactory;
+
+  public ModelAdapterLabelProvider(ModelAdapterFactory adapterFactory)
+  {                                      
+    this.adapterFactory = adapterFactory;
+  }
+
+ 
+  public Image getImage(Object object)
+  {
+    Image result = null;           
+// TODO: port check
+    ModelAdapter modelAdapter = adapterFactory.getAdapter(object);
+//    ModelAdapter modelAdapter = EcoreUtil.getAdapter(adapterFactory.eAdapters(),object);
+    if (modelAdapter != null)
+    {
+      result = (Image)modelAdapter.getProperty(object, ModelAdapter.IMAGE_PROPERTY);     
+    }                                            
+    return result;
+  } 
+    
+
+  public String getText(Object object)
+  {                
+    String result = null;               
+// TODO: port check
+    ModelAdapter modelAdapter = adapterFactory.getAdapter(object);
+//    ModelAdapter modelAdapter = EcoreUtil.getAdapter(adapterFactory.eAdapters(),object);
+    if (modelAdapter != null)
+    {                       
+      result = (String)modelAdapter.getProperty(object, ModelAdapter.LABEL_PROPERTY);     
+    }                                            
+    return result;
+  }   
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/label/providers/SOAPLabelProvider.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/outline/SOAPLabelProvider.java
similarity index 94%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/label/providers/SOAPLabelProvider.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/outline/SOAPLabelProvider.java
index 2f94d1b..93cefa4 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/label/providers/SOAPLabelProvider.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/outline/SOAPLabelProvider.java
@@ -1,14 +1,14 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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.label.providers;
+package org.eclipse.wst.wsdl.ui.internal.outline;
 
 import java.util.HashMap;
 
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/outline/WSDLContentOutlineConfiguration.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/outline/WSDLContentOutlineConfiguration.java
new file mode 100644
index 0000000..bb945f6
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/outline/WSDLContentOutlineConfiguration.java
@@ -0,0 +1,211 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Common 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.outline;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.viewers.IContentProvider;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.KeyAdapter;
+import org.eclipse.swt.events.KeyEvent;
+import org.eclipse.swt.events.KeyListener;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.wst.sse.ui.views.contentoutline.ContentOutlineConfiguration;
+import org.eclipse.wst.wsdl.Definition;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditor;
+import org.eclipse.wst.wsdl.ui.internal.actions.WSDLMenuListener;
+import org.eclipse.wst.wsdl.ui.internal.text.WSDLModelAdapter;
+import org.eclipse.wst.wsdl.ui.internal.util.OpenOnSelectionHelper;
+import org.eclipse.wst.wsdl.ui.internal.util.WSDLEditorUtil;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
+import org.w3c.dom.Attr;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+public class WSDLContentOutlineConfiguration extends ContentOutlineConfiguration {
+	private ExtensibleOutlineProvider fOutlineProvider = null;
+	private KeyListener[] fKeyListeners = null;
+	private IMenuListener fMenuListener = null;
+	private WSDLEditor fEditor = null;
+
+	private ExtensibleOutlineProvider getOutlineProvider() {
+		if (fOutlineProvider == null) {
+			// ISSUE: what happens if cannot get WSDL Editor? (See
+			// getWSDLEditor comment)
+			fOutlineProvider = new ExtensibleOutlineProvider(getWSDLEditor());
+		}
+		return fOutlineProvider;
+	}
+
+	public IContentProvider getContentProvider(TreeViewer viewer) {
+		return getOutlineProvider();
+	}
+
+	public ILabelProvider getLabelProvider(TreeViewer viewer) {
+		return getOutlineProvider();
+	}
+
+	public KeyListener[] getKeyListeners(TreeViewer viewer) {
+		if (fKeyListeners == null) {
+			final TreeViewer finalViewer = viewer;
+			KeyAdapter keyListener = new KeyAdapter() {
+				public void keyReleased(KeyEvent e) {
+					if (e.keyCode == SWT.F3 && getWSDLEditor() != null) {
+						ISelection selection = getWSDLEditor().getSelectionManager().getSelection();
+						if (selection instanceof IStructuredSelection) {
+							Object object = ((IStructuredSelection) selection).getFirstElement();
+							if (object instanceof EObject) {
+								OpenOnSelectionHelper helper = new OpenOnSelectionHelper(getDefinition(finalViewer));
+								helper.openEditor((EObject) object);
+							}
+						}
+					}
+				}
+			};
+			fKeyListeners = new KeyListener[]{keyListener};
+		}
+
+		return fKeyListeners;
+	}
+
+	public IMenuListener getMenuListener(TreeViewer viewer) {
+		if (fMenuListener == null) {
+			// ISSUE: what happens if cannot get WSDL Editor? (See
+			// getWSDLEditor comment)
+			if (getWSDLEditor() != null)
+				fMenuListener = new WSDLMenuListener(getWSDLEditor(), getWSDLEditor().getSelectionManager());
+		}
+		return fMenuListener;
+	}
+
+	public ISelection getSelection(TreeViewer viewer, ISelection selection) {
+		ISelection sel = selection;
+
+		if (selection instanceof IStructuredSelection) {
+			List wsdlSelections = new ArrayList();
+			for (Iterator i = ((IStructuredSelection) selection).iterator(); i.hasNext();) {
+				Object domNode = i.next();
+				Object wsdlNode = getWSDLNode(domNode, viewer);
+				if (wsdlNode != null) {
+					wsdlSelections.add(wsdlNode);
+				}
+			}
+
+			if (!wsdlSelections.isEmpty()) {
+				sel = new StructuredSelection(wsdlSelections);
+			}
+		}
+		return sel;
+	}
+
+	/**
+	 * Gets the definition from treeviewer's input
+	 * 
+	 * @param model
+	 *            (of type Object but really should be IStructuredModel)
+	 * @return Definition
+	 */
+	private Definition getDefinition(TreeViewer viewer) {
+		Definition definition = null;
+		Object model = null;
+		if (viewer != null)
+			model = viewer.getInput();
+
+		if (model instanceof IDOMModel) {
+			IDOMDocument domDoc = ((IDOMModel) model).getDocument();
+			if (domDoc != null) {
+				WSDLModelAdapter modelAdapter = (WSDLModelAdapter) domDoc.getAdapterFor(WSDLModelAdapter.class);
+
+				/*
+				 * ISSUE: if adapter does not already exist for domDoc
+				 * getAdapterFor will create one. So why is this null
+				 * check/creation needed?
+				 */
+				if (modelAdapter == null) {
+					modelAdapter = new WSDLModelAdapter();
+					domDoc.addAdapter(modelAdapter);
+					modelAdapter.createDefinition(domDoc.getDocumentElement(), domDoc);
+				}
+
+				definition = modelAdapter.getDefinition();
+			}
+		}
+		return definition;
+	}
+
+	// ISSUE: There are some cases where outline comes up before editor
+	private WSDLEditor getWSDLEditor() {
+		if (fEditor == null) {
+			IWorkbench workbench = PlatformUI.getWorkbench();
+			if (workbench != null) {
+				IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();
+				if (window != null) {
+					IWorkbenchPage page = window.getActivePage();
+					if (page != null) {
+						IEditorPart editor = page.getActiveEditor();
+						if (editor instanceof WSDLEditor)
+							fEditor = (WSDLEditor) editor;
+					}
+				}
+			}
+		}
+		return fEditor;
+	}
+
+	public void unconfigure(TreeViewer viewer) {
+		super.unconfigure(viewer);
+		fEditor = null;
+	}
+
+	/**
+	 * Determines WSDL node based on object (DOM node)
+	 * 
+	 * @param object
+	 * @return
+	 */
+	private Object getWSDLNode(Object object, TreeViewer viewer) {
+		// get the element node
+		Element element = null;
+		if (object instanceof Node) {
+			Node node = (Node) object;
+			if (node != null) {
+				if (node.getNodeType() == Node.ELEMENT_NODE) {
+					element = (Element) node;
+				}
+				else if (node.getNodeType() == Node.ATTRIBUTE_NODE) {
+					element = ((Attr) node).getOwnerElement();
+				}
+			}
+		}
+		Object o = element;
+		if (element != null) {
+			Object modelObject = WSDLEditorUtil.getInstance().findModelObjectForElement(getDefinition(viewer), element);
+			if (modelObject != null) {
+				o = modelObject;
+			}
+		}
+		return o;
+	}
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/outline/WSDLContentOutlinePage.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/outline/WSDLContentOutlinePage.java
new file mode 100644
index 0000000..ffa80ee
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/outline/WSDLContentOutlinePage.java
@@ -0,0 +1,213 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.outline;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.KeyAdapter;
+import org.eclipse.swt.events.KeyEvent;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.ui.views.contentoutline.ContentOutlinePage;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditor;
+import org.eclipse.wst.wsdl.ui.internal.WSDLSelectionManager;
+import org.eclipse.wst.wsdl.ui.internal.actions.WSDLMenuListener;
+import org.eclipse.wst.wsdl.ui.internal.util.OpenOnSelectionHelper;
+
+/**
+ * @deprecated Using SSE's ConfiguratbleContentOutlinePage 
+ * instead via WSDLContentOutlineCOnfiguration
+ */
+public class WSDLContentOutlinePage extends ContentOutlinePage 
+{                                                    
+  protected WSDLEditor wsdlEditor;
+	protected int level = 0;  
+  protected Object model;                          
+  protected ITreeContentProvider contentProvider;
+  protected ILabelProvider labelProvider;
+  protected WSDLSelectionManager selectionManager;
+  protected SelectionManagerSelectionChangeListener selectionManagerSelectionChangeListener = new SelectionManagerSelectionChangeListener();
+  protected TreeSelectionChangeListener treeSelectionChangeListener = new TreeSelectionChangeListener();
+        
+  public WSDLContentOutlinePage(WSDLEditor wsdlEditor)
+  {                                          
+    this.wsdlEditor = wsdlEditor;
+  }
+
+
+  public void setContentProvider(ITreeContentProvider contentProvider)
+  {
+    this.contentProvider = contentProvider;
+  }
+
+
+  public void setLabelProvider(ILabelProvider labelProvider)
+  {
+    this.labelProvider = labelProvider;
+  }
+
+                          
+  // expose
+  public TreeViewer getTreeViewer()
+  {
+    return super.getTreeViewer();
+  }
+
+	public void createControl(Composite parent) 
+  {                                                 
+		super.createControl(parent);                 
+
+		getTreeViewer().setContentProvider(contentProvider);
+		getTreeViewer().setLabelProvider(labelProvider);
+    getTreeViewer().setInput(model);
+    getTreeViewer().addSelectionChangedListener(this);
+    
+    KeyAdapter keyListener = new KeyAdapter()
+    {
+      public void keyReleased(KeyEvent e)
+      {   	
+        if (e.keyCode == SWT.F3)
+        {
+          ISelection selection = selectionManager.getSelection();
+          if (selection instanceof IStructuredSelection)
+          {
+            Object object = ((IStructuredSelection)selection).getFirstElement();
+            if (object instanceof EObject)
+            {
+			  OpenOnSelectionHelper helper = new OpenOnSelectionHelper(wsdlEditor.getDefinition());
+              helper.openEditor((EObject)object);
+            }
+          }
+        }
+      }
+    };
+    getTreeViewer().getTree().addKeyListener(keyListener);
+
+    MenuManager menuManager = new MenuManager("#popup");//$NON-NLS-1$
+    menuManager.setRemoveAllWhenShown(true);
+    Menu menu = menuManager.createContextMenu(getTreeViewer().getControl());
+    getTreeViewer().getControl().setMenu(menu);
+    
+    WSDLMenuListener menuListener = new WSDLMenuListener(wsdlEditor, wsdlEditor.getSelectionManager());//, (XSDTextEditor)fTextEditor);
+    menuManager.addMenuListener(menuListener);
+
+    setSelectionManager(wsdlEditor.getSelectionManager());    
+    
+    // enable popupMenus extension - Rich - this class is deprecated.  TODO - change this
+    getSite().registerContextMenu("org.eclipse.wst.wsdl.ui.popup.outline", menuManager, wsdlEditor.getSelectionManager());
+	}
+
+
+  public void setModel(Object object)
+  {
+    model = object;
+  }
+
+	
+	public void setExpandToLevel(int i) 
+  {
+		level = i;
+	}
+
+	
+	public void setInput(Object value) 
+  {
+		getTreeViewer().setInput(value);
+	 	getTreeViewer().expandToLevel(level);
+	}  
+
+
+  public void setSelectionManager(WSDLSelectionManager newSelectionManager)
+  { 
+    TreeViewer treeViewer = getTreeViewer();
+
+    // disconnect from old one
+    if (selectionManager != null)
+    {                                                        
+      selectionManager.removeSelectionChangedListener(selectionManagerSelectionChangeListener);  
+      treeViewer.removeSelectionChangedListener(treeSelectionChangeListener);
+    }
+
+    selectionManager = newSelectionManager;
+
+    // connect to new one
+    if (selectionManager != null)
+    {
+      selectionManager.addSelectionChangedListener(selectionManagerSelectionChangeListener);  
+      treeViewer.addSelectionChangedListener(treeSelectionChangeListener);
+    }
+  }    
+
+  class SelectionManagerSelectionChangeListener implements ISelectionChangedListener
+  {
+    public void selectionChanged(SelectionChangedEvent event)  
+    {         
+      if (event.getSelectionProvider() != getTreeViewer())
+      {
+        getTreeViewer().setSelection(event.getSelection(), true);
+      }
+    }    
+  }
+
+  class TreeSelectionChangeListener implements ISelectionChangedListener
+  {
+    public void selectionChanged(SelectionChangedEvent event)  
+    { 
+      if (selectionManager != null)
+      {
+        ISelection selection = event.getSelection();
+        if (selection instanceof IStructuredSelection)
+        {
+          IStructuredSelection structuredSelection = (IStructuredSelection)selection;
+          Object o = structuredSelection.getFirstElement();
+        
+          // TODO ... 
+          // we need to implement a selectionManagerMapping extension point
+          // so that extensions can specify how they'd like to map view objects 
+          // to selection objects
+          //                                        
+//          if (o instanceof Element)
+//          {  
+//            try
+//            {
+//              Object modelObject = WSDLEditorUtil.getInstance().findModelObjectForElement(wsdlEditor.getDefinition(), (Element)o);
+//              if (modelObject != null && !(modelObject instanceof UnknownExtensibilityElement))
+//              {
+//                o = modelObject;
+//              }
+//            }
+//            catch (Exception e)
+//            {
+//            }
+//          }
+
+          if (o != null)
+          {
+            selectionManager.setSelection(new StructuredSelection(o), getTreeViewer());
+          }
+          else
+          {
+            selectionManager.setSelection(new StructuredSelection(), getTreeViewer());
+          }   
+        }
+      }
+    }    
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddBaseParameterCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/parameters/AddBaseParameterCommand.java
similarity index 91%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddBaseParameterCommand.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/parameters/AddBaseParameterCommand.java
index 7857849..bbe0883 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddBaseParameterCommand.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/parameters/AddBaseParameterCommand.java
@@ -1,14 +1,11 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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
+/*
+ * Copyright (c) 2005 IBM Corporation and others.
+ * All rights reserved.   This program and the accompanying materials
+ * are made available under the terms of the Common 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.commands;
+ * http://www.eclipse.org/legal/cpl-v10.html
+ */
+package org.eclipse.wst.wsdl.ui.internal.parameters;
 
 import java.util.ArrayList;
 import java.util.Iterator;
@@ -20,9 +17,9 @@
 import org.eclipse.wst.wsdl.MessageReference;
 import org.eclipse.wst.wsdl.Operation;
 import org.eclipse.wst.wsdl.Part;
+import org.eclipse.wst.wsdl.ui.internal.commands.AddMessageCommand;
+import org.eclipse.wst.wsdl.ui.internal.commands.AddPartCommand;
 import org.eclipse.wst.wsdl.ui.internal.util.ComponentReferenceUtil;
-import org.eclipse.wst.wsdl.ui.internal.util.NameUtil;
-import org.eclipse.wst.wsdl.ui.internal.util.XSDComponentHelper;
 import org.eclipse.xsd.XSDComplexTypeDefinition;
 import org.eclipse.xsd.XSDElementDeclaration;
 import org.eclipse.xsd.XSDModelGroup;
@@ -138,7 +135,7 @@
 			// Create the ComplexType referenced by the Part if necessary
 			if (part.getTypeDefinition() == null || part.getTypeDefinition() instanceof XSDSimpleTypeDefinition) {
 				XSDSchema schema = XSDComponentHelper.getXSDSchema(part.getEnclosingDefinition());
-				String topLevelName = NameUtil.getXSDComplexTypeName(part.getName(), schema);
+				String topLevelName = WNameHelperUtil.getXSDComplexTypeName(part.getName(), schema);
 				topLevelType = XSDComponentHelper.createXSDComplexTypeDefiniion(topLevelName, part);
 				
 				if (part.getTypeDefinition() instanceof XSDSimpleTypeDefinition) {
@@ -172,7 +169,7 @@
 			if (part.getTypeDefinition() == null) {
 				// Create a new ComplexType
 				XSDSchema schema = XSDComponentHelper.getXSDSchema(part.getEnclosingDefinition());
-				String complexName = NameUtil.getXSDComplexTypeName(part.getName(), schema);
+				String complexName = WNameHelperUtil.getXSDComplexTypeName(part.getName(), schema);
 				complexType = XSDComponentHelper.createXSDComplexTypeDefiniion(complexName, part);
 				
 				// Create an XSDElement for the ComplexType
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddFaultParameterCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/parameters/AddFaultParameterCommand.java
similarity index 72%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddFaultParameterCommand.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/parameters/AddFaultParameterCommand.java
index b60faa0..d6e986e 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddFaultParameterCommand.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/parameters/AddFaultParameterCommand.java
@@ -1,19 +1,16 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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
+/*
+ * Copyright (c) 2005 IBM Corporation and others.
+ * All rights reserved.   This program and the accompanying materials
+ * are made available under the terms of the Common 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.commands;
+ * http://www.eclipse.org/legal/cpl-v10.html
+ */
+package org.eclipse.wst.wsdl.ui.internal.parameters;
 
 import org.eclipse.wst.wsdl.Fault;
 import org.eclipse.wst.wsdl.Operation;
 import org.eclipse.wst.wsdl.Part;
-import org.eclipse.wst.wsdl.ui.internal.util.NameUtil;
+import org.eclipse.wst.wsdl.ui.internal.commands.AddFaultCommand;
 
 public class AddFaultParameterCommand extends AddBaseParameterCommand {
 	protected Fault fault;
@@ -78,7 +75,7 @@
 				faultName = fault.getName();
 			}
 			else {
-				faultName = NameUtil.getFaultName(operation);
+				faultName = WNameHelperUtil.getFaultName(operation);
 			}
 		}
 
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddInputParameterCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/parameters/AddInputParameterCommand.java
similarity index 66%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddInputParameterCommand.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/parameters/AddInputParameterCommand.java
index 8352d30..3073f1c 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddInputParameterCommand.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/parameters/AddInputParameterCommand.java
@@ -1,19 +1,16 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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
+/*
+ * Copyright (c) 2005 IBM Corporation and others.
+ * All rights reserved.   This program and the accompanying materials
+ * are made available under the terms of the Common 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.commands;
+ * http://www.eclipse.org/legal/cpl-v10.html
+ */
+package org.eclipse.wst.wsdl.ui.internal.parameters;
 
 import org.eclipse.wst.wsdl.Input;
 import org.eclipse.wst.wsdl.Operation;
 import org.eclipse.wst.wsdl.Part;
-import org.eclipse.wst.wsdl.ui.internal.util.NameUtil;
+import org.eclipse.wst.wsdl.ui.internal.commands.AddInputCommand;
 
 public class AddInputParameterCommand extends AddBaseParameterCommand {	
 	public AddInputParameterCommand(Operation operation, int style) {
@@ -58,7 +55,7 @@
 	protected String getWSDLMessageName() {
 		if (newWSDLMessageName == null) {
 			if (operation.getEInput() != null) {
-				newWSDLMessageName= NameUtil.getMessageName(operation.getEInput());
+				newWSDLMessageName= WNameHelperUtil.getMessageName(operation.getEInput());
 			}
 		}
 		
@@ -67,7 +64,7 @@
 
 	protected String getWSDLPartName() {
 		if (newWSDLPartName == null) {
-			newWSDLPartName  = NameUtil.getPartName(operation.getEInput());			
+			newWSDLPartName  = WNameHelperUtil.getPartName(operation.getEInput());			
 		}
 		
 		return newWSDLPartName;
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddOutputParameterCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/parameters/AddOutputParameterCommand.java
similarity index 66%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddOutputParameterCommand.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/parameters/AddOutputParameterCommand.java
index 14e0e25..4771bd1 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/commands/AddOutputParameterCommand.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/parameters/AddOutputParameterCommand.java
@@ -1,19 +1,16 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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
+/*
+ * Copyright (c) 2005 IBM Corporation and others.
+ * All rights reserved.   This program and the accompanying materials
+ * are made available under the terms of the Common 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.commands;
+ * http://www.eclipse.org/legal/cpl-v10.html
+ */
+package org.eclipse.wst.wsdl.ui.internal.parameters;
 
 import org.eclipse.wst.wsdl.Operation;
 import org.eclipse.wst.wsdl.Output;
 import org.eclipse.wst.wsdl.Part;
-import org.eclipse.wst.wsdl.ui.internal.util.NameUtil;
+import org.eclipse.wst.wsdl.ui.internal.commands.AddOutputCommand;
 
 public class AddOutputParameterCommand extends AddBaseParameterCommand {
 	public AddOutputParameterCommand(Operation operation, int style) {
@@ -58,7 +55,7 @@
 	protected String getWSDLMessageName() {
 		if (newWSDLMessageName == null) {
 			if (operation.getEOutput() != null) {
-				newWSDLMessageName= NameUtil.getMessageName(operation.getEOutput());
+				newWSDLMessageName= WNameHelperUtil.getMessageName(operation.getEOutput());
 			}
 		}
 		
@@ -67,7 +64,7 @@
 
 	protected String getWSDLPartName() {
 		if (newWSDLPartName == null) {
-			newWSDLPartName  = NameUtil.getPartName(operation.getEOutput());			
+			newWSDLPartName  = WNameHelperUtil.getPartName(operation.getEOutput());			
 		}
 		
 		return newWSDLPartName;
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/parameters/WNameHelperUtil.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/parameters/WNameHelperUtil.java
new file mode 100644
index 0000000..593783f
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/parameters/WNameHelperUtil.java
@@ -0,0 +1,197 @@
+/*
+ * Copyright (c) 2005 IBM Corporation and others.
+ * All rights reserved.   This program and the accompanying materials
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ */
+package org.eclipse.wst.wsdl.ui.internal.parameters;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.wst.wsdl.Fault;
+import org.eclipse.wst.wsdl.Input;
+import org.eclipse.wst.wsdl.Message;
+import org.eclipse.wst.wsdl.MessageReference;
+import org.eclipse.wst.wsdl.Operation;
+import org.eclipse.wst.wsdl.Output;
+import org.eclipse.wst.wsdl.Part;
+import org.eclipse.wst.wsdl.PortType;
+import org.eclipse.xsd.XSDComplexTypeDefinition;
+import org.eclipse.xsd.XSDElementDeclaration;
+import org.eclipse.xsd.XSDModelGroup;
+import org.eclipse.xsd.XSDParticle;
+import org.eclipse.xsd.XSDSchema;
+
+public class WNameHelperUtil {
+	public static String getMessageName(MessageReference messageRef) {	    
+		String messageName = "NewMessage";
+		List messageNames = new ArrayList();
+		Operation operation = (Operation) messageRef.getContainer();
+		Iterator messageIt = operation.getEnclosingDefinition().getEMessages().iterator();
+		while (messageIt.hasNext()) {
+			messageNames.add(((Message) messageIt.next()).getQName().getLocalPart());
+		}
+		
+		String requestResponseString = getRequestOrResponse(messageRef) + "Msg";
+		messageName = getUniqueName(operation.getName() + requestResponseString, messageNames);
+		
+		return messageName;
+	}
+	
+	public static String getPartName(MessageReference messageRef) {
+		String partName = "NewPart";
+		Message message = messageRef.getEMessage();
+		
+		Operation operation = (Operation) messageRef.getContainer();
+//		Operation operation = (Operation) ((WOperation) ownerMessage.getOwnerOperation()).getModel();
+		String operationName = operation.getName();
+		String appendString = "";    	  
+		if (messageRef instanceof Input) {
+			appendString = "Parameters";
+		}
+		else if (messageRef instanceof Output) {
+			appendString = "Result";
+		}
+		else if (messageRef instanceof Fault) {
+			appendString = "Fault";
+		}
+		partName = operationName + appendString;
+		
+		List usedPartNames = new ArrayList();
+		if (message != null) {
+			Iterator partIt = message.getEParts().iterator();
+			while (partIt.hasNext()) {
+				usedPartNames.add(((Part) partIt.next()).getName());
+			}
+		}
+		
+		partName = getUniqueName(partName, usedPartNames);
+		
+		return partName;
+	}
+	
+	public static String getOperationName(PortType portType) {
+		String operationName = "NewOperation";
+		Iterator operationIt = portType.getEOperations().iterator();
+		List usedNames = new ArrayList();
+		while (operationIt.hasNext()) {
+			usedNames.add(((Operation) operationIt.next()).getName());
+		}
+		
+		operationName = getUniqueName("NewOperation", usedNames);
+		
+		return operationName;
+	}
+	
+	public static String getRequestOrResponse(MessageReference messageRef) {
+		if (messageRef instanceof Input)
+		{
+			return "Request";
+		}
+		else if (messageRef instanceof Output)
+		{
+			return "Response";
+		}
+		else if (messageRef instanceof Fault)
+		{
+			return "_Fault";
+		}
+		
+		return "";
+	}
+	
+	public static String getFaultName(Operation operation) {
+		String faultName = "fault";
+		List nameList = new ArrayList();
+		Iterator faultIt = operation.getEFaults().iterator();
+		while (faultIt.hasNext()) {
+			nameList.add(((Fault) faultIt.next()).getName());
+		}
+		
+		faultName = getUniqueName(faultName, nameList);
+		
+		return faultName;
+	}
+	
+	public static String getXSDElementName(String baseName, Object parent) {
+		String elementName = "";
+		
+		if (parent instanceof XSDSchema) {
+			elementName = getUniqueName(baseName, getUsedElementNames((XSDSchema) parent));
+		}
+		else if (parent instanceof XSDModelGroup) {
+			List existingNames = new ArrayList();
+			XSDModelGroup modelGroup = (XSDModelGroup) parent;
+			Iterator modelGroupIt = modelGroup.getContents().iterator();
+			while (modelGroupIt.hasNext()) {
+				Object item = modelGroupIt.next();
+				if (item instanceof XSDParticle) {
+					XSDParticle existingParticle = (XSDParticle) item;
+					if (existingParticle.getContent() instanceof XSDElementDeclaration) {
+						existingNames.add(((XSDElementDeclaration) existingParticle.getContent()).getName());
+					}
+				}
+			}
+			
+			elementName = getUniqueName(baseName, existingNames);			
+		}
+		
+		return elementName;
+	}
+	
+	public static String getXSDComplexTypeName(String baseName, XSDSchema schema) {
+		String typeName = "";
+		List existingNames = new ArrayList();
+		
+		Iterator it = schema.getTypeDefinitions().iterator();
+		while (it.hasNext()) {
+			Object item = it.next();
+			if (item instanceof XSDComplexTypeDefinition) {
+				existingNames.add(((XSDComplexTypeDefinition) item).getName());
+			}
+		}
+		
+		typeName = getUniqueName(baseName, existingNames);
+		return typeName;
+	}
+	
+	private static List getUsedElementNames(XSDSchema xsdSchema) {
+		List usedNames = new ArrayList();
+		Iterator schemaIt = xsdSchema.getContents().iterator();
+		while (schemaIt.hasNext()) {
+			Object item = schemaIt.next();
+			if (item instanceof XSDElementDeclaration) {
+				usedNames.add(((XSDElementDeclaration) item).getName());
+			}
+		}
+		
+		return usedNames;
+	}
+	
+	private static String getUniqueName(String baseName, List existingNames) {
+		int count = 1;
+		
+		if (!existingNames.contains(baseName)) {
+			return baseName;
+		}
+		
+		Iterator namesIt = existingNames.iterator();
+		boolean foundMatch = true;
+		while (foundMatch) {
+			foundMatch = false;
+			while (namesIt.hasNext()) {
+				String name = (String) namesIt.next();
+				if (name.equals(baseName + String.valueOf(count))) {
+					count++;
+					foundMatch = true;
+					break;
+				}
+			}
+		}
+		
+		return baseName + String.valueOf(count);
+	}
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/util/XSDComponentHelper.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/parameters/XSDComponentHelper.java
similarity index 89%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/util/XSDComponentHelper.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/parameters/XSDComponentHelper.java
index f69e06b..7d9c87c 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/util/XSDComponentHelper.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/parameters/XSDComponentHelper.java
@@ -1,14 +1,11 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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
+/*
+ * Copyright (c) 2005 IBM Corporation and others.
+ * All rights reserved.   This program and the accompanying materials
+ * are made available under the terms of the Common 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.util;
+ * http://www.eclipse.org/legal/cpl-v10.html
+ */
+package org.eclipse.wst.wsdl.ui.internal.parameters;
 
 import java.util.Iterator;
 
@@ -18,7 +15,7 @@
 import org.eclipse.wst.wsdl.XSDSchemaExtensibilityElement;
 import org.eclipse.wst.wsdl.ui.internal.commands.AddXSDElementDeclarationCommand;
 import org.eclipse.wst.wsdl.ui.internal.commands.AddXSDSchemaCommand;
-import org.eclipse.wst.xsd.ui.common.commands.AddXSDElementCommand;
+import org.eclipse.wst.xsd.ui.internal.commands.AddElementDeclarationCommand;
 import org.eclipse.xsd.XSDComplexTypeDefinition;
 import org.eclipse.xsd.XSDComponent;
 import org.eclipse.xsd.XSDCompositor;
@@ -66,7 +63,7 @@
 			
 			// Find a unique name
 			XSDSchema xsdSchema = command.getSchema();
-			String name = NameUtil.getXSDElementName(baseName, xsdSchema);
+			String name = WNameHelperUtil.getXSDElementName(baseName, xsdSchema);
 			command.run(name);
 			// The 'workaround' below is causing me to hang.....  The latest WTP is needed.
 //			xsdElement = xsdSchema.resolveElementDeclaration(name);
@@ -75,22 +72,20 @@
 		else if (context instanceof XSDModelGroup) {
 			XSDModelGroup modelGroup = (XSDModelGroup) context;
 			XSDParticle newParticle = XSDFactory.eINSTANCE.createXSDParticle();
-			String name = NameUtil.getXSDElementName(baseName, modelGroup);
+			String name = WNameHelperUtil.getXSDElementName(baseName, modelGroup);
 			
-			AddXSDElementCommand command = new AddXSDElementCommand("Add XML Schema Element", modelGroup);
-			command.execute();
-			xsdElement = (XSDElementDeclaration) command.getAddedComponent();
-			xsdElement.setName(name);
+			AddElementDeclarationCommand command = new AddElementDeclarationCommand(modelGroup, name);
+			command.run();
+			xsdElement = (XSDElementDeclaration) command.getModelObject();
 			xsdElement.setTypeDefinition(getXSDStringType(modelGroup));
 			
 			newParticle.setContent(xsdElement);
 			modelGroup.getContents().add(newParticle);
 		}
 		else {
-			AddXSDElementCommand command = new AddXSDElementCommand();
-			command.execute();
-			xsdElement = (XSDElementDeclaration) command.getAddedComponent();
-			xsdElement.setName(baseName);
+			AddElementDeclarationCommand command = new AddElementDeclarationCommand(null, baseName);
+			command.run();
+			xsdElement = (XSDElementDeclaration) command.getModelObject();
 		}
 		
 		return xsdElement;
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/AbstractSection.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/AbstractSection.java
new file mode 100644
index 0000000..2988ee2
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/AbstractSection.java
@@ -0,0 +1,353 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.properties.section;
+
+import org.eclipse.jface.action.IStatusLineManager;
+import org.eclipse.jface.util.Assert;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.part.EditorActionBarContributor;
+import org.eclipse.wst.common.ui.properties.internal.provisional.ISection;
+import org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetPage;
+import org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetWidgetFactory;
+import org.eclipse.wst.wsdl.WSDLElement;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.eclipse.wst.wsdl.ui.internal.graph.model.WSDLGraphModelAdapterFactory;
+import org.eclipse.wst.wsdl.ui.internal.model.ModelAdapter;
+import org.eclipse.wst.wsdl.ui.internal.model.WSDLGroupObject;
+import org.eclipse.wst.xml.core.internal.document.DocumentImpl;
+import org.w3c.dom.Element;
+
+public class AbstractSection implements ISection, IPropertyChangeListener, Listener, SelectionListener
+{
+	private TabbedPropertySheetWidgetFactory factory;
+	private WSDLElement element;
+  protected boolean isReadOnly = false;
+  protected Composite composite;
+  protected int rightMarginSpace;
+  protected int tableMinimumWidth = 50;
+	
+  public void createControls(Composite parent,	TabbedPropertySheetPage tabbedPropertySheetPage)
+  {
+    createControls(parent, tabbedPropertySheetPage.getWidgetFactory());
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISection#createControls(org.eclipse.swt.widgets.Composite, org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetWidgetFactory)
+   */
+  public void createControls(Composite parent, TabbedPropertySheetWidgetFactory aFactory)
+  {
+		this.factory = aFactory;
+    GC gc = new GC(parent);
+    Point extent = gc.textExtent("  ...  "); //$NON-NLS-1$
+    rightMarginSpace = extent.x;
+    gc.dispose();
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISection#setInput(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
+   */
+  public void setInput(IWorkbenchPart part, ISelection selection)
+  {
+		Assert.isTrue(selection instanceof IStructuredSelection);
+		Object input = ((IStructuredSelection)selection).getFirstElement();
+		
+		if (input instanceof WSDLElement)
+		{
+		  this.element = (WSDLElement)input;
+      ModelAdapter adapter = WSDLGraphModelAdapterFactory.getWSDLGraphModelAdapterFactory().getAdapter(input);
+      if (adapter != null)
+      {
+        isReadOnly = Boolean.TRUE.equals(adapter.getProperty(input, "isReadOnly")); //$NON-NLS-1$
+      }
+		}
+		else if (input instanceof WSDLGroupObject)
+		{
+		  this.element = ((WSDLGroupObject)input).getDefinition();
+		}
+		refresh();
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISection#aboutToBeShown()
+   */
+  public void aboutToBeShown()
+  {
+		refresh();
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISection#aboutToBeHidden()
+   */
+  public void aboutToBeHidden()
+  {
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISection#dispose()
+   */
+  public void dispose()
+  {
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISection#getMinimumHeight()
+   */
+  public int getMinimumHeight()
+  {
+    return SWT.DEFAULT;
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISection#shouldUseExtraSpace()
+   */
+  public boolean shouldUseExtraSpace()
+  {
+    return true;
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISection#refresh()
+   */
+  public void refresh()
+  {
+    if (isReadOnly)
+    {
+      composite.setEnabled(false);
+    }
+    else
+    {
+      composite.setEnabled(true);
+    }
+  }
+
+  public WSDLElement getElement()
+  {
+    return element;
+  }
+  
+	/**
+	 * Get the widget factory.
+	 * @return the widget factory.
+	 */
+	public TabbedPropertySheetWidgetFactory getWidgetFactory() {
+		return factory;
+	}
+
+	public void propertyChange(PropertyChangeEvent event)
+	{
+    refresh();
+	}
+
+	
+  public void doWidgetDefaultSelected(SelectionEvent e)
+  {}
+  
+  public void doWidgetSelected(SelectionEvent e)
+  {}
+  
+  /**
+   * @see org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(SelectionEvent)
+   */
+  public void widgetDefaultSelected(SelectionEvent e)
+  {
+    if (isListenerEnabled() &&
+        getElement() != null &&
+        !isInDoHandle) 
+    {
+      isInDoHandle = true;
+      doWidgetDefaultSelected(e);
+      isInDoHandle = false;
+    }
+    
+  }
+
+  /**
+   * @see org.eclipse.swt.events.SelectionListener#widgetSelected(SelectionEvent)
+   */
+  public void widgetSelected(SelectionEvent e)
+  {
+    if (isListenerEnabled() &&
+        getElement() != null &&
+        !isInDoHandle) 
+    {
+      isInDoHandle = true;
+      doWidgetSelected(e);
+      isInDoHandle = false;
+    }
+    
+  }
+  
+  boolean listenerEnabled = true;
+  /**
+   * Get the value of listenerEnabled.
+   * @return value of listenerEnabled.
+   */
+  public boolean isListenerEnabled() 
+  {
+    return listenerEnabled;
+  }
+  
+  /**
+   * Set the value of listenerEnabled.
+   * @param v  Value to assign to listenerEnabled.
+   */
+  public void setListenerEnabled(boolean  v) 
+  {
+    this.listenerEnabled = v;
+  }
+
+  public void handleEvent(Event event)
+  {
+    if (isListenerEnabled() && !isInDoHandle) 
+    {
+      isInDoHandle = true;
+      startDelayedEvent(event);
+      isInDoHandle = false;
+    } // end of if ()
+  }
+  
+  public void doHandleEvent(Event event)
+  {
+    
+  }
+  
+  protected DelayedEvent delayedTask;
+  
+  protected void startDelayedEvent(Event e)
+  {
+    if (delayedTask == null ||
+      delayedTask.getEvent() == null)
+    {
+      delayedTask = new DelayedEvent();
+      delayedTask.setEvent(e);
+      Display.getDefault().timerExec(500,delayedTask);
+    }
+    else
+    {
+      Event delayedEvent = delayedTask.getEvent();
+      
+      if (e.widget == delayedEvent.widget &&
+        e.type == delayedEvent.type)
+      {
+        // same event, just different data, delay new event
+        delayedTask.setEvent(null);
+      }
+      delayedTask = new DelayedEvent();
+      delayedTask.setEvent(e);
+      Display.getDefault().timerExec(500,delayedTask);
+    }
+  }
+  
+  class DelayedEvent implements Runnable
+  {
+    protected Event event;
+    
+    /*
+     * @see Runnable#run()
+     */
+    public void run()
+    {
+      if (event != null)
+      {
+        isInDoHandle = true;
+        doHandleEvent(event);
+        isInDoHandle = false;
+        event = null;
+      }
+    }
+    
+    /**
+     * Gets the event.
+     * @return Returns a Event
+     */
+    public Event getEvent()
+    {
+      return event;
+    }
+
+    /**
+     * Sets the event.
+     * @param event The event to set
+     */
+    public void setEvent(Event event)
+    {
+      this.event = event;
+    }
+
+  }
+
+  boolean isInDoHandle;
+  /**
+   * Get the value of isInDoHandle.
+   * @return value of isInDoHandle.
+   */
+  public boolean isInDoHandle() 
+  {
+    return isInDoHandle;
+  }
+
+  
+  static protected IEditorPart getActiveEditor()
+  {
+    IWorkbench workbench = WSDLEditorPlugin.getInstance().getWorkbench();
+    IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
+    IEditorPart editorPart = workbenchWindow.getActivePage().getActiveEditor();
+
+    return editorPart;
+  }
+
+  static protected IStatusLineManager getStatusLineManager(IEditorPart editorPart)
+  { 
+    IStatusLineManager result = null;
+    try
+    {                       
+      EditorActionBarContributor contributor = (EditorActionBarContributor)editorPart.getEditorSite().getActionBarContributor();
+      result = contributor.getActionBars().getStatusLineManager();
+    }
+    catch (Exception e)
+    {
+    }  
+    return result;
+  }
+
+  public DocumentImpl getDocument(Element element)
+  {
+    return (DocumentImpl) element.getOwnerDocument();
+  }
+
+  public void beginRecording(String description, Element element)
+  {
+    getDocument(element).getModel().beginRecording(this, description);
+  }
+  
+  public void endRecording(Element element)
+  {
+    DocumentImpl doc = (DocumentImpl) getDocument(element);
+    
+    doc.getModel().endRecording(this);    
+  }
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/AbstractSectionDescriptor.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/AbstractSectionDescriptor.java
new file mode 100644
index 0000000..f65456d
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/AbstractSectionDescriptor.java
@@ -0,0 +1,108 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.properties.section;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.wst.common.ui.properties.internal.provisional.ISection;
+import org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor;
+import org.eclipse.wst.common.ui.properties.internal.provisional.ITypeMapper;
+import org.eclipse.wst.wsdl.WSDLElement;
+import org.eclipse.wst.wsdl.ui.internal.model.WSDLGroupObject;
+
+public class AbstractSectionDescriptor implements ISectionDescriptor
+{
+  /**
+   * 
+   */
+  public AbstractSectionDescriptor()
+  {
+    super();
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getId()
+   */
+  public String getId()
+  {
+    return "";
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getFilter()
+   */
+  public ITypeMapper getFilter()
+  {
+    return null;
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getInputTypes()
+   */
+  public List getInputTypes()
+  {
+    List list = new ArrayList();
+    list.add(WSDLElement.class);
+    return list;
+ }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getSectionClass()
+   */
+  public ISection getSectionClass()
+  {
+    return null;
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getTargetTab()
+   */
+  public String getTargetTab()
+  {
+    // TODO Auto-generated method stub
+    return null;
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#appliesTo(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
+   */
+  public boolean appliesTo(IWorkbenchPart part, ISelection selection)
+  {
+    Object object = null;
+    if (selection instanceof StructuredSelection)
+    {
+      StructuredSelection structuredSelection = (StructuredSelection)selection;
+      object = structuredSelection.getFirstElement();
+      if (object instanceof WSDLElement || object instanceof WSDLGroupObject)
+      {
+        return true;
+      }
+    }
+    return false;
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getAfterSection()
+   */
+  public String getAfterSection()
+  {
+    return "";
+  }
+  
+  public int getEnablesFor()
+  {
+	return ENABLES_FOR_ANY;
+  }
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/DocumentationSection.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/DocumentationSection.java
new file mode 100644
index 0000000..93fe1e6
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/DocumentationSection.java
@@ -0,0 +1,119 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.properties.section;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetWidgetFactory;
+import org.eclipse.wst.wsdl.ui.internal.actions.AddElementAction;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+
+public class DocumentationSection extends AbstractSection {
+
+	Text docText;
+
+	/**
+	 * @see org.eclipse.wst.common.ui.properties.internal.provisional.ITabbedPropertySection#createControls(org.eclipse.swt.widgets.Composite, org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetWidgetFactory)
+	 */
+	public void createControls(Composite parent, TabbedPropertySheetWidgetFactory factory)
+	{
+	  super.createControls(parent, factory);
+		composite =	getWidgetFactory().createFlatFormComposite(parent);
+		
+		docText = getWidgetFactory().createText(composite, "", SWT.MULTI | SWT.NONE | SWT.H_SCROLL | SWT.V_SCROLL); //$NON-NLS-1$
+    docText.addListener(SWT.Modify, this);  
+		FormData data = new FormData();
+		data.left = new FormAttachment(0, 0);
+		data.right = new FormAttachment(100, 0);
+		data.top = new FormAttachment(0, 0);
+		data.bottom = new FormAttachment(100, 0);
+		docText.setLayoutData(data);
+	}
+
+	/*
+	 * @see org.eclipse.wst.common.ui.properties.internal.provisional.view.ITabbedPropertySection#refresh()
+	 */
+	public void refresh()
+	{
+    super.refresh();
+    if (docText.isFocusControl())
+    {
+      return;
+    }
+    setListenerEnabled(false);
+	  docText.setText("");
+	  if (getElement() != null)
+	  {
+	    Element docNode = getElement().getDocumentationElement();
+	    if (docNode != null)
+	    {
+        Node textNode = docNode.getFirstChild();
+        if (textNode != null)
+        {
+          String docValue = textNode.getNodeValue();
+          if (docValue != null)
+          {
+            docText.setText(docValue);
+          }
+        }
+	    }
+	  }
+	  setListenerEnabled(true);
+	}
+	
+	public void doHandleEvent(Event event)
+	{
+	  if (event.widget == docText)
+	  {
+	    String value = docText.getText();
+	    if (getElement() != null)
+	    {
+	      Element docNode = getElement().getDocumentationElement();
+	      if (docNode != null)
+	      {
+          Node textNode = docNode.getFirstChild();
+          if (textNode != null)
+          {
+            textNode.setNodeValue(value);
+          }
+          else
+          {
+            if (value.length() > 0)
+            {
+              Document document = docNode.getOwnerDocument();
+              org.w3c.dom.Text newTextNode = document.createTextNode(value);
+              docNode.appendChild(newTextNode);
+            }
+          }
+	      }
+	      else
+	      {
+	        Element element = getElement().getElement();
+          AddElementAction action = new AddElementAction(element, element.getPrefix(), "documentation", element.getFirstChild()); //$NON-NLS-1$
+          action.run();
+          Element newDocumentation = action.getNewElement();
+          
+          Document document = newDocumentation.getOwnerDocument();
+          org.w3c.dom.Text newTextNode = document.createTextNode(value);
+          newDocumentation.appendChild(newTextNode);
+          getElement().setDocumentationElement(newDocumentation);
+	      }
+	    }
+	  }
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/DocumentationSectionDescriptor.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/DocumentationSectionDescriptor.java
new file mode 100644
index 0000000..7213861
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/DocumentationSectionDescriptor.java
@@ -0,0 +1,82 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.properties.section;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.wst.common.ui.properties.internal.provisional.ISection;
+import org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor;
+import org.eclipse.wst.wsdl.WSDLElement;
+
+
+public class DocumentationSectionDescriptor extends AbstractSectionDescriptor implements ISectionDescriptor
+{
+  /**
+   * 
+   */
+  public DocumentationSectionDescriptor()
+  {
+    super();
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getId()
+   */
+  public String getId()
+  {
+    return "org.eclipse.wst.wsdl.ui.internal.section.documentation";
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getSectionClass()
+   */
+  public ISection getSectionClass()
+  {
+    // TODO Auto-generated method stub
+    return new DocumentationSection();
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getTargetTab()
+   */
+  public String getTargetTab()
+  {
+    // TODO Auto-generated method stub
+    return "org.eclipse.wst.xmlwebservices.documentation";
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#appliesTo(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
+   */
+  public boolean appliesTo(IWorkbenchPart part, ISelection selection)
+  {
+    Object object = null;
+    if (selection instanceof StructuredSelection)
+    {
+      StructuredSelection structuredSelection = (StructuredSelection)selection;
+      object = structuredSelection.getFirstElement();
+      if (object instanceof WSDLElement)
+      {
+        return true;
+      }
+    }
+    return false;
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getAfterSection()
+   */
+  public String getAfterSection()
+  {
+    return "org.eclipse.wst.xmlwebservices.general";
+  }
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/ExtensibilityElementSectionDescriptor.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/ExtensibilityElementSectionDescriptor.java
new file mode 100644
index 0000000..2022a8a
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/ExtensibilityElementSectionDescriptor.java
@@ -0,0 +1,82 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.properties.section;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.wst.common.ui.properties.internal.provisional.ISection;
+import org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor;
+import org.eclipse.wst.wsdl.ExtensibilityElement;
+
+public class ExtensibilityElementSectionDescriptor extends AbstractSectionDescriptor implements ISectionDescriptor
+{
+  /**
+   * 
+   */
+  public ExtensibilityElementSectionDescriptor()
+  {
+    super();
+  }
+  
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getId()
+   */
+  public String getId()
+  {
+    return "org.eclipse.wst.wsdl.ui.internal.section.extensibilityelement";
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getSectionClass()
+   */
+  public ISection getSectionClass()
+  {
+    // TODO Auto-generated method stub
+    return new ExtensiblityElementSection();
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getTargetTab()
+   */
+  public String getTargetTab()
+  {
+    // TODO Auto-generated method stub
+    return "org.eclipse.wst.xmlwebservices.general";
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#appliesTo(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
+   */
+  public boolean appliesTo(IWorkbenchPart part, ISelection selection)
+  {
+    Object object = null;
+    if (selection instanceof StructuredSelection)
+    {
+      StructuredSelection structuredSelection = (StructuredSelection)selection;
+      object = structuredSelection.getFirstElement();
+      if (object instanceof ExtensibilityElement)
+      {
+        return true;
+      }
+    }
+    return false;
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getAfterSection()
+   */
+  public String getAfterSection()
+  {
+    return "";
+  }
+
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/ExtensiblityElementSection.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/ExtensiblityElementSection.java
new file mode 100644
index 0000000..62646e2
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/ExtensiblityElementSection.java
@@ -0,0 +1,77 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.properties.section;
+
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetWidgetFactory;
+import org.eclipse.wst.wsdl.ui.internal.model.ModelAdapterListener;
+import org.eclipse.wst.wsdl.ui.internal.viewers.ExtensibilityElementViewer;
+import org.eclipse.wst.wsdl.ui.internal.viewers.widgets.AttributesTable;
+
+public class ExtensiblityElementSection extends AbstractSection implements ModelAdapterListener
+{
+  ExtensibilityElementViewer viewer;
+  protected AttributesTable attributesTable;
+	/**
+	 * @see org.eclipse.wst.common.ui.properties.internal.provisional.ITabbedPropertySection#createControls(org.eclipse.swt.widgets.Composite, org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetWidgetFactory)
+	 */
+	public void createControls(Composite parent, TabbedPropertySheetWidgetFactory factory)
+	{
+		super.createControls(parent, factory);
+
+		composite =	getWidgetFactory().createFlatFormComposite(parent);
+	
+//		viewer = new ExtensibilityElementViewer(composite, getActiveEditor(), true);
+		attributesTable = new AttributesTable(getActiveEditor(), composite);
+		FormData data = new FormData();
+		data.left = new FormAttachment(0, 0);
+		data.right = new FormAttachment(100, 0);
+		data.top = new FormAttachment(0, 0);
+		data.bottom = new FormAttachment(100, 0);
+		attributesTable.getControl().setLayoutData(data);
+//		viewer.getControl().setLayoutData(data);
+	}
+	
+  public void propertyChanged(Object object, String property)
+  {
+    if (isListenerEnabled())
+    {
+      setListenerEnabled(false);
+      refresh();
+      setListenerEnabled(true);
+    }
+  }  
+
+	/*
+	 * @see org.eclipse.wst.common.ui.properties.internal.provisional.view.ITabbedPropertySection#refresh()
+	 */
+	public void refresh()
+	{
+    super.refresh();
+    attributesTable.setInput(getElement().getElement());
+
+    Runnable runnable = new Runnable()
+    { 
+      public void run()
+      {           
+        if (!attributesTable.getControl().isDisposed())
+        {
+          attributesTable.refresh();
+        }
+      }
+    };               
+    Display.getCurrent().asyncExec(runnable);
+
+	}
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/IPropertyDescriptorProvider.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/IPropertyDescriptorProvider.java
new file mode 100644
index 0000000..c5f1e93
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/IPropertyDescriptorProvider.java
@@ -0,0 +1,21 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.properties.section;
+
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.views.properties.IPropertyDescriptor;
+import org.w3c.dom.Element;
+
+public interface IPropertyDescriptorProvider 
+{
+  //public void init(IEditorPart editor);  
+  public IPropertyDescriptor getPropertyDescriptor(IEditorPart editor, Element ownerElement, String attributeNamespace, String attributeName);
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/properties/sections/ImportSection.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/ImportSection.java
similarity index 71%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/properties/sections/ImportSection.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/ImportSection.java
index d0cdb05..75c3d3b 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd/org/eclipse/wst/wsdl/asd/editor/properties/sections/ImportSection.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/ImportSection.java
@@ -1,15 +1,20 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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.asd.editor.properties.sections;
+package org.eclipse.wst.wsdl.ui.internal.properties.section;
 
+import java.util.Map;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.jface.dialogs.IDialogConstants;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.CLabel;
 import org.eclipse.swt.events.SelectionEvent;
@@ -20,12 +25,21 @@
 import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.widgets.Text;
 import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-import org.eclipse.wst.wsdl.asd.facade.IImport;
+import org.eclipse.ui.IFileEditorInput;
+import org.eclipse.wst.common.ui.internal.dialogs.SelectSingleFileDialog;
+import org.eclipse.wst.common.ui.properties.internal.provisional.ITabbedPropertyConstants;
+import org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetWidgetFactory;
+import org.eclipse.wst.wsdl.Definition;
+import org.eclipse.wst.wsdl.Import;
+import org.eclipse.wst.wsdl.internal.impl.ImportImpl;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditor;
 import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.eclipse.wst.wsdl.ui.internal.util.ComponentReferenceUtil;
+import org.eclipse.wst.wsdl.ui.internal.util.WSDLEditorUtil;
+import org.eclipse.wst.wsdl.ui.internal.util.XMLQuickScan;
+import org.w3c.dom.Element;
 
-public class ImportSection extends ASDAbstractSection
+public class ImportSection extends AbstractSection
 {
   protected Text namespaceText, prefixText, locationText;
   private String oldPrefixValue;
@@ -40,7 +54,7 @@
 		super.createControls(parent, factory);
 		Composite composite = getWidgetFactory().createFlatFormComposite(parent);
 		FormData data;
-		
+
 		namespaceText = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$
 		namespaceText.setEditable(false);
 //		namespaceText.addListener(SWT.Modify, this);
@@ -49,14 +63,14 @@
 		data.right = new FormAttachment(100, -rightMarginSpace - ITabbedPropertyConstants.HSPACE);
 		data.top = new FormAttachment(0, 0);
 		namespaceText.setLayoutData(data);
-		
+
 		CLabel namespaceLabel = getWidgetFactory().createCLabel(composite, WSDLEditorPlugin.getWSDLString("_UI_LABEL_NAMESPACE")); //$NON-NLS-1$
 		data = new FormData();
 		data.left = new FormAttachment(0, 0);
 		data.right = new FormAttachment(namespaceText, -ITabbedPropertyConstants.HSPACE);
 		data.top = new FormAttachment(namespaceText, 0, SWT.CENTER);
 		namespaceLabel.setLayoutData(data);
-		
+
 		prefixText = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$
 //		prefixText.setEditable(false);
 		prefixText.addListener(SWT.Modify, this);
@@ -65,40 +79,40 @@
 		data.right = new FormAttachment(100, -rightMarginSpace - ITabbedPropertyConstants.HSPACE);
 		data.top = new FormAttachment(namespaceText, +ITabbedPropertyConstants.VSPACE);
 		prefixText.setLayoutData(data);
-		
+
 		CLabel prefixLabel = getWidgetFactory().createCLabel(composite, WSDLEditorPlugin.getWSDLString("_UI_LABEL_PREFIX")); //$NON-NLS-1$
 		data = new FormData();
 		data.left = new FormAttachment(0, 0);
 		data.right = new FormAttachment(prefixText, -ITabbedPropertyConstants.HSPACE);
 		data.top = new FormAttachment(prefixText, 0, SWT.CENTER);
 		prefixLabel.setLayoutData(data);
-		
+
 		locationText = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$
 		locationText.setEditable(false);
 //		locationText.addListener(SWT.Modify, this);
-		
+
 		CLabel locationLabel = getWidgetFactory().createCLabel(composite, WSDLEditorPlugin.getWSDLString("_UI_LABEL_LOCATION")); //$NON-NLS-1$
 		data = new FormData();
 		data.left = new FormAttachment(0, 0);
 		data.right = new FormAttachment(locationText, -ITabbedPropertyConstants.HSPACE);
 		data.top = new FormAttachment(locationText, 0, SWT.CENTER);
 		locationLabel.setLayoutData(data);
-		
-		button = getWidgetFactory().createButton(composite, "", SWT.PUSH); //$NON-NLS-1$
-		button.setImage(WSDLEditorPlugin.getInstance().getImage("icons/browsebutton.gif")); //$NON-NLS-1$
-		
-		button.addSelectionListener(this);
+
+    button = getWidgetFactory().createButton(composite, "", SWT.PUSH); //$NON-NLS-1$
+    button.setImage(WSDLEditorPlugin.getInstance().getImage("icons/browsebutton.gif")); //$NON-NLS-1$
+
+    button.addSelectionListener(this);
 		data = new FormData();
 		data.left = new FormAttachment(100, -rightMarginSpace + 2);
 		data.right = new FormAttachment(100,0);
 		data.top = new FormAttachment(locationText, 0, SWT.CENTER);
 		button.setLayoutData(data);
-		
-		data = new FormData();
-		data.left = new FormAttachment(0, 100);
-		data.right = new FormAttachment(button, 0);
-		data.top = new FormAttachment(prefixText, +ITabbedPropertyConstants.VSPACE);
-		locationText.setLayoutData(data);
+    
+    data = new FormData();
+    data.left = new FormAttachment(0, 100);
+    data.right = new FormAttachment(button, 0);
+    data.top = new FormAttachment(prefixText, +ITabbedPropertyConstants.VSPACE);
+    locationText.setLayoutData(data);
 	}
 
 	/*
@@ -106,64 +120,63 @@
 	 */
 	public void refresh()
 	{
-		setListenerEnabled(false);  
-		Object obj = getModel();
-		boolean refreshPrefixText = true;
-		boolean refreshLocationText = true;
-		boolean refreshNamespaceText = true;
-		if (prefixText.isFocusControl())
-		{
-			refreshPrefixText = false;
-		}
-		if (locationText.isFocusControl())
-		{
-			refreshLocationText = false;
-		}
-		if (namespaceText.isFocusControl())
-		{
-			refreshNamespaceText = false;
-		}
-		
-		if (refreshPrefixText)
-		{
-			prefixText.setText(""); //$NON-NLS-1$
-		}
-		if (refreshLocationText)
-		{
-			locationText.setText(""); //$NON-NLS-1$
-		}
-		if (refreshNamespaceText)
-		{
-			namespaceText.setText(""); //$NON-NLS-1$
-		}
-		if (obj instanceof IImport)
-		{
-			IImport theImport = (IImport) obj;
-			if (refreshLocationText)
-			{
-				String locationValue = theImport.getLocation(); 
-				locationText.setText(locationValue != null ? locationValue : ""); //$NON-NLS-1$
-			}
-			
-			String namespaceValue = theImport.getNamespace();
-			if (refreshNamespaceText)
-			{
-				namespaceText.setText(namespaceValue != null ? namespaceValue : ""); //$NON-NLS-1$
-			}
-			
-			if (refreshPrefixText)
-			{
-				String prefix = theImport.getNamespacePrefix();
-				prefixText.setText(prefix != null ? prefix : ""); //$NON-NLS-1$
-			}
-		}
-		oldPrefixValue = prefixText.getText();
-		setListenerEnabled(true);
+	  setListenerEnabled(false);  
+	  Object obj = getElement();
+    boolean refreshPrefixText = true;
+    boolean refreshLocationText = true;
+    boolean refreshNamespaceText = true;
+    if (prefixText.isFocusControl())
+    {
+      refreshPrefixText = false;
+    }
+    if (locationText.isFocusControl())
+    {
+      refreshLocationText = false;
+    }
+    if (namespaceText.isFocusControl())
+    {
+      refreshNamespaceText = false;
+    }
+    
+    if (refreshPrefixText)
+    {
+      prefixText.setText(""); //$NON-NLS-1$
+    }
+    if (refreshLocationText)
+    {
+      locationText.setText(""); //$NON-NLS-1$
+    }
+    if (refreshNamespaceText)
+    {
+      namespaceText.setText(""); //$NON-NLS-1$
+    }
+	  if (obj instanceof Import)
+	  {
+	    Element element = ((Import)obj).getElement();                           
+      if (refreshLocationText)
+      {
+        String locationValue = element.getAttribute("location"); //$NON-NLS-1$
+  	    locationText.setText(locationValue != null ? locationValue : ""); //$NON-NLS-1$
+      }
+
+      String namespaceValue = element.getAttribute("namespace"); //$NON-NLS-1$
+      if (refreshNamespaceText)
+      {
+        namespaceText.setText(namespaceValue != null ? namespaceValue : ""); //$NON-NLS-1$
+      }
+      
+      if (refreshPrefixText)
+      {
+  	    String prefix = ((Import)obj).getEnclosingDefinition().getPrefix(namespaceValue);
+  	    prefixText.setText(prefix != null ? prefix : ""); //$NON-NLS-1$
+      }
+	  }
+	oldPrefixValue = prefixText.getText();
+    setListenerEnabled(true);
 	}
-	
+
 	public void doHandleEvent(Event event) {
-		if (event.widget == prefixText && locationText.getText().length() > 0 && namespaceText.getText().length() > 0) {
-			/*
+	    if (event.widget == prefixText && locationText.getText().length() > 0 && namespaceText.getText().length() > 0) {    	
 	    	Object input = getElement();
 	        Import importObj = (Import)input;
 //	        org.w3c.dom.Element importElement = WSDLEditorUtil.getInstance().getElementForObject(importObj);
@@ -181,15 +194,13 @@
 //	            clearErrorMessage();
 	            oldPrefixValue = prefixText.getText();
 	        }
-			 */
-		}
+	    }
 	}
 	
-	public void widgetSelected(SelectionEvent e)
-	{
-		if (e.widget == button)
-		{
-			/*
+  public void widgetSelected(SelectionEvent e)
+  {
+	  if (e.widget == button)
+	  {
 		  Object input = getElement();
 		  
 		  WSDLEditor editor = (WSDLEditor)editorPart;
@@ -257,12 +268,12 @@
 			  locationText.setText(location);
 			  prefixText.setText(uniquePrefix);
 		  }
-			 */
-			refresh();
-		}
-	}
+		  
+		  refresh();
+	  }
+  }
 	
-	/*
+  
   private String getUniquePrefix(Definition definition, String initPrefix)
   {
     String uniquePrefix;
@@ -284,11 +295,10 @@
     }
     return uniquePrefix;    
   } 
-	 */
-	
-	public void setEditorPart(IEditorPart editorPart)
-	{
-		this.editorPart = editorPart;
-	}
+  
+  public void setEditorPart(IEditorPart editorPart)
+  {
+    this.editorPart = editorPart;
+  }
 
 }
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/ImportSectionDescriptor.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/ImportSectionDescriptor.java
new file mode 100644
index 0000000..0122369
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/ImportSectionDescriptor.java
@@ -0,0 +1,93 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.properties.section;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.wst.common.ui.properties.internal.provisional.ISection;
+import org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor;
+import org.eclipse.wst.wsdl.Import;
+
+public class ImportSectionDescriptor extends AbstractSectionDescriptor implements ISectionDescriptor
+{
+  ImportSection importSection;
+  /**
+   * 
+   */
+  public ImportSectionDescriptor()
+  {
+    super();
+    importSection = new ImportSection();
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getId()
+   */
+  public String getId()
+  {
+    return "org.eclipse.wst.wsdl.ui.internal.section.import";
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getInputTypes()
+   */
+  public List getInputTypes()
+  {
+    List list = new ArrayList();
+    list.add(Import.class);
+    return list;
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getSectionClass()
+   */
+  public ISection getSectionClass()
+  {
+    return importSection;
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getTargetTab()
+   */
+  public String getTargetTab()
+  {
+    return "org.eclipse.wst.xmlwebservices.general";
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#appliesTo(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
+   */
+  public boolean appliesTo(IWorkbenchPart part, ISelection selection)
+  {
+    importSection.setEditorPart(part.getSite().getWorkbenchWindow().getActivePage().getActiveEditor());
+    Object object = null;
+    if (selection instanceof StructuredSelection)
+    {
+      StructuredSelection structuredSelection = (StructuredSelection)selection;
+      object = structuredSelection.getFirstElement();
+      if (object instanceof Import)
+      {
+        return true;
+      }
+    }
+    return false;
+  }
+  
+  public String getAfterSection()
+  {
+    return "org.eclipse.wst.wsdl.ui.internal.section.name";
+  }
+
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/NameSection.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/NameSection.java
new file mode 100644
index 0000000..8a2f11c
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/NameSection.java
@@ -0,0 +1,178 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.properties.section;
+
+import javax.xml.namespace.QName;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CLabel;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.wst.common.ui.properties.internal.provisional.ITabbedPropertyConstants;
+import org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetWidgetFactory;
+import org.eclipse.wst.wsdl.Binding;
+import org.eclipse.wst.wsdl.BindingFault;
+import org.eclipse.wst.wsdl.BindingInput;
+import org.eclipse.wst.wsdl.BindingOperation;
+import org.eclipse.wst.wsdl.BindingOutput;
+import org.eclipse.wst.wsdl.Definition;
+import org.eclipse.wst.wsdl.Message;
+import org.eclipse.wst.wsdl.MessageReference;
+import org.eclipse.wst.wsdl.Operation;
+import org.eclipse.wst.wsdl.Part;
+import org.eclipse.wst.wsdl.Port;
+import org.eclipse.wst.wsdl.PortType;
+import org.eclipse.wst.wsdl.Service;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.eclipse.wst.wsdl.ui.internal.actions.SmartRenameAction;
+
+
+public class NameSection extends AbstractSection
+{
+
+	Text nameText;
+
+	/**
+	 * @see org.eclipse.wst.common.ui.properties.internal.provisional.ITabbedPropertySection#createControls(org.eclipse.swt.widgets.Composite, org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetWidgetFactory)
+	 */
+	public void createControls(Composite parent,TabbedPropertySheetWidgetFactory factory)
+	{
+		super.createControls(parent, factory);
+		composite =	getWidgetFactory().createFlatFormComposite(parent);
+		FormData data;
+		
+
+		nameText = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$
+		data = new FormData();
+		data.left = new FormAttachment(0, 100);
+		data.right = new FormAttachment(100, -rightMarginSpace - ITabbedPropertyConstants.HSPACE);
+		data.top = new FormAttachment(0, 0);
+		nameText.setLayoutData(data);
+
+		CLabel nameLabel = getWidgetFactory().createCLabel(composite, WSDLEditorPlugin.getWSDLString("_UI_LABEL_NAME") + ":"); //$NON-NLS-1$
+		data = new FormData();
+		data.left = new FormAttachment(0, 0);
+		data.right = new FormAttachment(nameText, -ITabbedPropertyConstants.HSPACE);
+		data.top = new FormAttachment(nameText, 0, SWT.CENTER);
+		nameLabel.setLayoutData(data);
+		
+		nameText.addListener(SWT.Modify, this);
+	}
+
+	/*
+	 * @see org.eclipse.wst.common.ui.properties.internal.provisional.view.ITabbedPropertySection#refresh()
+	 */
+	public void refresh()
+	{
+    super.refresh();
+    if (nameText.isFocusControl())
+    {
+      return;
+    }
+    setListenerEnabled(false);
+	  nameText.setText(""); //$NON-NLS-1$
+	  if (getElement() != null)
+	  {
+	    if (getElement().getElement()!= null)
+	    {
+	      String name = getElement().getElement().getAttribute("name"); //$NON-NLS-1$
+	      if (name==null) name="";
+	      nameText.setText(name);
+	    }
+	  }
+    setListenerEnabled(true);
+	}
+	
+  public boolean shouldUseExtraSpace()
+  {
+    return false;
+  }
+
+  public void doHandleEvent(Event event)
+  {
+    if (event.widget == nameText && !nameText.isDisposed()) {
+        String newValue = nameText.getText();
+        Object wsdlElement = getElement();
+
+        if (wsdlElement instanceof Definition) {
+        	Definition definition = (Definition) wsdlElement;
+        	String uri = "";
+        	if (definition.getQName() != null) {
+        		uri = definition.getQName().getNamespaceURI();	
+        	}
+        	definition.setQName(new QName(uri, newValue));
+        }
+        else if (wsdlElement instanceof Service) {        
+        	Service service = (Service) wsdlElement;
+        	String uri = service.getQName().getNamespaceURI(); 
+        	service.setQName(new QName(uri, newValue));
+        }
+        else if (wsdlElement instanceof Port) {
+        	new SmartRenameAction(wsdlElement, newValue).run();
+//        	((Port) wsdlElement).setName(newValue);
+        }
+        else if (wsdlElement instanceof Binding) {
+        	Binding binding = (Binding) wsdlElement;
+        	String uri = binding.getQName().getNamespaceURI();
+        	binding.setQName(new QName(uri, newValue));
+        }
+        else if (wsdlElement instanceof BindingOperation) {
+        		((BindingOperation) wsdlElement).setName(newValue);
+        }
+        else if (wsdlElement instanceof BindingInput) {
+        	if(((BindingInput) wsdlElement).getName() == null && newValue.equals("")) //$NON-NLS-1$
+        		return;
+        	
+        	((BindingInput) wsdlElement).setName(newValue);
+        }
+        else if (wsdlElement instanceof BindingOutput) {
+        	if (((BindingOutput) wsdlElement).getName() == null && newValue.equals("")) //$NON-NLS-1$
+        		return;
+        	
+        	((BindingOutput) wsdlElement).setName(newValue);
+        }
+        else if (wsdlElement instanceof BindingFault) {
+        	((BindingFault) wsdlElement).setName(newValue);
+        }
+        else if (wsdlElement instanceof PortType) {
+        	PortType portType = (PortType) wsdlElement;
+        	String uri = portType.getQName().getNamespaceURI();
+        	portType.setQName(new QName(uri, newValue));
+        }
+        else if (wsdlElement instanceof Operation) {
+        	new SmartRenameAction(wsdlElement, newValue).run();
+//        	((Operation) wsdlElement).setName(newValue);
+        }
+        else if (wsdlElement instanceof MessageReference) {
+        	if (((MessageReference) wsdlElement).getName() == null && newValue.equals("")) //$NON-NLS-1$
+        		return;
+        	
+        	new SmartRenameAction(wsdlElement, newValue).run();
+//        	((MessageReference) wsdlElement).setName(newValue);
+        }
+        else if (wsdlElement instanceof Message) {
+/*
+        	Message message = (Message) wsdlElement;
+        	String uri = message.getQName().getNamespaceURI();
+        	message.setQName(new QName(uri, newValue));
+        	*/
+        	new SmartRenameAction(wsdlElement, newValue).run();
+        }
+        else if (wsdlElement instanceof Part) {
+//        	((Part) wsdlElement).setName(newValue);
+        	new SmartRenameAction(wsdlElement, newValue).run();
+        }
+    }
+  }
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/NameSectionDescriptor.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/NameSectionDescriptor.java
new file mode 100644
index 0000000..b641350
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/NameSectionDescriptor.java
@@ -0,0 +1,108 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.properties.section;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.wst.common.ui.properties.internal.provisional.ISection;
+import org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor;
+import org.eclipse.wst.wsdl.Definition;
+import org.eclipse.wst.wsdl.ExtensibilityElement;
+import org.eclipse.wst.wsdl.Import;
+import org.eclipse.wst.wsdl.WSDLElement;
+
+
+public class NameSectionDescriptor extends AbstractSectionDescriptor implements ISectionDescriptor
+{
+  /**
+   * 
+   */
+  public NameSectionDescriptor()
+  {
+    super();
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getId()
+   */
+  public String getId()
+  {
+    return "org.eclipse.wst.wsdl.ui.internal.section.name";
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getInputTypes()
+   */
+  public List getInputTypes()
+  {
+    List list = new ArrayList();
+    list.add(WSDLElement.class);
+    return list;
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getSectionClass()
+   */
+  public ISection getSectionClass()
+  {
+    return new NameSection();
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getTargetTab()
+   */
+  public String getTargetTab()
+  {
+    return "org.eclipse.wst.xmlwebservices.general";
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#appliesTo(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
+   */
+  public boolean appliesTo(IWorkbenchPart part, ISelection selection)
+  {
+    Object object = null;
+    if (selection instanceof StructuredSelection)
+    {
+      StructuredSelection structuredSelection = (StructuredSelection)selection;
+      object = structuredSelection.getFirstElement();
+      if (object instanceof WSDLElement && 
+          !(object instanceof ExtensibilityElement) &&
+          !(object instanceof Import))
+      {
+      	if (object instanceof WSDLElement) {
+      		Definition definition = ((WSDLElement) object).getEnclosingDefinition();
+      		if (definition.getElement() != null && !(object instanceof Definition)) {
+      			return true;
+      		}
+      		
+      		return false;
+      	}
+      	/*
+      	else if (object instanceof WSDLGroupObject) {
+      		Definition definition = ((WSDLGroupObject) object).getDefinition();
+      		if (definition.getElement() != null) {
+      			return true;
+      		}
+      		
+      		return false;
+      	}
+      	*/
+      }
+    }
+    return false;
+  }
+
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/NamespaceSection.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/NamespaceSection.java
new file mode 100644
index 0000000..93cc771
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/NamespaceSection.java
@@ -0,0 +1,261 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.properties.section;
+
+import java.util.List;
+
+import javax.xml.namespace.QName;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CLabel;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.wst.common.ui.properties.internal.provisional.ITabbedPropertyConstants;
+import org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetWidgetFactory;
+import org.eclipse.wst.wsdl.Definition;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.eclipse.wst.wsdl.ui.internal.actions.EditNamespacesAction;
+import org.eclipse.wst.xml.core.internal.document.AttrImpl;
+import org.eclipse.wst.xml.ui.internal.nsedit.CommonEditNamespacesTargetFieldDialog;
+import org.eclipse.wst.xml.ui.internal.nsedit.CommonNamespaceInfoTable;
+import org.w3c.dom.Element;
+
+public class NamespaceSection extends AbstractSection
+{
+  protected String targetNamespace;
+  protected List namespaceInfoList;
+  protected CommonEditNamespacesTargetFieldDialog editWSDLNamespacesControl;
+  protected Button button;
+  
+  Text nameText;
+  Text prefixText;
+  Text targetNamespaceText;
+  protected CommonNamespaceInfoTable tableViewer;
+  private boolean handlingEvent;
+
+	/**
+	 * @see org.eclipse.wst.common.ui.properties.internal.provisional.ITabbedPropertySection#createControls(org.eclipse.swt.widgets.Composite, org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetWidgetFactory)
+	 */
+	public void createControls(Composite parent, TabbedPropertySheetWidgetFactory factory)
+	{
+		super.createControls(parent, factory);
+		composite =	getWidgetFactory().createFlatFormComposite(parent);
+		
+		String nameString = WSDLEditorPlugin.getWSDLString("_UI_LABEL_NAME") + ":";
+		String prefixString = WSDLEditorPlugin.getWSDLString("_UI_LABEL_PREFIX") + ":";
+		String namespaceString = WSDLEditorPlugin.getWSDLString("_UI_LABEL_TARGET_NAMESPACE");
+		GC gc = new GC(parent);
+		int xoffset = Math.max(115, gc.textExtent(nameString).x + 20); // adds 20 due to borders
+		xoffset = Math.max(xoffset, gc.textExtent(prefixString).x + 20); // adds 20 due to borders
+		xoffset = Math.max(xoffset, gc.textExtent(namespaceString).x + 20); // adds 20 due to borders
+		gc.dispose();
+
+		// name
+		CLabel nameLabel = getWidgetFactory().createCLabel(composite, nameString); //$NON-NLS-1$
+		nameText = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$
+		
+		// prefix
+		CLabel prefixLabel = getWidgetFactory().createCLabel(composite, prefixString); //$NON-NLS-1$
+		prefixText = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$
+
+		// targetnamespace
+		CLabel targetNamespaceLabel = getWidgetFactory().createCLabel(composite, namespaceString); //$NON-NLS-1$
+		targetNamespaceText = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$
+
+		// Advanced button
+		button = getWidgetFactory().createButton(composite, WSDLEditorPlugin.getWSDLString("_UI_SECTION_ADVANCED_ATTRIBUTES") + "...", SWT.PUSH); //$NON-NLS-1$
+		
+		
+		///////////////////// Labels
+		// name layout
+		FormData dataNameLabel = new FormData();
+		dataNameLabel.top = new FormAttachment(nameText, 0, SWT.CENTER);
+		nameLabel.setLayoutData(dataNameLabel);
+
+		// prefix layout
+		FormData dataPrefixLabel = new FormData();
+		dataPrefixLabel.left = new FormAttachment(0, 0);
+		dataPrefixLabel.top = new FormAttachment(prefixText, 0, SWT.CENTER);
+		prefixLabel.setLayoutData(dataPrefixLabel);
+
+		// targetNamespaceLabel layout
+		FormData datatnsLabel = new FormData();
+		datatnsLabel.left = new FormAttachment(0, 0);
+    datatnsLabel.right = new FormAttachment(targetNamespaceText, 0);
+		datatnsLabel.top = new FormAttachment(targetNamespaceText, 0, SWT.CENTER);
+		targetNamespaceLabel.setLayoutData(datatnsLabel);
+		
+
+		///////////////////// Text Fields
+		// name text field
+		FormData dataNameText = new FormData();
+		dataNameText.left = new FormAttachment(0, xoffset);
+		dataNameText.right = new FormAttachment(100, -rightMarginSpace - ITabbedPropertyConstants.HSPACE);
+		dataNameText.top = new FormAttachment(0, 0);
+		nameText.setLayoutData(dataNameText);
+		nameText.addListener(SWT.Modify, this);
+
+		// prefix text field
+		FormData dataPrefixText = new FormData();
+		dataPrefixText.left = new FormAttachment(0, xoffset);
+		dataPrefixText.right = new FormAttachment(100, -rightMarginSpace - ITabbedPropertyConstants.HSPACE);
+		dataPrefixText.top = new FormAttachment(nameText, +ITabbedPropertyConstants.VSPACE);
+		prefixText.setLayoutData(dataPrefixText);
+		prefixText.addListener(SWT.Modify, this);
+
+		// targetnamespace text field
+		FormData data = new FormData();
+		data.left = new FormAttachment(0, xoffset);
+		data.right = new FormAttachment(100, -rightMarginSpace - ITabbedPropertyConstants.HSPACE);
+		data.top = new FormAttachment(prefixText, +ITabbedPropertyConstants.VSPACE);
+		targetNamespaceText.setLayoutData(data);
+		targetNamespaceText.addListener(SWT.Modify, this);
+		
+		// Advanced button layout
+		FormData dataButton = new FormData();
+//		dataButton.left = new FormAttachment(100, -rightMarginSpace + 2);
+		dataButton.right = new FormAttachment(100, -rightMarginSpace - ITabbedPropertyConstants.HSPACE);
+		dataButton.top = new FormAttachment(targetNamespaceText, +ITabbedPropertyConstants.VSPACE);
+//		dataButton.top = new FormAttachment(targetNamespaceText, 0, SWT.CENTER);
+		button.setLayoutData(dataButton);
+		button.addSelectionListener(this);
+	}
+
+	public void doHandleEvent(Event event)
+	{
+		handlingEvent = true;
+	  if (event.widget == nameText) {
+	  	Object obj = getElement();
+	  	if (obj instanceof Definition) {
+	  		Definition definition = (Definition) obj;
+	  		String uri = "";
+	  		if (definition.getQName() != null) {
+	  			uri = definition.getQName().getNamespaceURI();
+	  		}
+	  		definition.setQName(new QName(uri, nameText.getText()));
+	  	}
+	  }
+	  else if (event.widget == prefixText) {
+	  	Object obj = getElement();
+	  	if (obj instanceof Definition) {
+	  		Definition definition = (Definition) obj;
+	  		Element element = definition.getElement();
+	  		
+	  		// Remove the old prefix
+	  		String oldPrefix = definition.getPrefix(definition.getTargetNamespace());
+	  		element.removeAttribute("xmlns:"+oldPrefix); 
+	  		
+	  		// Set the new prefix
+	  	  	element.setAttribute("xmlns:" + prefixText.getText(), definition.getTargetNamespace());
+	  	}
+	  }
+	  else if (event.widget == targetNamespaceText)
+	  {
+		  Object obj = getElement();
+		  if (obj instanceof Definition)
+		  {
+		    Definition definition = (Definition)obj;
+		    String newValue = targetNamespaceText.getText();
+		    String prefix = definition.getPrefix(definition.getTargetNamespace());
+		    definition.setTargetNamespace(newValue);
+		    definition.getElement().setAttribute("xmlns:" + prefix, newValue);
+		  }
+	  }
+	  handlingEvent = false;		
+	}
+	
+	/*
+	 * @see org.eclipse.wst.common.ui.properties.internal.provisional.view.ITabbedPropertySection#refresh()
+	 */
+	public void refresh()
+	{
+    super.refresh();
+
+    if (targetNamespaceText.isFocusControl() || handlingEvent)
+    {
+      return;
+    }
+	  setListenerEnabled(false);  
+	  Object obj = getElement();
+	  if (obj instanceof Definition)
+	  {
+	    Definition definition = (Definition)obj;
+	    String targetNS = definition.getTargetNamespace();
+	    
+		// set targetnamespace field and prefix field
+	    if (targetNS != null)
+	    {
+	    	targetNamespaceText.setText(targetNS);
+	    	
+	    	Element element = definition.getElement();
+
+        String newPrefix = definition.getPrefix(targetNS);
+        if (newPrefix == null) newPrefix = "";
+        // TODO: remove this code
+        if (element != null)
+        {
+  	    	for (int index = 0; index < element.getAttributes().getLength(); index++) {
+  	    		AttrImpl attr = (AttrImpl) element.getAttributes().item(index);
+  	    		String nodeName = attr.getNodeName();
+  	    		String nsValue = attr.getNodeValue();
+  	    		if (nsValue.equals(targetNS)) {
+  	    			if (nodeName.indexOf(":") != -1) {
+  	    				String xmlnsString = nodeName.substring(0, nodeName.indexOf(":"));
+  	    				
+  	    				if (xmlnsString.equals("xmlns")) {
+  	    	    			newPrefix = attr.getLocalName();
+  	    	    			break;
+  	    				}
+  	    			}
+  	    		}
+  	    	}
+        }
+	    	prefixText.setText(newPrefix);     
+	    }
+	  }
+	  
+	  // set name field
+	  if (getElement() != null)
+	  {
+	    if (getElement().getElement()!= null)
+	    {
+	      String name = getElement().getElement().getAttribute("name"); //$NON-NLS-1$
+	      if (name==null) name="";
+	      nameText.setText(name);
+	    }
+	  }
+
+    setListenerEnabled(true);
+	}
+	
+	
+  public void widgetSelected(SelectionEvent e)
+  {
+    if (e.widget == button)
+    {
+      Object obj = getElement();
+      if (obj instanceof Definition)
+      {
+        Definition definition = (Definition)obj;
+        EditNamespacesAction action = new EditNamespacesAction(definition);
+      	action.run();
+        refresh();
+      }
+    }
+  }
+
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/NamespaceSectionDescriptor.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/NamespaceSectionDescriptor.java
new file mode 100644
index 0000000..eb0ffef
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/NamespaceSectionDescriptor.java
@@ -0,0 +1,106 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.properties.section;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.wst.common.ui.properties.internal.provisional.ISection;
+import org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor;
+import org.eclipse.wst.wsdl.Definition;
+import org.eclipse.wst.wsdl.ui.internal.model.WSDLGroupObject;
+
+public class NamespaceSectionDescriptor extends AbstractSectionDescriptor implements ISectionDescriptor
+{
+  /**
+   * 
+   */
+  public NamespaceSectionDescriptor()
+  {
+    super();
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getId()
+   */
+  public String getId()
+  {
+    return "org.eclipse.wst.wsdl.ui.internal.section.namespace";
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getInputTypes()
+   */
+  public List getInputTypes()
+  {
+    List list = new ArrayList();
+    list.add(WSDLGroupObject.class);
+    return list;
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getSectionClass()
+   */
+  public ISection getSectionClass()
+  {
+    return new NamespaceSection();
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getTargetTab()
+   */
+  public String getTargetTab()
+  {
+    return "org.eclipse.wst.xmlwebservices.general";
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#appliesTo(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
+   */
+  public boolean appliesTo(IWorkbenchPart part, ISelection selection)
+  {
+    Object object = null;
+    if (selection instanceof StructuredSelection)
+    {
+      StructuredSelection structuredSelection = (StructuredSelection)selection;
+      object = structuredSelection.getFirstElement();
+      if (object instanceof WSDLGroupObject)
+      {
+      	Definition definition = ((WSDLGroupObject) object).getDefinition();
+      	if (definition.getElement() != null) {
+      		return true;
+      	}
+      	
+      	return false;
+      }
+      else if (object instanceof org.eclipse.wst.wsdl.Definition) {
+      	Definition definition = (Definition) object;
+      	if (definition.getElement() != null) {
+      		return true;
+      	}
+      	
+      	return false;
+      }
+    }
+    return false;
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getAfterSection()
+   */
+  public String getAfterSection()
+  {
+    return "";
+  }
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/PartSection.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/PartSection.java
new file mode 100644
index 0000000..c3936aa
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/PartSection.java
@@ -0,0 +1,212 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.properties.section;
+
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CCombo;
+import org.eclipse.swt.custom.CLabel;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.wst.common.ui.properties.internal.provisional.ITabbedPropertyConstants;
+import org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetWidgetFactory;
+import org.eclipse.wst.wsdl.Part;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditor;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.eclipse.wst.wsdl.ui.internal.dialogs.InvokeSetDialog;
+import org.eclipse.wst.wsdl.ui.internal.util.ComponentReferenceUtil;
+
+
+public class PartSection extends AbstractSection
+{
+  CCombo componentNameCombo;
+	CCombo referenceKindCombo;
+  CLabel componentNameLabel;
+  Button button;
+  IEditorPart editorPart;
+
+	public void handleEvent (Event event)
+	{
+    if (event.type == SWT.Modify)
+    {  
+      if (event.widget == referenceKindCombo)
+      {
+        boolean isType = referenceKindCombo.getText().equals(WSDLEditorPlugin.getWSDLString("_UI_LABEL_TYPE")); //$NON-NLS-1$
+        ComponentReferenceUtil.setComponentReference((Part)getElement(), isType, null);
+        refresh();
+      } 
+    }
+
+	}
+
+	/**
+	 * @see org.eclipse.wst.common.ui.properties.internal.provisional.ITabbedPropertySection#createControls(org.eclipse.swt.widgets.Composite, org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetWidgetFactory)
+	 */
+	public void createControls(Composite parent, TabbedPropertySheetWidgetFactory factory)
+	{
+		super.createControls(parent, factory);
+		composite =	getWidgetFactory().createFlatFormComposite(parent);
+
+		FormData data;
+
+		referenceKindCombo = getWidgetFactory().createCCombo(composite);
+		referenceKindCombo.setBackground(composite.getBackground());
+		referenceKindCombo.add(WSDLEditorPlugin.getWSDLString("_UI_LABEL_ELEMENT")); //$NON-NLS-1$
+		referenceKindCombo.add(WSDLEditorPlugin.getWSDLString("_UI_LABEL_TYPE")); //$NON-NLS-1$
+
+		CLabel valueLabel = getWidgetFactory().createCLabel(composite, WSDLEditorPlugin.getWSDLString("_UI_LABEL_REFERENCE_KIND")); //$NON-NLS-1$
+		data = new FormData();
+		data.left = new FormAttachment(0, 0);
+		data.right = new FormAttachment(referenceKindCombo, -ITabbedPropertyConstants.HSPACE);
+		data.top = new FormAttachment(referenceKindCombo, 0, SWT.CENTER);
+		valueLabel.setLayoutData(data);
+
+    componentNameCombo = getWidgetFactory().createCCombo(composite);
+    componentNameCombo.setBackground(composite.getBackground());
+    componentNameCombo.addListener(SWT.Modify, this);
+    componentNameCombo.addSelectionListener(this);
+
+    componentNameLabel = getWidgetFactory().createCLabel(composite, WSDLEditorPlugin.getWSDLString("_UI_LABEL_ELEMENT") + ":"); //$NON-NLS-1$
+		data = new FormData();
+		data.left = new FormAttachment(0, 0);
+		data.right = new FormAttachment(componentNameCombo, -ITabbedPropertyConstants.HSPACE);
+		data.top = new FormAttachment(componentNameCombo, 0, SWT.CENTER);
+		componentNameLabel.setLayoutData(data);
+		
+    button = getWidgetFactory().createButton(composite, "", SWT.PUSH); //$NON-NLS-1$
+    button.setImage(WSDLEditorPlugin.getInstance().getImage("icons/browsebutton.gif")); //$NON-NLS-1$
+
+    button.addSelectionListener(this);
+		data = new FormData();
+		data.left = new FormAttachment(100, -rightMarginSpace + 2);
+		data.right = new FormAttachment(100, 0);
+		data.top = new FormAttachment(componentNameCombo, 0, SWT.CENTER);
+		button.setLayoutData(data);
+		
+    data = new FormData();
+    data.left = new FormAttachment(0, 100);
+    data.right = new FormAttachment(100, -rightMarginSpace - ITabbedPropertyConstants.HSPACE);
+    data.top = new FormAttachment(0, 0);
+    referenceKindCombo.setLayoutData(data);
+    
+    data = new FormData();
+    data.left = new FormAttachment(0, 100);
+    data.right = new FormAttachment(button, 0);
+    data.top = new FormAttachment(referenceKindCombo, +ITabbedPropertyConstants.VSPACE);
+    componentNameCombo.setLayoutData(data);
+
+    referenceKindCombo.addListener(SWT.Modify, this);
+	}
+
+	/*
+	 * @see org.eclipse.wst.common.ui.properties.internal.provisional.view.ITabbedPropertySection#refresh()
+	 */
+	public void refresh()
+	{
+    super.refresh();
+	  referenceKindCombo.removeListener(SWT.Modify, this);
+		if (((Part)getElement()).getTypeDefinition() != null)
+		{
+		  referenceKindCombo.setText(WSDLEditorPlugin.getWSDLString("_UI_LABEL_TYPE")); //$NON-NLS-1$
+		}
+		else
+		{
+		  referenceKindCombo.setText(WSDLEditorPlugin.getWSDLString("_UI_LABEL_ELEMENT")); //$NON-NLS-1$
+		}
+		
+    try
+    {
+      Part part = (Part)getElement();
+      boolean isType = ComponentReferenceUtil.isType(part);
+      String value = ComponentReferenceUtil.getPartComponentReference(part);
+
+      // update the combo-box content
+      //
+      componentNameCombo.removeAll(); 
+      List compList = ComponentReferenceUtil.getComponentNameList(part, isType);
+      if (compList != null)
+      {
+        for (Iterator iterator =  compList.iterator(); iterator.hasNext();)
+        {
+          componentNameCombo.add((String)iterator.next());
+        }
+      } 
+      
+      if (isType)
+      {                                                 
+        referenceKindCombo.setText(WSDLEditorPlugin.getWSDLString("_UI_LABEL_TYPE")); //$NON-NLS-1$
+        componentNameLabel.setText(WSDLEditorPlugin.getWSDLString("_UI_LABEL_TYPE") + ":");  //$NON-NLS-1$
+        componentNameCombo.setText(value != null ? value : ""); //$NON-NLS-1$
+//        button.setReferenceKind("type");
+      }
+      else
+      {
+        referenceKindCombo.setText(WSDLEditorPlugin.getWSDLString("_UI_LABEL_ELEMENT"));  //$NON-NLS-1$
+        componentNameLabel.setText(WSDLEditorPlugin.getWSDLString("_UI_LABEL_ELEMENT") + ":");  //$NON-NLS-1$
+        componentNameCombo.setText(value != null ? value : ""); //$NON-NLS-1$
+        
+//        button.setReferenceKind("element");
+      }                                                        
+//      button.setInput(input);
+//      button.setEditor(editorPart);
+      
+    }
+    catch (Exception e)
+    {
+      e.printStackTrace();
+    }
+    finally
+    {
+  		referenceKindCombo.addListener(SWT.Modify, this);
+    }
+	}
+
+  /**
+   * @see org.eclipse.swt.events.SelectionListener#widgetSelected(SelectionEvent)
+   */
+  public void widgetSelected(SelectionEvent e)
+  {
+    Part part = (Part)getElement();
+    boolean isType = referenceKindCombo.getText().equals(WSDLEditorPlugin.getWSDLString("_UI_LABEL_TYPE")); //$NON-NLS-1$
+    if (e.widget == componentNameCombo)
+    {                                                      
+      ComponentReferenceUtil.setComponentReference(part, isType, componentNameCombo.getText());
+      refresh();
+    }
+    else if (e.widget == button)
+    {
+        InvokeSetDialog dialog = new InvokeSetDialog();
+          
+        if (getElement() instanceof Part)
+        {
+            dialog.setReferenceKind(referenceKindCombo.getText());
+        }
+        dialog.setReferenceKind(referenceKindCombo.getText());
+        dialog.run(getElement(), editorPart);
+        
+        WSDLEditor editor = (WSDLEditor) editorPart;
+        editor.getSelectionManager().setSelection(new StructuredSelection(getElement()));
+    }
+  }
+  
+  public void setEditorPart(IEditorPart editorPart)
+  {
+    this.editorPart = editorPart;
+  }
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/PartSectionDescriptor.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/PartSectionDescriptor.java
new file mode 100644
index 0000000..78f6012
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/PartSectionDescriptor.java
@@ -0,0 +1,94 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.properties.section;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.wst.common.ui.properties.internal.provisional.ISection;
+import org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor;
+import org.eclipse.wst.wsdl.Part;
+
+
+public class PartSectionDescriptor extends AbstractSectionDescriptor implements ISectionDescriptor
+{
+  PartSection partSection;
+  /**
+   * 
+   */
+  public PartSectionDescriptor()
+  {
+    super();
+    partSection = new PartSection();
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getId()
+   */
+  public String getId()
+  {
+    return "org.eclipse.wst.wsdl.ui.internal.section.part";
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getInputTypes()
+   */
+  public List getInputTypes()
+  {
+    List list = new ArrayList();
+    list.add(Part.class);
+    return list;
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getSectionClass()
+   */
+  public ISection getSectionClass()
+  {
+    return partSection;
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getTargetTab()
+   */
+  public String getTargetTab()
+  {
+    return "org.eclipse.wst.xmlwebservices.general";
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#appliesTo(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
+   */
+  public boolean appliesTo(IWorkbenchPart part, ISelection selection)
+  {
+    partSection.setEditorPart(part.getSite().getWorkbenchWindow().getActivePage().getActiveEditor());
+    Object object = null;
+    if (selection instanceof StructuredSelection)
+    {
+      StructuredSelection structuredSelection = (StructuredSelection)selection;
+      object = structuredSelection.getFirstElement();
+      if (object instanceof Part)
+      {
+        return true;
+      }
+    }
+    return false;
+  }
+  
+  public String getAfterSection()
+  {
+    return "org.eclipse.wst.wsdl.ui.internal.section.name";
+  }
+
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/ReferenceSection.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/ReferenceSection.java
new file mode 100644
index 0000000..dffb3df
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/ReferenceSection.java
@@ -0,0 +1,169 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.properties.section;
+
+import java.util.List;
+
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CCombo;
+import org.eclipse.swt.custom.CLabel;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.wst.common.ui.properties.internal.provisional.ITabbedPropertyConstants;
+import org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetWidgetFactory;
+import org.eclipse.wst.wsdl.Binding;
+import org.eclipse.wst.wsdl.MessageReference;
+import org.eclipse.wst.wsdl.Port;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditor;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.eclipse.wst.wsdl.ui.internal.dialogs.InvokeSetDialog;
+import org.eclipse.wst.wsdl.ui.internal.util.ComponentReferenceUtil;
+import org.eclipse.wst.wsdl.ui.internal.viewers.widgets.ComponentNameComboHelper;
+import org.eclipse.wst.wsdl.util.WSDLConstants;
+
+public class ReferenceSection extends AbstractSection
+{
+  protected CCombo componentNameCombo; 
+  protected ComponentNameComboHelper componentNameComboHelper;
+  Button button;
+  IEditorPart editorPart;
+  CLabel messageLabel;
+  
+	/**
+	 * @see org.eclipse.wst.common.ui.properties.internal.provisional.ITabbedPropertySection#createControls(org.eclipse.swt.widgets.Composite, org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetWidgetFactory)
+	 */
+	public void createControls(Composite parent, TabbedPropertySheetWidgetFactory factory)
+	{
+		super.createControls(parent, factory);
+		composite = getWidgetFactory().createFlatFormComposite(parent);
+		FormData data;
+    
+    messageLabel = getWidgetFactory().createCLabel(composite, WSDLEditorPlugin.getWSDLString("_UI_LABEL_MESSAGE")); //$NON-NLS-1$
+    componentNameCombo = getWidgetFactory().createCCombo(composite);
+    componentNameCombo.setBackground(composite.getBackground());
+    button = getWidgetFactory().createButton(composite, "", SWT.PUSH); //$NON-NLS-1$
+    button.setImage(WSDLEditorPlugin.getInstance().getImage("icons/browsebutton.gif")); //$NON-NLS-1$
+    button.addSelectionListener(this);
+
+		data = new FormData();
+		data.left = new FormAttachment(0, 0);
+		data.right = new FormAttachment(componentNameCombo, -ITabbedPropertyConstants.HSPACE);
+		data.top = new FormAttachment(componentNameCombo, 0, SWT.CENTER);
+		messageLabel.setLayoutData(data);
+		
+		data = new FormData();
+		data.left = new FormAttachment(100, -rightMarginSpace + 2);
+		data.right = new FormAttachment(100,0);
+		data.top = new FormAttachment(componentNameCombo, 0, SWT.CENTER);
+		button.setLayoutData(data);
+    
+    data = new FormData();
+    data.left = new FormAttachment(0, 100);
+    data.right = new FormAttachment(button, 0);
+    componentNameCombo.setLayoutData(data);
+    
+    componentNameCombo.addListener(SWT.Modify, this);
+	}
+
+	/*
+	 * @see org.eclipse.wst.common.ui.properties.internal.provisional.view.ITabbedPropertySection#refresh()
+	 */
+	public void refresh()
+	{
+    super.refresh();
+	  setListenerEnabled(false);  
+	  componentNameCombo.removeListener(SWT.Modify, this);
+	  Object obj = getElement();
+	  if (obj instanceof MessageReference)
+	  {
+	    messageLabel.setText(WSDLEditorPlugin.getWSDLString("_UI_LABEL_MESSAGE")); //$NON-NLS-1$
+	    componentNameComboHelper = new ComponentNameComboHelper(componentNameCombo)
+	    {
+	      protected List getComponentNameList(ComponentReferenceUtil util)
+	      {
+	        return util.getMessageNames();
+	      }
+
+	      protected String getAttributeName()
+	      {
+	        return WSDLConstants.MESSAGE_ATTRIBUTE;
+	      }
+	    };
+
+	  }
+	  else if (obj instanceof Binding)
+	  {
+	    componentNameComboHelper = new ComponentNameComboHelper(componentNameCombo)
+	    {
+	      protected List getComponentNameList(ComponentReferenceUtil util)
+	      {
+	        return util.getPortTypeNames();
+	      }
+
+	      protected String getAttributeName()
+	      {
+	        return WSDLConstants.TYPE_ATTRIBUTE;
+	      }
+	    };
+
+	    messageLabel.setText(WSDLEditorPlugin.getWSDLString("_UI_LABEL_PORTTYPE")); //$NON-NLS-1$
+	  }
+	  else if (obj instanceof Port)
+	  {
+	    componentNameComboHelper = new ComponentNameComboHelper(componentNameCombo)
+	    {
+	      protected List getComponentNameList(ComponentReferenceUtil util)
+	      {
+	        return util.getBindingNames();
+	      }
+
+	      protected String getAttributeName()
+	      {
+	        return WSDLConstants.BINDING_ATTRIBUTE;
+	      }
+	    };
+	    messageLabel.setText(WSDLEditorPlugin.getWSDLString("_UI_LABEL_BINDING")); //$NON-NLS-1$
+	  }
+	  
+    componentNameComboHelper.update(getElement());
+    setListenerEnabled(true);
+    componentNameCombo.addListener(SWT.Modify, this);
+	}
+
+  public void widgetSelected(SelectionEvent e)
+  {
+    if (e.widget == button)
+    {
+        InvokeSetDialog dialog = new InvokeSetDialog();
+        dialog.run(getElement(), editorPart);
+        
+        WSDLEditor editor = (WSDLEditor) editorPart;
+        editor.getSelectionManager().setSelection(new StructuredSelection(getElement()));
+    }
+  }
+	
+  public void handleEvent(Event event)
+  {
+    componentNameComboHelper.handleEventHelper(getElement().getElement(), event);
+  }
+  
+  public void setEditorPart(IEditorPart editorPart)
+  {
+    this.editorPart = editorPart;
+  }
+
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/ReferenceSectionDescriptor.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/ReferenceSectionDescriptor.java
new file mode 100644
index 0000000..7978dc9
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/ReferenceSectionDescriptor.java
@@ -0,0 +1,104 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.properties.section;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.wst.common.ui.properties.internal.provisional.ISection;
+import org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor;
+import org.eclipse.wst.wsdl.Binding;
+import org.eclipse.wst.wsdl.MessageReference;
+import org.eclipse.wst.wsdl.Port;
+
+
+public class ReferenceSectionDescriptor extends AbstractSectionDescriptor implements ISectionDescriptor
+{
+  ReferenceSection referenceSection;
+  
+  /**
+   * 
+   */
+  public ReferenceSectionDescriptor()
+  {
+    super();
+    this.referenceSection = new ReferenceSection(); 
+  }
+
+
+  /**
+   * 
+   */
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getId()
+   */
+  public String getId()
+  {
+    return "org.eclipse.wst.wsdl.ui.internal.section.reference";
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getInputTypes()
+   */
+  public List getInputTypes()
+  {
+    List list = new ArrayList();
+    list.add(MessageReference.class);
+    list.add(Binding.class);
+    list.add(Port.class);
+    return list;
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getSectionClass()
+   */
+  public ISection getSectionClass()
+  {
+    return referenceSection;
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getTargetTab()
+   */
+  public String getTargetTab()
+  {
+    return "org.eclipse.wst.xmlwebservices.general";
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#appliesTo(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
+   */
+  public boolean appliesTo(IWorkbenchPart part, ISelection selection)
+  {
+    referenceSection.setEditorPart(part.getSite().getWorkbenchWindow().getActivePage().getActiveEditor());
+    Object object = null;
+    if (selection instanceof StructuredSelection)
+    {
+      StructuredSelection structuredSelection = (StructuredSelection)selection;
+      object = structuredSelection.getFirstElement();
+      if (object instanceof MessageReference || object instanceof Binding || object instanceof Port)
+      {
+        return true;
+      }
+    }
+    return false;
+  }
+
+  public String getAfterSection()
+  {
+    return "org.eclipse.wst.wsdl.ui.internal.section.name";
+  }
+
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/TextChangeHelper.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/TextChangeHelper.java
new file mode 100644
index 0000000..124ed18
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/TextChangeHelper.java
@@ -0,0 +1,109 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.properties.section;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
+
+/**
+ * TextChangeHelper notifies the listner of text lifecycle events 
+ * on behalf of the widget(s) it listens to. 
+ * 
+ * @author Anthony Hunter 
+ * <a href="mailto:anthonyh@ca.ibm.com">anthonyh@ca.ibm.com</a>
+ */
+public abstract class TextChangeHelper implements Listener {
+	
+	private boolean nonUserChange;
+
+	/**
+	 * Marks the start of a programmatic change to the widget contents.
+	 * Clients must call startNonUserChange() before directly setting 
+	 * the widget contents to avoid unwanted lifecycle events.
+	 * @throws IllegalArgumentException if a programmatic change is 
+	 * already in progress.
+	 */
+	public void startNonUserChange() {
+		if (nonUserChange)
+			throw new IllegalStateException("we already started a non user change");//$NON-NLS-1$
+		nonUserChange = true;
+	}
+
+	/**
+	 * Clients who call startNonUserChange() should call 
+	 * finishNonUserChange() as soon as possible after the change is done.
+	 * @throws IllegalArgumentException if no change is in progress.
+	 */
+	public void finishNonUserChange() {
+		if (!nonUserChange)
+			throw new IllegalStateException("we are not in a non user change");//$NON-NLS-1$
+		nonUserChange = false;
+	}
+
+	/**
+	 * Returns true if a programmatic change is in progress.
+	 */
+	public boolean isNonUserChange() {
+		return nonUserChange;
+	}
+
+	/**
+	 * @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event)
+	 */
+	public void handleEvent(Event event) {
+		switch (event.type) {
+			case SWT.KeyDown :
+				if (event.character == SWT.CR)
+					textChanged((Control)event.widget);
+				break;
+			case SWT.FocusOut :
+				textChanged((Control)event.widget);
+				break;
+		}
+	}
+
+	/**
+	 * Abstract method notified when a text field has been changed.
+	 * @param control
+	 */
+	public abstract void textChanged(Control control);
+
+	/**
+	 * Registers this helper with the given control to listen for events
+	 * which indicate that a change is in progress (or done).
+	 */
+	public void startListeningTo(Control control) {
+		control.addListener(SWT.FocusOut, this);
+		control.addListener(SWT.Modify, this);
+	}
+
+	/**
+	 * Registers this helper with the given control to listen for the
+	 * Enter key.  When Enter is pressed, the change is considered done 
+	 * (this is only appropriate for single-line Text widgets).
+	 */
+	public void startListeningForEnter(Control control) {
+		// NOTE: KeyDown rather than KeyUp, because of similar usage in CCombo. 
+		control.addListener(SWT.KeyDown, this);
+	}
+
+	/**
+	 * Unregisters this helper from a control previously passed to
+	 * startListeningTo() and/or startListeningForEnter().
+	 */
+	public void stopListeningTo(Control control) {
+		control.removeListener(SWT.FocusOut, this);
+		control.removeListener(SWT.Modify, this);
+		control.removeListener(SWT.KeyDown, this);
+	}
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/WSDLLabelProvider.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/WSDLLabelProvider.java
new file mode 100644
index 0000000..a5de0b6
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/WSDLLabelProvider.java
@@ -0,0 +1,179 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.properties.section;
+
+import org.eclipse.jface.text.TextSelection;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.wst.wsdl.WSDLElement;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditor;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.eclipse.wst.wsdl.ui.internal.extension.WSDLEditorExtension;
+import org.eclipse.wst.wsdl.ui.internal.extension.WSDLEditorExtensionRegistry;
+import org.eclipse.wst.wsdl.ui.internal.graph.model.WSDLGraphModelAdapterFactory;
+import org.eclipse.wst.wsdl.ui.internal.model.ModelAdapter;
+import org.eclipse.wst.wsdl.ui.internal.model.ModelAdapterFactory;
+import org.eclipse.wst.wsdl.ui.internal.model.WSDLModelAdapterFactory;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
+import org.eclipse.xsd.XSDConcreteComponent;
+import org.w3c.dom.Element;
+
+public class WSDLLabelProvider extends LabelProvider
+{
+  protected ModelAdapterFactory adapterFactory = new WSDLModelAdapterFactory();
+	private WSDLTypeMapper typeMapper;
+	
+  protected WSDLEditorExtension[] labelProviderExtensions;
+  protected LabelProvider[] labelProviders;
+  IEditorPart editorPart;
+
+  /**
+   * 
+   */
+  public WSDLLabelProvider()
+  {
+    super();
+    typeMapper = new WSDLTypeMapper();
+    editorPart = WSDLEditorPlugin.getInstance().getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
+    WSDLEditorExtensionRegistry registry = WSDLEditorPlugin.getInstance().getWSDLEditorExtensionRegistry(); 
+    labelProviderExtensions = registry.getRegisteredExtensions(WSDLEditorExtension.OUTLINE_LABEL_PROVIDER); 
+    labelProviders = new LabelProvider[labelProviderExtensions.length]; 
+    for (int i = 0; i < labelProviderExtensions.length; i++)
+    {
+      labelProviders[i] = (LabelProvider)labelProviderExtensions[i].createExtensionObject(WSDLEditorExtension.OUTLINE_LABEL_PROVIDER, (WSDLEditor)editorPart);
+    }
+  }
+
+	/**
+	 * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object)
+	 */
+	public Image getImage(Object object)
+	{
+		if (object == null || object.equals(StructuredSelection.EMPTY)) {
+			return null;
+		}
+    Image result = null;           
+    if (object instanceof StructuredSelection)
+    {
+      Object selected = ((StructuredSelection)object).getFirstElement();
+      selected  = typeMapper.remapObject(selected);
+      for (int i = 0; i < labelProviders.length; i++)
+      {
+        result = labelProviders[i].getImage(selected);
+        if (result!=null)
+        break;
+      }
+//      if (result != null)
+//      {
+//        ModelAdapter modelAdapter = adapterFactory.getAdapter(selected);
+//        if (modelAdapter != null)
+//        {
+//          result = (Image)modelAdapter.getProperty(selected, ModelAdapter.IMAGE_PROPERTY);     
+//        }
+//      }
+    }
+    return result;
+	}
+
+	/**
+	 * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
+	 */
+	public String getText(Object object)
+	{
+		if (object == null || object.equals(StructuredSelection.EMPTY)) {
+			return "No items selected";//$NON-NLS-1$
+		}
+    String result = null;
+    Object selected = null;
+    if (object instanceof StructuredSelection)
+    {
+      selected = ((StructuredSelection)object).getFirstElement();
+      selected  = typeMapper.remapObject(selected);
+      
+      // Override outline provider's getText for WSDLElements
+      if (selected instanceof WSDLElement)
+      {
+      	if (((WSDLElement)selected).getElement() == null) {
+      		return "";
+      	}
+        boolean isReadOnly = false;
+        ModelAdapter adapter = WSDLGraphModelAdapterFactory.getWSDLGraphModelAdapterFactory().getAdapter(selected);
+        if (adapter != null)
+        {
+          isReadOnly = Boolean.TRUE.equals(adapter.getProperty(selected, "isReadOnly"));
+        }
+        if (isReadOnly)
+        {
+          result = ((WSDLElement)selected).getElement().getLocalName() + " (" + WSDLEditorPlugin.getWSDLString("_UI_LABEL_READ_ONLY") + ")";   //$NON-NLS-1$
+        }
+        else
+        {
+          result = ((WSDLElement)selected).getElement().getLocalName();
+        }
+        return result;
+      }
+      else if (selected instanceof XSDConcreteComponent)
+      {
+        // Override for XSD Components
+       
+        Element element = ((XSDConcreteComponent)selected).getElement();
+        if (element != null)
+        {
+          if (element instanceof IDOMNode)
+          {
+            return ((XSDConcreteComponent)selected).getElement().getLocalName();
+          }
+          else
+          {
+            return ((XSDConcreteComponent)selected).getElement().getLocalName() + " (" + WSDLEditorPlugin.getWSDLString("_UI_LABEL_READ_ONLY") + ")";   //$NON-NLS-1$
+          }
+        }
+        else
+        {
+          return "(" + WSDLEditorPlugin.getWSDLString("_UI_LABEL_READ_ONLY") + ")";  //$NON-NLS-1$
+        }
+
+      }
+      // otherwise get it from the extensions
+      for (int i = 0; i < labelProviders.length; i++)
+      {
+        result = labelProviders[i].getText(selected);
+        if (result!=null)
+        break;
+      }
+    }
+    else if (object instanceof TextSelection)
+    {
+    }
+    
+
+    return result;
+	}
+
+	/**
+	 * Determine if a multiple object selection has been passed to the 
+	 * label provider. If the objects is a IStructuredSelection, see if 
+	 * all the objects in the selection are the same and if so, we want
+	 * to provide labels for the common selected element.
+	 * @param objects a single object or a IStructuredSelection.
+	 * @param multiple first element in the array is true if there is multiple
+	 * unequal selected elements in a IStructuredSelection.
+	 * @return the object to get labels for.
+	 */
+//	private Object getObject(Object objects, boolean multiple[]) {
+//		Assert.isNotNull(objects);
+//		Object object = null;
+//		return object;
+//	}
+
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/WSDLSectionDescriptorProvider.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/WSDLSectionDescriptorProvider.java
new file mode 100644
index 0000000..73d1658
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/WSDLSectionDescriptorProvider.java
@@ -0,0 +1,82 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.properties.section;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor;
+import org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptorProvider;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditor;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.eclipse.wst.wsdl.ui.internal.extension.WSDLEditorExtension;
+import org.eclipse.wst.wsdl.ui.internal.extension.WSDLEditorExtensionRegistry;
+
+public class WSDLSectionDescriptorProvider implements ISectionDescriptorProvider
+{
+  protected WSDLEditorExtension[] propertySectionDescriptorProviderExtensions;
+  protected ISectionDescriptorProvider[] propertySectionDescriptorProviders;
+
+  protected WSDLEditorExtension[] labelProviderExtensions;
+
+  protected final static Object[] EMPTY_ARRAY = {};
+  
+  IEditorPart editorPart;
+
+  /**
+   * 
+   */
+  public WSDLSectionDescriptorProvider()
+  {
+    super();
+    // TODO Check this
+    this.editorPart = WSDLEditorPlugin.getInstance().getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptorProvider#getSectionDescriptors()
+   */
+  public ISectionDescriptor[] getSectionDescriptors()
+  {
+    List list = new ArrayList();
+    
+    
+    WSDLEditorExtensionRegistry registry = WSDLEditorPlugin.getInstance().getWSDLEditorExtensionRegistry(); 
+
+    propertySectionDescriptorProviderExtensions = registry.getRegisteredExtensions(WSDLEditorExtension.PROPERTY_SECTION_DESCRIPTOR_PROVIDER); 
+    propertySectionDescriptorProviders = new ISectionDescriptorProvider[propertySectionDescriptorProviderExtensions.length]; 
+    for (int i = 0; i < propertySectionDescriptorProviderExtensions.length; i++)
+    {
+      propertySectionDescriptorProviders[i] = (ISectionDescriptorProvider)propertySectionDescriptorProviderExtensions[i].createExtensionObject(WSDLEditorExtension.PROPERTY_SECTION_DESCRIPTOR_PROVIDER, (WSDLEditor)editorPart);
+      
+      ISectionDescriptor [] extensionSectionDescriptors = propertySectionDescriptorProviders[i].getSectionDescriptors();
+      for (int j = 0; j < extensionSectionDescriptors.length; j++)
+      {
+        list.add(extensionSectionDescriptors[j]);
+      }
+    }
+
+    
+    list.add(new NameSectionDescriptor());
+    list.add(new PartSectionDescriptor());
+    list.add(new DocumentationSectionDescriptor());
+    list.add(new ReferenceSectionDescriptor());
+    list.add(new NamespaceSectionDescriptor());
+    list.add(new ExtensibilityElementSectionDescriptor());
+    list.add(new ImportSectionDescriptor());
+    
+		ISectionDescriptor[] descriptors = new ISectionDescriptor[list.size()];
+	  list.toArray(descriptors);
+
+    return descriptors;
+  }
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/WSDLTabbedPropertySheetPage.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/WSDLTabbedPropertySheetPage.java
new file mode 100644
index 0000000..9952f86
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/WSDLTabbedPropertySheetPage.java
@@ -0,0 +1,185 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.properties.section;
+
+import org.eclipse.jface.text.TextSelection;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.wst.common.ui.properties.internal.provisional.ITabbedPropertySheetPageContributor;
+import org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetPage;
+import org.eclipse.wst.sse.ui.internal.view.events.INodeSelectionListener;
+import org.eclipse.wst.sse.ui.internal.view.events.NodeSelectionChangedEvent;
+import org.eclipse.wst.wsdl.XSDSchemaExtensibilityElement;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditor;
+import org.eclipse.wst.wsdl.ui.internal.WSDLSelectionManager;
+import org.eclipse.wst.wsdl.ui.internal.model.ModelAdapter;
+import org.eclipse.wst.wsdl.ui.internal.model.ModelAdapterListener;
+import org.eclipse.wst.wsdl.ui.internal.model.WSDLModelAdapterFactory;
+import org.eclipse.wst.wsdl.ui.internal.util.WSDLEditorUtil;
+import org.eclipse.wst.xsd.ui.internal.graph.model.XSDModelAdapterFactory;
+import org.eclipse.xsd.XSDComponent;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+public class WSDLTabbedPropertySheetPage extends TabbedPropertySheetPage implements ISelectionChangedListener, INodeSelectionListener, ModelAdapterListener, org.eclipse.wst.xsd.ui.internal.graph.model.ModelAdapterListener 
+{
+  private WSDLSelectionManager fViewerSelectionManager;
+  private WSDLEditor wsdlEditor;
+  private Object currentObject;
+
+  /**
+   * @param tabbedPropertySheetPageContributor
+   */
+  public WSDLTabbedPropertySheetPage(ITabbedPropertySheetPageContributor tabbedPropertySheetPageContributor, WSDLEditor editor)
+  {
+    super(tabbedPropertySheetPageContributor);
+    this.wsdlEditor = editor;
+  }
+  
+  public void createControl(Composite parent) {
+  	super.createControl(parent);
+  	wsdlEditor.getSelectionManager().setSelection(new StructuredSelection(wsdlEditor.getDefinition()));
+  }
+  
+	public void setSelectionManager(WSDLSelectionManager viewerSelectionManager) {
+		// disconnect from old one
+		if (fViewerSelectionManager != null) {
+			fViewerSelectionManager.removeSelectionChangedListener(this);
+		}
+
+		fViewerSelectionManager = viewerSelectionManager;
+
+		// connect to new one
+		if (fViewerSelectionManager != null) {
+			fViewerSelectionManager.addSelectionChangedListener(this);
+		}
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)
+	 */
+	public void selectionChanged(SelectionChangedEvent event)
+	{
+		if (!event.getSelection().isEmpty()) {
+			selectionChanged(getSite().getWorkbenchWindow().getActivePage().getActivePart(), event.getSelection());
+		    //super.selectionChanged(getSite().getWorkbenchWindow().getActivePage().getActivePart(), event.getSelection());
+		}
+	}
+  
+  public void selectionChanged(IWorkbenchPart part, ISelection selection)
+  {
+    // override for category
+    if (selection != null)
+    {
+      if (selection instanceof StructuredSelection)
+      {
+        StructuredSelection structuredSelection = (StructuredSelection)selection;
+        if (structuredSelection.isEmpty())
+        {
+          return;
+        }
+        Object obj = structuredSelection.getFirstElement();
+        Node node = WSDLEditorUtil.getInstance().getNodeForObject(obj);
+        Object o = WSDLEditorUtil.getInstance().findModelObjectForElement(wsdlEditor.getDefinition(), (Element)node);
+        
+        // bad hack to get schema from category
+        // until we provide a better mechanism (selection manager extension)
+        // see also WSDLGraphViewer
+        if (o instanceof XSDSchemaExtensibilityElement)
+        {
+          obj = ((XSDSchemaExtensibilityElement)o).getSchema();
+          selection = new StructuredSelection(obj);
+        } 
+      	
+        attachListener(o);
+      }
+      else if (selection instanceof TextSelection)
+      {
+        return;
+      }
+    }
+    
+    super.selectionChanged(wsdlEditor.getEditorPart(), selection);   // event.getSelection()); 
+  }
+  
+  protected void attachListener(Object object)
+  {
+  	WSDLModelAdapterFactory adapterFactory = WSDLModelAdapterFactory.getWSDLModelAdapterFactory();
+    ModelAdapter adapter = adapterFactory.getAdapter(object);
+    if (adapter != null)
+    {
+    	// remove listener from the previously selected object
+    	removeListener(currentObject);
+    	
+    	// add listener to the newly selected object
+    	adapter.addListener(this);
+    	currentObject = object;
+    }
+    else if (object instanceof XSDComponent && XSDModelAdapterFactory.getAdapter(object) != null) {
+    	// Maybe it's an XSD Object
+    	if (currentObject != null) {
+    		org.eclipse.wst.xsd.ui.internal.graph.model.ModelAdapter xsdAdapter = (org.eclipse.wst.xsd.ui.internal.graph.model.ModelAdapter)XSDModelAdapterFactory.getAdapter(currentObject);
+    	  if (xsdAdapter != null)
+    		xsdAdapter.removeListener(this);
+    	}
+   	
+    	XSDModelAdapterFactory.getAdapter(object).addListener(this);
+    	currentObject = object;
+    }
+  } 
+  
+  protected void removeListener(Object object)
+  {
+  	WSDLModelAdapterFactory adapterFactory = WSDLModelAdapterFactory.getWSDLModelAdapterFactory();
+    ModelAdapter adapter = adapterFactory.getAdapter(object);
+    if (adapter != null)
+    {
+      adapter.removeListener(this);
+      currentObject = null;
+    }
+    else if (object instanceof XSDComponent && XSDModelAdapterFactory.getAdapter(object) != null) {
+    	// Maybe it's an XSD Object
+    	XSDModelAdapterFactory.getAdapter(object).removeListener(this);
+    	currentObject = null;
+    }
+  }
+	public void dispose() {
+		// disconnect from the ViewerSelectionManager
+		if (fViewerSelectionManager != null) {
+			fViewerSelectionManager.removeSelectionChangedListener(this);
+		}
+		
+		// disconnect listener from the current object
+		if (currentObject != null) {
+			removeListener(currentObject);
+		}
+
+		super.dispose();
+	}
+
+  
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.sse.editor.view.events.INodeSelectionListener#nodeSelectionChanged(org.eclipse.wst.sse.editor.view.events.NodeSelectionChangedEvent)
+   */
+  public void nodeSelectionChanged(NodeSelectionChangedEvent event)
+  {
+  }
+  
+  public void propertyChanged(Object object, String property) {
+  	if (getCurrentTab() != null) {
+  		refresh();
+  	}
+  }
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/WSDLTypeMapper.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/WSDLTypeMapper.java
new file mode 100644
index 0000000..37ed055
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/properties/section/WSDLTypeMapper.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.properties.section;
+
+import org.eclipse.wst.common.ui.properties.internal.provisional.ITypeMapper;
+import org.eclipse.wst.wsdl.ui.internal.model.WSDLGroupObject;
+
+public class WSDLTypeMapper implements ITypeMapper
+{
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ITypeMapper#remapType(java.lang.Object, java.lang.Class)
+   */
+  public Class remapType(Object object, Class effectiveType)
+  {
+		Class type = effectiveType;
+		
+		if (object instanceof WSDLGroupObject) {
+			type = ((WSDLGroupObject) object).getDefinition().getClass();
+		}
+
+		return type;
+  }
+  
+  public Object remapObject(Object object)
+  {
+    Object type = object;
+    
+    if (object instanceof WSDLGroupObject)
+    {
+      type = ((WSDLGroupObject) object).getDefinition();
+    }
+    return type;
+  }
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/reconciler/DelegatingSourceValidatorForWSDL.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/reconciler/DelegatingSourceValidatorForWSDL.java
similarity index 95%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/reconciler/DelegatingSourceValidatorForWSDL.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/reconciler/DelegatingSourceValidatorForWSDL.java
index 2b5da2c..f251731 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/reconciler/DelegatingSourceValidatorForWSDL.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/reconciler/DelegatingSourceValidatorForWSDL.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/reconciler/ExtensibleNodeReconciler.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/reconciler/ExtensibleNodeReconciler.java
new file mode 100644
index 0000000..58a0759
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/reconciler/ExtensibleNodeReconciler.java
@@ -0,0 +1,65 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.reconciler;
+
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.eclipse.wst.wsdl.ui.internal.extension.INodeReconciler;
+import org.eclipse.wst.wsdl.ui.internal.extension.WSDLEditorExtension;
+import org.eclipse.wst.wsdl.ui.internal.extension.WSDLEditorExtensionRegistry;
+import org.w3c.dom.Element;
+
+                                    
+
+// TODO.. we should probably be keying off of the node's qname (perhaps supporting 'null' as a wild card for local names) 
+// in order to compute an applicable reconciler
+//
+public class ExtensibleNodeReconciler
+{  
+  protected WSDLEditorExtension[] extensions;
+  protected INodeReconciler[] reconcilers;
+
+  public ExtensibleNodeReconciler()
+  {                                  
+    WSDLEditorExtensionRegistry registry = WSDLEditorPlugin.getInstance().getWSDLEditorExtensionRegistry();
+    extensions = registry.getRegisteredExtensions(WSDLEditorExtension.NODE_RECONCILER); 
+    reconcilers = new INodeReconciler[extensions.length]; 
+    for (int i = 0; i < extensions.length; i++)
+    {
+      reconcilers[i] = (INodeReconciler)extensions[i].createExtensionObject(WSDLEditorExtension.NODE_RECONCILER, null);
+    }
+  }         
+
+  protected INodeReconciler getApplicableNodeReconciler(Object object)
+  {
+    INodeReconciler reconciler = null;
+    for (int i = 0; i < extensions.length; i++)
+    {
+      if (extensions[i].isApplicable(object))
+      {
+        reconciler = reconcilers[i];
+        if (reconciler != null)
+        {
+          break;
+        }
+      }
+    }
+    return reconciler;
+  }
+
+  public void notifyChanged(Object modelObject, Element element, int eventType, Object feature, Object oldValue, Object newValue, int index)             
+  {
+    INodeReconciler reconciler = getApplicableNodeReconciler(modelObject);
+    if (reconciler != null)
+    {                                                    
+      reconciler.notifyChanged(modelObject, element, eventType, feature, oldValue, newValue, index);
+    }
+  }                                         
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/reconciler/SEDDocumentAdapter.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/reconciler/SEDDocumentAdapter.java
new file mode 100644
index 0000000..10c5dd5
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/reconciler/SEDDocumentAdapter.java
@@ -0,0 +1,197 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.reconciler;    
+
+import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
+import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
+import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
+import org.eclipse.wst.wsdl.Definition;
+import org.eclipse.wst.wsdl.internal.impl.DefinitionImpl;
+import org.eclipse.wst.wsdl.internal.impl.WSDLElementImpl;
+import org.eclipse.wst.wsdl.internal.impl.XSDSchemaExtensibilityElementImpl;
+import org.eclipse.wst.wsdl.ui.internal.util.WSDLEditorUtil;
+import org.eclipse.wst.wsdl.util.WSDLConstants;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
+import org.eclipse.xsd.XSDConcreteComponent;
+import org.eclipse.xsd.impl.XSDSchemaImpl;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+
+public class SEDDocumentAdapter
+{
+  protected Document document;                               
+  protected Definition definition;   
+  protected ExtensibleNodeReconciler extensibleNodeReconciler;
+  
+  public SEDDocumentAdapter(IStructuredModel model, Definition definition)
+  {           
+    this.document = (model instanceof IDOMModel) ? ((IDOMModel)model).getDocument() : null;     
+    this.definition = definition;
+    this.extensibleNodeReconciler = new ExtensibleNodeReconciler();
+    new MyDocumentAdapter(document);
+  }  
+ 
+
+  class MyDocumentAdapter extends DocumentAdapter
+  {
+//    private boolean isValidDefinition = true;
+    
+    MyDocumentAdapter(Document document)
+    {
+      super(document);
+    }   
+        
+    public void notifyChanged(INodeNotifier notifier, int eventType, Object feature, Object oldValue, Object newValue, int index) 
+    {                      
+      if (eventType == INodeNotifier.ADD)
+      {
+        if (newValue instanceof Element)
+        {
+          adapt((Element)newValue);
+
+          // See Bug 5366
+          // We need to sync up the Model and the DOM
+          Element newDocumentElement = (Element)newValue;
+          String wsdlPrefix = newDocumentElement.getPrefix();
+          if (wsdlPrefix == null) wsdlPrefix = "";
+          String ns = definition.getNamespace(wsdlPrefix);
+          if (ns != null && ns.equals(WSDLConstants.WSDL_NAMESPACE_URI)
+             && newDocumentElement.getLocalName().equals(WSDLConstants.DEFINITION_ELEMENT_TAG)) // &&
+             // !isValidDefinition)
+          {
+//            System.out.println("****** Setting new definition");
+            definition.setElement(newDocumentElement);
+          }
+        }
+      }   
+  
+      switch (eventType)
+      {                  
+        // we make the assumption that reconciling will only be triggered by one of these notifications 
+        // (ADD and REMOVE notifications are omitted)
+        //
+        case INodeNotifier.CHANGE: 
+        case INodeNotifier.STRUCTURE_CHANGED:
+        case INodeNotifier.CONTENT_CHANGED:
+        {                      
+          if (notifier instanceof Element)
+          {
+            reconcileModelObjectForElement((Element)notifier, eventType, feature, oldValue, newValue, index);
+          }
+          else if (notifier instanceof Document)
+          {
+            Document document = (Document)notifier;
+            Element definitionElement = null;          
+
+            for (Node node = document.getFirstChild(); node != null; node = node.getNextSibling())
+            {
+              if (node.getNodeType() == Node.ELEMENT_NODE)
+              {
+                Element element = (Element)node;
+                if (WSDLEditorUtil.getInstance().getWSDLType(element) == WSDLConstants.DEFINITION)
+                {
+                  definitionElement = element;
+                  break;
+                }
+              }
+            }
+           
+            // TODO... revisit definition.removeAllContent() and who should call this?
+            //
+            if (definitionElement != null)
+            {
+//              isValidDefinition = true;
+//              System.out.println("VALID DEFINITION ELEMENT");
+              ((DefinitionImpl)definition).elementChanged(definitionElement);
+            }
+            else
+            {
+//              System.out.println("INVALID DEFINITION ELEMENT");
+//              isValidDefinition = false;
+              ((DefinitionImpl)definition).removeAll();
+            }
+          }
+          break;
+        }
+      }
+    }
+    
+    protected void reconcileModelObjectForElement(Element element, int eventType, Object feature, Object oldValue, Object newValue, int index)
+    {                                                                  
+      Object modelObject = WSDLEditorUtil.getInstance().findModelObjectForElement(definition, element);  
+      if (modelObject != null)
+      {
+        if (modelObject instanceof XSDSchemaExtensibilityElementImpl)
+        {
+          XSDSchemaExtensibilityElementImpl ee = (XSDSchemaExtensibilityElementImpl)modelObject;
+          ((XSDSchemaImpl)ee.getSchema()).elementChanged(element);
+          ee.elementChanged(element);            
+        }		
+        else if (modelObject instanceof WSDLElementImpl)
+        {
+          ((WSDLElementImpl)modelObject).elementChanged(element);
+        }
+        else if (modelObject instanceof XSDConcreteComponent)
+        {
+          ((XSDConcreteComponent)modelObject).elementChanged(element);
+          extensibleNodeReconciler.notifyChanged(modelObject, element, eventType, feature, oldValue, newValue, index);     
+        }
+      } 	  
+    }   
+  }
+  
+                                                
+  // An abstract adapter that ensures that the children of a new Node are also adapted
+  //
+  abstract class DocumentAdapter implements INodeAdapter
+  {                               
+    public DocumentAdapter(Document document)
+    {
+      ((INodeNotifier)document).addAdapter(this);
+
+      for (Node child = document.getFirstChild(); child != null; child = child.getNextSibling())
+      {
+        if (child.getNodeType() == Node.ELEMENT_NODE)
+        {
+          adapt((Element)child);
+        }
+      }
+    }
+  
+    public void adapt(Element element)
+    {                 
+      if (element != null)
+      {
+        if (((INodeNotifier)element).getExistingAdapter(this) == null)
+        {  
+          ((INodeNotifier)element).addAdapter(this);
+        
+          for (Node child = element.getFirstChild(); child != null; child = child.getNextSibling())
+          {
+            if (child.getNodeType() == Node.ELEMENT_NODE)
+            {
+              adapt((Element)child);
+            }
+          }
+        }
+      }
+    }
+  
+    public boolean isAdapterForType(Object type) 
+    {
+      return type == this;
+    }
+  
+    abstract public void notifyChanged(INodeNotifier notifier, int eventType, Object feature, Object oldValue, Object newValue, int index);  
+  }
+} 
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/text/WSDLModelAdapter.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/text/WSDLModelAdapter.java
similarity index 93%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/text/WSDLModelAdapter.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/text/WSDLModelAdapter.java
index 4f19671..42305d1 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/text/WSDLModelAdapter.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/text/WSDLModelAdapter.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 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
+ * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Common 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
  *******************************************************************************/
@@ -20,8 +20,9 @@
 import org.eclipse.wst.wsdl.WSDLFactory;
 import org.eclipse.wst.wsdl.internal.impl.DefinitionImpl;
 import org.eclipse.wst.wsdl.internal.util.WSDLResourceFactoryImpl;
-import org.eclipse.wst.wsdl.ui.internal.extensions.ExtensibleTypeSystemProvider;
+import org.eclipse.wst.wsdl.ui.internal.typesystem.ExtensibleTypeSystemProvider;
 import org.eclipse.wst.wsdl.ui.internal.util.WSDLEditorUtil;
+import org.eclipse.wst.wsdl.ui.internal.util.WSDLModelLocatorAdapterFactory;
 import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
 import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
 import org.eclipse.wst.xsd.ui.internal.util.XSDSchemaLocationResolverAdapterFactory;
@@ -110,4 +111,4 @@
     }
     return definition;
   }
-}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/text/WSDLModelQueryExtension.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/text/WSDLModelQueryExtension.java
similarity index 97%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/text/WSDLModelQueryExtension.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/text/WSDLModelQueryExtension.java
index 71a8e0f..5de5b5c 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/text/WSDLModelQueryExtension.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/text/WSDLModelQueryExtension.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 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
+ * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Common 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
  *******************************************************************************/
@@ -205,4 +205,4 @@
       }       
     };    
   }  
-}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/text/WSDLModelReconcileAdapter.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/text/WSDLModelReconcileAdapter.java
similarity index 89%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/text/WSDLModelReconcileAdapter.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/text/WSDLModelReconcileAdapter.java
index bf84af9..dcb3b3e 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/text/WSDLModelReconcileAdapter.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/text/WSDLModelReconcileAdapter.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 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
+ * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Common 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
  *******************************************************************************/
@@ -16,8 +16,10 @@
 import org.eclipse.wst.wsdl.internal.impl.DefinitionImpl;
 import org.eclipse.wst.wsdl.internal.impl.WSDLElementImpl;
 import org.eclipse.wst.wsdl.internal.impl.XSDSchemaExtensibilityElementImpl;
+import org.eclipse.wst.wsdl.ui.internal.reconciler.ExtensibleNodeReconciler;
 import org.eclipse.wst.wsdl.ui.internal.util.WSDLEditorUtil;
 import org.eclipse.wst.wsdl.util.WSDLConstants;
+import org.eclipse.xsd.XSDConcreteComponent;
 import org.eclipse.xsd.impl.XSDSchemaImpl;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
@@ -26,12 +28,14 @@
 
 class WSDLModelReconcileAdapter extends DocumentAdapter
 {                             
-  protected Definition definition;
+  protected Definition definition;   
+  protected ExtensibleNodeReconciler extensibleNodeReconciler;
 
   public WSDLModelReconcileAdapter(Document document, Definition definition)
   {           
     super(document);
     this.definition = definition;
+    this.extensibleNodeReconciler = new ExtensibleNodeReconciler();
   } 
    
      
@@ -130,6 +134,11 @@
       {
         ((WSDLElementImpl)modelObject).elementChanged(element);
       }
+      else if (modelObject instanceof XSDConcreteComponent)
+      {
+        ((XSDConcreteComponent)modelObject).elementChanged(element);
+        extensibleNodeReconciler.notifyChanged(modelObject, element, eventType, feature, oldValue, newValue, index);     
+      }
     }     
   }   
 }
@@ -169,4 +178,4 @@
 
   abstract public void notifyChanged
     (INodeNotifier notifier, int eventType, Object feature, Object oldValue, Object newValue, int index);
-}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/extensions/ExtensibleTypeSystemProvider.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/typesystem/ExtensibleTypeSystemProvider.java
similarity index 74%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/extensions/ExtensibleTypeSystemProvider.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/typesystem/ExtensibleTypeSystemProvider.java
index 8c4a3d9..d6bc54a 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/extensions/ExtensibleTypeSystemProvider.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/typesystem/ExtensibleTypeSystemProvider.java
@@ -1,19 +1,23 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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.extensions;
+package org.eclipse.wst.wsdl.ui.internal.typesystem;
 
 import java.util.ArrayList;
 import java.util.List;
 
 import org.eclipse.wst.wsdl.Definition;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.eclipse.wst.wsdl.ui.internal.extension.ITypeSystemProvider;
+import org.eclipse.wst.wsdl.ui.internal.extension.WSDLEditorExtension;
+import org.eclipse.wst.wsdl.ui.internal.extension.WSDLEditorExtensionRegistry;
 import org.eclipse.xsd.XSDSchema;
 
 public class ExtensibleTypeSystemProvider implements ITypeSystemProvider
@@ -25,14 +29,14 @@
 
   public ExtensibleTypeSystemProvider()
   {
-//    WSDLEditorExtensionRegistry registry = WSDLEditorPlugin.getInstance().getWSDLEditorExtensionRegistry(); 
-//
-//    extensions = registry.getRegisteredExtensions(WSDLEditorExtension.TYPE_SYSTEM_PROVIDER); 
-//    typeSystemProviders = new ITypeSystemProvider[extensions.length]; 
-//    for (int i = 0; i < extensions.length; i++)
-//    {
-//      typeSystemProviders[i] = (ITypeSystemProvider)extensions[i].createExtensionObject(WSDLEditorExtension.TYPE_SYSTEM_PROVIDER, null);
-//    }
+    WSDLEditorExtensionRegistry registry = WSDLEditorPlugin.getInstance().getWSDLEditorExtensionRegistry(); 
+
+    extensions = registry.getRegisteredExtensions(WSDLEditorExtension.TYPE_SYSTEM_PROVIDER); 
+    typeSystemProviders = new ITypeSystemProvider[extensions.length]; 
+    for (int i = 0; i < extensions.length; i++)
+    {
+      typeSystemProviders[i] = (ITypeSystemProvider)extensions[i].createExtensionObject(WSDLEditorExtension.TYPE_SYSTEM_PROVIDER, null);
+    }
   }          
         
   public List getAvailableTypeNames(Definition definition, int typeNameCategory)
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/util/ComponentReferenceUtil.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/ComponentReferenceUtil.java
similarity index 99%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/util/ComponentReferenceUtil.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/ComponentReferenceUtil.java
index 787a83b..cbf51ae 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/util/ComponentReferenceUtil.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/ComponentReferenceUtil.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
@@ -39,7 +39,7 @@
 import org.eclipse.wst.wsdl.WSDLElement;
 import org.eclipse.wst.wsdl.internal.impl.ImportImpl;
 import org.eclipse.wst.wsdl.internal.impl.WSDLElementImpl;
-import org.eclipse.wst.wsdl.ui.internal.extensions.ITypeSystemProvider;
+import org.eclipse.wst.wsdl.ui.internal.extension.ITypeSystemProvider;
 import org.eclipse.wst.wsdl.util.WSDLConstants;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/util/CreateWSDLElementHelper.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/CreateWSDLElementHelper.java
similarity index 99%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/util/CreateWSDLElementHelper.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/CreateWSDLElementHelper.java
index ea5e947..5e4eb02 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/util/CreateWSDLElementHelper.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/CreateWSDLElementHelper.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/util/NameUtil.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/NameUtil.java
similarity index 72%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/util/NameUtil.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/NameUtil.java
index 6c4e5e8..1778c8c 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/util/NameUtil.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/NameUtil.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
@@ -27,11 +27,6 @@
 import org.eclipse.wst.wsdl.Port;
 import org.eclipse.wst.wsdl.PortType;
 import org.eclipse.wst.wsdl.Service;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDModelGroup;
-import org.eclipse.xsd.XSDParticle;
-import org.eclipse.xsd.XSDSchema;
 
 public class NameUtil
 {
@@ -429,148 +424,4 @@
     }
     return result;
   }
-
-public static String getMessageName(MessageReference messageRef) {	    
-	String messageName = "NewMessage";
-	List messageNames = new ArrayList();
-	Operation operation = (Operation) messageRef.getContainer();
-	Iterator messageIt = operation.getEnclosingDefinition().getEMessages().iterator();
-	while (messageIt.hasNext()) {
-		messageNames.add(((Message) messageIt.next()).getQName().getLocalPart());
-	}
-	
-	String requestResponseString = getRequestOrResponse(messageRef) + "Msg";
-	messageName = getUniqueNameHelper(operation.getName() + requestResponseString, messageNames);
-	
-	return messageName;
-}
-
-public static String getPartName(MessageReference messageRef) {
-	String partName = "NewPart";
-	Message message = messageRef.getEMessage();
-	
-	Operation operation = (Operation) messageRef.getContainer();
-	String operationName = operation.getName();
-	String appendString = "";    	  
-	if (messageRef instanceof Input) {
-		appendString = "Parameters";
-	}
-	else if (messageRef instanceof Output) {
-		appendString = "Result";
-	}
-	else if (messageRef instanceof Fault) {
-		appendString = "Fault";
-	}
-	partName = operationName + appendString;
-	
-	List usedPartNames = new ArrayList();
-	if (message != null) {
-		Iterator partIt = message.getEParts().iterator();
-		while (partIt.hasNext()) {
-			usedPartNames.add(((Part) partIt.next()).getName());
-		}
-	}
-	
-	partName = getUniqueNameHelper(partName, usedPartNames);
-	
-	return partName;
-}
-
-public static String getOperationName(PortType portType) {
-	String operationName = "NewOperation";
-	Iterator operationIt = portType.getEOperations().iterator();
-	List usedNames = new ArrayList();
-	while (operationIt.hasNext()) {
-		usedNames.add(((Operation) operationIt.next()).getName());
-	}
-	
-	operationName = getUniqueNameHelper("NewOperation", usedNames);
-	
-	return operationName;
-}
-
-public static String getRequestOrResponse(MessageReference messageRef) {
-	if (messageRef instanceof Input)
-	{
-		return "Request";
-	}
-	else if (messageRef instanceof Output)
-	{
-		return "Response";
-	}
-	else if (messageRef instanceof Fault)
-	{
-		return "_Fault";
-	}
-	
-	return "";
-}
-
-public static String getFaultName(Operation operation) {
-	String faultName = "fault";
-	List nameList = new ArrayList();
-	Iterator faultIt = operation.getEFaults().iterator();
-	while (faultIt.hasNext()) {
-		nameList.add(((Fault) faultIt.next()).getName());
-	}
-	
-	faultName = getUniqueNameHelper(faultName, nameList);
-	
-	return faultName;
-}
-
-public static String getXSDElementName(String baseName, Object parent) {
-	String elementName = "";
-	
-	if (parent instanceof XSDSchema) {
-		elementName = getUniqueNameHelper(baseName, getUsedElementNames((XSDSchema) parent));
-	}
-	else if (parent instanceof XSDModelGroup) {
-		List existingNames = new ArrayList();
-		XSDModelGroup modelGroup = (XSDModelGroup) parent;
-		Iterator modelGroupIt = modelGroup.getContents().iterator();
-		while (modelGroupIt.hasNext()) {
-			Object item = modelGroupIt.next();
-			if (item instanceof XSDParticle) {
-				XSDParticle existingParticle = (XSDParticle) item;
-				if (existingParticle.getContent() instanceof XSDElementDeclaration) {
-					existingNames.add(((XSDElementDeclaration) existingParticle.getContent()).getName());
-				}
-			}
-		}
-		
-		elementName = getUniqueNameHelper(baseName, existingNames);			
-	}
-	
-	return elementName;
-}
-
-public static String getXSDComplexTypeName(String baseName, XSDSchema schema) {
-	String typeName = "";
-	List existingNames = new ArrayList();
-	
-	Iterator it = schema.getTypeDefinitions().iterator();
-	while (it.hasNext()) {
-		Object item = it.next();
-		if (item instanceof XSDComplexTypeDefinition) {
-			existingNames.add(((XSDComplexTypeDefinition) item).getName());
-		}
-	}
-	
-	typeName = getUniqueNameHelper(baseName, existingNames);
-	return typeName;
-}
-
-private static List getUsedElementNames(XSDSchema xsdSchema) {
-	List usedNames = new ArrayList();
-	Iterator schemaIt = xsdSchema.getContents().iterator();
-	while (schemaIt.hasNext()) {
-		Object item = schemaIt.next();
-		if (item instanceof XSDElementDeclaration) {
-			usedNames.add(((XSDElementDeclaration) item).getName());
-		}
-	}
-	
-	return usedNames;
-}
 }
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/util/NodeAssociationManager.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/NodeAssociationManager.java
similarity index 74%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/util/NodeAssociationManager.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/NodeAssociationManager.java
index 37bec3b..144c9ad 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/util/NodeAssociationManager.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/NodeAssociationManager.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
@@ -13,22 +13,43 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import org.eclipse.wst.wsdl.ui.internal.extensions.INodeAssociationProvider;
-import org.eclipse.wst.wsdl.ui.internal.extensions.WSDLNodeAssociationProvider;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.eclipse.wst.wsdl.ui.internal.extension.INodeAssociationProvider;
+import org.eclipse.wst.wsdl.ui.internal.extension.WSDLEditorExtension;
+import org.eclipse.wst.wsdl.ui.internal.extension.WSDLEditorExtensionRegistry;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 
 public class NodeAssociationManager
 {                   
-  protected INodeAssociationProvider provider;
+  protected WSDLEditorExtension[] extensions;
+  protected INodeAssociationProvider[] providers;
 
   public NodeAssociationManager()
   {             
-	  provider = new WSDLNodeAssociationProvider();
+    WSDLEditorExtensionRegistry registry = WSDLEditorPlugin.getInstance().getWSDLEditorExtensionRegistry();
+    extensions = registry.getRegisteredExtensions(WSDLEditorExtension.NODE_ASSOCIATION_PROVIDER); 
+    providers = new INodeAssociationProvider[extensions.length]; 
+    for (int i = 0; i < extensions.length; i++)
+    {
+      providers[i] = (INodeAssociationProvider)extensions[i].createExtensionObject(WSDLEditorExtension.NODE_ASSOCIATION_PROVIDER, null);
+    }
   }        
 
   protected INodeAssociationProvider getAppicableProvider(Object object)
   {
+    INodeAssociationProvider provider = null;
+    for (int i = 0; i < extensions.length; i++)
+    {
+      if (extensions[i].isApplicable(object))
+      {
+        provider = providers[i];
+        if (provider != null)
+        {
+          break;
+        }
+      }
+    }
     return provider;
   }
         
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/util/OpenOnSelectionHelper.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/OpenOnSelectionHelper.java
similarity index 97%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/util/OpenOnSelectionHelper.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/OpenOnSelectionHelper.java
index 9bfceba..bfa7fd1 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/util/OpenOnSelectionHelper.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/OpenOnSelectionHelper.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
@@ -202,12 +202,12 @@
       }
       else if (isMatchingAttribute(WSDLConstants.ELEMENT_ATTRIBUTE))
       {
-        result = part.getElementDeclaration();
+        result = part.getElement();
       }
     }
     else if (part.getEnclosingDefinition() == definition)
     {
-      result = part.getTypeDefinition() != null ? (Object)part.getTypeDefinition() : (Object)part.getElementDeclaration();
+      result = part.getTypeDefinition() != null ? (Object)part.getTypeDefinition() : (Object)part.getElement();
     }
     return result;
   }
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/ReferenceManager.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/ReferenceManager.java
new file mode 100644
index 0000000..8f41539
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/ReferenceManager.java
@@ -0,0 +1,363 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.util;
+        
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+import org.eclipse.emf.common.notify.impl.AdapterImpl;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.wst.wsdl.Binding;
+import org.eclipse.wst.wsdl.BindingFault;
+import org.eclipse.wst.wsdl.BindingOperation;
+import org.eclipse.wst.wsdl.Definition;
+import org.eclipse.wst.wsdl.Operation;
+import org.eclipse.wst.wsdl.PortType;
+import org.eclipse.wst.wsdl.WSDLPackage;
+import org.eclipse.wst.wsdl.internal.util.WSDLSwitch;
+
+
+public class ReferenceManager
+{                            
+  protected static InternalAdapterFactory internalAdapterFactory = new InternalAdapterFactory();
+
+                                                 
+  public interface Listener
+  {
+    public void bindingsChanged( Operation operation);
+  }     
+
+            
+  public static void adaptDefinition(Definition definition)
+  {
+    internalAdapterFactory.adapt(definition);
+    for (Iterator i = definition.getEBindings().iterator(); i.hasNext(); )
+    {
+      Binding binding = (Binding)i.next();
+      internalAdapterFactory.adaptBinding(binding);
+    }
+  }
+
+                               
+  public static void addBindingListener(Operation operation, Listener listener)
+  {                 
+    OperationAdapter adapter = (OperationAdapter)internalAdapterFactory.adapt(operation);
+    if (adapter != null)
+    {
+      adapter.addListener(listener); 
+    }
+  }
+
+
+  public static void removeBindingListener(Operation operation, Listener listener)
+  { 
+    OperationAdapter adapter = (OperationAdapter)internalAdapterFactory.adapt(operation);
+    if (adapter != null)
+    {
+      adapter.removeListener(listener); 
+    }
+  }
+
+  protected static void fireNotificationForPortType(PortType portType)
+  {
+    // get the adapter for each operation and notify listeners
+    if (portType != null)
+    {
+      for (Iterator i = portType.getEOperations().iterator();  i.hasNext(); )
+      {
+        fireNotificationForOperation((Operation)i.next());
+      }
+    }
+  }
+
+
+  protected static void fireNotificationForOperation(Operation operation)
+  {
+    if (operation != null)
+    {
+      OperationAdapter adapter = (OperationAdapter)internalAdapterFactory.adapt(operation);
+      adapter.fireBindingsChanged();
+    }
+  }
+
+
+  public static class InternalAdapterFactory extends AdapterFactoryImpl
+  {                     
+    public Adapter createAdapter(Notifier target)
+    {                     
+      WSDLSwitch wsdlSwitch = new WSDLSwitch()
+      {                
+      	public Object caseBinding(Binding binding)
+        {   
+          return createBindingAdapter();
+	      }
+
+ 	      public Object caseBindingFault(BindingFault bindingFault)
+        {                                      
+          return createBindingFaultAdapter();
+        }   
+
+	      public Object caseBindingOperation(BindingOperation bindingOperation)
+        {   
+          return createBindingOperationAdapter();
+	      } 
+   
+      	public Object caseDefinition(Definition definition)
+        {   
+          return createDefinitionAdapter();
+	      }  
+
+      	public Object caseOperation(Operation operation)
+        {   
+          return createOperationAdapter();
+	      }                
+      };   
+
+      Object o = wsdlSwitch.doSwitch((EObject)target);
+
+      Adapter result = null;
+      if (o instanceof Adapter)
+      {
+        result  = (Adapter)o;
+      }
+      else
+      {          
+        System.out.println("did not create adapter for target : " + target);
+        Thread.dumpStack();
+      }                   
+      //System.out.println("createAdapter(" + target + ") " + result);
+      return result;
+    }      
+                               
+               
+  	public Adapter createBindingAdapter()
+    {
+      return new BindingAdapter();
+    }        
+
+ 	  public Adapter createBindingFaultAdapter()
+    {                                      
+      return new BindingFaultAdapter();
+    }     
+
+    public Adapter createBindingOperationAdapter()
+    {     
+      return new BindingOperationAdapter();
+    }      
+
+  	public Adapter createDefinitionAdapter() 
+    {
+		  return new DefinitionAdapter();
+	  } 
+
+  	public Adapter createOperationAdapter() 
+    {
+		  return new OperationAdapter();
+	  }                                      
+
+    public Adapter adapt(Notifier target)
+    {
+      return target != null ? adapt(target, internalAdapterFactory) : null;
+    }
+
+    protected void adaptBinding(Binding binding)     
+    {
+      adapt(binding); 
+      for (Iterator i = binding.getEBindingOperations().iterator(); i.hasNext(); )
+      {
+        BindingOperation bindingOperation = (BindingOperation)i.next();
+        adapt(bindingOperation);    
+        for (Iterator j = bindingOperation.getEBindingFaults().iterator(); j.hasNext(); )
+        {
+          BindingFault bindingFault = (BindingFault)j.next();
+          adapt(bindingFault);  
+        }
+      }
+    }  
+  }  
+  
+
+  protected static abstract class BaseAdapter extends AdapterImpl
+  {
+    public boolean isAdapterForType(Object type)
+    {
+      return type == internalAdapterFactory;
+    }   
+
+    public WSDLPackage getPackage()
+    {
+      return WSDLPackage.eINSTANCE;                        
+    }
+  }
+
+    
+  // DefinitionAdapter
+  //
+  protected static class DefinitionAdapter extends BaseAdapter
+  {                                                                                  
+    public void notifyChanged(Notification msg)
+    {                                
+      if ((EStructuralFeature)msg.getFeature() == getPackage().getDefinition_EBindings())
+      {                           
+        Object newValue = msg.getNewValue();
+        switch (msg.getEventType())
+        {
+          case Notification.ADD:
+          {                                 
+            handleAdd((Binding)newValue);
+            break;
+          }
+          case Notification.ADD_MANY:
+          {
+            for (Iterator newValues = ((Collection)newValue).iterator();  newValues.hasNext(); )
+            {
+              handleAdd((Binding)newValues.next());
+            }
+            break;
+          }       
+        }                                           
+      }    
+    }     
+
+    protected void handleAdd(Binding binding)
+    {  
+      internalAdapterFactory.adaptBinding(binding);
+      PortType portType = binding.getEPortType();
+      if (portType != null)
+      {
+        fireNotificationForPortType(portType);
+      }
+    }
+  }     
+          
+  
+  protected static class BindingAdapter extends BaseAdapter
+  {                      
+    public void notifyChanged(Notification msg)
+    { 
+      if ((EStructuralFeature)msg.getFeature() == getPackage().getBinding_EPortType())
+      {
+        // fireNotifcation for all of the operation of the old and new portType
+        fireNotificationForPortType((PortType)msg.getNewValue());
+        fireNotificationForPortType((PortType)msg.getOldValue());
+      }                                                                        
+      else if ((EStructuralFeature)msg.getFeature() == getPackage().getBinding_EBindingOperations())
+      {
+        // fireNotifcation for all operations that were added or removed
+        Object newValue = msg.getNewValue();
+        Object oldValue = msg.getNewValue();
+        switch (msg.getEventType())
+        {
+          case Notification.ADD:
+          {                                                                    
+            handleAdd((BindingOperation)newValue);
+            break;
+          }
+          case Notification.ADD_MANY:
+          {
+            for (Iterator newValues = ((Collection)newValue).iterator();  newValues.hasNext(); )
+            {
+              handleAdd((BindingOperation)newValues.next());
+            }
+            break;
+          }       
+          case Notification.REMOVE:
+          {                                                                    
+            handleRemove((BindingOperation)oldValue);
+            break;
+          }
+          case Notification.REMOVE_MANY:
+          {
+            for (Iterator oldValues = ((Collection)oldValue).iterator();  oldValues.hasNext(); )
+            {
+              handleRemove((BindingOperation)oldValues.next());
+            }
+            break;
+          }  
+        }                  
+      }
+    }    
+
+    protected void handleAdd(BindingOperation bindingOperation)
+    {
+      internalAdapterFactory.adapt(bindingOperation);
+      Operation operation = ComponentReferenceUtil.computeOperation(bindingOperation);                                                            
+      fireNotificationForOperation(operation);
+    }               
+
+    protected void handleRemove(BindingOperation bindingOperation)
+    {                 
+      if (bindingOperation != null)
+      {
+        Operation operation = ComponentReferenceUtil.computeOperation(bindingOperation);                                                            
+        fireNotificationForOperation(operation);
+      }
+    }   
+  }       
+  
+
+
+  protected static class BindingOperationAdapter extends BaseAdapter
+  {                                      
+    public void notifyChanged(Notification msg)
+    {                                
+      BindingOperation bindingOperation = (BindingOperation)getTarget();
+      Operation operation = ComponentReferenceUtil.computeOperation(bindingOperation);                                                            
+      fireNotificationForOperation(operation);
+    }                
+  }
+  
+
+  protected static class BindingFaultAdapter extends BaseAdapter
+  {                                  
+    public void notifyChanged(Notification msg)
+    {                                       
+      BindingFault bindingFault = (BindingFault)getTarget();
+      BindingOperation bindingOperation = (BindingOperation)bindingFault.eContainer();
+      Operation operation = ComponentReferenceUtil.computeOperation(bindingOperation);                                                            
+      fireNotificationForOperation(operation);
+    }                
+  } 
+  
+
+  protected static class OperationAdapter extends BaseAdapter 
+  {     
+    protected Definition definition;
+    protected List listeners = new ArrayList();
+
+    public void addListener(Listener listener)
+    {
+      listeners.add(listener);
+    }
+
+    public void removeListener(Listener listener)
+    {
+      listeners.remove(listener);
+    }   
+
+    public void fireBindingsChanged()
+    {                            
+      Operation operation = (Operation)getTarget();
+      for (Iterator i = listeners.iterator(); i.hasNext(); )
+      {                                   
+        Listener listener = (Listener)i.next();
+        listener.bindingsChanged(operation);
+      }
+    }         
+  }   
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/SelectionAdapter.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/SelectionAdapter.java
new file mode 100644
index 0000000..9f1fda4
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/SelectionAdapter.java
@@ -0,0 +1,84 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.util;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+
+// This class is used to help syncronize selections between two models.
+//
+public abstract class SelectionAdapter implements ISelectionProvider
+{ 
+  protected List listenerList = new ArrayList();
+  protected ISelection selection = new StructuredSelection();
+  protected ISelectionProvider eventSource;
+
+  public void setEventSource(ISelectionProvider eventSource)
+  {
+    this.eventSource = eventSource;
+  }
+
+  public void addSelectionChangedListener(ISelectionChangedListener listener) 
+  {
+    listenerList.add(listener);
+  }
+
+  public void removeSelectionChangedListener(ISelectionChangedListener listener) 
+  {
+    listenerList.remove(listener);
+  }                    
+
+  public ISelection getSelection() 
+  {
+    return selection;
+  }    
+  
+  /**
+   * This method should be specialized to return the correct object that corresponds to the 'other' model
+   */
+  abstract protected Object getObjectForOtherModel(Object object);
+
+    
+  public void setSelection(ISelection modelSelection)  
+  { 
+    List otherModelObjectList = new ArrayList();
+    if (modelSelection instanceof IStructuredSelection)
+    {
+      for (Iterator i = ((IStructuredSelection)modelSelection).iterator(); i.hasNext(); )
+      {
+        Object modelObject = i.next(); 
+        Object otherModelObject = getObjectForOtherModel(modelObject);       
+        if (otherModelObject != null)
+        { 
+          otherModelObjectList.add(otherModelObject);
+        }
+      }
+    }                
+      
+    StructuredSelection nodeSelection = new StructuredSelection(otherModelObjectList);
+    selection = nodeSelection;
+    SelectionChangedEvent event = new SelectionChangedEvent(eventSource != null ? eventSource : this, nodeSelection);
+
+    for (Iterator i = listenerList.iterator(); i.hasNext(); )
+    {
+      ISelectionChangedListener listener = (ISelectionChangedListener)i.next();
+      listener.selectionChanged(event);
+    }
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/util/ValidateHelper.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/ValidateHelper.java
similarity index 99%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/util/ValidateHelper.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/ValidateHelper.java
index d65f2b8..6779322 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/util/ValidateHelper.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/ValidateHelper.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/util/WSDLEditorUtil.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/WSDLEditorUtil.java
similarity index 97%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/util/WSDLEditorUtil.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/WSDLEditorUtil.java
index a83dc65..2fa47f7 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/util/WSDLEditorUtil.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/WSDLEditorUtil.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
@@ -23,8 +23,8 @@
 import org.eclipse.wst.wsdl.Operation;
 import org.eclipse.wst.wsdl.PortType;
 import org.eclipse.wst.wsdl.Types;
-import org.eclipse.wst.wsdl.ui.internal.extensions.ExtensibleTypeSystemProvider;
-import org.eclipse.wst.wsdl.ui.internal.extensions.ITypeSystemProvider;
+import org.eclipse.wst.wsdl.ui.internal.extension.ITypeSystemProvider;
+import org.eclipse.wst.wsdl.ui.internal.typesystem.ExtensibleTypeSystemProvider;
 import org.eclipse.wst.wsdl.util.WSDLConstants;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/text/WSDLModelLocatorAdapterFactory.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/WSDLModelLocatorAdapterFactory.java
similarity index 93%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/text/WSDLModelLocatorAdapterFactory.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/WSDLModelLocatorAdapterFactory.java
index 0de7a94..60724ab 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/text/WSDLModelLocatorAdapterFactory.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/WSDLModelLocatorAdapterFactory.java
@@ -1,14 +1,14 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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.text;
+package org.eclipse.wst.wsdl.ui.internal.util;
 
 import org.eclipse.emf.common.notify.Adapter;
 import org.eclipse.emf.common.notify.Notifier;
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/extensions/WSDLNodeAssociationProvider.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/WSDLNodeAssociationProvider.java
similarity index 92%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/extensions/WSDLNodeAssociationProvider.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/WSDLNodeAssociationProvider.java
index d567e8b..ddc3353 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/extensions/WSDLNodeAssociationProvider.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/WSDLNodeAssociationProvider.java
@@ -1,20 +1,21 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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.extensions;      
+package org.eclipse.wst.wsdl.ui.internal.util;      
 
 import java.util.Collection;
 import java.util.Iterator;
 
 import org.eclipse.wst.wsdl.WSDLElement;
 import org.eclipse.wst.wsdl.internal.impl.WSDLElementImpl;
+import org.eclipse.wst.wsdl.ui.internal.extension.INodeAssociationProvider;
 import org.eclipse.xsd.impl.XSDComponentImpl;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/WSDLPreferencePage.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/WSDLPreferencePage.java
similarity index 92%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/WSDLPreferencePage.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/WSDLPreferencePage.java
index 7e158e6..779b282 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/WSDLPreferencePage.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/WSDLPreferencePage.java
@@ -1,14 +1,14 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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;
+package org.eclipse.wst.wsdl.ui.internal.util;
 
 import org.eclipse.jface.preference.BooleanFieldEditor;
 import org.eclipse.jface.preference.FieldEditorPreferencePage;
@@ -20,6 +20,7 @@
 import org.eclipse.swt.widgets.Group;
 import org.eclipse.ui.IWorkbench;
 import org.eclipse.ui.IWorkbenchPreferencePage;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
 
 public class WSDLPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
 
@@ -74,7 +75,7 @@
 	BooleanFieldEditor generateBindingOnSave = new BooleanFieldEditor(generateLabel, generateLabel, parent);
 	addField(generateBindingOnSave);
 	
-	String showGenerateDialogLabel = "Prompt Regenerate Binding on save";   // TODO: Externalize
+	String showGenerateDialogLabel = WSDLEditorPlugin.getWSDLString("_UI_PREF_PAGE_PROMPT_REGEN_BINDING_ON_SAVE");
 	BooleanFieldEditor showGenerateDialog = new BooleanFieldEditor(showGenerateDialogLabel, showGenerateDialogLabel, parent);
 	addField(showGenerateDialog);
 
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/util/WSDLResourceUtil.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/WSDLResourceUtil.java
similarity index 98%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/util/WSDLResourceUtil.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/WSDLResourceUtil.java
index ab6faa8..8b1dd18 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/util/WSDLResourceUtil.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/WSDLResourceUtil.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/XMLQuickScan.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/XMLQuickScan.java
new file mode 100644
index 0000000..7f338b7
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/XMLQuickScan.java
@@ -0,0 +1,91 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.util;
+
+import java.io.InputStream;
+import java.net.URL;
+
+import javax.xml.transform.TransformerFactory;
+
+import org.xml.sax.Attributes;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+import org.xml.sax.XMLReader;
+import org.xml.sax.helpers.DefaultHandler;
+
+/**
+ *
+ */
+public class XMLQuickScan
+{            
+  public static String getTargetNamespaceURIForSchema(String uri)
+  {
+    String result = null;
+    try
+    {             
+      URL url = new URL(uri);
+      InputStream inputStream = url.openStream();
+      result = XMLQuickScan.getTargetNamespaceURIForSchema(inputStream); 
+    }
+    catch (Exception e)
+    {      
+    }  
+    return result;
+  }
+
+  public static String getTargetNamespaceURIForSchema(InputStream input)
+  {  
+    TargetNamespaceURIContentHandler handler = new TargetNamespaceURIContentHandler();                                                                  
+    ClassLoader prevClassLoader = Thread.currentThread().getContextClassLoader();
+    Thread.currentThread().setContextClassLoader(XMLQuickScan.class.getClassLoader());
+    // Line below is a hack to get XMLReader working
+    TransformerFactory transformerFactory = TransformerFactory.newInstance();
+    try
+    {
+    	XMLReader reader = org.xml.sax.helpers.XMLReaderFactory.createXMLReader();
+    	reader.setContentHandler(handler);
+    	reader.parse(new InputSource(input));
+    }
+    catch (Exception e)
+    {      
+    }
+    finally
+    {
+      Thread.currentThread().setContextClassLoader(prevClassLoader);
+    }
+    return handler.targetNamespaceURI;
+  }  
+
+  protected static class TargetNamespaceURIContentHandler extends DefaultHandler
+  {       
+    public String targetNamespaceURI;
+
+    public void startElement(String uri, String localName, String qName, Attributes attributes)  throws SAXException
+    {            
+      if (localName.equals("schema") || localName.equals("definitions"))
+      {               
+        int nAttributes = attributes.getLength();
+        for (int i = 0; i < nAttributes; i++)
+        {
+          if (attributes.getLocalName(i).equals("targetNamespace"))
+          {
+            targetNamespaceURI = attributes.getValue(i);
+            break;
+          }
+        }
+      }                                    
+      // todo there's a ice way to do this I'm sure    
+      // here I intentially cause an exception... 
+      String x = null;
+      x.length();
+    }
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/XSDSchemaLocationResolverAdapterFactory.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/XSDSchemaLocationResolverAdapterFactory.java
new file mode 100644
index 0000000..64b9ae8
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/XSDSchemaLocationResolverAdapterFactory.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+import org.eclipse.xsd.util.XSDSchemaLocationResolver;
+
+public class XSDSchemaLocationResolverAdapterFactory extends AdapterFactoryImpl
+{
+    protected XSDSchemaLocationResolverImpl schemaLocator = new XSDSchemaLocationResolverImpl();
+
+    public boolean isFactoryForType(Object type)
+    {
+      return type == XSDSchemaLocationResolver.class;
+    }
+
+    public Adapter adaptNew(Notifier target, Object type)
+    {
+      return schemaLocator;
+    }
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/XSDSchemaLocationResolverImpl.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/XSDSchemaLocationResolverImpl.java
new file mode 100644
index 0000000..306a2e8
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/XSDSchemaLocationResolverImpl.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.util;
+
+import org.eclipse.emf.common.notify.impl.AdapterImpl;
+import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolverPlugin;
+import org.eclipse.xsd.XSDSchema;
+import org.eclipse.xsd.util.XSDSchemaLocationResolver;
+import org.eclipse.xsd.util.XSDSchemaLocator;
+
+public class XSDSchemaLocationResolverImpl extends AdapterImpl implements XSDSchemaLocationResolver
+{
+    public String resolveSchemaLocation(XSDSchema xsdSchema, String namespaceURI, String schemaLocationURI)
+    {
+      String baseLocation = xsdSchema.getSchemaLocation();      
+      String result = URIResolverPlugin.createResolver().resolve(baseLocation, namespaceURI, schemaLocationURI);
+      if (result == null) {
+      	result = namespaceURI;
+      }
+      if (result == null) {
+      	result = "";
+      }
+
+      return result;
+    }
+
+    public boolean isAdatperForType(Object type)
+    {
+      return type == XSDSchemaLocator.class;
+    }  
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/flatui/FlatPageHeader.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/flatui/FlatPageHeader.java
new file mode 100644
index 0000000..b479354
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/flatui/FlatPageHeader.java
@@ -0,0 +1,356 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.util.flatui;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jface.resource.JFaceResources;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.DisposeEvent;
+import org.eclipse.swt.events.DisposeListener;
+import org.eclipse.swt.events.MouseAdapter;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.events.PaintEvent;
+import org.eclipse.swt.events.PaintListener;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.FontMetrics;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Canvas;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+
+public class FlatPageHeader extends Canvas implements IPropertyChangeListener 
+{
+	private Image backgroundImage;  
+	private String text;
+	private Image buttonImage;
+	private Color imageBackgroundColor;
+	private Color textForegroundColor;
+	private int textHMargin = 10;
+	private int textVMargin = 5;
+	private Font headerFont;
+
+	private List listeners;
+	private int buttonImageX;
+	private int buttonImageY;
+	
+  // Usage: 
+  //    See org.eclipse.wst.common.ui.FlatViewUtility.createFlatPageHeader() 
+  //    methods.
+  //
+  //  Ex)
+  //  Composite parent = ... ;
+  //  Image image = ... ;
+  //  Layout layout = ... ;
+  //  String title = ... ;
+  //  WidgetFactory factory = ... ;
+  //
+  //  header = new FlatPageHeader(parent,SWT.NONE);
+  //  header.setLayout(layout);
+  //  header.setBackgroundImage(image);
+  //  header.setText(title);
+  //  Composite formParent = factory.createComposite(header);
+  //  
+  //  GridLayout gl = new GridLayout();
+  //  gl.numColumns = 1;
+  //  formParent.setLayout(gl);
+  //  formParent.setLayoutData(new GridData(GridData.FILL_BOTH));
+  //
+	public FlatPageHeader(Composite parent, int style) 
+  {
+		super(parent, style);
+		
+		// The default image background color is white
+		// The default text forekground color is black
+		imageBackgroundColor = new Color(null, 255, 255, 255);
+		textForegroundColor = new Color(null, 0, 0, 0);
+		setBackground(imageBackgroundColor);
+		
+		// The default text font is Header font
+		headerFont = JFaceResources.getHeaderFont();
+		
+		// Need to dispose the Color
+		addDisposeListener
+      (new DisposeListener() 
+        {
+			    public void widgetDisposed(DisposeEvent e) 
+          {
+				    FlatPageHeader.this.widgetDisposed(e);
+			    }
+		    } 
+      );
+		 
+		// need to paint
+		addPaintListener
+      (new PaintListener() 
+        {
+			    public void paintControl(PaintEvent e) 
+          {
+			      FlatPageHeader.this.paintControl(e);
+			    }
+		    }
+      );
+
+		// create a list of listeners
+		listeners = new ArrayList();
+
+		// add a mouse listener
+		this.addMouseListener
+      (new MouseAdapter() 
+        {
+			    public void mouseDown(MouseEvent event) 
+          {
+				    handleMouseDown(event);
+			    }
+		    }
+      );	
+		
+		JFaceResources.getFontRegistry().addListener(this);
+	}  
+
+	// Compute size of the widget
+	public Point computeSize(int wHint, int hHint, boolean changed) 
+  {
+		int width = getParent().getClientArea().width;
+		int height = 0;
+		if (backgroundImage != null) 
+    {
+			Rectangle bounds = backgroundImage.getBounds();
+			height = bounds.height;
+		}
+		if (text != null) 
+    {
+			GC gc = new GC(this);
+			int textHeight = getTextHeight(gc);
+			gc.dispose();
+			height = Math.max(height, textHeight);
+		}
+		if (buttonImage != null) 
+    { 
+			Rectangle bounds = buttonImage.getBounds();
+			if (height < bounds.height)
+				height = bounds.height;
+		}
+		if (wHint != SWT.DEFAULT) width = wHint;
+		if (hHint != SWT.DEFAULT) height = hHint;          
+		return new Point(width + 2, height + 2);     
+	}	
+
+	protected void paintControl(PaintEvent e) 
+  {
+		GC gc = e.gc;
+		if (backgroundImage != null) 
+    {
+			Rectangle imageBounds = backgroundImage.getBounds();
+			int y = 0;
+			int x = 0;
+
+			if (imageBackgroundColor != null) 
+      {
+				gc.setBackground(imageBackgroundColor);
+				gc.fillRectangle(0, 0, imageBounds.width, imageBounds.height);
+			}
+
+			if (SWT.getPlatform().equals("motif")==false) 
+      {
+				gc.drawImage(backgroundImage, x, y);
+			}
+			if (textForegroundColor != null)
+				gc.setForeground(textForegroundColor);
+			gc.setFont(headerFont);
+//			gc.setFont(getFont());	
+			gc.drawText(text, textHMargin, textVMargin, true);
+			if (buttonImage != null) 
+      {
+				Rectangle parentBounds = getParent().getClientArea();
+				Rectangle buttonBounds = buttonImage.getBounds();
+				int p = parentBounds.x + parentBounds.width;
+				buttonImageX = p - buttonBounds.width - 4;
+				buttonImageY = 4;
+				gc.drawImage(buttonImage, buttonImageX, buttonImageY);
+			}
+		}		
+	}
+	
+	public void addSelectionListener(SelectionListener listener) 
+  {
+		listeners.add(listener);
+	}
+       
+	public void removeSelectionListener(SelectionListener listener) 
+  {
+		listeners.remove(listener);
+	}	
+	
+	protected void handleMouseDown(MouseEvent event) 
+  {
+		if (buttonImage == null)
+			return;
+		// chekc if the Button image is clicked
+		int x = event.x;
+		int y = event.y;
+		if (x < buttonImageX || x > buttonImageX + buttonImage.getBounds().width) 
+    {
+			return;
+		}
+		if (y < buttonImageY || y > buttonImageY + buttonImage.getBounds().height) 
+    {
+			return;
+		}
+		
+		int size = listeners.size();
+		for (int i = 0; i < size; i++) 
+    {
+			SelectionListener listener = (SelectionListener)listeners.get(i);
+			listener.widgetSelected(null);
+		}
+	}
+	
+	protected void widgetDisposed(DisposeEvent e) 
+  {
+		if (imageBackgroundColor != null) imageBackgroundColor.dispose();
+		if (textForegroundColor != null) textForegroundColor.dispose();
+		if (backgroundImage != null) backgroundImage.dispose();
+	}
+	
+	// getters and setters
+	public Image getBackgroundImage() 
+  {
+		return backgroundImage;
+	}
+      
+	public void setBackgroundImage(Image backgroundImage) 
+  {
+		this.backgroundImage = backgroundImage;
+		redraw();
+	}
+
+	public Image getButtonImage() 
+  {
+		return buttonImage;
+	}
+      
+	public void setButtonImage(Image buttonImage) 
+  {
+		this.buttonImage = buttonImage;
+		redraw();
+	}
+      
+	public String getText() 
+  {
+		return text;
+	}
+      
+	public void setText(String text) 
+  {
+		this.text = text;
+		redraw();
+	}
+	
+	public int getTextHMargin() 
+  {
+		return textHMargin;
+	}
+	
+	public void setTextHMargin(int textHMargin) 
+  {
+		this.textHMargin = textHMargin;
+	}
+	
+	public int getTextVMargin() 
+  {
+		return textVMargin;
+	}
+	
+	public void setTextVMargin(int textVMargin) 
+  {
+		this.textVMargin = textVMargin;
+	}
+	
+	public Color getImageBackgroundColor() 
+  {
+		return imageBackgroundColor;
+	}
+	
+	public void setImageBackgroundColor(Color imageBackgroundColor) 
+  {
+		if (imageBackgroundColor == null)
+			return;
+		this.imageBackgroundColor = imageBackgroundColor;
+		redraw();
+	}
+	
+	public Color getTextForegroundColor() 
+  {
+		return textForegroundColor;
+	}
+	
+	public void setTextForegroundColor(Color textForegroundColor) 
+  {
+		if (textForegroundColor == null)
+			return;
+		this.textForegroundColor = textForegroundColor;
+		redraw();
+	}
+
+	private int getTextHeight(GC gc) 
+  {
+		int imageHeight = 0;
+		if (backgroundImage!= null && SWT.getPlatform().equals("motif")==false) 
+    {
+			imageHeight = backgroundImage.getBounds().height;
+		}
+		gc.setFont(headerFont);
+//		gc.setFont(getFont());
+		FontMetrics fm = gc.getFontMetrics();
+		int fontHeight = fm.getHeight();
+		int height =  fontHeight + textVMargin + textVMargin;
+		return Math.max(height, imageHeight);
+	}
+
+//	private int getTextWidth(GC gc) 
+//  {
+//		int imageWidth = 0;
+//		if (backgroundImage!= null && SWT.getPlatform().equals("motif")==false) 
+//    {
+//			imageWidth = backgroundImage.getBounds().width;
+//		}
+//		gc.setFont(headerFont);
+////		gc.setFont(getFont());
+//		FontMetrics fm = gc.getFontMetrics();
+//		int fontWidth = fm.getAverageCharWidth() + 5;
+//		int width =  fontWidth * text.length() + textHMargin + textHMargin;
+//		return Math.max(width, imageWidth);
+//	}
+	
+	public void handleEvent(Event e) 
+  {
+//		Widget source = e.widget;	
+	}
+	
+	public void propertyChange(PropertyChangeEvent event) 
+  {
+		if(event.getProperty() == JFaceResources.HEADER_FONT && this.isDisposed() == false)
+		{
+			headerFont = JFaceResources.getFontRegistry().get(JFaceResources.HEADER_FONT);
+			this.layout(true);
+			this.redraw();
+		}
+	}
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/flatui/FlatPageSection.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/flatui/FlatPageSection.java
new file mode 100644
index 0000000..7ef2e6c
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/flatui/FlatPageSection.java
@@ -0,0 +1,408 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.util.flatui;
+
+import org.eclipse.jface.resource.JFaceResources;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.ViewForm;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Layout;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.swt.widgets.Widget;
+
+//public abstract class FormSection implements IPropertyChangeListener, IModelChangedListener {
+public abstract class FlatPageSection extends ViewForm implements IPropertyChangeListener {
+	public static final int SELECTION = 1;
+//	private PDEFormPage formPage;
+	private String headerColorKey = WidgetFactory.DEFAULT_HEADER_COLOR;
+	private String headerText;
+	private Control client;
+	protected Label header;
+	protected Control separator;
+//	private SectionChangeManager sectionManager;
+	private java.lang.String description;
+	private boolean dirty;
+	protected Label descriptionLabel;
+	private ToggleControl toggle;
+	private boolean readOnly;
+	private boolean titleAsHyperlink;
+	private boolean addSeparator=true;
+	private boolean descriptionPainted=true;
+	private boolean headerPainted=true;
+	private boolean collapsable=false;
+	private Composite control;
+	
+	
+/*
+ * This is a special layout for the section. Both the
+ * header and the description labels will wrap and
+ * they will use client's size to calculate needed
+ * height. This kind of behaviour is not possible
+ * with stock grid layout.
+ */
+class SectionLayout extends Layout {
+	int vspacing = 3;
+	int sepHeight = 2;
+
+
+	protected Point computeSize(Composite parent, int wHint, int hHint, boolean flush) {
+		int width = 0;
+		int height = 0;
+		int cwidth = 0;
+		int collapsedHeight = 0;
+	
+		if (wHint != SWT.DEFAULT)
+		   width = wHint;
+		if (hHint != SWT.DEFAULT)
+			height = hHint;
+
+		cwidth = width;
+				
+		if (client != null) {
+			Point csize = client.computeSize(SWT.DEFAULT, SWT.DEFAULT, flush);
+			if (width == 0) {
+				width = csize.x;
+				cwidth = width;
+			}
+			if (height==0) height = csize.y;
+		}
+		
+		Point toggleSize = null;
+		
+		if (collapsable && toggle!=null) 
+		    toggleSize = toggle.computeSize(SWT.DEFAULT, SWT.DEFAULT, flush);
+		
+		if (hHint== SWT.DEFAULT && headerPainted && header!=null) {
+			int hwidth = cwidth;
+			if (toggleSize!=null)
+			   hwidth = cwidth - toggleSize.x - 5;
+			Point hsize = header.computeSize(hwidth, SWT.DEFAULT, flush);
+			height += hsize.y;
+			collapsedHeight = hsize.y;
+			height += vspacing;
+		}
+		
+		if (hHint==SWT.DEFAULT && addSeparator) {
+			height += sepHeight;
+			height += vspacing;
+			collapsedHeight += vspacing + sepHeight;
+		}
+		if (hHint == SWT.DEFAULT && descriptionPainted && descriptionLabel!=null) {
+			Point dsize = descriptionLabel.computeSize(cwidth, SWT.DEFAULT, flush);
+			height += dsize.y;
+			height += vspacing;
+		}
+		if (toggle!=null && toggle.getSelection()) {
+			// collapsed state
+			height = collapsedHeight;
+		}
+		return new Point(width, height);
+	}
+	protected void layout(Composite parent, boolean flush) {
+		int width = parent.getClientArea().width;
+		int height = parent.getClientArea().height;
+		int y = 0;
+		Point toggleSize=null;
+		
+		if (collapsable) {
+			toggleSize = toggle.computeSize(SWT.DEFAULT, SWT.DEFAULT, flush);
+		}
+
+		if (headerPainted && header!=null) {
+			Point hsize;
+			
+			if (titleAsHyperlink) {
+				hsize = header.computeSize(SWT.DEFAULT, SWT.DEFAULT, flush);
+				header.setBounds(0, y, hsize.x, hsize.y);
+			}
+			else {
+				int availableWidth = width;
+				if (toggleSize!=null)
+				   availableWidth = width - toggleSize.x - 5;
+				hsize = header.computeSize(availableWidth, SWT.DEFAULT, flush);
+
+        int hx = 0;
+		   	if (toggle!=null) {
+	   			int ty = y + hsize.y - toggleSize.y; // + vspacing;
+		   	  toggle.setBounds(0, ty, toggleSize.x, toggleSize.y);
+          hx = toggleSize.x;
+		   	}
+			  header.setBounds(hx, y, availableWidth, hsize.y);
+			}
+			y += hsize.y + vspacing;
+		}
+		if (addSeparator && separator!=null) {
+			separator.setBounds(0, y, width, 2);
+			y += sepHeight + vspacing;
+		}
+		if (toggle!=null && toggle.getSelection()) {
+			return;
+		}
+		if (descriptionPainted && descriptionLabel!=null) {
+			Point dsize = descriptionLabel.computeSize(width, SWT.DEFAULT, flush);
+			descriptionLabel.setBounds(0, y, width, dsize.y);
+			y += dsize.y + vspacing;
+		}
+		if (client!=null) {
+			client.setBounds(0, y, width, height - y);
+		}
+	}
+}
+	
+	
+public FlatPageSection(Composite parent) {
+	// Description causes problems re word wrapping
+	// and causes bad layout in schema and
+	// component editors when in Motif - turning off
+	
+	super(parent, SWT.FLAT);
+	if (SWT.getPlatform().equals("motif")) {
+		descriptionPainted = false;
+	}
+	JFaceResources.getFontRegistry().addListener(this);
+}
+public void commitChanges(boolean onSave) {
+}
+public abstract Composite createClient(Composite parent, WidgetFactory factory);
+public final Control createControl(
+	Composite parent,
+	WidgetFactory factory) {
+	Composite section = factory.createComposite(parent);
+	SectionLayout slayout = new SectionLayout();
+	section.setLayout(slayout);
+	section.setData(this);
+
+	if (headerPainted) {
+		Color headerColor = factory.getColor(getHeaderColorKey());
+		header = factory.createHeadingLabel(section, getHeaderText(), headerColor, SWT.WRAP);
+		if (titleAsHyperlink) {
+			factory.turnIntoHyperlink(header, new HyperlinkAdapter() {
+				public void linkActivated(Control label) {
+					titleActivated();
+				}
+			});
+		}
+		if (collapsable) {
+			toggle = new ToggleControl(section, SWT.NULL);
+			toggle.setBackground(factory.getBackgroundColor());
+			toggle.setActiveDecorationColor(factory.getHyperlinkColor());
+			toggle.setDecorationColor(factory.getColor(WidgetFactory.COLOR_COMPOSITE_SEPARATOR));
+			toggle.setActiveCursor(factory.getHyperlinkCursor());
+			toggle.addSelectionListener(new SelectionAdapter() {
+				public void widgetSelected(SelectionEvent e) {
+					
+					boolean collapsed = toggle.getSelection();
+					reflow();
+					if (descriptionLabel!=null)
+						descriptionLabel.setVisible(!collapsed);
+					if (client!=null)
+						client.setVisible(!collapsed);
+				}
+			});
+		}
+	}
+
+
+	if (addSeparator) {
+        //separator = factory.createSeparator(section, SWT.HORIZONTAL);
+		separator = factory.createCompositeSeparator(section);
+	}
+	
+	if (descriptionPainted && description != null) {
+		descriptionLabel = factory.createLabel(section, description, SWT.WRAP);
+	}
+	client = createClient(section, factory);
+	section.setData(this);
+	control = section;
+	return section;
+}
+
+protected void reflow() {
+	control.layout(true);
+	control.getParent().layout(true);
+
+  Widget grandParent = control.getParent().getParent();
+  if (grandParent != null && grandParent instanceof Composite)
+	  ((Composite)grandParent).layout(true);
+/*
+	SectionForm form = formPage.getForm();
+	if (form instanceof ScrollableSectionForm) {
+		((ScrollableSectionForm)form).updateScrollBars();
+	}
+*/
+}
+
+protected Text createText(Composite parent, String label, WidgetFactory factory) {
+	return createText(parent, label, factory, 1);
+}
+protected Text createText(Composite parent, String label, WidgetFactory factory, int span) {
+	factory.createLabel(parent, label);
+	Text text = factory.createText(parent, "");
+	GridData gd = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_CENTER);
+	gd.grabExcessHorizontalSpace = true;
+	gd.horizontalSpan=span;
+	text.setLayoutData(gd);
+	return text;
+}
+protected Text createText(Composite parent, WidgetFactory factory, int span) {
+	Text text = factory.createText(parent, "");
+	GridData gd = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_CENTER);
+	gd.grabExcessHorizontalSpace = true;
+	gd.horizontalSpan=span;
+	text.setLayoutData(gd);
+	return text;
+}
+public void dispose() {
+	JFaceResources.getFontRegistry().removeListener(this);
+	super.dispose();
+}
+public void doGlobalAction(String actionId) {}
+public void expandTo(Object object) {}
+/*
+public final void fireChangeNotification(int changeType, Object changeObject) {
+	if (sectionManager == null)
+		return;
+	sectionManager.dispatchNotification(this, changeType, changeObject);
+}
+public final void fireSelectionNotification(Object changeObject) {
+	fireChangeNotification(SELECTION, changeObject);
+}
+*/
+public java.lang.String getDescription() {
+	return description;
+}
+/*
+public PDEFormPage getFormPage() {
+	return formPage;
+}
+*/
+
+public java.lang.String getHeaderColorKey() {
+	return headerColorKey;
+}
+public java.lang.String getHeaderText() {
+	return headerText;
+}
+public void initialize(Object input) {}
+
+public boolean isDirty() {
+	return dirty;
+}
+
+public boolean isReadOnly() {
+	return readOnly;
+}
+public boolean isTitleAsHyperlink() {
+	return titleAsHyperlink;
+}
+/*
+public void modelChanged(IModelChangedEvent e) {
+}
+*/
+public void sectionChanged(FlatPageSection source, int changeType, Object changeObject) {}
+public void setAddSeparator(boolean newAddSeparator) {
+	addSeparator = newAddSeparator;
+}
+
+
+private String trimNewLines(String text) {
+	StringBuffer buff = new StringBuffer();
+	for (int i=0; i<text.length(); i++) {
+		char c = text.charAt(i);
+		if (c=='\n')
+		   buff.append(' ');
+		else
+		   buff.append(c);
+	}
+	return buff.toString();
+}
+	
+public void setDescription(java.lang.String newDescription) {
+	// we will trim the new lines so that we can
+	// use layout-based word wrapping instead
+	// of hard-coded one
+	description = trimNewLines(newDescription);
+	//description = newDescription;
+	if (descriptionLabel!=null) descriptionLabel.setText(newDescription);
+}
+public void setDescriptionPainted(boolean newDescriptionPainted) {
+	descriptionPainted = newDescriptionPainted;
+}
+public void setDirty(boolean newDirty) {
+	dirty = newDirty;
+}
+/*
+public void setFocus() {
+}
+*/
+public void setHeaderColorKey(java.lang.String newHeaderColorKey) {
+	headerColorKey = newHeaderColorKey;
+}
+public void setHeaderPainted(boolean newHeaderPainted) {
+	headerPainted = newHeaderPainted;
+}
+public void setHeaderText(java.lang.String newHeaderText) {
+	headerText = newHeaderText;
+	if (header!=null) header.setText(headerText);
+}
+/*
+void setManager(SectionChangeManager manager) {
+	this.sectionManager = manager;
+}
+*/
+public void setReadOnly(boolean newReadOnly) {
+	readOnly = newReadOnly;
+}
+public void setTitleAsHyperlink(boolean newTitleAsHyperlink) {
+	titleAsHyperlink = newTitleAsHyperlink;
+}
+public void titleActivated() {
+}
+/*
+public void update() {}
+*/
+
+public void propertyChange(PropertyChangeEvent arg0) {
+	if (control!=null && header!=null) {
+	  if (!header.isDisposed())
+		header.setFont(JFaceResources.getBannerFont());
+	  if (!control.isDisposed())
+		control.layout(true);
+	}
+}
+
+
+	/**
+	 * Gets the collapsable.
+	 * @return Returns a boolean
+	 */
+	public boolean getCollapsable() {
+		return collapsable;
+	}
+
+	/**
+	 * Sets the collapsable.
+	 * @param collapsable The collapsable to set
+	 */
+	public void setCollapsable(boolean collapsable) {
+		this.collapsable = collapsable;
+	}
+
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/flatui/HyperlinkAdapter.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/flatui/HyperlinkAdapter.java
new file mode 100644
index 0000000..4e52bb9
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/flatui/HyperlinkAdapter.java
@@ -0,0 +1,22 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.util.flatui;
+
+public class HyperlinkAdapter implements IHyperlinkListener{
+
+public HyperlinkAdapter() {
+    super();
+}
+public void linkActivated(org.eclipse.swt.widgets.Control linkLabel) {}
+public void linkEntered(org.eclipse.swt.widgets.Control linkLabel) {}
+public void linkExited(org.eclipse.swt.widgets.Control linkLabel) {}
+}
+
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/flatui/HyperlinkHandler.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/flatui/HyperlinkHandler.java
new file mode 100644
index 0000000..bcd3c33
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/flatui/HyperlinkHandler.java
@@ -0,0 +1,203 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.util.flatui;
+
+import java.util.Enumeration;
+import java.util.Hashtable;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.events.MouseListener;
+import org.eclipse.swt.events.MouseTrackListener;
+import org.eclipse.swt.events.PaintEvent;
+import org.eclipse.swt.events.PaintListener;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Cursor;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Label;
+
+public class HyperlinkHandler implements MouseListener, MouseTrackListener, PaintListener {
+
+  	public static final int UNDERLINE_NEVER = 1;
+    public static final int UNDERLINE_ROLLOVER = 2;
+    public static final int UNDERLINE_ALWAYS = 3;
+
+    private static Cursor hyperlinkCursor;
+    private static Cursor busyCursor;
+    private boolean hyperlinkCursorUsed=true;
+    private int hyperlinkUnderlineMode=UNDERLINE_ALWAYS;
+    private Color background;
+    private Color foreground;
+    private Color activeBackground;
+    private Color activeForeground;
+    private Hashtable hyperlinkListeners;
+    private Control lastLink;
+
+public HyperlinkHandler() {
+    hyperlinkListeners = new Hashtable();
+    if (hyperlinkCursor == null)
+    {
+      hyperlinkCursor = new Cursor(Display.getCurrent(), SWT.CURSOR_HAND);
+      busyCursor = new Cursor(Display.getCurrent(), SWT.CURSOR_WAIT);
+    }
+}
+public void dispose() {
+    hyperlinkCursor.dispose();
+    busyCursor.dispose();
+}
+public org.eclipse.swt.graphics.Color getActiveBackground() {
+    return activeBackground;
+}
+public org.eclipse.swt.graphics.Color getActiveForeground() {
+    return activeForeground;
+}
+public org.eclipse.swt.graphics.Color getBackground() {
+    return background;
+}
+public org.eclipse.swt.graphics.Cursor getBusyCursor() {
+    return busyCursor;
+}
+public org.eclipse.swt.graphics.Color getForeground() {
+    return foreground;
+}
+public org.eclipse.swt.graphics.Cursor getHyperlinkCursor() {
+    return hyperlinkCursor;
+}
+public int getHyperlinkUnderlineMode() {
+    return hyperlinkUnderlineMode;
+}
+public org.eclipse.swt.widgets.Control getLastLink() {
+    return lastLink;
+}
+public boolean isHyperlinkCursorUsed() {
+    return hyperlinkCursorUsed;
+}
+        public void mouseDoubleClick(MouseEvent e) {
+        }
+public void mouseDown(MouseEvent e) {
+    if (e.button == 1)
+        return;
+    lastLink = (Control)e.widget;
+}
+public void mouseEnter(MouseEvent e) {
+    Control control = (Control) e.widget;
+    if (isHyperlinkCursorUsed())
+        control.setCursor(hyperlinkCursor);
+    if (activeBackground != null)
+        control.setBackground(activeBackground);
+    if (activeForeground != null)
+        control.setForeground(activeForeground);
+    if (hyperlinkUnderlineMode==UNDERLINE_ROLLOVER) underline(control, true);    
+
+    IHyperlinkListener action =
+        (IHyperlinkListener) hyperlinkListeners.get(control);
+    if (action != null)
+        action.linkEntered(control);
+}
+public void mouseExit(MouseEvent e) {
+    Control control = (Control) e.widget;
+    if (isHyperlinkCursorUsed())
+        control.setCursor(null);
+    if (hyperlinkUnderlineMode==UNDERLINE_ROLLOVER)
+        underline(control, false);
+    if (background != null)
+        control.setBackground(background);
+    if (foreground != null)
+        control.setForeground(foreground);
+    IHyperlinkListener action =
+        (IHyperlinkListener) hyperlinkListeners.get(control);
+    if (action != null)
+        action.linkExited(control);
+}
+        public void mouseHover(MouseEvent e) {
+        }
+public void mouseUp(MouseEvent e) {
+    if (e.button != 1)
+        return;
+    IHyperlinkListener action =
+        (IHyperlinkListener) hyperlinkListeners.get(e.widget);
+    if (action != null) {
+        Control c = (Control) e.widget;
+        c.setCursor(busyCursor);
+        action.linkActivated(c);
+        if (!c.isDisposed()) 
+           c.setCursor(isHyperlinkCursorUsed()?hyperlinkCursor:null);
+    }
+}
+public void paintControl(PaintEvent e) {
+    Control label = (Control) e.widget;
+    if (hyperlinkUnderlineMode == UNDERLINE_ALWAYS)
+        HyperlinkHandler.underline(label, true);
+}
+public void registerHyperlink(Control control, IHyperlinkListener listener) {
+    if (background != null)
+        control.setBackground(background);
+    if (foreground != null)
+        control.setForeground(foreground);
+    control.addMouseListener(this);
+    control.addMouseTrackListener(this);
+    if (hyperlinkUnderlineMode == UNDERLINE_ALWAYS)
+        control.addPaintListener(this);
+    hyperlinkListeners.put(control, listener);
+    removeDisposedLinks();
+}
+private void removeDisposedLinks() {
+    for (Enumeration keys = hyperlinkListeners.keys(); keys.hasMoreElements();) {
+        Control control = (Control)keys.nextElement();
+        if (control.isDisposed()) {
+            hyperlinkListeners.remove(control);
+        }
+    }
+}
+public void reset() {
+    hyperlinkListeners.clear();
+}
+public void setActiveBackground(org.eclipse.swt.graphics.Color newActiveBackground) {
+    activeBackground = newActiveBackground;
+}
+public void setActiveForeground(org.eclipse.swt.graphics.Color newActiveForeground) {
+    activeForeground = newActiveForeground;
+}
+public void setBackground(org.eclipse.swt.graphics.Color newBackground) {
+    background = newBackground;
+}
+public void setForeground(org.eclipse.swt.graphics.Color newForeground) {
+    foreground = newForeground;
+}
+public void setHyperlinkCursorUsed(boolean newHyperlinkCursorUsed) {
+    hyperlinkCursorUsed = newHyperlinkCursorUsed;
+}
+public void setHyperlinkUnderlineMode(int newHyperlinkUnderlineMode) {
+    hyperlinkUnderlineMode = newHyperlinkUnderlineMode;
+}
+public static void underline(Control control, boolean inside) {
+    if (!(control instanceof Label))
+        return;
+    Composite parent = control.getParent();
+    Rectangle bounds = control.getBounds();
+    GC gc = new GC(parent);
+    Color color = inside? control.getForeground() : control.getBackground();
+    gc.setForeground(color);
+    int y = bounds.y + bounds.height;
+    gc.drawLine(bounds.x, y, bounds.x+bounds.width, y);
+    gc.dispose();
+}
+}
+
+
+
+
+
+
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/flatui/IHyperlinkListener.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/flatui/IHyperlinkListener.java
new file mode 100644
index 0000000..03dfbad
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/flatui/IHyperlinkListener.java
@@ -0,0 +1,21 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.util.flatui;
+
+import org.eclipse.swt.widgets.Control;
+
+public interface IHyperlinkListener {
+
+  public void linkActivated(Control linkLabel);
+  public void linkEntered(Control linkLabel);
+  public void linkExited(Control linkLabel);
+}
+
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/flatui/ToggleControl.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/flatui/ToggleControl.java
new file mode 100644
index 0000000..3149fef
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/flatui/ToggleControl.java
@@ -0,0 +1,266 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.util.flatui;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.ACC;
+import org.eclipse.swt.accessibility.AccessibleAdapter;
+import org.eclipse.swt.accessibility.AccessibleControlAdapter;
+import org.eclipse.swt.accessibility.AccessibleControlEvent;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.events.FocusEvent;
+import org.eclipse.swt.events.FocusListener;
+import org.eclipse.swt.events.KeyAdapter;
+import org.eclipse.swt.events.KeyEvent;
+import org.eclipse.swt.events.MouseAdapter;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.events.MouseTrackAdapter;
+import org.eclipse.swt.events.PaintEvent;
+import org.eclipse.swt.events.PaintListener;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Cursor;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Canvas;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.TypedListener;
+
+public class ToggleControl extends Canvas {
+  private boolean fCollapsed;
+  private Color fDecorationColor;
+  private Color fActiveColor;
+  private Cursor fActiveCursor;
+  private boolean fHasFocus;
+  private boolean fHover = false;
+  private static final int MARGIN_WIDTH = 2;
+  private static final int MARGIN_HEIGHT = 2;
+
+  private static final int DEFAULT_HEIGHT = 8;
+  private static final int[] EXPANDED_POINTS = { 0, 2, 8, 2, 4, 6 }; 
+  private static final int[] COLLAPSED_POINTS = { 2, 0, 2, 8, 6, 4 }; 
+  private int fHeight = DEFAULT_HEIGHT;  
+
+  /* accessibility */
+  private String fName;
+  private String fDescription;
+
+  public ToggleControl(Composite parent, int style) {
+    super(parent, style);
+    initAccessible();
+
+    addPaintListener(new PaintListener() {
+      public void paintControl(PaintEvent e) {
+        paint(e);
+      }
+    });
+    addMouseListener(new MouseAdapter() {
+      public void mouseDown(MouseEvent e) {
+        notifyListeners(SWT.Selection);
+      }
+    });
+    addKeyListener(new KeyAdapter() {
+      public void keyPressed(KeyEvent e) {
+        if (e.character == '\r' || e.character == ' ') {
+          // Activation
+          notifyListeners(SWT.Selection);
+        }
+      }
+    });
+    addListener(SWT.Traverse, new Listener() {
+      public void handleEvent(Event e) {
+        if (e.detail != SWT.TRAVERSE_RETURN)
+          e.doit = true;
+      }
+    });
+    addFocusListener(new FocusListener() {
+      public void focusGained(FocusEvent e) {
+        if (!fHasFocus) {
+          fHasFocus = true;
+          redraw();
+        }
+      }
+      public void focusLost(FocusEvent e) {
+        if (fHasFocus) {
+          fHasFocus = false;
+          redraw();
+        }
+      }
+    });
+
+    addSelectionListener(new SelectionAdapter() {
+      public void widgetSelected(SelectionEvent e) {
+        fCollapsed = !fCollapsed;
+        redraw();
+      }
+    });
+
+    addMouseTrackListener(new MouseTrackAdapter() {
+      public void mouseEnter(MouseEvent e) {
+        fHover = true;
+        if (fActiveCursor != null)
+          setCursor(fActiveCursor);
+        redraw();
+      }
+      public void mouseExit(MouseEvent e) {
+        fHover = false;
+        if (fActiveCursor != null)
+          setCursor(null);
+        redraw();
+      }
+    });
+  }
+
+  public void addSelectionListener(SelectionListener listener) {
+    checkWidget();
+    if (listener != null)
+      addListener(SWT.Selection, new TypedListener(listener));
+  }
+
+  public void setDecorationColor(Color decorationColor) {
+    this.fDecorationColor = decorationColor;
+  }
+
+  public Color getDecorationColor() {
+    return fDecorationColor;
+  }
+
+  public void setActiveDecorationColor(Color activeColor) {
+    this.fActiveColor = activeColor;
+  }
+
+  public void removeSelectionListener(SelectionListener listener) {
+    checkWidget();
+    if (listener != null)
+      removeListener(SWT.Selection, listener);
+  }
+
+  public void setActiveCursor(Cursor activeCursor) {
+    this.fActiveCursor = activeCursor;
+  }
+
+  public Color getActiveDecorationColor() {
+    return fActiveColor;
+  }
+
+  public Point computeSize(int wHint, int hHint, boolean changed) {
+
+    return new Point((wHint != SWT.DEFAULT ? wHint : fHeight + 2 * MARGIN_WIDTH), (hHint != SWT.DEFAULT ? hHint : fHeight + 2 * MARGIN_HEIGHT));
+  }
+
+  protected void paint(PaintEvent e) {
+    GC gc = e.gc;
+    Point size = getSize();
+    gc.setFont(getFont());
+    paint(gc);
+    if (fHasFocus) {
+      gc.setForeground(getForeground());
+      gc.drawFocus(0, 0, size.x, size.y);
+    }
+  }
+
+  /*
+   * @see SelectableControl#paint(GC)
+   */
+  protected void paint(GC gc) {
+    if (fHover && fActiveColor != null)
+      gc.setBackground(fActiveColor);
+    else if (fDecorationColor != null)
+      gc.setBackground(fDecorationColor);
+    else
+      gc.setBackground(getForeground());
+    Point size = getSize();
+    gc.fillPolygon(translate((fCollapsed ? COLLAPSED_POINTS : EXPANDED_POINTS), ((size.x - fHeight) / 2), ((size.y - fHeight) / 2)));
+    gc.setBackground(getBackground());
+  }
+
+  private int[] translate(int[] data, int x, int y) {
+    int[] target = new int[data.length];
+    for (int i = 0; i < data.length; i += 2) {
+      target[i] = data[i]*fHeight/DEFAULT_HEIGHT + x;
+    }
+    for (int i = 1; i < data.length; i += 2) {
+      target[i] = data[i]*fHeight/DEFAULT_HEIGHT + y;
+    }
+    return target;
+  }
+  
+  public void setHeight(int y) {
+    fHeight = y;
+  }
+
+  private void notifyListeners(int eventType) {
+    Event event = new Event();
+    event.type = eventType;
+    event.widget = this;
+    notifyListeners(eventType, event);
+  }
+
+  public boolean getSelection() {
+    return fCollapsed;
+  }
+
+  public void setSelection(boolean selection) {
+    this.fCollapsed = selection;
+  }
+
+  public void setName(String name) {
+    fName = name;
+  }
+
+  public void setDescription(String description) {
+    fDescription = description;
+  }
+
+  private void initAccessible() {
+    getAccessible().addAccessibleListener(new AccessibleAdapter() {
+
+      public void getName(AccessibleEvent e) {
+        e.result = fName;
+      }
+
+      public void getDescription(AccessibleEvent e) {
+        e.result = fDescription;
+      }
+    });
+
+    getAccessible().addAccessibleControlListener(new AccessibleControlAdapter() {
+
+      public void getLocation(AccessibleControlEvent e) {
+        Rectangle location = getBounds();
+        Point pt = toDisplay(new Point(location.x, location.y));
+        e.x = pt.x;
+        e.y = pt.y;
+        e.width = location.width;
+        e.height = location.height;
+      }
+
+      public void getChildCount(AccessibleControlEvent e) {
+        e.detail = 0;
+      }
+
+      public void getRole(AccessibleControlEvent e) {
+        e.detail = ACC.ROLE_TREE;
+      }
+
+      public void getState(AccessibleControlEvent e) {
+        e.detail = fCollapsed ? ACC.STATE_COLLAPSED : ACC.STATE_EXPANDED;
+      }
+
+    });
+  }
+
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/flatui/WidgetFactory.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/flatui/WidgetFactory.java
new file mode 100644
index 0000000..c099982
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/flatui/WidgetFactory.java
@@ -0,0 +1,347 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.util.flatui;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.Enumeration;
+import java.util.Hashtable;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.resource.JFaceResources;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CCombo;
+import org.eclipse.swt.custom.ScrolledComposite;
+import org.eclipse.swt.custom.TableTree;
+import org.eclipse.swt.custom.ViewForm;
+import org.eclipse.swt.events.PaintEvent;
+import org.eclipse.swt.events.PaintListener;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Cursor;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Canvas;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+
+
+public class WidgetFactory {	
+  public static final String DEFAULT_HEADER_COLOR = "__default__header__";
+  public static final String COLOR_BACKGROUND = "__bg";
+  public static final String COLOR_BORDER = "__border";
+  public static final String COLOR_COMPOSITE_SEPARATOR = "__compSep";
+  public static final String COLOR_HYPERLINK="__hyperlink";
+    
+  private Hashtable colorRegistry = new Hashtable();
+  private Color backgroundColor;
+  private Color clientAreaColor;
+  private Color foregroundColor;
+  private Color fReadOnlyColor;
+  private Display fDisplay;
+  public static final int BORDER_STYLE = SWT.NONE;
+  private BorderPainter borderPainter;
+  private Color borderColor;
+  private HyperlinkHandler hyperlinkHandler;
+  private static Image fBanner;
+  
+
+  class BorderPainter implements PaintListener {
+        public void paintControl(PaintEvent event) {
+            Composite composite = (Composite) event.widget;
+            Control[] children = composite.getChildren();
+            for (int i = 0; i < children.length; i++) {
+                Control c = children[i];
+                //if (c.isEnabled()==false) continue;
+                if (c instanceof Text
+                    || c instanceof Canvas
+                    || c instanceof CCombo) {
+                    Rectangle b = c.getBounds();
+                    GC gc = event.gc;
+                    gc.setForeground(c.getBackground());
+                    gc.drawRectangle(b.x - 1, b.y - 1, b.width + 1, b.height + 1);
+                    gc.setForeground(foregroundColor);
+                    gc.drawRectangle(b.x - 2, b.y - 2, b.width + 3, b.height + 3);
+                }
+                else if (c instanceof Table
+                    || c instanceof Tree
+                    || c instanceof TableTree) {
+                    Rectangle b = c.getBounds();
+                    GC gc = event.gc;
+                    gc.setForeground(borderColor);
+                    //gc.drawRectangle(b.x - 2, b.y - 2, b.width + 3, b.height + 3);
+                    gc.drawRectangle(b.x-1, b.y-1, b.width+2, b.height+2);
+                }
+            }
+        }
+    }
+
+
+public WidgetFactory() {
+ 	fDisplay = Display.getDefault();
+    initialize();
+}
+
+public Button createButton(Composite parent, String text, int style) {
+    int flatStyle = BORDER_STYLE == SWT.BORDER ? SWT.NULL : SWT.FLAT;
+    //int flatStyle = SWT.NULL;
+    Button button = new Button(parent, style | flatStyle);
+    button.setBackground(backgroundColor);
+    button.setForeground(foregroundColor);
+    if (text!=null) button.setText(text);
+    return button;
+}
+public Composite createComposite(Composite parent) {
+    return createComposite(parent, SWT.NULL);
+}
+public Composite createComposite(Composite parent, int style) {
+    Composite composite = new Composite(parent, style);
+    composite.setBackground(backgroundColor);
+    return composite;
+}
+public Composite createCompositeSeparator(Composite parent) {
+    Composite composite = new Composite(parent, SWT.NONE);
+    composite.setBackground(getColor(COLOR_COMPOSITE_SEPARATOR));
+    return composite;
+}
+public Group createGroup(Composite parent, String text) {
+	Group group = new Group(parent, SWT.SHADOW_NONE);
+	group.setText(text);
+    group.setBackground(backgroundColor);
+    group.setForeground(foregroundColor);
+	return group;
+}
+public Label createHeadingLabel(Composite parent, String text, Color bg) {
+    return createHeadingLabel(parent, text, bg, SWT.NONE);
+}
+public Label createHeadingLabel(Composite parent, String text, Color bg, int style) {
+    Label label = new Label(parent, style);
+    label.setText(text);
+    label.setBackground(backgroundColor);
+    label.setForeground(foregroundColor);
+    label.setFont(JFaceResources.getFontRegistry().get(JFaceResources.BANNER_FONT));
+    return label;
+}
+public Label createHyperlinkLabel(Composite parent, String text, IHyperlinkListener listener) {
+    return createHyperlinkLabel(parent, text, listener, SWT.NULL);
+}
+public Label createHyperlinkLabel(Composite parent, String text, IHyperlinkListener listener, int style) {
+    Label label = createLabel(parent, text, style);
+    turnIntoHyperlink(label, listener);
+    return label;
+}
+public Label createLabel(Composite parent, String text) {
+    return createLabel(parent, text, SWT.NONE);
+}
+public Label createLabel(Composite parent, String text, int style) {
+    Label label = new Label(parent, style);
+    if (text!=null) label.setText(text);
+    label.setBackground(backgroundColor);
+    label.setForeground(foregroundColor);
+    return label;
+}
+public Label createSeparator(Composite parent, int style) {
+    Label label = new Label(parent, SWT.SEPARATOR | style);
+    label.setBackground(backgroundColor);
+    label.setForeground(borderColor);
+    return label;
+}
+public ScrolledComposite createScrolledComposite (Composite parent) {
+	ScrolledComposite scrolledcomposite = new ScrolledComposite(parent, SWT.V_SCROLL | SWT.H_SCROLL);
+    scrolledcomposite.setBackground(backgroundColor);
+    scrolledcomposite.setForeground(foregroundColor);
+    return scrolledcomposite;
+}
+public Table createTable(Composite parent, int style) {
+    Table table = new Table(parent, BORDER_STYLE | style);
+    table.setBackground(backgroundColor);
+    table.setForeground(foregroundColor);
+    //hookDeleteListener(table);
+    return table;
+}
+public Text createText(Composite parent, String value) {
+    return createText(parent, value, BORDER_STYLE | SWT.SINGLE);
+}
+public Text createText(Composite parent, String value, int style) {
+    Text text = new Text(parent, style);
+    text.setText(value);
+    text.setBackground(clientAreaColor);
+    text.setForeground(foregroundColor);
+    if ((style & SWT.READ_ONLY) != 0)
+    	text.setForeground(fReadOnlyColor);
+    return text;
+}
+public Tree createTree(Composite parent, int style) {
+    Tree tree = new Tree(parent, BORDER_STYLE | style);
+    tree.setBackground(backgroundColor);
+    tree.setForeground(foregroundColor);
+    //hookDeleteListener(tree);
+    return tree;
+}
+/* 
+private void deleteKeyPressed(Widget widget) {
+    if (!(widget instanceof Control)) return;
+    Control control = (Control)widget;
+    for (Control parent = control.getParent();
+        parent != null;
+        parent = parent.getParent()) {
+        if (parent.getData() instanceof FormSection) {
+            FormSection section = (FormSection) parent.getData();
+            section.doGlobalAction(IWorkbenchActionConstants.DELETE);
+            break;
+        }
+    }
+}
+*/
+public ViewForm createViewForm(Composite parent) {
+	ViewForm viewForm = new ViewForm(parent, SWT.NULL);
+    viewForm.setBackground(clientAreaColor);
+    viewForm.setForeground(foregroundColor);
+    return viewForm;
+}
+public void dispose() {
+    Enumeration colors= colorRegistry.elements();
+    while (colors.hasMoreElements()) {
+        Color c = (Color)colors.nextElement();
+        c.dispose();
+    }
+    hyperlinkHandler.dispose();
+    colorRegistry=null;
+    if (fBanner != null)
+    {
+      fBanner.dispose();
+      fBanner = null;
+    }
+}
+public Color getBackgroundColor() {
+    return backgroundColor;
+}
+public Image getBanner() {
+  if (fBanner == null)
+  {
+    try {
+      fBanner = (ImageDescriptor.createFromURL(new URL((WSDLEditorPlugin.getInstance().getDescriptor().getInstallURL()), "icons\form_banner.gif"))).createImage();
+      System.out.println("Created Image!!!! ");
+    } catch (MalformedURLException e) {
+      System.out.println("Exception!!!! " + e);
+    }
+  }
+  return fBanner;
+}
+public Color getBorderColor() {
+    return borderColor;
+}
+public Cursor getBusyCursor() {
+    return hyperlinkHandler.getBusyCursor();
+}
+public Color getClientAreaColor() {
+    return clientAreaColor;
+}
+public Color getColor(String key) {
+    return (Color)colorRegistry.get(key);
+}
+public Color getForegroundColor() {
+    return foregroundColor;
+}
+public Color getHyperlinkColor() {
+    return hyperlinkHandler.getForeground();
+}
+public Cursor getHyperlinkCursor() {
+    return hyperlinkHandler.getHyperlinkCursor();
+}
+public Color getHyperlinkHoverColor() {
+    return hyperlinkHandler.getActiveForeground();
+}
+public int getHyperlinkUnderlineMode() {
+    return hyperlinkHandler.getHyperlinkUnderlineMode();
+}
+/*
+public void hookDeleteListener(Control control) {
+    if (deleteListener == null) {
+        deleteListener = new KeyAdapter() {
+            public void keyPressed(KeyEvent event) {
+                if (event.character == SWT.DEL && event.stateMask == 0) {
+                    deleteKeyPressed(event.widget);
+                }
+            }
+        };
+    }
+    control.addKeyListener(deleteListener);
+}
+*/
+  private void initStaticColors()
+  {
+    if (colorRegistry == null)
+    {
+      colorRegistry = new Hashtable();
+      registerColor(COLOR_BACKGROUND, 0xff, 0xfe, 0xf9);
+      registerColor(COLOR_BORDER, 195, 191, 179);
+      registerColor(COLOR_COMPOSITE_SEPARATOR, 152, 170, 203);
+      registerColor(DEFAULT_HEADER_COLOR, 0x48, 0x70, 0x98);
+      registerColor(COLOR_HYPERLINK, 0, 0, 153);
+    }
+  }
+
+private void initialize() {
+    clientAreaColor = fDisplay.getSystemColor(SWT.COLOR_LIST_BACKGROUND);
+    fReadOnlyColor = fDisplay.getSystemColor(SWT.COLOR_DARK_GRAY);
+    initStaticColors();
+    backgroundColor = clientAreaColor;
+    borderColor = getColor(COLOR_BORDER);
+    foregroundColor = fDisplay.getSystemColor(SWT.COLOR_LIST_FOREGROUND);
+    hyperlinkHandler = new HyperlinkHandler();
+    hyperlinkHandler.setForeground(getColor(COLOR_HYPERLINK));
+    hyperlinkHandler.setBackground(backgroundColor);
+}
+public void paintBordersFor(Composite parent) {
+    if (BORDER_STYLE == SWT.BORDER) return;
+    if (borderPainter==null) borderPainter = new BorderPainter();
+    parent.addPaintListener(borderPainter);
+}
+public Color registerColor(String key, int r, int g, int b) {
+    Color c = new Color(fDisplay, r, g, b);
+    colorRegistry.put(key, c);
+    return c;
+}
+
+public void setClientAreaColor(Color color)
+{
+  clientAreaColor = color;
+  backgroundColor = clientAreaColor;
+}
+
+public void setHyperlinkColor(Color color) {
+    hyperlinkHandler.setForeground(color);
+}
+public void setHyperlinkHoverColor(org.eclipse.swt.graphics.Color hoverColor) {
+    hyperlinkHandler.setActiveForeground(hoverColor);
+}
+public void setHyperlinkUnderlineMode(int newHyperlinkUnderlineMode) {
+    hyperlinkHandler.setHyperlinkUnderlineMode(newHyperlinkUnderlineMode);
+}
+public void turnIntoHyperlink(Control control, IHyperlinkListener listener) {
+    hyperlinkHandler.registerHyperlink(control, listener);
+}
+
+}
+
+
+
+
+
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/ui/BaseDesignWindow.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/ui/BaseDesignWindow.java
new file mode 100644
index 0000000..4d30cf1
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/ui/BaseDesignWindow.java
@@ -0,0 +1,233 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.util.ui;
+
+import org.eclipse.jface.action.IStatusLineManager;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.ScrolledComposite;
+import org.eclipse.swt.graphics.Point;
+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.ui.IEditorPart;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.part.EditorActionBarContributor;
+import org.eclipse.wst.common.ui.internal.UIPlugin;
+
+abstract public class BaseDesignWindow extends Viewer
+{
+  protected ScrolledComposite mainUIComponent;
+  protected Composite controlsContainer;
+
+  protected boolean pageComplete = true;
+  protected Object input;
+
+  private IStatusLineManager statusLine;
+
+  public BaseDesignWindow(IStatusLineManager statusLine)
+  {
+    this.statusLine = statusLine;
+  }
+
+  protected void setStatusLine(IStatusLineManager statusLine)
+  {
+    this.statusLine = statusLine;
+  }
+
+  protected IStatusLineManager getStatusLine()
+  {
+    if (statusLine == null)
+    {
+      //statusLine = WorkbenchUtility.getStatusLineManager();
+
+      IWorkbench workbench = UIPlugin.getDefault().getWorkbench();
+      IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
+      IEditorPart editorPart = workbenchWindow.getActivePage().getActiveEditor();
+      
+      try
+      {                       
+        EditorActionBarContributor contributor = (EditorActionBarContributor)editorPart.getEditorSite().getActionBarContributor();
+        statusLine = contributor.getActionBars().getStatusLineManager();
+      }
+      catch (Exception e)
+      {
+      }  
+    }
+    return statusLine;
+  }
+
+  public Object getInput()
+  {
+    return input;
+  }
+
+  public void setInput(Object input)
+  {
+    if (this.input != input) 
+    {
+      setErrorMessage("");
+    }
+    
+    this.input = input;
+  }
+
+  public ISelection getSelection()
+  {
+    return null;
+  }
+
+  public void setSelection(ISelection selection, boolean reveal)
+  {
+  }
+
+  public void refresh()
+  {
+  }
+
+  /**
+   * A design view that has a main area for controls, and a message line at
+   * the bottom
+   */
+  protected Control createDesignPane(Composite parent, int numColumns)
+  {
+    // Create the main UI container
+    mainUIComponent= new ScrolledComposite(parent, SWT.V_SCROLL | SWT.H_SCROLL)
+    {
+      public void setVisible(boolean visible)
+      {
+        super.setVisible(visible);
+        if (visible == false && !currentMessage.equals(""))
+        {
+          showMessageInStatusLine(visible == true);
+        }
+      }
+    };
+
+//    mainUIComponent.setLayoutData(new GridData(GridData.FILL_BOTH));
+
+    controlsContainer = new Composite(mainUIComponent, SWT.NONE);
+
+    GridLayout layout = new GridLayout();
+    layout.numColumns = numColumns;
+    controlsContainer.setLayout(layout);
+
+    GridData data = new GridData();
+    data.verticalAlignment = GridData.FILL;
+    data.horizontalAlignment = GridData.FILL;
+    controlsContainer.setLayoutData(data);
+    
+    // TODO: Remove above line and uncomment the following two when XSDEditor views
+    // are rewritten.  Also refer do related TODO in DTDEditor's BaseWindow.
+    // FlatViewUtility flatViewUtility = new FlatViewUtility();
+    // controlsContainer = flatViewUtility.createComposite(mainUIComponent, numColumns);
+
+    mainUIComponent.setContent(controlsContainer);
+
+    return mainUIComponent;
+  }
+
+  public void setScrollComposite()
+  {
+    Point p = controlsContainer.computeSize(SWT.DEFAULT, SWT.DEFAULT);
+    mainUIComponent.setExpandHorizontal(true);
+    mainUIComponent.setExpandVertical(true);
+    mainUIComponent.setMinSize(p);
+  }
+
+  public Composite getControlsContainer()
+  {
+    return controlsContainer;
+  }
+
+  /**
+   * Sets the complete state of the page.
+   * If false, then client is not allowed to move to next page
+   */
+  public void setPageComplete(boolean complete)
+  {
+    pageComplete= complete;
+  }
+
+  /**
+   * Returns whether the page is complete or not.
+   */
+  public boolean isPageComplete()
+  {
+    return pageComplete;
+  }
+
+  private String currentMessage = "";
+  protected void showMessageInStatusLine(boolean show)
+  {
+    if (getStatusLine() == null)
+      return;
+    
+    if (show) 
+    {
+      getStatusLine().setErrorMessage(currentMessage);
+    }
+    else 
+    {
+      getStatusLine().setErrorMessage("");
+    }
+    
+    
+    getStatusLine().update(false);
+  }
+  
+  /**
+   * Sets the message line
+   */
+  public void setMessage(String message)
+  {
+    currentMessage = message;
+    if (getStatusLine() != null)
+    {
+      getStatusLine().setErrorMessage(currentMessage);
+      getStatusLine().update(false);
+    }
+  }
+
+  /**
+   * Clears a message.
+   */
+  public void clearMessage()
+  {
+    currentMessage = "";
+    if (getStatusLine() != null)
+    {
+      getStatusLine().setErrorMessage(currentMessage);
+      getStatusLine().update(false);
+    }
+  }
+
+  public void setErrorMessage(String message)
+  {
+    setMessage(message);
+    setPageComplete(false);
+  }
+
+  public void clearErrorMessage()
+  {
+    clearMessage();
+    setPageComplete(true);
+  }
+
+  public String getErrorMessage()
+  {
+    return currentMessage;
+  }
+
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/ui/BorderPainter.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/ui/BorderPainter.java
new file mode 100644
index 0000000..47bdeb5
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/ui/BorderPainter.java
@@ -0,0 +1,93 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.util.ui;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CCombo;
+import org.eclipse.swt.custom.TableTree;
+import org.eclipse.swt.events.PaintEvent;
+import org.eclipse.swt.events.PaintListener;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Canvas;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.List;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.swt.widgets.Tree;
+
+public class BorderPainter implements PaintListener
+{
+  Color backgroundColor, foregroundColor;
+  static Color borderColor;
+
+  public BorderPainter()
+  {
+    Display display = Display.getCurrent();
+    if (borderColor == null)
+    {
+      borderColor = new Color(Display.getCurrent(), 195, 191, 179);  	
+    }
+    backgroundColor = display.getSystemColor(SWT.COLOR_LIST_BACKGROUND);
+    foregroundColor = display.getSystemColor(SWT.COLOR_LIST_FOREGROUND);	
+  }
+	
+  public void paintControl(PaintEvent event)
+  {
+    Composite composite = (Composite) event.widget;
+    Control[] children = composite.getChildren();
+    for (int i = 0; i < children.length; i++)
+    {
+      Control c = children[i];
+      if (c.isEnabled()==false)
+      {
+        if (c instanceof Text
+          || c instanceof Canvas
+          || c instanceof List
+          || c instanceof CCombo)
+        {
+          Rectangle b = c.getBounds();
+          GC gc = event.gc;
+          gc.setForeground(backgroundColor);
+//        gc.drawRectangle(b.x - 1, b.y - 1, b.width + 1, b.height + 1);
+          gc.setForeground(borderColor);
+          gc.drawRectangle(b.x - 2, b.y - 2, b.width + 3, b.height + 3);
+        }
+        continue;
+      }
+      if (c instanceof Text
+//        || c instanceof Canvas
+        || c instanceof List
+        || c instanceof CCombo)
+      {
+        Rectangle b = c.getBounds();
+        GC gc = event.gc;
+        gc.setForeground(backgroundColor);
+        gc.drawRectangle(b.x - 1, b.y - 1, b.width + 1, b.height + 1);
+        gc.setForeground(foregroundColor);
+        gc.drawRectangle(b.x - 2, b.y - 2, b.width + 3, b.height + 3);
+      }
+      else if (c instanceof Table
+        || c instanceof Tree
+        || c instanceof TableTree) {
+        Rectangle b = c.getBounds();
+        GC gc = event.gc;
+        gc.setForeground(foregroundColor);
+        //gc.drawRectangle(b.x - 2, b.y - 2, b.width + 3, b.height + 3);
+        gc.drawRectangle(b.x-1, b.y-1, b.width+2, b.height+2);
+      }
+    }
+  }
+}
+
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/ui/FlatViewUtility.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/ui/FlatViewUtility.java
new file mode 100644
index 0000000..f0b9fb5
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/util/ui/FlatViewUtility.java
@@ -0,0 +1,902 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.util.ui;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.resource.JFaceResources;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CCombo;
+import org.eclipse.swt.custom.SashForm;
+import org.eclipse.swt.custom.ScrolledComposite;
+import org.eclipse.swt.events.KeyAdapter;
+import org.eclipse.swt.events.KeyEvent;
+import org.eclipse.swt.events.PaintEvent;
+import org.eclipse.swt.events.PaintListener;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.FontMetrics;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
+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.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Layout;
+import org.eclipse.swt.widgets.List;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.ui.part.PageBook;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.eclipse.wst.wsdl.ui.internal.util.flatui.FlatPageHeader;
+import org.eclipse.wst.wsdl.ui.internal.util.flatui.WidgetFactory;
+
+public class FlatViewUtility implements PaintListener
+{
+  Color backgroundColor, foregroundColor;
+  Color comboBackgroundColor, comboDisabledColor;
+  static Color borderColor;
+
+  // Added for createFlatPageHeader()
+  private boolean headingVisible=true;
+  private Image headingImage = null;
+  private Composite headerControl = null;
+  private int TITLE_VMARGIN = 5;
+
+  private KeyboardHandler keyboardHandler;
+
+  public static final int H_SCROLL_INCREMENT = 5;
+  public static final int V_SCROLL_INCREMENT = 64;
+  
+  // this defaults to the flat style, but users can change it if they wish
+  private int flatStyle = SWT.FLAT;
+  private int border = 0;
+
+  public FlatViewUtility()
+  { 
+    Display display = Display.getCurrent();
+    if (borderColor == null)
+    {
+      borderColor = new Color(Display.getCurrent(), 195, 191, 179);  	
+    }
+    backgroundColor = display.getSystemColor(SWT.COLOR_LIST_BACKGROUND);
+    foregroundColor = display.getSystemColor(SWT.COLOR_LIST_FOREGROUND);
+    comboBackgroundColor = display.getSystemColor(SWT.COLOR_LIST_BACKGROUND);
+    comboDisabledColor = display.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND);
+    keyboardHandler = new KeyboardHandler();
+  }
+  
+  public FlatViewUtility(boolean isFlat)
+  {
+    this();
+    
+    setFlat(isFlat);
+  }
+  
+  public void setFlat(boolean flat)
+  {
+    Display display = Display.getCurrent();
+    if (flat)
+    {
+      flatStyle = SWT.FLAT;
+      backgroundColor = display.getSystemColor(SWT.COLOR_LIST_BACKGROUND);
+      foregroundColor = display.getSystemColor(SWT.COLOR_LIST_FOREGROUND);  
+    }
+    else
+    {
+      flatStyle = 0;
+      border = SWT.BORDER;
+      backgroundColor = display.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND);
+      foregroundColor = display.getSystemColor(SWT.COLOR_WIDGET_FOREGROUND);
+    }
+  }
+  
+  public void setColor(Control c)
+  {
+    if (flatStyle == SWT.FLAT)
+    {
+      c.setBackground(backgroundColor);
+    }
+  }
+  
+  public void paintControl(PaintEvent event)
+  {
+    Control c = (Control) event.widget;
+    if (c.isEnabled()==false)
+    {
+      if (c instanceof Text
+//      || c instanceof Canvas
+          || c instanceof List
+          || c instanceof CCombo)
+      {
+        GC gc = event.gc;
+        gc.setForeground(backgroundColor);
+//      gc.drawRectangle(b.x - 1, b.y - 1, b.width + 1, b.height + 1);
+        gc.setForeground(borderColor);
+//        gc.drawRectangle(b.x - 2, b.y - 2, b.width + 3, b.height + 3);
+      }
+    }              
+
+    // Defect 252891 : this causes some major problems on Linux GTK
+    // This looks rather dodgy in any case since an cyclic painting behaviour
+    // is likely occuring here
+    //if (c.getParent() != null)
+    //{
+    //  c.getParent().redraw();
+    //}
+  }
+
+  private static Font font;
+
+  public static Font getFont()
+  {
+    if (font == null)
+    {
+      font = new Font(Display.getCurrent(), "ms sans serif", 8, SWT.NORMAL);
+    }
+    return font;
+  }
+
+  public static void setFont(Font newFont)
+  {
+    font = newFont;
+  }
+
+  public static void setComposite(Composite comp)
+  {
+    // deprecated.  Remove later
+  }
+
+  public Composite createSimpleComposite(Composite parent, int style)
+  {
+    Composite composite = new Composite(parent, style | flatStyle);
+    composite.setFont(getFont());
+    setColor(composite);
+
+    GridLayout layout = new GridLayout();
+    composite.setLayout(layout);
+    return composite;
+  }
+
+  public Composite createComposite(Composite parent, int numColumns)
+  {
+    Composite composite = new Composite(parent, SWT.NONE | flatStyle);
+    composite.setFont(getFont());
+    GridLayout layout = new GridLayout();
+    layout.numColumns = numColumns;
+    composite.setLayout(layout);
+
+    GridData data = new GridData();
+    data.verticalAlignment = GridData.FILL;
+    data.horizontalAlignment = GridData.FILL;
+    composite.setLayoutData(data);
+    setColor(composite);
+    if (flatStyle == SWT.FLAT)
+    {
+      composite.addPaintListener(new BorderPainter());
+    }
+    return composite;
+  }
+
+  public Composite createComposite(Composite parent, int numColumns, boolean horizontalFill)
+  {
+    if (!horizontalFill)
+    {
+      createComposite(parent, numColumns);
+    }
+
+    Composite composite = new Composite(parent, SWT.NONE | flatStyle);
+    composite.setFont(getFont());
+    GridLayout layout = new GridLayout();
+    layout.numColumns = numColumns;
+    composite.setLayout(layout);
+
+    GridData data = new GridData();
+    data.verticalAlignment = GridData.FILL;
+    data.horizontalAlignment = GridData.FILL;
+    data.grabExcessHorizontalSpace = true;
+    composite.setLayoutData(data);
+    setColor(composite);
+    if (flatStyle == SWT.FLAT)
+    {
+      composite.addPaintListener(new BorderPainter());
+    }
+    return composite;
+  }
+
+  public Composite createComposite(Composite parent, int numColumns, boolean horizontalFill, boolean verticalFill)
+  {
+    if (!horizontalFill && !verticalFill)
+    {
+      createComposite(parent, numColumns);
+    }
+
+    Composite composite = new Composite(parent, SWT.NONE | flatStyle);
+    composite.setFont(getFont());
+
+    GridLayout layout = new GridLayout();
+    layout.numColumns = numColumns;
+    composite.setLayout(layout);
+
+    GridData data = new GridData();
+    data.verticalAlignment = GridData.FILL;
+    data.horizontalAlignment = GridData.FILL;
+    data.grabExcessHorizontalSpace = true;
+    data.grabExcessVerticalSpace = true;
+    composite.setLayoutData(data);
+    setColor(composite);
+    if (flatStyle == SWT.FLAT)
+    {
+      composite.addPaintListener(new BorderPainter());
+    }
+    return composite;
+  }
+
+  public SashForm createSashForm(Composite parent, int style)
+  {
+    SashForm sashForm = new SashForm(parent, style | flatStyle);
+    setColor(sashForm);
+    return sashForm;
+  }
+
+  public PageBook createPageBook(Composite parent, int style)
+  {
+    PageBook pageBook = new PageBook(parent, style | flatStyle);
+    setColor(pageBook);
+    if (flatStyle == SWT.FLAT)
+    {
+      pageBook.addPaintListener(new BorderPainter());
+    }
+    return pageBook;
+  }
+
+  public Label createHeadingLabel(Composite parent, String text, Color bg) {
+    return createHeadingLabel(parent, text, bg, SWT.NONE);
+  }
+  public Label createHeadingLabel(Composite parent, String text, Color bg, int style) {
+    Label label = new Label(parent, style);
+    label.setText(text);
+    setColor(label);
+    if (flatStyle == SWT.FLAT)
+    {
+      label.setForeground(foregroundColor);
+    }
+    label.setFont(JFaceResources.getFontRegistry().get(JFaceResources.BANNER_FONT));
+    return label;
+  }
+
+  public Label createHorizontalFiller(Composite parent, int horizontalSpan)
+  {
+    Label label = new Label(parent, SWT.LEFT | flatStyle);
+    setColor(label);
+    GridData data = new GridData();
+    data.horizontalAlignment = GridData.FILL;
+    data.horizontalSpan = horizontalSpan;
+    label.setLayoutData(data);
+    return label;
+  }
+
+  /**
+   * Helper method for creating labels.
+   */
+  public Label createLabel(Composite parent, int style, String text)
+  {
+    Label label = new Label(parent, style | flatStyle);
+    setColor(label);
+    label.setText(text);
+
+    GridData data = new GridData();
+    data.horizontalAlignment = GridData.FILL;
+    label.setLayoutData(data);
+    return label;
+  }
+
+  public Label createLabel(Composite parent, String text)
+  {
+    Label label = new Label(parent, SWT.LEFT | flatStyle);
+    setColor(label);
+    label.setText(text);
+
+    GridData data = new GridData();
+    data.horizontalAlignment = GridData.FILL;
+    label.setLayoutData(data);
+    return label;
+  }
+
+  public Label createLabel(Composite parent, String text, int alignment)
+  {
+    Label label = new Label(parent, SWT.LEFT | flatStyle);
+    label.setText(text);
+    setColor(label);
+    GridData data = new GridData();
+    data.horizontalAlignment = GridData.FILL;
+    data.verticalAlignment = alignment;
+    label.setLayoutData(data);
+    return label;
+  }
+
+  /**
+   * Helper method for creating buttons.
+   */
+  public Button createPushButton(Composite parent, String label)
+  {
+    Button button = new Button(parent, SWT.PUSH | flatStyle);
+    button.setText(label);
+    setColor(button);
+    GridData data = new GridData();
+    data.horizontalAlignment = GridData.FILL;
+    button.setLayoutData(data);
+    button.addKeyListener(keyboardHandler);
+
+    return button;
+  }
+
+  public Table createTable(Composite parent)
+  {
+    Table table = new Table(parent, SWT.SINGLE | SWT.BORDER | flatStyle);
+    setColor(table);
+    GridData data = new GridData();
+    data.horizontalAlignment = GridData.FILL;
+    data.grabExcessHorizontalSpace = true;
+    table.setLayoutData(data);
+    return table;
+  }
+
+  /**
+   * Create radio button
+   */
+  public Button createRadioButton(Composite parent, String label)
+  {
+    Button button = new Button(parent, SWT.RADIO | flatStyle);
+    button.setText(label);
+    setColor(button);
+    GridData data = new GridData();
+    data.horizontalAlignment = GridData.FILL;
+    button.setLayoutData(data);
+    button.addKeyListener(keyboardHandler);
+
+    return button;
+  }
+
+  /**
+   * Helper method for creating check box
+   */
+  public Button createCheckBox(Composite parent, String label)
+  {
+    Button button = new Button(parent, SWT.CHECK | flatStyle);
+    button.setText(label);
+    setColor(button);
+    GridData data = new GridData();
+    data.horizontalAlignment = GridData.FILL;
+    button.setLayoutData(data);
+    return button;
+  }
+
+  public Combo createComboBox(Composite parent)
+  {
+    return createComboBox(parent, true);
+  }
+
+  public Combo createComboBox(Composite parent, boolean isReadOnly)
+  {
+    int style = isReadOnly == true ? SWT.READ_ONLY : SWT.DROP_DOWN;
+
+    Combo combo = new Combo(parent, style | flatStyle | border);
+    setColor(combo);
+    GridData data = new GridData();
+    data.horizontalAlignment = GridData.FILL;
+    data.grabExcessHorizontalSpace = true;
+    combo.setLayoutData(data);
+    return combo;
+  }
+
+  public CCombo createCComboBox(Composite parent)
+  {
+    return createCComboBox(parent, true);
+  }
+
+  public CCombo createCComboBox(Composite parent, boolean isReadOnly)
+  {
+    int style = isReadOnly == true ? SWT.READ_ONLY : SWT.DROP_DOWN;
+
+    CCombo combo = new CCombo(parent, style | flatStyle | border);
+    // setColor(combo);
+    // Always use List Background
+    combo.setBackground(comboBackgroundColor);
+
+    GridData data = new GridData();
+    data.horizontalAlignment = GridData.FILL;
+    data.verticalAlignment = GridData.FILL;
+    data.grabExcessHorizontalSpace = true;
+    combo.setLayoutData(data);
+    if (flatStyle == SWT.FLAT)
+    {
+      combo.addPaintListener(this);
+    }
+    else                        
+    {                           
+      /*   
+       // Defect 252891 : I'm not sure if this code will also cause problems on Linux GTK
+       // But since its potentially cyclic ... I'm commenting it out for now
+       combo.addPaintListener(new PaintListener()
+       {
+       public void paintControl(PaintEvent event)
+       {
+       Control c = (Control) event.widget;
+       if (c.isEnabled()==true)
+       {
+       c.setBackground(comboBackgroundColor);
+       }
+       else
+       {
+       c.setBackground(comboDisabledColor); 
+       }
+       final Control con = c;
+       Runnable delayedUpdate = new Runnable()
+       {
+       public void run()
+       {
+       if (con != null)
+       {
+       if (!con.isDisposed())  // it gets disposed
+       {
+       con.redraw();
+       }
+       }
+       }
+       };
+       Display.getCurrent().asyncExec(delayedUpdate);
+       }
+       });*/
+    }
+    return combo;
+  }
+
+  public List createListBox(Composite parent, int width, boolean isMultiSelect)
+  {
+    int style = isMultiSelect ? SWT.MULTI : SWT.SINGLE;
+    List list = new List(parent, style  | flatStyle | border);
+    setColor(list);
+    GridData data = new GridData();
+    data.horizontalAlignment = GridData.FILL;
+    data.grabExcessHorizontalSpace = true;
+    data.widthHint = width;
+    list.setLayoutData(data);
+    if (flatStyle == SWT.FLAT)
+    {
+      list.addPaintListener(this);
+    }
+    return list;
+  }
+
+  public List createListBox(Composite parent, int width, boolean isMultiSelect, boolean verticalFill)
+  {
+    int style = isMultiSelect ? SWT.MULTI : SWT.SINGLE;
+    List list = new List(parent, style  | flatStyle | border);
+    setColor(list);
+    GridData data = new GridData();
+    data.horizontalAlignment = GridData.FILL;
+    data.verticalAlignment = GridData.FILL;
+    data.grabExcessHorizontalSpace = true;
+    data.grabExcessVerticalSpace = verticalFill;
+    data.widthHint = width;
+    list.setLayoutData(data);
+    if (flatStyle == SWT.FLAT)
+    {
+      list.addPaintListener(this);
+    }
+    return list;
+  }
+
+  public List createListBox(Composite parent, int style)
+  {
+    List list = new List(parent, style | flatStyle | border);
+    setColor(list);
+    GridData data = new GridData();
+    data.horizontalAlignment = GridData.FILL;
+    data.verticalAlignment = GridData.FILL;
+    data.grabExcessHorizontalSpace = true;
+    data.grabExcessVerticalSpace = true;
+    list.setLayoutData(data);
+    if (flatStyle == SWT.FLAT)
+    {
+      list.addPaintListener(this);
+    }
+    return list;
+  }
+
+  public Text createTextField(Composite parent)
+  {
+    Text text = new Text(parent, SWT.SINGLE | flatStyle | border);
+    setColor(text);
+    GridData data = new GridData();
+    data.horizontalAlignment = GridData.FILL;
+    data.verticalAlignment = GridData.FILL;
+    data.grabExcessHorizontalSpace = true;
+    text.setLayoutData(data);
+    if (flatStyle == SWT.FLAT)
+    {
+      text.addPaintListener(this);
+    }
+    text.addKeyListener(keyboardHandler);
+    return text;
+  }
+
+  public Text createTextField(Composite parent, int width)
+  {
+    Text text = new Text(parent, SWT.SINGLE | flatStyle | border);
+    setColor(text);
+    GridData data = new GridData();
+    data.horizontalAlignment = GridData.FILL;
+    data.verticalAlignment = GridData.FILL;
+    data.grabExcessHorizontalSpace = true;
+    data.widthHint = width;
+    text.setLayoutData(data);
+    if (flatStyle == SWT.FLAT)
+    {
+      text.addPaintListener(this);
+    }
+    text.addKeyListener(keyboardHandler);
+    return text;
+  }
+
+  public Text createTextField(Composite parent, int width, int style)
+  {
+    Text text = new Text(parent, style | SWT.SINGLE | flatStyle | border);
+    setColor(text);
+    GridData data = new GridData();
+    data.horizontalAlignment = GridData.FILL;
+    data.verticalAlignment = GridData.FILL;
+    data.grabExcessHorizontalSpace = true;
+    data.widthHint = width;
+    text.setLayoutData(data);
+    if (flatStyle == SWT.FLAT)
+    {
+      text.addPaintListener(this);
+    }
+    return text;
+  }
+
+  /**
+   * <code>createWrappedMultiTextField</code> creates a wrapped multitext field
+   *
+   * @param parent a <code>Composite</code> value
+   * @param width an <code>int</code> value
+   * @param numLines an <code>int</code> value representing number of characters in height
+   * @param verticalFill a <code>boolean</code> value
+   * @return a <code>Text</code> value
+   */
+  public Text createWrappedMultiTextField(Composite parent, int width, int numLines, boolean verticalFill)
+  {
+    Text text = new Text(parent, SWT.MULTI | SWT.WRAP | SWT.V_SCROLL | flatStyle | border);
+    setColor(text);
+    GridData data = new GridData();
+    data.horizontalAlignment = GridData.FILL;
+    data.grabExcessHorizontalSpace = true;
+    if (verticalFill)
+    {
+      data.verticalAlignment = GridData.FILL;
+      data.grabExcessVerticalSpace = true;
+    }
+    data.widthHint = width;
+    FontData[] fontData = getFont().getFontData();
+    // hack for now where on Windows, only 1 fontdata exists
+    data.heightHint = numLines * fontData[0].getHeight();
+    text.setLayoutData(data);
+    if (flatStyle == SWT.FLAT)
+    {
+      text.addPaintListener(this);
+    }
+    return text;
+  }
+
+  public Text createMultiTextField(Composite parent, int width, int height, boolean verticalFill)
+  {
+    Text text = new Text(parent, SWT.MULTI |  SWT.H_SCROLL | SWT.V_SCROLL | flatStyle | border);
+    setColor(text);
+    GridData data = new GridData();
+    data.horizontalAlignment = GridData.FILL;
+    data.grabExcessHorizontalSpace = true;
+    if (verticalFill)
+    {
+      data.verticalAlignment = GridData.FILL;
+      data.grabExcessVerticalSpace = true;
+    }
+    data.widthHint = width;
+    data.heightHint = height;
+    text.setLayoutData(data);
+    if (flatStyle == SWT.FLAT)
+    {
+      text.addPaintListener(this);
+    }
+    return text;
+  }
+
+  public Text createMultiTextField(Composite parent, boolean verticalFill)
+  {
+    Text text = new Text(parent, SWT.MULTI |  SWT.H_SCROLL | SWT.V_SCROLL | flatStyle | border);
+    setColor(text);
+    GridData data = new GridData();
+    data.horizontalAlignment = GridData.FILL;
+    data.grabExcessHorizontalSpace = true;
+    if (verticalFill)
+    {
+      data.verticalAlignment = GridData.FILL;
+      data.grabExcessVerticalSpace = true;
+    }
+    text.setLayoutData(data);
+    if (flatStyle == SWT.FLAT)
+    {
+      text.addPaintListener(this);
+    }
+    return text;
+  }
+
+  public Group createGroup(Composite parent, int numColumns, String text, boolean verticalFill)
+  {
+    Group group = new Group(parent, SWT.SHADOW_ETCHED_IN  | flatStyle);
+    group.setText(text);
+    setColor(group);
+
+    GridData data = new GridData();
+    data.horizontalAlignment = GridData.FILL;
+    data.grabExcessHorizontalSpace = true;
+    if (verticalFill)
+    {
+      data.verticalAlignment = GridData.FILL;
+      data.grabExcessVerticalSpace = true;
+    }
+    group.setLayoutData(data);
+
+    GridLayout layout = new GridLayout();
+    layout.numColumns = numColumns;
+    group.setLayout(layout);
+    if (flatStyle == SWT.FLAT)
+    {
+      group.addPaintListener(new BorderPainter());
+    }
+    return group;
+  }
+
+  public Group createGroup(Composite parent, int numColumns, String text, boolean verticalFill, int alignment)
+  {
+    Group group = new Group(parent, SWT.SHADOW_ETCHED_IN | flatStyle);
+    group.setText(text);
+    setColor(group);
+
+    GridData data = new GridData();
+    data.horizontalAlignment = GridData.FILL;
+    data.grabExcessHorizontalSpace = true;
+    data.verticalAlignment = alignment;
+    if (verticalFill)
+    {
+      data.verticalAlignment = GridData.FILL;
+      data.grabExcessVerticalSpace = true;
+    }
+    group.setLayoutData(data);
+
+    GridLayout layout = new GridLayout();
+    layout.numColumns = numColumns;
+    group.setLayout(layout);
+    if (flatStyle == SWT.FLAT)
+    {
+      group.addPaintListener(new BorderPainter());
+    }
+    return group;
+  }
+
+  public Label createVerticalFiller(Composite parent, int verticalSpan)
+  {
+    Label label = new Label(parent, SWT.LEFT | flatStyle);
+    label.setFont(getFont());
+    setColor(label);
+    GridData data = new GridData();
+    data.verticalAlignment = GridData.FILL;
+    data.verticalSpan = verticalSpan;
+    label.setLayoutData(data);
+
+    return label;
+  }
+
+  //
+  // FlatPageHeader
+  //
+
+  // This will use the default background image.
+  public Composite createFlatPageHeader
+  (Composite parent,
+      String title)
+  {
+    Image bgImage = createDefaultImage();
+    return createFlatPageHeader(parent,bgImage,title);
+  }
+
+  // Provide your own background image.
+  public Composite createFlatPageHeader
+  (Composite parent,
+      Image bgImage,
+      String title)
+  {
+    FlatPageHeader header = new FlatPageHeader(parent,SWT.NONE);
+    header.setLayout(new PageLayout());
+    header.setBackgroundImage(bgImage);
+    header.setText(title);
+    WidgetFactory factory = new WidgetFactory();
+    Composite formParent = factory.createComposite(header);
+    //Composite formParent = createComposite(header,1);
+    createPageContent(formParent);
+    headerControl = header; // this is used in getTitleHeight()
+    return formParent;
+  }
+
+  public void updateFlatPageHeaderTitle(String title)
+  {
+    ((FlatPageHeader)headerControl).setText(title);
+  }
+
+  private void createPageContent(Composite parent) 
+  {
+    GridLayout layout = new GridLayout();
+    layout.numColumns = 1;
+    parent.setLayout(layout);
+    parent.setLayoutData(new GridData(GridData.FILL_BOTH));
+  }
+
+  class PageLayout extends Layout 
+  {
+    protected Point computeSize(Composite composite, int wHint, int hHint, boolean flushCache) 
+    {
+      if (wHint != SWT.DEFAULT && hHint != SWT.DEFAULT)
+        return new Point(wHint, hHint);
+
+      Control client = composite.getChildren()[0];
+      Point csize = client.computeSize(SWT.DEFAULT, SWT.DEFAULT, flushCache);
+      if (headingVisible) csize.y += getTitleHeight();
+      
+      return csize;
+    }
+    
+    protected void layout(Composite composite, boolean flushCache) 
+    {
+      Rectangle clientArea = composite.getClientArea();
+      Control client = composite.getChildren()[0];
+      int theight = headingVisible ? getTitleHeight() : 0;
+      client.setBounds(clientArea.x, clientArea.y + theight, clientArea.width, clientArea.height - theight);
+    }
+  }
+
+  private int getTitleHeight() 
+  {
+    int imageHeight = 0;
+    // Note - Find out why headingImage is always null.
+    if (headingImage != null && SWT.getPlatform().equals("motif") == false) 
+      imageHeight = headingImage.getBounds().height;
+
+    GC gc = new GC(headerControl);
+    gc.setFont(JFaceResources.getHeaderFont());
+    FontMetrics fm = gc.getFontMetrics();
+    int fontHeight = fm.getHeight();
+    gc.dispose();
+
+    int height = fontHeight + TITLE_VMARGIN + TITLE_VMARGIN;
+    return Math.max(height,imageHeight);
+  }
+
+
+  private Image createDefaultImage()
+  {
+    return ImageDescriptor.createFromFile
+    (WSDLEditorPlugin.class,
+        "icons/page_banner.gif").createImage();
+  }
+  /**
+   * Returns the backgroundColor.
+   * @return Color
+   */
+  public Color getBackgroundColor()
+  {
+    return backgroundColor;
+  }
+  
+  public class KeyboardHandler extends KeyAdapter
+  {
+    public void keyPressed(KeyEvent e)
+    {
+      Widget w = e.widget;
+      if (w instanceof Control)
+      {
+        processKey(e.keyCode, (Control) w);
+      }
+    }
+
+    private void scrollVertical(ScrolledComposite scomp, boolean up)
+    {
+      scroll(scomp, 0, up ? -V_SCROLL_INCREMENT : V_SCROLL_INCREMENT);
+    }
+
+    private void scrollHorizontal(ScrolledComposite scomp, boolean left)
+    {
+      scroll(scomp, left ? -H_SCROLL_INCREMENT : H_SCROLL_INCREMENT, 0);
+    }
+
+    private void scrollPage(ScrolledComposite scomp, boolean up)
+    {
+      Rectangle clientArea = scomp.getClientArea();
+      int increment = up ? -clientArea.height : clientArea.height;
+      scroll(scomp, 0, increment);
+    }
+
+    private void scroll(ScrolledComposite scomp, int xoffset, int yoffset)
+    {
+      Point origin = scomp.getOrigin();
+      Point contentSize = scomp.getContent().getSize();
+      int xorigin = origin.x + xoffset;
+      int yorigin = origin.y + yoffset;
+      xorigin = Math.max(xorigin, 0);
+      xorigin = Math.min(xorigin, contentSize.x - 1);
+      yorigin = Math.max(yorigin, 0);
+      yorigin = Math.min(yorigin, contentSize.y - 1);
+      scomp.setOrigin(xorigin, yorigin);
+    }
+    
+    protected ScrolledComposite getScrolledComposite(Control c)
+    {
+      Composite parent = c.getParent();
+      
+      while (parent != null)
+      {
+        if (parent instanceof ScrolledComposite)
+        {
+          return (ScrolledComposite) parent;
+        }
+        parent = parent.getParent();
+      }
+      return null;
+    }
+    
+    protected void processKey(int keyCode, Control c)
+    {
+      ScrolledComposite scomp = getScrolledComposite(c);
+      if (scomp != null)
+      {
+        switch (keyCode)
+        {
+        case SWT.ARROW_DOWN :
+          scrollVertical(scomp, false);
+          break;
+        case SWT.ARROW_UP :
+          scrollVertical(scomp, true);
+          break;
+        case SWT.ARROW_LEFT :
+          scrollHorizontal(scomp, true);
+          break;
+        case SWT.ARROW_RIGHT :
+          scrollHorizontal(scomp, false);
+          break;
+        case SWT.PAGE_UP :
+          scrollPage(scomp, true);
+          break;
+        case SWT.PAGE_DOWN :
+          scrollPage(scomp, false);
+          break;
+        }
+      }
+    }
+  }
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/BaseViewer.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/BaseViewer.java
new file mode 100644
index 0000000..83a118b
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/BaseViewer.java
@@ -0,0 +1,367 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.viewers;
+
+import org.eclipse.jface.action.IStatusLineManager;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.part.EditorActionBarContributor;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.eclipse.wst.wsdl.ui.internal.model.ModelAdapterListener;
+import org.eclipse.wst.wsdl.ui.internal.util.ui.BaseDesignWindow;
+import org.eclipse.wst.wsdl.ui.internal.util.ui.BorderPainter;
+import org.eclipse.wst.wsdl.ui.internal.util.ui.FlatViewUtility;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
+import org.eclipse.wst.xml.core.internal.provisional.format.FormatProcessorXML;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+public abstract class BaseViewer extends BaseDesignWindow implements Listener, SelectionListener
+{
+//  protected Object input; 
+
+  // for use in subclasses
+  protected FlatViewUtility flatViewUtility = new FlatViewUtility(true);
+
+  public BaseViewer(IStatusLineManager statusLine)
+  {
+    super(statusLine);
+  }
+
+  public Object getInput()
+  {
+    return input;
+  }
+
+  // gets called only if we currently are not handling an event
+  abstract public void doSetInput(Object input);
+  
+  /**
+   * @see org.eclipse.jface.viewers.Viewer#setInput(Object)
+   */
+  static Object oldInput = null;
+  ModelAdapterListener oldModelAdapterListener = null;
+
+  public void setInput(Object input)
+  {
+    super.setInput(input);
+
+    doSetInput(input);
+/*
+    if (!isInDoHandle() && !getControl().isDisposed())
+    {
+      final Object obj = input;
+      getControl().getDisplay().asyncExec(new Runnable()
+      {
+        public void run()
+        {
+          doSetInput(obj);
+        }
+      });
+    }
+*/
+  }
+
+
+  boolean listenerEnabled = true;
+  /**
+   * Get the value of listenerEnabled.
+   * @return value of listenerEnabled.
+   */
+  public boolean isListenerEnabled() 
+  {
+    return listenerEnabled;
+  }
+  
+  /**
+   * Set the value of listenerEnabled.
+   * @param v  Value to assign to listenerEnabled.
+   */
+  public void setListenerEnabled(boolean  v) 
+  {
+    this.listenerEnabled = v;
+  }
+
+
+  public void handleEvent(Event event)
+  {
+    if (isListenerEnabled() &&
+        getInput() != null &&
+        !isInDoHandle) 
+    {
+      isInDoHandle = true;
+      startDelayedEvent(event);
+      isInDoHandle = false;
+    } // end of if ()
+  }
+
+  abstract public void doHandleEvent(Event event);
+  abstract public void createControl(Composite parent);
+
+  protected DelayedEvent delayedTask;
+  
+  protected void startDelayedEvent(Event e)
+  {
+    if (delayedTask == null ||
+      delayedTask.getEvent() == null)
+    {
+      delayedTask = new DelayedEvent();
+      delayedTask.setEvent(e);
+      Display.getDefault().timerExec(500,delayedTask);
+    }
+    else
+    {
+      Event delayedEvent = delayedTask.getEvent();
+      
+      if (e.widget == delayedEvent.widget &&
+        e.type == delayedEvent.type)
+      {
+        // same event, just different data, delay new event
+        delayedTask.setEvent(null);
+      }
+      delayedTask = new DelayedEvent();
+      delayedTask.setEvent(e);
+      Display.getDefault().timerExec(500,delayedTask);
+    }
+  }
+  
+  class DelayedEvent implements Runnable
+  {
+    protected Event event;
+    
+    /*
+     * @see Runnable#run()
+     */
+    public void run()
+    {
+      if (event != null)
+      {
+        isInDoHandle = true;
+        doHandleEvent(event);
+        isInDoHandle = false;
+        event = null;
+      }
+    }
+    
+    /**
+     * Gets the event.
+     * @return Returns a Event
+     */
+    public Event getEvent()
+    {
+      return event;
+    }
+
+    /**
+     * Sets the event.
+     * @param event The event to set
+     */
+    public void setEvent(Event event)
+    {
+      this.event = event;
+    }
+
+  }
+
+
+  boolean isInDoHandle;
+  /**
+   * Get the value of isInDoHandle.
+   * @return value of isInDoHandle.
+   */
+  public boolean isInDoHandle() 
+  {
+    return isInDoHandle;
+  }
+
+  /*
+   * @see Viewer#getControl()
+   */
+  public Control getControl()
+  {
+    return mainUIComponent;
+  }
+
+
+  /*
+   * @see BaseDesignWindow#createDesignPane(Composite, int)
+   */
+  protected Control createDesignPane(Composite arg0, int arg1)
+  {
+    Control control = super.createDesignPane(arg0, arg1);
+    
+    Composite client = super.getControlsContainer();
+    
+    client.addPaintListener(new BorderPainter());
+    
+    client.setBackground(new Color(Display.getCurrent(),255,255,255));
+
+    return control;
+  }
+
+
+  public ISelection getSelection()
+  {
+    return null;
+  }
+  
+  public void refresh()
+  {
+  }
+
+  public void setSelection(ISelection selection, boolean reveal) 
+  {
+  }
+   
+  
+//  public abstract Control getControl();
+
+
+  public Node getNode()
+  {
+    return (Node) getInput();
+  }
+
+
+  public void doWidgetDefaultSelected(SelectionEvent e)
+  {}
+  
+  public void doWidgetSelected(SelectionEvent e)
+  {}
+  
+  /**
+   * @see org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(SelectionEvent)
+   */
+  public void widgetDefaultSelected(SelectionEvent e)
+  {
+    if (isListenerEnabled() &&
+        getInput() != null &&
+        !isInDoHandle) 
+    {
+      isInDoHandle = true;
+      doWidgetDefaultSelected(e);
+      isInDoHandle = false;
+    }
+    
+  }
+
+  /**
+   * @see org.eclipse.swt.events.SelectionListener#widgetSelected(SelectionEvent)
+   */
+  public void widgetSelected(SelectionEvent e)
+  {
+    if (isListenerEnabled() &&
+        getInput() != null &&
+        !isInDoHandle) 
+    {
+      isInDoHandle = true;
+      doWidgetSelected(e);
+      isInDoHandle = false;
+    }
+    
+  }
+
+  public Node getChildNode(Element parent, String childName)
+  {
+    NodeList list = null;
+    if (parent != null)
+    {
+      list = parent.getChildNodes();
+    }
+   
+    if (list != null)
+    {
+      // Performance issue perhaps?
+      for (int i = 0; i < list.getLength(); i++)
+      {
+        if (list.item(i) instanceof Element)
+        {
+          if (list.item(i).getLocalName().equals(childName))
+          {
+            return list.item(i);
+          }
+        }
+      }
+    }
+    return null;
+  }
+
+
+  protected Element performAddElement(Node parentNode, String namespaceName, String localName)
+  {
+    if (parentNode != null)
+    {                              
+      Element newElement = createElement(parentNode, namespaceName, localName);
+      parentNode.appendChild(newElement);       
+      format(parentNode);
+      return newElement;
+    }  
+    return null;
+  }
+
+  protected Element createElement(Node parentNode, String namespaceName, String localName)
+  {
+    Document document = parentNode.getOwnerDocument();
+    Element element = document.createElement(localName);
+    return element;   
+  }   
+
+  protected void addAttributes(Element newElement, String attr, String value)
+  {                                              
+    newElement.setAttribute(attr, value);
+  }
+
+  protected void format(Node parentNode)
+  {
+    if (parentNode instanceof IDOMNode) 
+    {
+      // format selected node                                                    
+      FormatProcessorXML formatProcessorXML = new FormatProcessorXML();
+      formatProcessorXML.formatNode((IDOMNode)parentNode);
+    }
+  }
+  
+  static protected IEditorPart getActiveEditor()
+  {
+    IWorkbench workbench = WSDLEditorPlugin.getInstance().getWorkbench();
+    IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
+    IEditorPart editorPart = workbenchWindow.getActivePage().getActiveEditor();
+
+    return editorPart;
+  }
+  
+  static protected IStatusLineManager getStatusLineManager(IEditorPart editorPart)
+  { 
+    IStatusLineManager result = null;
+    try
+    {                       
+      EditorActionBarContributor contributor = (EditorActionBarContributor)editorPart.getEditorSite().getActionBarContributor();
+      result = contributor.getActionBars().getStatusLineManager();
+    }
+    catch (Exception e)
+    {
+    }  
+    return result;
+  }
+  
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/BindingInputOutputFaultViewer.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/BindingInputOutputFaultViewer.java
new file mode 100644
index 0000000..5c7d396
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/BindingInputOutputFaultViewer.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.viewers;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.wst.wsdl.BindingFault;
+import org.eclipse.wst.wsdl.BindingInput;
+import org.eclipse.wst.wsdl.BindingOutput;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+
+public class BindingInputOutputFaultViewer extends NamedComponentViewer 
+{                    
+  public BindingInputOutputFaultViewer(Composite parent, IEditorPart editorPart)
+  {
+    super(parent, editorPart);    
+  } 
+
+  protected String getHeadingText()
+  { 
+    String result = "";
+    if (input instanceof BindingInput)
+    {
+      result = WSDLEditorPlugin.getWSDLString("_UI_LABEL_BINDING_INPUT");
+    }
+    else if (input instanceof BindingOutput)
+    {
+      result = WSDLEditorPlugin.getWSDLString("_UI_LABEL_BINDING_OUTPUT");
+    }
+    else if (input instanceof BindingFault)
+    {
+      result = WSDLEditorPlugin.getWSDLString("_UI_LABEL_BINDING_FAULT");
+    }            
+    return result;
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/BindingOperationViewer.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/BindingOperationViewer.java
new file mode 100644
index 0000000..f10337b
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/BindingOperationViewer.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.viewers;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+
+public class BindingOperationViewer extends NamedComponentViewer 
+{                    
+  public BindingOperationViewer(Composite parent, IEditorPart editorPart)
+  {
+    super(parent, editorPart);    
+  } 
+
+  protected String getHeadingText()
+  {
+    return WSDLEditorPlugin.getWSDLString("_UI_LABEL_BINDING_OPERATION"); //$NON-NLS-1$
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/BindingViewer.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/BindingViewer.java
new file mode 100644
index 0000000..79d8bce
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/BindingViewer.java
@@ -0,0 +1,84 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.viewers;
+
+import java.util.List;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CCombo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.eclipse.wst.wsdl.ui.internal.util.ComponentReferenceUtil;
+import org.eclipse.wst.wsdl.ui.internal.viewers.widgets.ComponentNameComboHelper;
+import org.eclipse.wst.wsdl.ui.internal.viewers.widgets.InvokeDialogButton;
+import org.eclipse.wst.wsdl.util.WSDLConstants;
+import org.w3c.dom.Element;
+
+public class BindingViewer extends NamedComponentViewer 
+{                      
+  protected CCombo componentNameCombo;      
+  protected ComponentNameComboHelper componentNameComboHelper;
+  InvokeDialogButton button;
+
+  public BindingViewer(Composite parent, IEditorPart editorPart)
+  {
+    super(parent, editorPart);    
+  } 
+
+  protected String getHeadingText()
+  {
+    return WSDLEditorPlugin.getWSDLString("_UI_LABEL_BINDING");  //$NON-NLS-1$
+  }
+
+  protected Composite populatePrimaryDetailsSection(Composite parent)
+  {
+    Composite composite = super.populatePrimaryDetailsSection(parent);
+                   
+    flatViewUtility.createLabel(composite, 0, WSDLEditorPlugin.getWSDLString("_UI_LABEL_PORTTYPE")); //$NON-NLS-1$
+
+    componentNameCombo = flatViewUtility.createCComboBox(composite);
+    componentNameCombo.addListener(SWT.Modify, this); 
+                                                                  
+
+    componentNameComboHelper = new ComponentNameComboHelper(componentNameCombo)
+    {
+      protected List getComponentNameList(ComponentReferenceUtil util)
+      {
+        return util.getPortTypeNames();
+      }
+
+      protected String getAttributeName()
+      {
+        return WSDLConstants.TYPE_ATTRIBUTE;
+      }
+    };
+
+    button = new InvokeDialogButton(composite, getInput());
+    button.setEditor(editorPart);
+
+    return composite;
+  }  
+
+  protected void update()
+  {
+    super.update();                                                     
+    componentNameComboHelper.update(input);
+    button.setInput(input);
+  }
+
+  protected void handleEventHelper(Element element, Event event)
+  {                        
+    super.handleEventHelper(element, event);
+    componentNameComboHelper.handleEventHelper(element, event);
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/DefinitionViewer.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/DefinitionViewer.java
new file mode 100644
index 0000000..5384c1d
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/DefinitionViewer.java
@@ -0,0 +1,54 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.viewers;
+
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.wst.wsdl.Definition;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.eclipse.wst.wsdl.ui.internal.actions.EditNamespacesAction;
+
+public class DefinitionViewer extends NamedComponentViewer 
+{                     
+  public DefinitionViewer(Composite parent, IEditorPart editorPart)
+  {
+    super(parent, editorPart);    
+  } 
+
+  protected String getHeadingText()
+  { 
+    return WSDLEditorPlugin.getWSDLString("_UI_LABEL_DEFINITION"); //$NON-NLS-1$
+  }  
+    
+  protected Composite populatePrimaryDetailsSection(Composite parent)
+  {
+	  Composite composite = super.populatePrimaryDetailsSection(parent);
+	  flatViewUtility.createLabel(composite, 0, WSDLEditorPlugin.getWSDLString("_UI_NAMESPACES")); //$NON-NLS-1$
+	  Button button = flatViewUtility.createPushButton(composite, WSDLEditorPlugin.getWSDLString("_UI_EDIT_NAMESPACES"));
+	  SelectionListener listener = new SelectionListener()
+	  {
+		  public void widgetDefaultSelected(SelectionEvent event)
+		  {    		
+		  }
+		  
+		  public void widgetSelected(SelectionEvent event)
+		  {
+			  EditNamespacesAction action = new EditNamespacesAction((Definition)getInput());					
+			  action.run();	
+		  }	
+	  };
+	  button.addSelectionListener(listener);
+	  return composite;	
+  }	    
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/EmptyViewer.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/EmptyViewer.java
new file mode 100644
index 0000000..e4e2541
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/EmptyViewer.java
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.viewers;
+
+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.Event;
+
+public class EmptyViewer extends BaseViewer
+{                                      
+  protected Composite control;
+
+  public EmptyViewer(Composite parent, int style)
+  {
+    super(getStatusLineManager(getActiveEditor()));
+    createControl(parent);
+  }
+
+  public void createControl(Composite parent)
+  {
+    control = new Composite(parent, SWT.NONE);
+
+    GridLayout layout = new GridLayout();
+    layout.numColumns = 1;
+    control.setLayout(layout);
+
+    GridData data = new GridData();
+    data.verticalAlignment = GridData.FILL;
+    data.horizontalAlignment = GridData.FILL;
+    control.setLayoutData(data);
+  }                                    
+
+  public Control getControl()
+  {
+    return control;
+  }
+
+  public void doSetInput(Object input)
+  {
+    
+  }
+
+  /*
+   * @see BaseWindow#doHandleEvent(Event)
+   */
+  public void doHandleEvent(Event event)
+  {
+    if (event.type == SWT.Modify)
+    {
+    }
+  }  
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/ExtensibilityElementViewer.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/ExtensibilityElementViewer.java
new file mode 100644
index 0000000..0f3a170
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/ExtensibilityElementViewer.java
@@ -0,0 +1,173 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.viewers;
+
+import org.eclipse.swt.graphics.Color;
+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.Display;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.wst.wsdl.WSDLElement;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.eclipse.wst.wsdl.ui.internal.model.ModelAdapterListener;
+import org.eclipse.wst.wsdl.ui.internal.model.WSDLModelAdapterFactory;
+import org.eclipse.wst.wsdl.ui.internal.viewers.widgets.AttributesTable;
+import org.w3c.dom.Node;
+
+public class ExtensibilityElementViewer extends BaseViewer implements ModelAdapterListener
+{             
+  protected Composite control;   
+  protected IEditorPart editorPart;   
+  protected AttributesTable attributesTable;
+  boolean isForTabbedProperties = false;
+  
+  public ExtensibilityElementViewer(Composite parent, IEditorPart editorPart)
+  {
+    super(getStatusLineManager(editorPart));    
+    this.editorPart = editorPart;                  
+
+    createControl(parent);   
+  }
+  
+  public ExtensibilityElementViewer(Composite parent, IEditorPart editorPart, boolean isForTabbedProperties)
+  {
+    super(getStatusLineManager(editorPart));    
+    this.editorPart = editorPart;                  
+    this.isForTabbedProperties = isForTabbedProperties;
+    if (isForTabbedProperties)
+    {
+      createControlForTabbedPropertySheet(parent);
+    }
+    else
+    {
+      createControl(parent);
+    }
+  } 
+
+  protected String getHeadingText()
+  { 
+    String result = "";                            
+    if (input != null)
+    {
+      Node node = ((WSDLElement)input).getElement();
+      result = node.getNodeName();
+      if (result == null || result.length() == 0)
+      {
+        result = WSDLEditorPlugin.getWSDLString("_UI_LABEL_UNKNOWN_EXTENSIBILITY_ELEMENT"); //$NON-NLS-1$ 
+      }
+    }
+    return result;
+  }         
+  
+  // TODO... move this method down to BaseViewer!
+  public void doHandleEvent(Event event)
+  {
+  }
+
+  public void createControlForTabbedPropertySheet(Composite parent)
+  { 
+    attributesTable = new AttributesTable(editorPart, parent);
+  }  
+
+  public void createControl(Composite parent)
+  { 
+    control = flatViewUtility.createComposite(parent, 1, true);   
+	  control.setBackground (new Color(null,255,0,0));
+	  GridData gd= new GridData();
+	  gd.horizontalAlignment= GridData.FILL;
+	  gd.grabExcessHorizontalSpace= true;
+	  gd.verticalAlignment= GridData.FILL;
+	  gd.grabExcessVerticalSpace= true;
+	  
+    control.setLayoutData(gd);
+
+
+    GridLayout layout = (GridLayout)control.getLayout();
+    layout.verticalSpacing = 0;
+    layout.marginHeight = 0;
+    layout.marginWidth = 0;
+                                      
+    flatViewUtility.createFlatPageHeader(control, "");
+
+    Composite c = flatViewUtility.createComposite(control, 1, true);
+    GridData cGD= new GridData();
+    cGD.horizontalAlignment= GridData.FILL;
+    cGD.grabExcessHorizontalSpace= true;
+    cGD.verticalAlignment= GridData.FILL;
+    cGD.grabExcessVerticalSpace= true;
+    
+    c.setLayoutData(cGD);                                 
+    attributesTable = new AttributesTable(editorPart, c);
+
+    GridData attributesTableGD= new GridData();
+    attributesTableGD.horizontalAlignment= GridData.FILL;
+    attributesTableGD.grabExcessHorizontalSpace= true;
+    attributesTableGD.verticalAlignment= GridData.FILL;
+    attributesTableGD.grabExcessVerticalSpace= true;
+
+    attributesTable.getControl().setLayoutData(attributesTableGD);
+  }  
+
+  public Control getControl()
+  {
+    return control;
+  } 
+   
+
+  public void doSetInput(Object input)
+  {
+    if (!isForTabbedProperties)
+    {
+      flatViewUtility.updateFlatPageHeaderTitle(getHeadingText());
+    }
+    setListenerEnabled(false);                          
+               
+    attributesTable.setInput(((WSDLElement)input).getElement());
+ 
+    setListenerEnabled(true);
+
+    if (oldInput != null)
+    {
+      WSDLModelAdapterFactory.removeModelAdapterListener(oldInput, this);
+    }
+    WSDLModelAdapterFactory.addModelAdapterListener(input, this);
+
+    oldInput = input;
+  }
+
+  public void propertyChanged(Object object, String property)
+  {
+    if (isListenerEnabled())
+    {
+      setListenerEnabled(false);
+      update();
+      setListenerEnabled(true);
+    }
+  }  
+
+  protected void update()
+  {                          
+    Runnable runnable = new Runnable()
+    { 
+      public void run()
+      {           
+        if (!attributesTable.getControl().isDisposed())
+        {
+          attributesTable.refresh();
+        }
+      }
+    };               
+    Display.getCurrent().asyncExec(runnable);
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/ExtensibleDetailsViewerProvider.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/ExtensibleDetailsViewerProvider.java
new file mode 100644
index 0000000..2c6057f
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/ExtensibleDetailsViewerProvider.java
@@ -0,0 +1,72 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.viewers;
+
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditor;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.eclipse.wst.wsdl.ui.internal.extension.IDetailsViewerProvider;
+import org.eclipse.wst.wsdl.ui.internal.extension.WSDLEditorExtension;
+import org.eclipse.wst.wsdl.ui.internal.extension.WSDLEditorExtensionRegistry;
+
+public class ExtensibleDetailsViewerProvider implements IDetailsViewerProvider
+{
+  protected WSDLEditorExtension[] extensions;
+  protected IDetailsViewerProvider[] detailsViewerProviders;
+
+  protected final static Object[] EMPTY_ARRAY = {};
+
+  public ExtensibleDetailsViewerProvider(WSDLEditor wsdlEditor)
+  {  	
+    WSDLEditorExtensionRegistry registry = WSDLEditorPlugin.getInstance().getWSDLEditorExtensionRegistry(); 
+
+    extensions = registry.getRegisteredExtensions(WSDLEditorExtension.DETAILS_VIEWER_PROVIDER); 
+    detailsViewerProviders = new IDetailsViewerProvider[extensions.length]; 
+    for (int i = 0; i < extensions.length; i++)
+    {
+      detailsViewerProviders[i] = (IDetailsViewerProvider)extensions[i].createExtensionObject(WSDLEditorExtension.DETAILS_VIEWER_PROVIDER, wsdlEditor);
+    }
+  }          
+      
+
+  protected IDetailsViewerProvider getApplicableDetailsProvider(Object object)
+  {                             
+    IDetailsViewerProvider provider = null;
+    for (int i = 0; i < extensions.length; i++)
+    {
+      if (extensions[i].isApplicable(object))
+      {
+        provider = detailsViewerProviders[i];
+        if (provider != null)
+        {
+          break;
+        }
+      }
+    }
+    return provider;
+  }
+   
+  
+  public Object getViewerKey(Object object)
+  {
+    IDetailsViewerProvider provider = getApplicableDetailsProvider(object);
+    return provider != null ? provider.getViewerKey(object) : null;
+  }
+  
+
+  public Viewer createViewer(Object object, Composite parent, IEditorPart editorPart)
+  {
+    IDetailsViewerProvider provider = getApplicableDetailsProvider(object);
+    return provider != null ? provider.createViewer(object, parent, editorPart) : null;
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/ImportViewer.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/ImportViewer.java
new file mode 100644
index 0000000..1419425
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/ImportViewer.java
@@ -0,0 +1,321 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.viewers;
+
+import java.util.Map;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.swt.SWT;
+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.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IFileEditorInput;
+import org.eclipse.wst.common.ui.internal.dialogs.SelectSingleFileDialog;
+import org.eclipse.wst.wsdl.Definition;
+import org.eclipse.wst.wsdl.Import;
+import org.eclipse.wst.wsdl.WSDLElement;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditor;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.eclipse.wst.wsdl.ui.internal.model.ModelAdapterListener;
+import org.eclipse.wst.wsdl.ui.internal.model.WSDLModelAdapterFactory;
+import org.eclipse.wst.wsdl.ui.internal.util.ComponentReferenceUtil;
+import org.eclipse.wst.wsdl.ui.internal.util.WSDLEditorUtil;
+import org.eclipse.wst.wsdl.ui.internal.util.XMLQuickScan;
+import org.w3c.dom.Element;
+
+
+public class ImportViewer extends BaseViewer implements ModelAdapterListener
+{
+  protected Composite control;
+  protected IEditorPart editorPart;
+  
+  protected Text namespaceText;
+  protected Text prefixText;
+  protected Text locationText;
+  Button selectButton;
+
+  /**
+   * Constructor for ImportViewer.
+   * @param parent
+   * @param editorPart
+   */
+  public ImportViewer(Composite parent, IEditorPart editorPart)
+  {
+    super(getStatusLineManager(editorPart));
+    this.editorPart = editorPart;
+    createControl(parent);
+  }
+  /**
+   * @see org.eclipse.wst.wsdl.ui.internal.viewers.NamedComponentViewer#getHeadingText()
+   */
+  protected String getHeadingText()
+  {
+    return WSDLEditorPlugin.getWSDLString("_UI_LABEL_IMPORT"); //$NON-NLS-1$
+  }
+
+  public void createControl(Composite parent)
+  { 
+    control = flatViewUtility.createComposite(parent, 1, true);                 
+    GridLayout layout = (GridLayout)control.getLayout();
+    layout.verticalSpacing = 0;
+                                      
+    flatViewUtility.createFlatPageHeader(control, getHeadingText());
+
+    Composite c = flatViewUtility.createComposite(control, 1, true);
+
+    Label bogus = flatViewUtility.createLabel(c, 0, "");
+    GridData gd= new GridData();
+    gd.horizontalAlignment= GridData.FILL;
+    gd.grabExcessHorizontalSpace= true;
+    
+    bogus.setLayoutData(gd);
+
+    Composite composite = flatViewUtility.createComposite(c, 2, true); 
+    GridLayout layout2 = new GridLayout();
+    layout2.makeColumnsEqualWidth  = false;
+    layout2.numColumns = 3;
+    layout2.marginHeight = 3;
+    composite.setLayout(layout2);
+
+    flatViewUtility.createLabel(composite, 0, WSDLEditorPlugin.getWSDLString("_UI_LABEL_NAMESPACE")); //$NON-NLS-1$
+    namespaceText = flatViewUtility.createTextField(composite);
+    namespaceText.setEnabled(false);
+
+    // place holder
+    Control con= flatViewUtility.createLabel(composite, 0, "");
+    gd = new GridData();
+    gd.grabExcessHorizontalSpace = false;
+    con.setLayoutData(gd);
+
+    flatViewUtility.createLabel(composite, 0, WSDLEditorPlugin.getWSDLString("_UI_LABEL_PREFIX")); //$NON-NLS-1$
+    prefixText = flatViewUtility.createTextField(composite);
+    prefixText.addListener(SWT.Modify,this);
+    prefixText.setEnabled(false);    
+
+    // place holder
+    Control con2= flatViewUtility.createLabel(composite, 0, "");
+    gd = new GridData();
+    gd.grabExcessHorizontalSpace = false;
+    con2.setLayoutData(gd);
+
+    flatViewUtility.createLabel(composite, 0, WSDLEditorPlugin.getWSDLString("_UI_LABEL_LOCATION")); //$NON-NLS-1$
+    locationText = flatViewUtility.createTextField(composite);
+    locationText.setEnabled(false);
+
+    selectButton = flatViewUtility.createPushButton(composite, "...");
+    gd = new GridData();
+    gd.horizontalAlignment = GridData.BEGINNING;
+    gd.grabExcessHorizontalSpace = false;
+    selectButton.setLayoutData(gd);
+    selectButton.addSelectionListener(this);
+  }  
+
+  public void doSetInput(Object input)
+  {    
+    setListenerEnabled(false);                          
+    try
+    {          
+//      Node node = WSDLEditorUtil.getInstance().getNodeForObject(input);
+      update();
+    }
+    finally
+    {
+      setListenerEnabled(true);
+    }
+
+    if (oldInput != null)
+    {
+      WSDLModelAdapterFactory.removeModelAdapterListener(oldInput, this);
+    }
+
+    WSDLModelAdapterFactory.addModelAdapterListener(input, this);
+    oldInput = input;
+  }
+
+  protected void handleEventHelper(Element element, Event event)
+  {                        
+    if (event.type == SWT.Modify)
+    {  
+    }
+  }
+
+  protected void update()
+  {
+    Element element = ((WSDLElement)input).getElement();                           
+    flatViewUtility.updateFlatPageHeaderTitle(getHeadingText());
+    prefixText.setText("");
+    locationText.setText("");
+    namespaceText.setText("                                                                  ");
+    namespaceText.getParent().layout();    
+    namespaceText.setText("");
+    String locationValue = element.getAttribute("location");
+    locationText.setText(locationValue != null ? locationValue : "");  
+
+    String namespaceValue = element.getAttribute("namespace");
+    namespaceText.setText(namespaceValue != null ? namespaceValue : "");
+    
+    String prefix = ((Import)input).getEnclosingDefinition().getPrefix(namespaceValue);
+    prefixText.setText(prefix != null ? prefix : "");
+  }
+
+  public Control getControl()
+  {
+    return control;
+  }
+
+  /*
+   * @see BaseWindow#doHandleEvent(Event)
+   */
+  public void doHandleEvent(Event event)
+  {
+//    if (event.widget == prefixText)
+//    {
+//      String newPrefix = prefixText.getText();
+//      String errorMessage = ValidateHelper.checkXMLPrefix(newPrefix);
+//    
+//      if (errorMessage == null || errorMessage.length() == 0)
+//      {
+//        Import importObj = (Import)input;
+//        org.w3c.dom.Element importElement = WSDLUtil.getInstance().getElementForObject(importObj);
+//        
+//        Definition definition = importObj.getEnclosingDefinition();
+//        org.w3c.dom.Element definitionElement = WSDLUtil.getInstance().getElementForObject(definition);
+//  
+//        String nsFromModel = importObj.getNamespaceURI();
+//        String nsFromDOM = importElement.getAttribute("namespace");
+//        System.out.println(nsFromModel);
+//        System.out.println(nsFromDOM);
+//  
+//        String oldPrefix = definition.getPrefix(nsFromModel);
+//        definitionElement.removeAttribute("xmlns:" + oldPrefix);
+//        definitionElement.setAttribute("xmlns:" + newPrefix, nsFromModel);
+//      }
+//    }
+  }             
+
+  public void propertyChanged(Object object, String property)
+  {
+    if (isListenerEnabled())
+    {
+      setListenerEnabled(false);
+      update();
+      setListenerEnabled(true);
+    }
+  }
+
+  public void widgetDefaultSelected(SelectionEvent e)
+  {
+
+  }
+
+  public void widgetSelected(SelectionEvent e)
+  {
+    if (e.widget == selectButton)
+    {
+// TODO: port check
+      WSDLEditor editor = (WSDLEditor)editorPart;
+      IFile currentWSDLFile = ((IFileEditorInput)editor.getEditorInput()).getFile();
+      
+      SelectSingleFileDialog dialog = new SelectSingleFileDialog(WSDLEditorPlugin.getShell(), null, true);
+      String [] filters = { "xsd", "wsdl" };
+      IFile [] excludedFiles = { currentWSDLFile };
+      
+      dialog.addFilterExtensions(filters, excludedFiles);
+      dialog.create();
+      dialog.getShell().setText(WSDLEditorPlugin.getWSDLString("_UI_TITLE_SELECT")); //$NON-NLS-1$
+      dialog.setTitle(WSDLEditorPlugin.getWSDLString("_UI_TITLE_SELECT_FILE")); //$NON-NLS-1$
+      dialog.setMessage(WSDLEditorPlugin.getWSDLString("_UI_DESCRIPTION_SELECT_WSDL_OR_XSD")); //$NON-NLS-1$
+      int rc = dialog.open();
+      if (rc == IDialogConstants.OK_ID)
+      {
+        IFile selectedFile = dialog.getFile();
+                
+        //if (selectedFile.getLocation().toOSString().equals(currentWSDLFile.getLocation().toOSString()))
+        //{
+        //  System.out.println("SAME FILE:" + currentWSDLFile.getLocation());
+        //}
+
+        String location = ComponentReferenceUtil.computeRelativeURI(selectedFile, currentWSDLFile, true);
+
+        Import importObj = (Import)input;
+        org.w3c.dom.Element importElement = WSDLEditorUtil.getInstance().getElementForObject(importObj);
+        Definition definition = importObj.getEnclosingDefinition();
+        org.w3c.dom.Element definitionElement = WSDLEditorUtil.getInstance().getElementForObject(definition);
+        
+        String importTargetNamespace = "";
+        String prefix = prefixText.getText();
+        String uniquePrefix = "";
+      
+		URI uri = URI.createPlatformResourceURI(selectedFile.getFullPath().toString());      
+
+		// note that the getTargetNamespaceURIForSchema works for both schema and wsdl files
+		// I should change the name of this convenience method
+        importTargetNamespace =  XMLQuickScan.getTargetNamespaceURIForSchema(uri.toString());
+
+        if (prefix.trim().equals(""))
+        {
+          uniquePrefix = getUniquePrefix(definition, uri.fileExtension());
+        }
+        else
+        {
+          uniquePrefix = prefix; 
+        }
+       
+        
+        if (importTargetNamespace == null ||
+           (importTargetNamespace != null && importTargetNamespace.trim().length() == 0))
+        {
+          return;  // what to do with no namespace docs?
+        }
+
+        importElement.setAttribute("location", location);
+        importElement.setAttribute("namespace", importTargetNamespace);
+
+        definitionElement.setAttribute("xmlns:" + uniquePrefix, importTargetNamespace);
+
+        namespaceText.setText(importTargetNamespace);
+        locationText.setText(location);
+        prefixText.setText(uniquePrefix);
+      }
+    }
+  }
+
+  private String getUniquePrefix(Definition definition, String initPrefix)
+  {
+    String uniquePrefix;
+    Map map = definition.getNamespaces();
+
+    if (definition.getNamespace(initPrefix) == null)
+    {
+      uniquePrefix = initPrefix;
+    }
+    else // if used, then try to create a unique one
+    {
+      String tempPrefix = initPrefix;
+      int i = 1;
+      while(map.containsKey(tempPrefix + i))
+      {
+        i++;
+      }
+      uniquePrefix = tempPrefix + i;
+    }
+    return uniquePrefix;    
+  } 
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/InputOutputFaultViewer.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/InputOutputFaultViewer.java
new file mode 100644
index 0000000..bcd529b
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/InputOutputFaultViewer.java
@@ -0,0 +1,107 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.viewers;
+
+import java.util.List;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CCombo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.wst.wsdl.Fault;
+import org.eclipse.wst.wsdl.Input;
+import org.eclipse.wst.wsdl.Output;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.eclipse.wst.wsdl.ui.internal.util.ComponentReferenceUtil;
+import org.eclipse.wst.wsdl.ui.internal.viewers.widgets.ComponentNameComboHelper;
+import org.eclipse.wst.wsdl.ui.internal.viewers.widgets.InvokeDialogButton;
+import org.eclipse.wst.wsdl.util.WSDLConstants;
+import org.w3c.dom.Element;
+
+public class InputOutputFaultViewer extends NamedComponentViewer 
+{                     
+  protected CCombo componentNameCombo; 
+  protected ComponentNameComboHelper componentNameComboHelper;
+  InvokeDialogButton button;
+
+  public InputOutputFaultViewer(Composite parent, IEditorPart editorPart)
+  {
+    super(parent, editorPart);    
+  } 
+
+  protected String getHeadingText()
+  { 
+    String result = "";
+
+    if (input instanceof Input)
+    {
+      result = WSDLEditorPlugin.getWSDLString("_UI_LABEL_INPUT"); //$NON-NLS-1$
+    }
+    else if (input instanceof Output)
+    {
+      result = WSDLEditorPlugin.getWSDLString("_UI_LABEL_OUTPUT"); //$NON-NLS-1$
+    }
+    else if (input instanceof Fault)
+    {
+      result = WSDLEditorPlugin.getWSDLString("_UI_LABEL_FAULT"); //$NON-NLS-1$
+    }                 
+
+    return result;
+  }      
+
+  public boolean isObjectExtensible()
+  {
+    return false;
+  }
+
+  protected Composite populatePrimaryDetailsSection(Composite parent)
+  {
+    Composite composite = super.populatePrimaryDetailsSection(parent);
+                   
+    flatViewUtility.createLabel(composite, 0, WSDLEditorPlugin.getWSDLString("_UI_LABEL_MESSAGE")); //$NON-NLS-1$
+
+    componentNameCombo = flatViewUtility.createCComboBox(composite);
+    componentNameCombo.addListener(SWT.Modify, this);      
+
+    componentNameComboHelper = new ComponentNameComboHelper(componentNameCombo)
+    {
+      protected List getComponentNameList(ComponentReferenceUtil util)
+      {
+        return util.getMessageNames();
+      }
+
+      protected String getAttributeName()
+      {
+        return WSDLConstants.MESSAGE_ATTRIBUTE;
+      }
+    };
+
+    button = new InvokeDialogButton(composite, getInput());
+    button.setEditor(editorPart);
+
+    return composite;
+  }
+
+
+  protected void update()
+  {
+    super.update();                                                     
+    componentNameComboHelper.update(input);
+    button.setInput(input);
+  }
+
+  protected void handleEventHelper(Element element, Event event)
+  {                        
+    super.handleEventHelper(element, event);
+    componentNameComboHelper.handleEventHelper(element, event);
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/MessageViewer.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/MessageViewer.java
new file mode 100644
index 0000000..3a8e0c8
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/MessageViewer.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.viewers;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+
+
+public class MessageViewer extends NamedComponentViewer 
+{                     
+  public MessageViewer(Composite parent, IEditorPart editorPart)
+  {
+    super(parent, editorPart);    
+  } 
+
+  protected String getHeadingText()
+  { 
+    return WSDLEditorPlugin.getWSDLString("_UI_LABEL_MESSAGE"); //$NON-NLS-1$
+  }     
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/NamedComponentViewer.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/NamedComponentViewer.java
new file mode 100644
index 0000000..80a5065
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/NamedComponentViewer.java
@@ -0,0 +1,182 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.viewers;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.SashForm;
+import org.eclipse.swt.graphics.Color;
+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.Event;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.wst.wsdl.WSDLElement;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditor;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.eclipse.wst.wsdl.ui.internal.actions.SmartRenameAction;
+import org.eclipse.wst.wsdl.ui.internal.model.ModelAdapterListener;
+import org.eclipse.wst.wsdl.ui.internal.model.WSDLModelAdapterFactory;
+import org.eclipse.wst.wsdl.ui.internal.util.WSDLEditorUtil;
+import org.eclipse.wst.wsdl.util.WSDLConstants;
+import org.w3c.dom.Element;
+
+public abstract class NamedComponentViewer extends BaseViewer implements ModelAdapterListener
+{                                    
+  protected Composite control;
+  protected Text nameField;  
+  protected IEditorPart editorPart;
+
+  public NamedComponentViewer(Composite parent, IEditorPart editorPart)
+  {
+    super(getStatusLineManager(editorPart));    
+    this.editorPart = editorPart;                  
+
+    createControl(parent);
+  } 
+
+  protected abstract String getHeadingText();  
+
+  protected Composite populatePrimaryDetailsSection(Composite parent)
+  {
+  	Composite group = flatViewUtility.createComposite(parent, 2, true);
+ 	
+  	group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+    Composite nameFieldComposite = flatViewUtility.createComposite(group, 2, true);
+	((GridLayout)nameFieldComposite.getLayout()).marginWidth = 0;
+    ((GridLayout)nameFieldComposite.getLayout()).marginHeight = 0; 	
+	 
+    GridLayout layout = new GridLayout();
+    layout.makeColumnsEqualWidth  = false;
+    layout.numColumns = 3;
+    layout.marginHeight = 4;
+    layout.marginWidth = 0;
+
+    nameFieldComposite.setLayout(layout);      
+    GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+    gd.horizontalSpan = 1;
+    gd.verticalAlignment = GridData.BEGINNING;
+    nameFieldComposite.setLayoutData(gd);
+
+
+    flatViewUtility.createLabel(nameFieldComposite, 0, WSDLEditorPlugin.getWSDLString("_UI_LABEL_NAME")); //$NON-NLS-1$
+    nameField = flatViewUtility.createTextField(nameFieldComposite);  
+    nameField.addListener(SWT.Modify, this);  
+    
+    // place holder
+    Control c = flatViewUtility.createLabel(nameFieldComposite, 0, "");
+    c.setBackground(new Color(null, 0, 255, 100));
+    gd = new GridData();
+    gd.grabExcessHorizontalSpace = false;
+    gd.heightHint = 0;
+    gd.widthHint = 0;
+    c.setLayoutData(gd);
+    	
+    return nameFieldComposite;
+  } 
+
+  public void createControl(Composite parent)
+  { 
+	SashForm sashForm = new SashForm(parent, SWT.BORDER);
+	sashForm.setLayoutData(new GridData(GridData.FILL_BOTH));
+	control = sashForm;
+	sashForm.setOrientation(SWT.HORIZONTAL);
+	
+    Composite composite = flatViewUtility.createComposite(sashForm, 1, true);        
+	composite.setLayoutData(new GridData(GridData.FILL_BOTH));
+    GridLayout layout = (GridLayout)composite.getLayout();
+    layout.verticalSpacing = 0;
+    layout.marginHeight = 0;
+    layout.marginWidth = 0;
+                       
+    flatViewUtility.createFlatPageHeader(composite, getHeadingText());
+       
+    populatePrimaryDetailsSection(composite);
+    
+	TabbedViewer tabbedViewer = new TabbedViewer((WSDLEditor)editorPart);
+
+	Control c = tabbedViewer.createControl(sashForm);
+	c.setLayoutData(new GridData(GridData.FILL_BOTH));  	     	
+  }
+              
+  public void doSetInput(Object input)
+  {    
+    setListenerEnabled(false);                          
+    try
+    {          
+//      Node node = WSDLEditorUtil.getInstance().getNodeForObject(input);
+      update();
+    }
+    finally
+    {
+      setListenerEnabled(true);
+    }
+
+    if (oldInput != null)
+    {
+      WSDLModelAdapterFactory.removeModelAdapterListener(oldInput, this);
+    }
+
+    WSDLModelAdapterFactory.addModelAdapterListener(input, this);
+    oldInput = input;
+  }
+
+  protected void update()
+  {
+    Element element = ((WSDLElement)input).getElement();                          
+    flatViewUtility.updateFlatPageHeaderTitle(getHeadingText());
+
+    nameField.setText("");
+    String nameValue = element.getAttribute(WSDLConstants.NAME_ATTRIBUTE);
+    nameField.setText(nameValue != null ? nameValue : "");  
+  }
+
+  public Control getControl()
+  {
+    return control;
+  }
+
+  /*
+   * @see BaseWindow#doHandleEvent(Event)
+   */
+  public void doHandleEvent(Event event)
+  {
+    setListenerEnabled(false);
+    Element element = WSDLEditorUtil.getInstance().getElementForObject(input);
+    handleEventHelper(element, event);   
+    setListenerEnabled(true);
+  }             
+
+  protected void handleEventHelper(Element element, Event event)
+  {                          
+    if (event.type == SWT.Modify)
+    {  
+      if (event.widget == nameField)
+      { 
+        new SmartRenameAction(input, nameField.getText()).run();
+      }
+    }
+  }
+
+  public void propertyChanged(Object object, String property)
+  {
+    if (isListenerEnabled())
+    {
+      setListenerEnabled(false);
+      if (!control.isDisposed())
+      {      
+        update();
+      }  
+      setListenerEnabled(true);
+    }
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/OperationViewer.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/OperationViewer.java
new file mode 100644
index 0000000..c0c326e
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/OperationViewer.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.viewers;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+
+public class OperationViewer extends NamedComponentViewer 
+{                    
+  public OperationViewer(Composite parent, IEditorPart editorPart)
+  {
+    super(parent, editorPart);    
+  } 
+
+  protected String getHeadingText()
+  {
+    return WSDLEditorPlugin.getWSDLString("_UI_LABEL_OPERATION");  //$NON-NLS-1$
+  }  
+
+  protected Composite populatePrimaryDetailsSection(Composite parent)
+  {
+    Composite composite = super.populatePrimaryDetailsSection(parent);
+                   
+    flatViewUtility.createLabel(composite, 0, WSDLEditorPlugin.getWSDLString("_UI_LABEL_PARAMETER_ORDER"));  //$NON-NLS-1$
+    Text parameterOrderField = flatViewUtility.createTextField(composite);  
+    parameterOrderField.addListener(SWT.Modify, this);  
+                              
+    //Button button = new Button(composite, SWT.FLAT);
+    //button.setText("...");
+
+    return composite;
+  }  
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/PartViewer.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/PartViewer.java
new file mode 100644
index 0000000..f509a79
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/PartViewer.java
@@ -0,0 +1,163 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.viewers;
+
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CCombo;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.wst.wsdl.Part;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.eclipse.wst.wsdl.ui.internal.util.ComponentReferenceUtil;
+import org.eclipse.wst.wsdl.ui.internal.viewers.widgets.InvokeDialogButton;
+import org.w3c.dom.Element;
+
+public class PartViewer extends NamedComponentViewer
+{   
+  protected CCombo componentNameCombo;
+  protected CCombo referenceKindCombo; 
+  protected Label componentNameLabel;
+  InvokeDialogButton button;
+//  Button importButton;
+  
+
+  public PartViewer(Composite parent, IEditorPart editorPart)
+  {
+    super(parent, editorPart);    
+  } 
+
+  protected String getHeadingText()
+  {
+    return WSDLEditorPlugin.getWSDLString("_UI_LABEL_PART");  //$NON-NLS-1$
+  } 
+
+  public boolean isObjectExtensible()
+  {
+    return false;
+  }
+    
+  protected Composite populatePrimaryDetailsSection(Composite parent)
+  {
+    Composite composite = super.populatePrimaryDetailsSection(parent);
+     
+    flatViewUtility.createLabel(composite, WSDLEditorPlugin.getWSDLString("_UI_LABEL_REFERENCE_KIND")); //$NON-NLS-1$
+    referenceKindCombo = flatViewUtility.createCComboBox(composite);
+    referenceKindCombo.add("element");
+    referenceKindCombo.add("type");
+    referenceKindCombo.setText("type");
+    referenceKindCombo.addListener(SWT.Modify, this);
+
+    flatViewUtility.createLabel(composite, ""); 
+    
+    componentNameLabel = flatViewUtility.createLabel(composite, WSDLEditorPlugin.getWSDLString("_UI_LABEL_ELEMENT"));   //$NON-NLS-1$
+
+    componentNameCombo = flatViewUtility.createCComboBox(composite);
+    componentNameCombo.addListener(SWT.Modify, this);
+    componentNameCombo.addSelectionListener(this);
+
+    button = new InvokeDialogButton(composite, getInput());
+    
+    return composite;
+  }  
+          
+  protected void update()
+  {                    
+    try
+    {
+      Part part = (Part)input;
+      boolean isType = ComponentReferenceUtil.isType(part);
+      String value = ComponentReferenceUtil.getPartComponentReference(part);
+
+      // update the combo-box content
+      //
+      componentNameCombo.removeAll(); 
+      List compList = ComponentReferenceUtil.getComponentNameList(part, isType);
+      if (compList != null)
+      {
+        for (Iterator iterator =  compList.iterator(); iterator.hasNext();)
+        {
+          componentNameCombo.add((String)iterator.next());
+        }
+      } 
+      
+      if (isType)
+      {                                                 
+        referenceKindCombo.setText("type");
+        componentNameLabel.setText(WSDLEditorPlugin.getWSDLString("_UI_LABEL_TYPE"));  //$NON-NLS-1$
+        componentNameCombo.setText(value != null ? value : "");
+        button.setReferenceKind("type");
+      }
+      else
+      {
+        referenceKindCombo.setText("element");
+        componentNameLabel.setText(WSDLEditorPlugin.getWSDLString("_UI_LABEL_ELEMENT"));  //$NON-NLS-1$
+        componentNameCombo.setText(value != null ? value : "");
+        button.setReferenceKind("element");
+      }                                                        
+      button.setInput(input);
+      button.setEditor(editorPart);
+      super.update();  
+    }
+    catch (Exception e)
+    {
+      e.printStackTrace();
+    }
+  }       
+      
+     
+  protected void handleEventHelper(Element element, Event event)
+  {  
+    super.handleEventHelper(element, event);
+    if (event.type == SWT.Modify)
+    {  
+      if (event.widget == referenceKindCombo)
+      {                        
+        // TODO... I have no idea why we need to use a delayed runnable to get 
+        // updating working properly .... this is something we need to revisit
+        DelayedRenameRunnable runnable = new DelayedRenameRunnable((Part)input);
+        Display.getCurrent().asyncExec(runnable);  
+      } 
+    }
+  }      
+
+  protected class DelayedRenameRunnable implements Runnable
+  {                       
+    Part part;
+
+    DelayedRenameRunnable(Part part)
+    {
+      this.part = part;
+    }
+
+    public void run()                  
+    {                                                               
+      boolean isType = referenceKindCombo.getText().equals("type");
+      ComponentReferenceUtil.setComponentReference(part, isType, null);    
+    }
+  }  
+
+  public void doWidgetSelected(SelectionEvent e)
+  {
+    if (e.widget == componentNameCombo)
+    {                                                      
+      Part part = (Part)input;
+      boolean isType = referenceKindCombo.getText().equals("type");
+      ComponentReferenceUtil.setComponentReference(part, isType, componentNameCombo.getText());          
+    }
+  } 
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/PortTypeViewer.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/PortTypeViewer.java
new file mode 100644
index 0000000..d85fdfc
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/PortTypeViewer.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.viewers;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+
+public class PortTypeViewer extends NamedComponentViewer 
+{                    
+  public PortTypeViewer(Composite parent, IEditorPart editorPart)
+  {
+    super(parent, editorPart);    
+  } 
+
+  protected String getHeadingText()
+  {
+    return WSDLEditorPlugin.getWSDLString("_UI_LABEL_PORTTYPE"); //$NON-NLS-1$
+  }
+
+  public boolean isObjectExtensible()
+  {
+    return false;
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/PortViewer.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/PortViewer.java
new file mode 100644
index 0000000..8e5f3d0
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/PortViewer.java
@@ -0,0 +1,83 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.viewers;
+
+import java.util.List;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CCombo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.eclipse.wst.wsdl.ui.internal.util.ComponentReferenceUtil;
+import org.eclipse.wst.wsdl.ui.internal.viewers.widgets.ComponentNameComboHelper;
+import org.eclipse.wst.wsdl.ui.internal.viewers.widgets.InvokeDialogButton;
+import org.eclipse.wst.wsdl.util.WSDLConstants;
+import org.w3c.dom.Element;
+
+public class PortViewer extends NamedComponentViewer 
+{  
+  protected CCombo componentNameCombo;     
+  protected ComponentNameComboHelper componentNameComboHelper;
+  InvokeDialogButton button;
+
+  public PortViewer(Composite parent, IEditorPart editorPart)
+  {
+    super(parent, editorPart);    
+  } 
+
+  protected String getHeadingText()
+  {
+    return WSDLEditorPlugin.getWSDLString("_UI_LABEL_PORT"); //$NON-NLS-1$
+  }
+
+  protected Composite populatePrimaryDetailsSection(Composite parent)
+  {
+    Composite composite = super.populatePrimaryDetailsSection(parent);
+                   
+    flatViewUtility.createLabel(composite, 0, WSDLEditorPlugin.getWSDLString("_UI_LABEL_BINDING")); //$NON-NLS-1$
+
+    componentNameCombo = flatViewUtility.createCComboBox(composite);
+    componentNameCombo.addListener(SWT.Modify, this);   
+
+    componentNameComboHelper = new ComponentNameComboHelper(componentNameCombo)
+    {
+      protected List getComponentNameList(ComponentReferenceUtil util)
+      {
+        return util.getBindingNames();
+      }
+
+      protected String getAttributeName()
+      {
+        return WSDLConstants.BINDING_ATTRIBUTE;
+      }
+    };
+                              
+    button = new InvokeDialogButton(composite, getInput());
+    button.setEditor(editorPart);
+
+    return composite;
+  }  
+  
+  protected void update()
+  {
+    super.update();                                                     
+    componentNameComboHelper.update(input);
+    button.setInput(input);
+  }
+
+  protected void handleEventHelper(Element element, Event event)
+  {                        
+    super.handleEventHelper(element, event);
+    componentNameComboHelper.handleEventHelper(element, event);
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/ServiceViewer.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/ServiceViewer.java
new file mode 100644
index 0000000..01b23cc
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/ServiceViewer.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.viewers;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+
+public class ServiceViewer extends NamedComponentViewer 
+{                    
+  public ServiceViewer(Composite parent, IEditorPart editorPart)
+  {
+    super(parent, editorPart);    
+  } 
+
+  protected String getHeadingText()
+  {
+    return WSDLEditorPlugin.getWSDLString("_UI_LABEL_SERVICE"); //$NON-NLS-1$
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/TabbedViewer.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/TabbedViewer.java
new file mode 100644
index 0000000..c44135e
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/TabbedViewer.java
@@ -0,0 +1,228 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.viewers;                                     
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CTabFolder;
+import org.eclipse.swt.custom.CTabItem;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.wst.wsdl.WSDLElement;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditor;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.eclipse.wst.wsdl.ui.internal.actions.AddElementAction;
+import org.eclipse.wst.wsdl.ui.internal.util.WSDLEditorUtil;
+import org.eclipse.xsd.XSDComponent;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+public class TabbedViewer implements ISelectionChangedListener
+{                                  
+  protected WSDLEditor editor;
+  protected CTabFolder tabFolder;
+  protected Text documentationField;
+  protected DocumentationListener documentationListener;
+  protected boolean listenerEnabled;
+
+  public TabbedViewer(WSDLEditor editor)
+  {
+    this.editor = editor;                            
+  }     
+
+  public Control createControl(Composite parent)
+  { 
+    tabFolder = new CTabFolder(parent, 0);
+
+    CTabItem tab = new CTabItem(tabFolder, SWT.NONE);
+    tab.setText(WSDLEditorPlugin.getWSDLString("_UI_LABEL_DOCUMENTION")); //$NON-NLS-1$
+    documentationField = new Text(tabFolder, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.WRAP);
+    tab.setControl(documentationField);
+    tabFolder.setSelection(tab);
+    
+    documentationListener = new DocumentationListener();
+    listenerEnabled = true;
+    documentationField.addModifyListener(documentationListener);
+    
+    editor.getSelectionManager().addSelectionChangedListener(this);
+
+    return tabFolder;
+  }  
+
+  public void setInput(Object object)
+  {
+    listenerEnabled = false;
+    documentationListener.setInput(object);
+    documentationField.setEnabled(true);
+    documentationField.setText("");
+    
+    if (object instanceof XSDComponent || !(object instanceof WSDLElement))
+    {
+      documentationField.setEnabled(false);
+      listenerEnabled = true;
+      return;
+    }
+
+    Element element = WSDLEditorUtil.getInstance().getElementForObject(object);
+    if (element != null)
+    {
+      if (element.getLocalName().equals("documentation"))
+      {
+        documentationField.setEnabled(false);
+        listenerEnabled = true;
+        return;
+      }
+
+      Node docNode = getChildNode(element, element.getPrefix(), "documentation");
+      if (docNode != null)
+      {
+        Node textNode = docNode.getFirstChild();
+        if (textNode != null)
+        {                            
+          String textNodeValue = textNode.getNodeValue();
+          documentationField.setText(textNodeValue != null ? textNodeValue : "");          
+        }
+      }
+    }
+    listenerEnabled = true;
+// There appears to be a defect in the model...it doesn't return
+// the documentationElement even though it exists
+//    if (object instanceof WSDLElement)
+//    {
+//      WSDLElement elem = (WSDLElement)object;
+//      System.out.println("elem = " + elem);
+//
+//      if (elem != null)
+//      {
+//        Element doc = elem.getDocumentationElement();
+//        System.out.println("docNode = " + doc);
+//        if (doc != null)
+//        {
+//          Node textNode = doc.getFirstChild();
+//          if (textNode != null)
+//          {
+//            documentationField.setText(textNode.getNodeValue());
+//          }
+//        }
+//      }
+//    }
+  }
+   
+  public void selectionChanged(SelectionChangedEvent event)  
+  {                                 
+    ISelection selection = event.getSelection();
+    if (selection instanceof IStructuredSelection)
+    {
+      Object o = ((IStructuredSelection)selection).getFirstElement();
+      if (o != null)
+      {
+        setInput(o); 
+      }
+    }
+  }   
+
+  public Node getChildNode(Element parent, String prefix, String childName)
+  {
+    NodeList list = null;
+    if (parent != null)
+    {
+      list = parent.getChildNodes();
+    }
+    String targetName;
+    if (prefix != null && prefix.length() > 0)
+    {
+      targetName = prefix + ":" + childName;
+    }
+    else
+    {
+      targetName = childName;
+    }  
+   
+    if (list != null)
+    {
+      // Performance issue perhaps?
+      for (int i = 0; i < list.getLength(); i++)
+      {
+        if (list.item(i) instanceof Element)
+        {
+          if (list.item(i).getNodeName().equals(targetName))
+          {
+            return list.item(i);
+          }
+        }
+      }
+    }
+    return null;
+  }
+
+
+
+  class DocumentationListener implements ModifyListener
+  {
+    Object object;
+    
+    public void setInput(Object object)
+    {
+      this.object = object;
+    }
+
+    /**
+     * @see org.eclipse.swt.events.ModifyListener#modifyText(ModifyEvent)
+     */
+    public void modifyText(ModifyEvent e)
+    {
+      if (listenerEnabled)
+      {
+        Element element = WSDLEditorUtil.getInstance().getElementForObject(object);
+        if (element != null)
+        {
+          Node docNode = getChildNode(element, element.getPrefix(), "documentation");
+          if (docNode != null)
+          {
+            Node textNode = docNode.getFirstChild();
+            if (textNode != null)
+            {
+              textNode.setNodeValue(documentationField.getText());
+            }
+            else
+            {
+              if (documentationField.getText() != null && documentationField.getText().length() > 0)
+              {
+                Document document = docNode.getOwnerDocument();
+                org.w3c.dom.Text newTextNode = document.createTextNode(documentationField.getText());
+                docNode.appendChild(newTextNode);
+              }
+            }
+          }
+          else
+          {
+            AddElementAction action = new AddElementAction(element, element.getPrefix(), "documentation", element.getFirstChild());
+            action.run();
+            Element newDocumentation = action.getNewElement();
+            
+            Document document = newDocumentation.getOwnerDocument();
+            org.w3c.dom.Text newTextNode = document.createTextNode(documentationField.getText());
+            newDocumentation.appendChild(newTextNode);
+          }
+        }
+      }
+    }
+  }
+}
+                      
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/WSDLDetailsViewer.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/WSDLDetailsViewer.java
new file mode 100644
index 0000000..35c8d23
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/WSDLDetailsViewer.java
@@ -0,0 +1,121 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.viewers;
+                                              
+import java.util.HashMap;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.ui.part.PageBook;
+import org.eclipse.wst.wsdl.XSDSchemaExtensibilityElement;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditor;
+import org.eclipse.wst.wsdl.ui.internal.model.WSDLGroupObject;
+import org.eclipse.xsd.XSDSchema;
+
+
+public class WSDLDetailsViewer implements ISelectionChangedListener
+{                                  
+  protected WSDLEditor editor;
+  protected Composite client;  
+  protected PageBook pageBook;
+  protected ExtensibleDetailsViewerProvider detailsViewerProvider;  
+  protected HashMap viewerMap = new HashMap();
+
+  protected final static String EMPTY_VIEWER_KEY = "EMPTY_VIEWER_KEY";
+  protected Viewer emptyViewer;
+
+  public WSDLDetailsViewer(WSDLEditor editor)
+  {
+    this.editor = editor;                            
+    detailsViewerProvider = new ExtensibleDetailsViewerProvider(editor);    
+    editor.getSelectionManager().addSelectionChangedListener(this);
+  }
+  
+  public Control createControl(Composite parent)
+  {
+    client = pageBook = new PageBook(parent, 0);
+	pageBook.setLayoutData(new GridData(GridData.FILL_BOTH));
+    emptyViewer = new EmptyViewer(pageBook, SWT.NONE);
+    viewerMap.put(EMPTY_VIEWER_KEY, emptyViewer);
+    pageBook.showPage(emptyViewer.getControl());
+    return client;
+  }  
+
+  public void setInput(Object object)
+  {                                 
+    try
+    {
+      Object key = detailsViewerProvider.getViewerKey(object);  
+      
+      if (key == null)
+      {
+        key = EMPTY_VIEWER_KEY;
+      }
+      Viewer viewer = (Viewer)viewerMap.get(key);
+      if (viewer == null)
+      {
+        viewer = detailsViewerProvider.createViewer(object, pageBook, editor);
+        if (viewer != null)
+        {
+          viewerMap.put(key, viewer);
+          if (viewer instanceof OperationViewer)
+          {
+
+          }
+        }
+      }
+      
+      if (viewer != null)
+      {
+        if (object instanceof XSDSchemaExtensibilityElement)
+        {
+          XSDSchemaExtensibilityElement schema = (XSDSchemaExtensibilityElement)object;
+          XSDSchema xsdSchema = schema.getSchema();
+          if (xsdSchema != null)
+          {
+            viewer.setInput(xsdSchema.getElement());
+          }
+        }
+        else
+        {
+          viewer.setInput(object);
+        }
+        pageBook.showPage(viewer.getControl());        
+      }
+    }
+    catch (Exception e)
+    {
+    	e.printStackTrace();
+    }
+  }   
+
+  public void selectionChanged(SelectionChangedEvent event)  
+  {                                 
+    ISelection selection = event.getSelection();
+    if (selection instanceof IStructuredSelection)
+    {
+      Object o = ((IStructuredSelection)selection).getFirstElement();
+      if (o instanceof WSDLGroupObject)
+      {
+      	o = ((WSDLGroupObject)o).getDefinition();
+      }
+      setInput(o);       
+    }
+  }   
+}
+                      
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/WSDLDetailsViewerProvider.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/WSDLDetailsViewerProvider.java
new file mode 100644
index 0000000..216af1e
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/WSDLDetailsViewerProvider.java
@@ -0,0 +1,171 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.viewers;
+
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.wst.wsdl.Binding;
+import org.eclipse.wst.wsdl.BindingFault;
+import org.eclipse.wst.wsdl.BindingInput;
+import org.eclipse.wst.wsdl.BindingOperation;
+import org.eclipse.wst.wsdl.BindingOutput;
+import org.eclipse.wst.wsdl.Definition;
+import org.eclipse.wst.wsdl.ExtensibilityElement;
+import org.eclipse.wst.wsdl.Fault;
+import org.eclipse.wst.wsdl.Import;
+import org.eclipse.wst.wsdl.Input;
+import org.eclipse.wst.wsdl.Message;
+import org.eclipse.wst.wsdl.Operation;
+import org.eclipse.wst.wsdl.Output;
+import org.eclipse.wst.wsdl.Part;
+import org.eclipse.wst.wsdl.Port;
+import org.eclipse.wst.wsdl.PortType;
+import org.eclipse.wst.wsdl.Service;
+import org.eclipse.wst.wsdl.ui.internal.extension.IDetailsViewerProvider;
+
+public class WSDLDetailsViewerProvider implements IDetailsViewerProvider
+{
+  public Object getViewerKey(Object modelObject)
+  {                              
+    Object result = null;   
+                        
+    // todo.... use a switch
+    if (modelObject instanceof Message)
+    {
+      result = "message";
+    }
+    else if (modelObject instanceof Binding)
+    {
+      result = "binding";
+    }
+    else if (modelObject instanceof BindingOperation)
+    {
+      result = "bindingOperation";
+    }
+    else if (modelObject instanceof Operation)
+    {
+      result = "operation";
+    }
+    else if (modelObject instanceof Definition)
+    {
+      result = "definition";
+    }
+    else if (modelObject instanceof Part)
+    {
+      result = "part";
+    }
+    else if (modelObject instanceof Port)
+    {
+      result = "port";
+    }
+    else if (modelObject instanceof Input || 
+             modelObject instanceof Output ||
+             modelObject instanceof Fault)
+    {
+      result = "inputOutputFault";
+    }    
+    else if (modelObject instanceof BindingInput || 
+             modelObject instanceof BindingOutput || 
+             modelObject instanceof BindingFault) 
+    {
+      result = "bindingInputOutputFault";
+    }
+    else if (modelObject instanceof PortType)
+    {
+      result = "portType";
+    }
+    else if (modelObject instanceof Service)
+    {
+      result = "service";
+    }
+    else if (modelObject instanceof ExtensibilityElement)
+    {
+      result = "extensibilityElement";
+    }
+    else if (modelObject instanceof Import)
+    {
+      result = "import"; 
+    }
+    else
+    {
+      result = "empty";
+    }
+    return result;
+  }                                                                
+
+
+  public Viewer createViewer(Object modelObject, Composite parent, IEditorPart editorPart)
+  {                                       
+    Viewer viewer = null;
+    Object key = getViewerKey(modelObject);
+    if (key != null)     
+    {
+      if (key.equals("message"))
+      {
+        viewer = new MessageViewer(parent, editorPart); 
+      } 
+      else if (key.equals("binding"))
+      {
+        viewer = new BindingViewer(parent, editorPart);
+      }
+      else if (key.equals("definition"))
+      {
+        viewer = new DefinitionViewer(parent, editorPart); 
+      }
+      else if (key.equals("bindingOperation"))
+      {
+        viewer = new BindingOperationViewer(parent, editorPart);
+      }
+      else if (key.equals("operation"))
+      {
+        viewer = new OperationViewer(parent, editorPart);
+      }
+      else if (key.equals("part"))
+      {
+        viewer = new PartViewer(parent, editorPart);
+      }
+      else if (key.equals("port"))
+      {
+        viewer = new PortViewer(parent, editorPart);
+      }
+      else if (key.equals("inputOutputFault"))
+      {
+        viewer = new InputOutputFaultViewer(parent, editorPart); 
+      }    
+      else if (key.equals("bindingInputOutputFault"))
+      {
+        viewer = new BindingInputOutputFaultViewer(parent, editorPart); 
+      }        
+      else if (key.equals("service"))
+      {
+        viewer = new ServiceViewer(parent, editorPart); 
+      }
+      else if (key.equals("extensibilityElement"))
+      {
+        viewer = new ExtensibilityElementViewer(parent, editorPart); 
+      }  
+      else if (key.equals("portType"))
+      {
+        viewer = new PortTypeViewer(parent, editorPart); 
+      }
+      else if (key.equals("import"))
+      {
+        viewer = new ImportViewer(parent, editorPart);
+      }
+      else
+      {
+        viewer = new EmptyViewer(parent, 0); 
+      }
+    }   
+    return viewer;
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/widgets/AttributesTable.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/widgets/AttributesTable.java
new file mode 100644
index 0000000..26b04cc
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/widgets/AttributesTable.java
@@ -0,0 +1,246 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.viewers.widgets;
+
+import java.text.Collator;
+import java.util.Arrays;
+import java.util.Comparator;
+import java.util.List;
+
+import org.eclipse.jface.viewers.CellEditor;
+import org.eclipse.jface.viewers.ColumnWeightData;
+import org.eclipse.jface.viewers.ICellModifier;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.TableLayout;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TextCellEditor;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.MouseAdapter;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.TableItem;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.views.properties.IPropertyDescriptor;
+import org.eclipse.ui.views.properties.IPropertySource;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
+import org.w3c.dom.Element;
+
+public class AttributesTable extends TableViewer implements ICellModifier
+{                           
+  protected static final String PROPERTY = WSDLEditorPlugin.getWSDLString("_UI_LABEL_PROPERTY"); //$NON-NLS-1$
+  protected static final String VALUE = WSDLEditorPlugin.getWSDLString("_UI_LABEL_VALUE"); //$NON-NLS-1$
+
+  protected IEditorPart editorPart;
+  protected String[] columnProperties = {PROPERTY, VALUE};
+  protected PropertyTableProvider tableProvider = new PropertyTableProvider(this);
+  protected CellEditor textCellEditor;
+  //protected StringComboBoxCellEditor comboCellEditor;
+  protected IPropertySource propertySource;
+  
+
+  public AttributesTable(IEditorPart editorPart, Composite parent)
+  {
+    super(new Table(parent, SWT.FULL_SELECTION | SWT.MULTI | SWT.FLAT));   
+  	this.editorPart = editorPart;               
+    getTable().setLinesVisible(true);
+    getTable().setHeaderVisible(true);  
+    
+    setContentProvider(tableProvider);
+    setLabelProvider(tableProvider);
+    setColumnProperties(columnProperties);
+
+    for (int i = 0; i < columnProperties.length; i++)
+    {
+      TableColumn column = new TableColumn(getTable(), SWT.NONE, i);
+      column.setText(columnProperties[i]);
+      column.setAlignment(SWT.LEFT);
+    }      
+
+    TableLayout layout = new TableLayout(); 
+    ColumnWeightData data = new ColumnWeightData(40, 40, true);
+    layout.addColumnData(data);
+    
+    ColumnWeightData data2 = new ColumnWeightData(80, 80, true);
+    layout.addColumnData(data2);                       
+
+    getTable().setLayout(layout);
+         
+    textCellEditor = new TextCellEditor(getTable());                            
+ 	resetCellEditors();	    
+
+    setCellModifier(this);    
+  }  
+      
+  protected void hookControl(Control control) {
+  	// we need to hook up our own mouse listener first
+  	// so that we can update the cellEditors before
+  	// the 'internal' listener tries to get hold of them
+	Table tableControl = (Table)control;
+	  tableControl.addMouseListener(new MouseAdapter() {
+		  public void mouseDown(MouseEvent e) {
+			updateCellEditors();
+		  }
+	  });	  	  	
+	  super.hookControl(control);
+  }                                
+
+  // ICellModifier
+  public boolean canModify(Object element, String property)
+  {
+    return property.equals(VALUE);
+  }  
+
+  public Object getValue(Object element, String property)
+  {
+    int column = 0;
+    if (property.equals(columnProperties[0]))
+    {
+      column = 0;
+    }
+    else if (property.equals(columnProperties[1]))
+    {
+      column = 1;
+    }    
+    return tableProvider.getColumnText(element, column);
+  }
+
+  public void modify(Object element, String property, Object value)
+  {  
+  	TableItem item = (TableItem)element;
+	IPropertyDescriptor propertyDescriptor = (IPropertyDescriptor)item.getData();
+		
+	// if the new value is the same as the old value, the user has only clicked
+	// on the cell in the course of 'browsing' ... so don't edit the value
+	Object oldValue = getValue(propertyDescriptor, property);	
+	if (value != null && !value.equals(oldValue)) 
+	{	
+		// we assume the value is empty that the attribute should be removed
+		// todo... we probably need to look at this in more detail
+		if (value instanceof String && ((String)value).length() == 0)
+		{
+			value = null;
+		}		  	
+		propertySource.setPropertyValue(propertyDescriptor.getId(), value);   
+		refresh(item.getData());
+	}	  		
+  } 
+   
+   
+  protected void updateCellEditors()
+  {                
+	CellEditor[] cellEditors = new CellEditor[2];
+	cellEditors[0] = textCellEditor;
+	cellEditors[1] = textCellEditor;
+
+	IPropertyDescriptor[] propertyDescriptors = propertySource.getPropertyDescriptors();
+	int index = getTable().getSelectionIndex();
+	if (index >= 0 && index < propertyDescriptors.length)
+	{
+	  CellEditor[] oldCellEditors = getCellEditors();
+	  CellEditor oldCellEditor = (oldCellEditors.length > 1) ? oldCellEditors[1] : null;
+	  if (oldCellEditor != null && oldCellEditor != textCellEditor)
+	  {
+	   oldCellEditor.deactivate();
+	   oldCellEditor.dispose();
+	  }
+	  cellEditors[1] = propertyDescriptors[index].createPropertyEditor(getTable());     
+	}  
+	setCellEditors(cellEditors);     
+  }
+                 
+
+  public String[] getStringArray(List list)
+  {
+    String[] result = new String[list.size()];
+    for (int i = 0; i < result.length; i++)
+    {
+      result[i] = (String)list.get(i);
+    }
+    return result;
+  }
+                                   
+  protected void resetCellEditors()
+  {
+	CellEditor[] cellEditors = new CellEditor[2];
+	cellEditors[0] = textCellEditor;
+	cellEditors[1] = textCellEditor;
+	setCellEditors(cellEditors);  
+  }
+
+
+  class PropertyTableProvider extends LabelProvider implements ITableLabelProvider, IStructuredContentProvider
+  {                  
+    protected TableViewer viewer;
+
+    PropertyTableProvider(TableViewer viewer)
+    {
+      this.viewer = viewer;
+    }
+
+    public void inputChanged(Viewer viewer, Object oldInput, Object newInput)  
+    {
+	  resetCellEditors();		    	
+      if (newInput instanceof IDOMElement)
+      {      
+	      propertySource = new ExtensiblePropertySource(editorPart, (IDOMElement)newInput);
+      } 
+      else if (newInput instanceof Element)
+      {
+      	propertySource = new ReadOnlyPropertySource(editorPart, (Element)newInput);
+      }
+      else
+      {
+      	propertySource = null;
+      }   	
+    }
+
+    public Image getColumnImage(Object element, int columnIndex)
+    {  
+      return null;
+    }      
+
+    public String getColumnText(Object o, int columnIndex)  
+    { 
+	  IPropertyDescriptor propertyDescriptor = (IPropertyDescriptor)o;	
+      return (columnIndex == 0) ? propertyDescriptor.getId().toString() : propertySource.getPropertyValue(propertyDescriptor.getId()).toString();
+    }  
+
+    public Object[] getElements(Object o)
+    {         
+   	  Object[] result = propertySource.getPropertyDescriptors();
+   	  // For some strange reson the ViewerSorter doesn't seem to be working for this table
+   	  // As a workaround we sort them in this method before returning them to the viewer
+   	  if (result.length > 0)
+   	  {
+   	  	Arrays.sort(result, new InternalComparator());
+   	  }
+   	  return result;
+    }
+  }
+  
+  class InternalComparator implements Comparator
+  {
+	public int compare(Object e1, Object e2) 
+	{
+		IPropertyDescriptor p1 = (IPropertyDescriptor)e1;
+		IPropertyDescriptor p2 = (IPropertyDescriptor)e2;
+		return Collator.getInstance().compare(p1.getDisplayName(), p2.getDisplayName());
+	}  	
+  }
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/widgets/ComponentNameComboHelper.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/widgets/ComponentNameComboHelper.java
new file mode 100644
index 0000000..224ce56
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/widgets/ComponentNameComboHelper.java
@@ -0,0 +1,69 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.viewers.widgets;
+
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CCombo;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.wst.wsdl.Definition;
+import org.eclipse.wst.wsdl.WSDLElement;
+import org.eclipse.wst.wsdl.ui.internal.util.ComponentReferenceUtil;
+import org.w3c.dom.Element;
+
+
+// A convenience class
+//
+public abstract class ComponentNameComboHelper
+{                      
+  protected CCombo componentNameCombo;
+
+  public ComponentNameComboHelper(CCombo componentNameCombo)
+  {
+    this.componentNameCombo = componentNameCombo;
+  }       
+
+  public void update(Object input)
+  {                                   
+    Element element = ((WSDLElement)input).getElement();
+    componentNameCombo.removeAll();
+    String value = element.getAttribute(getAttributeName());
+    componentNameCombo.setText(value != null ? value : "");
+
+    if (input instanceof WSDLElement)
+    {
+      Definition definition = ((WSDLElement)input).getEnclosingDefinition();
+      ComponentReferenceUtil componentReferenceUtil = new ComponentReferenceUtil(definition);
+      java.util.List list = getComponentNameList(componentReferenceUtil);
+      for (Iterator iter = list.iterator(); iter.hasNext();)
+      {
+        componentNameCombo.add((String)iter.next());
+      }
+    }
+  }  
+
+  public void handleEventHelper(Element element, Event event)
+  {                        
+    if (event.type == SWT.Modify)
+    {  
+      if (event.widget == componentNameCombo)
+      {
+        element.setAttribute(getAttributeName(), componentNameCombo.getText());
+      }
+    }
+  }
+
+  protected abstract List getComponentNameList(ComponentReferenceUtil util);
+
+  protected abstract String getAttributeName();
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/widgets/ComponentsSection.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/widgets/ComponentsSection.java
new file mode 100644
index 0000000..57225be
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/widgets/ComponentsSection.java
@@ -0,0 +1,98 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.viewers.widgets;
+
+import org.eclipse.swt.custom.CCombo;
+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.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.eclipse.wst.wsdl.ui.internal.util.flatui.FlatPageSection;
+import org.eclipse.wst.wsdl.ui.internal.util.flatui.WidgetFactory;
+import org.eclipse.wst.wsdl.ui.internal.util.ui.FlatViewUtility;
+
+public class ComponentsSection extends FlatPageSection
+{
+  protected CCombo namesCombo;
+  protected Button newButton;
+  protected Button importButton;
+  protected String title;
+    
+  public ComponentsSection(Composite parent, FlatViewUtility flatViewUtility, String title)
+  {                            
+    this(parent, title);
+
+    WidgetFactory factory = new WidgetFactory();
+    factory.setClientAreaColor(flatViewUtility.getBackgroundColor());
+
+    Control section = createControl(this, factory);
+    setContent(section);
+
+    GridData gridData = new GridData();
+    gridData.horizontalAlignment = GridData.FILL;
+    gridData.verticalAlignment = GridData.FILL;
+    gridData.grabExcessHorizontalSpace = true;
+    setLayoutData(gridData);        
+  }
+
+
+  public ComponentsSection(Composite parent, String title)
+  {
+    super(parent);
+    setCollapsable(true);
+    setHeaderText(title);
+    setAddSeparator(true);                                                   
+  }         
+
+  public CCombo getNamesCombo()
+  {
+    return namesCombo;
+  }
+  
+  public Button getNewMessageButton()
+  {
+     return newButton;
+  }
+
+  public Button getImportMessageButton()
+  {
+     return importButton;
+  }
+
+  /*
+   * @see FlatPageSection#createClient(Composite, WidgetFactory)
+   */
+  public Composite createClient(Composite parent, WidgetFactory factory)
+  {
+    FlatViewUtility flatViewUtility = new FlatViewUtility(true);
+
+    Composite client = flatViewUtility.createComposite(parent, 1);
+
+    namesCombo = flatViewUtility.createCComboBox(client);
+                  
+    Composite buttonComposite = flatViewUtility.createComposite(client, 3, true);
+    GridLayout gridLayout = (GridLayout)buttonComposite.getLayout();
+    gridLayout.marginWidth = 3;
+    gridLayout.marginHeight = 3;
+    gridLayout.makeColumnsEqualWidth = true;
+    
+    Label filler = flatViewUtility.createHorizontalFiller(buttonComposite, 1);
+    GridData gd = (GridData)filler.getLayoutData();
+    gd.grabExcessHorizontalSpace = true;
+    newButton = flatViewUtility.createPushButton(buttonComposite, WSDLEditorPlugin.getWSDLString("_UI_BUTTON_NEW")); //$NON-NLS-1$
+    importButton = flatViewUtility.createPushButton(buttonComposite, WSDLEditorPlugin.getWSDLString("_UI_BUTTON_IMPORT")); //$NON-NLS-1$
+
+    return client;
+  }  
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/widgets/ExtensiblePropertySource.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/widgets/ExtensiblePropertySource.java
new file mode 100644
index 0000000..b6e6f30
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/widgets/ExtensiblePropertySource.java
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.viewers.widgets;
+
+
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.views.properties.IPropertyDescriptor;
+import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.eclipse.wst.wsdl.ui.internal.properties.section.IPropertyDescriptorProvider;
+import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
+import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
+import org.eclipse.wst.xml.ui.internal.properties.XMLPropertySource;
+import org.w3c.dom.Element;
+
+public class ExtensiblePropertySource extends XMLPropertySource
+{
+	protected IEditorPart editorPart;
+	private INodeNotifier nodeNotifier;
+			
+	public ExtensiblePropertySource(IEditorPart editorPart, INodeNotifier target) 
+	{
+		super(target);
+		this.editorPart = editorPart;
+		this.nodeNotifier = target;
+  	}
+  	
+  	
+  	    
+	protected IPropertyDescriptor createPropertyDescriptor(CMAttributeDeclaration attrDecl) 
+	{
+		IPropertyDescriptor result = null;		
+		CMDocument cmDocument = (CMDocument)attrDecl.getProperty("CMDocument");
+		if (cmDocument != null)
+		{
+			String namespaceURI = (String)cmDocument.getProperty("http://org.eclipse.wst/cm/properties/targetNamespaceURI");   
+			if (namespaceURI != null)
+			{
+				IPropertyDescriptorProvider provider = (IPropertyDescriptorProvider)WSDLEditorPlugin.getInstance().getPropertyDescriptorProviderRegistry().getProperty(namespaceURI, "");
+				if (provider != null)
+				{
+				  result = provider.getPropertyDescriptor(editorPart, (Element) nodeNotifier, namespaceURI, attrDecl.getNodeName());
+				}
+			}
+		}
+		if (result == null)
+		{
+		  result = super.createPropertyDescriptor(attrDecl);
+		}
+		return result;			
+	}
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/widgets/InvokeDialogButton.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/widgets/InvokeDialogButton.java
new file mode 100644
index 0000000..5b1906b
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/widgets/InvokeDialogButton.java
@@ -0,0 +1,95 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.viewers.widgets;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+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.eclipse.ui.IEditorPart;
+import org.eclipse.wst.wsdl.Part;
+import org.eclipse.wst.wsdl.ui.internal.dialogs.InvokeSetDialog;
+
+// instead of using a Button directly (which causes sizing/layout problems)
+// we use this class
+public class InvokeDialogButton extends Composite implements SelectionListener
+{ 
+  protected Button button;
+  protected Object input;
+  protected Composite parent;
+  protected IEditorPart editorPart;
+  protected String kind;
+                                             
+  public InvokeDialogButton(Composite parent, Object input)
+  {
+    super(parent, SWT.NONE);
+    this.parent = parent;
+    this.input = input;
+    GridData gd = new GridData();
+    gd.grabExcessHorizontalSpace = false;
+    gd.grabExcessVerticalSpace = false;
+    setLayoutData(gd);
+    GridLayout layout = new GridLayout();
+    layout.marginWidth = 0;
+    layout.marginHeight = 0;
+    setLayout(layout);
+
+    button = new Button(this, SWT.NONE);
+    gd = new GridData();
+    gd.grabExcessHorizontalSpace = false;
+    gd.heightHint = 17;
+    gd.widthHint = 24;
+    button.setLayoutData(gd);
+    button.setText("...");
+    button.addSelectionListener(this);
+  }                         
+
+  public Button getButton() 
+  {
+    return button;
+  }
+  
+  public void setInput(Object input)
+  {
+    this.input = input;
+  }
+
+  public void setEditor(IEditorPart editorPart)
+  {
+    this.editorPart = editorPart; 
+  }
+  
+  public void setReferenceKind(String kind)
+  {
+    this.kind = kind;
+  }
+  
+  public void widgetSelected(SelectionEvent e)
+  {
+    if (e.widget == button)
+    {
+      InvokeSetDialog dialog = new InvokeSetDialog();
+      if (input instanceof Part)
+      {
+        dialog.setReferenceKind(kind);
+      }
+      dialog.run(input, editorPart);
+    }
+  }
+
+  public void widgetDefaultSelected(SelectionEvent e)
+  {
+    
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/widgets/ReadOnlyPropertySource.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/widgets/ReadOnlyPropertySource.java
new file mode 100644
index 0000000..7f48c94
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/viewers/widgets/ReadOnlyPropertySource.java
@@ -0,0 +1,75 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.viewers.widgets;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.views.properties.IPropertyDescriptor;
+import org.eclipse.ui.views.properties.IPropertySource;
+import org.eclipse.ui.views.properties.PropertyDescriptor;
+import org.w3c.dom.Attr;
+import org.w3c.dom.Element;
+import org.w3c.dom.NamedNodeMap;
+
+public class ReadOnlyPropertySource implements IPropertySource
+{
+    protected Element element;
+
+    public ReadOnlyPropertySource(IEditorPart editPart, Element element)
+    {
+        this.element = element;
+    }
+
+    public Object getEditableValue()
+    {
+        return null;
+    }
+
+    public IPropertyDescriptor[] getPropertyDescriptors()
+    {
+        List list = new ArrayList();
+        NamedNodeMap map = element.getAttributes();
+        int mapLength = map.getLength();
+        for (int i = 0; i < mapLength; i++)
+        {
+            Attr attr = (Attr) map.item(i);
+            list.add(new PropertyDescriptor(attr.getName(), attr.getName()));
+        }
+        IPropertyDescriptor[] result = new IPropertyDescriptor[list.size()];
+        list.toArray(result);
+        return result;
+    }
+
+    public Object getPropertyValue(Object id)
+    {
+        Object result = null;
+        if (id instanceof String)
+        {
+            result = element.getAttribute((String) id);
+        }
+        return result != null ? result : "";
+    }
+
+    public boolean isPropertySet(Object id)
+    {
+        return false;
+    }
+
+    public void resetPropertyValue(Object id)
+    {
+    }
+
+    public void setPropertyValue(Object id, Object value)
+    {
+    }
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/visitor/BaseRenamer.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/visitor/BaseRenamer.java
similarity index 95%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/visitor/BaseRenamer.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/visitor/BaseRenamer.java
index f6fc679..f92d942 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/visitor/BaseRenamer.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/visitor/BaseRenamer.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/visitor/BindingRenamer.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/visitor/BindingRenamer.java
similarity index 95%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/visitor/BindingRenamer.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/visitor/BindingRenamer.java
index 9199376..b85cf04 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/visitor/BindingRenamer.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/visitor/BindingRenamer.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/visitor/MessageRenamer.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/visitor/MessageRenamer.java
similarity index 96%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/visitor/MessageRenamer.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/visitor/MessageRenamer.java
index eb62a9e..75cf21e 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/visitor/MessageRenamer.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/visitor/MessageRenamer.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/visitor/PortTypeRenamer.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/visitor/PortTypeRenamer.java
similarity index 95%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/visitor/PortTypeRenamer.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/visitor/PortTypeRenamer.java
index c88c7c8..da4d029 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/visitor/PortTypeRenamer.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/visitor/PortTypeRenamer.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/visitor/WSDLVisitor.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/visitor/WSDLVisitor.java
similarity index 98%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/visitor/WSDLVisitor.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/visitor/WSDLVisitor.java
index f868274..8100d4e 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/visitor/WSDLVisitor.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/visitor/WSDLVisitor.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/dialogs/NewComponentDialog.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/widgets/NewComponentDialog.java
similarity index 97%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/dialogs/NewComponentDialog.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/widgets/NewComponentDialog.java
index 612aa8d..cbb04c3 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/dialogs/NewComponentDialog.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/widgets/NewComponentDialog.java
@@ -1,14 +1,14 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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.dialogs;
+package org.eclipse.wst.wsdl.ui.internal.widgets;
 
 import java.util.Iterator;
 import java.util.List;
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/widgets/NewComponentWithChildDialog.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/widgets/NewComponentWithChildDialog.java
new file mode 100644
index 0000000..4c50919
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/widgets/NewComponentWithChildDialog.java
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.widgets;
+
+import java.util.List;
+
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+
+
+/*
+ * This class extends NewComponentDialog to allow additional widgets.  More
+ * specifically, the 'create sub-components' checkbox
+ */
+public class NewComponentWithChildDialog extends NewComponentDialog {
+	protected Button createMessageCheckBox;
+	private boolean createMessageBoolean;
+
+	public NewComponentWithChildDialog(Shell parentShell, String title, String defaultName) {
+		super(parentShell, title, defaultName);
+	}
+	
+	public NewComponentWithChildDialog(Shell parentShell, String title, String defaultName, List usedNames) {
+		super(parentShell, title, defaultName, usedNames);
+	}
+	
+	protected void createExtendedContent(Composite parent) {
+		Composite child = new Composite (parent, SWT.NONE);
+	    GridLayout layout = new GridLayout();
+	    layout.numColumns = 1;
+	    layout.marginWidth = 0;
+	    layout.marginHeight = 0;
+	    child.setLayout(layout);
+		
+	    createMessageCheckBox = new Button(child, SWT.CHECK);
+	    createMessageCheckBox.setSelection(true);
+	    createMessageCheckBox.setText(WSDLEditorPlugin.getWSDLString("_UI_CREATE_MESSAGE_CHECKBOX_LABEL"));
+	}
+
+	public boolean createSubComponents() {
+		return createMessageBoolean;
+	}
+	
+	protected void buttonPressed(int buttonId) {
+		if (buttonId == IDialogConstants.OK_ID) {
+			createMessageBoolean = createMessageCheckBox.getSelection();
+		}
+		super.buttonPressed(buttonId);
+	}
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/dialogs/ProtocolComponentControl.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/widgets/ProtocolComponentControl.java
similarity index 97%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/dialogs/ProtocolComponentControl.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/widgets/ProtocolComponentControl.java
index 9befb25..53c9905 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/dialogs/ProtocolComponentControl.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/widgets/ProtocolComponentControl.java
@@ -1,14 +1,14 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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.dialogs;
+package org.eclipse.wst.wsdl.ui.internal.widgets;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -34,7 +34,7 @@
 import org.eclipse.wst.wsdl.internal.generator.ContentGenerator;
 import org.eclipse.wst.wsdl.internal.generator.extension.ContentGeneratorExtensionFactoryRegistry;
 import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
-import org.eclipse.wst.wsdl.ui.internal.wizards.ContentGeneratorOptionsPage;
+import org.eclipse.wst.wsdl.ui.internal.contentgenerator.ui.ContentGeneratorOptionsPage;
 
 public abstract class ProtocolComponentControl extends Composite implements SelectionListener, ModifyListener
 {
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/wizards/BindingWizard.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/wizards/BindingWizard.java
similarity index 95%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/wizards/BindingWizard.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/wizards/BindingWizard.java
index 912b778..087a051 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/wizards/BindingWizard.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/wizards/BindingWizard.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
@@ -26,9 +26,12 @@
 import org.eclipse.wst.wsdl.Definition;
 import org.eclipse.wst.wsdl.internal.generator.BindingGenerator;
 import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
-import org.eclipse.wst.wsdl.ui.internal.dialogs.ProtocolComponentControl;
+import org.eclipse.wst.wsdl.ui.internal.contentgenerator.ui.ContentGeneratorOptionsPage;
+import org.eclipse.wst.wsdl.ui.internal.contentgenerator.ui.HttpBindingOptionsPage;
+import org.eclipse.wst.wsdl.ui.internal.contentgenerator.ui.SoapBindingOptionsPage;
 import org.eclipse.wst.wsdl.ui.internal.util.ComponentReferenceUtil;
 import org.eclipse.wst.wsdl.ui.internal.util.NameUtil;
+import org.eclipse.wst.wsdl.ui.internal.widgets.ProtocolComponentControl;
 import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
 import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
 import org.w3c.dom.Document;
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/wizards/NamespaceTable.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/wizards/NamespaceTable.java
similarity index 99%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/wizards/NamespaceTable.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/wizards/NamespaceTable.java
index a6f7435..1ea47f6 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/wizards/NamespaceTable.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/wizards/NamespaceTable.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/wizards/NewWSDLWizard.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/wizards/NewWSDLWizard.java
similarity index 95%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/wizards/NewWSDLWizard.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/wizards/NewWSDLWizard.java
index a992884..8c73cbe 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/wizards/NewWSDLWizard.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/wizards/NewWSDLWizard.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
@@ -18,7 +18,6 @@
 import javax.xml.namespace.QName;
 
 import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Preferences;
@@ -29,12 +28,10 @@
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.wizard.Wizard;
 import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IEditorDescriptor;
 import org.eclipse.ui.INewWizard;
 import org.eclipse.ui.IWorkbench;
 import org.eclipse.ui.IWorkbenchWindow;
 import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.part.FileEditorInput;
 import org.eclipse.wst.common.ui.internal.UIPlugin;
 import org.eclipse.wst.sse.core.internal.encoding.CommonEncodingPreferenceNames;
@@ -48,7 +45,7 @@
 import org.eclipse.wst.wsdl.internal.generator.BindingGenerator;
 import org.eclipse.wst.wsdl.internal.impl.DefinitionImpl;
 import org.eclipse.wst.wsdl.internal.impl.WSDLFactoryImpl;
-import org.eclipse.wst.wsdl.ui.internal.InternalWSDLMultiPageEditor;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditor;
 import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
 import org.eclipse.wst.wsdl.ui.internal.util.ComponentReferenceUtil;
 import org.eclipse.wst.wsdl.ui.internal.util.CreateWSDLElementHelper;
@@ -222,7 +219,7 @@
 		this.selection = selection;
 
 		// Need new icon
-		this.setDefaultPageImageDescriptor(ImageDescriptor.createFromFile(InternalWSDLMultiPageEditor.class, "icons/new_wsdl_wiz.gif"));
+		this.setDefaultPageImageDescriptor(ImageDescriptor.createFromFile(WSDLEditor.class, "icons/new_wsdl_wiz.gif"));
 		this.setWindowTitle(WSDLEditorPlugin.getWSDLString("_UI_TITLE_NEW_WSDL_FILE")); //$NON-NLS-1$
 	}
 
@@ -253,20 +250,13 @@
 			Display.getDefault().asyncExec(new Runnable() {
 				public void run() {
 					try {
-						String editorId = null;
-						IEditorDescriptor editor = PlatformUI.getWorkbench().getEditorRegistry().getDefaultEditor(iFile.getLocation().toOSString(), iFile.getContentDescription().getContentType());
-						if (editor != null) {
-							editorId = editor.getId();
-						}
-						workbenchWindow.getActivePage().openEditor(new FileEditorInput(iFile), editorId);
+						workbenchWindow.getActivePage().openEditor(new FileEditorInput(iFile), "org.eclipse.wst.wsdl.ui.internal.WSDLEditor");
 					}
 					catch (PartInitException ex) {
 						// B2BGUIPlugin.getPlugin().getMsgLogger().write("Exception
 						// encountered when attempting to open file: " + iFile
 						// + "\n\n" + ex);
 					}
-					catch (CoreException ex) {
-					}
 				}
 			});
 		}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/wizards/PortWizard.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/wizards/PortWizard.java
similarity index 94%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/wizards/PortWizard.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/wizards/PortWizard.java
index 49b3bcb..4ccf3c6 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/wizards/PortWizard.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/wizards/PortWizard.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
@@ -21,9 +21,11 @@
 import org.eclipse.wst.wsdl.Service;
 import org.eclipse.wst.wsdl.internal.generator.PortGenerator;
 import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
-import org.eclipse.wst.wsdl.ui.internal.dialogs.ProtocolComponentControl;
+import org.eclipse.wst.wsdl.ui.internal.contentgenerator.ui.ContentGeneratorOptionsPage;
+import org.eclipse.wst.wsdl.ui.internal.contentgenerator.ui.SoapBindingOptionsPage;
 import org.eclipse.wst.wsdl.ui.internal.util.ComponentReferenceUtil;
 import org.eclipse.wst.wsdl.ui.internal.util.NameUtil;
+import org.eclipse.wst.wsdl.ui.internal.widgets.ProtocolComponentControl;
 
 public class PortWizard extends Wizard
 {
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/wizards/WSDLNewFileOptionsPage.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/wizards/WSDLNewFileOptionsPage.java
similarity index 99%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/wizards/WSDLNewFileOptionsPage.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/wizards/WSDLNewFileOptionsPage.java
index 8e22b4b..ba906c0 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/wizards/WSDLNewFileOptionsPage.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/wizards/WSDLNewFileOptionsPage.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/wizards/WSDLNewFilePage.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/wizards/WSDLNewFilePage.java
similarity index 98%
rename from bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/wizards/WSDLNewFilePage.java
rename to bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/wizards/WSDLNewFilePage.java
index 84d676f..c506447 100644
--- a/bundles/org.eclipse.wst.wsdl.ui/src-asd-wsdl11/org/eclipse/wst/wsdl/ui/internal/wizards/WSDLNewFilePage.java
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/wizards/WSDLNewFilePage.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/XSDDetailsViewerProvider.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/XSDDetailsViewerProvider.java
new file mode 100644
index 0000000..073604d
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/XSDDetailsViewerProvider.java
@@ -0,0 +1,284 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.xsd;
+
+
+
+public class XSDDetailsViewerProvider // implements IDetailsViewerProvider
+{
+//  public Object getViewerKey(Object modelObject)
+//  {                              
+//    Object result = null;   
+//
+//    if (modelObject instanceof XSDConcreteComponent)
+//    {
+//      Element input = ((XSDConcreteComponent)modelObject).getElement();
+//
+//      if (inputEquals(input, XSDConstants.ELEMENT_ELEMENT_TAG, false))
+//      {
+//        result = "element";
+//      }
+//      else if (inputEquals(input, XSDConstants.ELEMENT_ELEMENT_TAG, true))
+//      {
+//        result = "elementRef";
+//      }
+//      else if (inputEquals(input, XSDConstants.SEQUENCE_ELEMENT_TAG, false) ||
+//                inputEquals(input, XSDConstants.CHOICE_ELEMENT_TAG, false) ||
+//                inputEquals(input, XSDConstants.ALL_ELEMENT_TAG, false))
+//      {
+//        result = "sequenceChoiceAll";
+//      }
+//      else if (inputEquals(input, XSDConstants.ATTRIBUTE_ELEMENT_TAG, false))
+//      {
+//        result = "attribute";
+//      }
+//      else if (inputEquals(input, XSDConstants.ATTRIBUTE_ELEMENT_TAG, true))
+//      {
+//        result = "attributeRef";
+//      }
+//      else if (inputEquals(input, XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG, false))
+//      {
+//        result = "attributeGroup";
+//      }
+//      else if (inputEquals(input, XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG, true))
+//      {
+//        result = "attributeGroupRef";
+//      }
+//      else if (inputEquals(input, XSDConstants.NOTATION_ELEMENT_TAG, false))
+//      {
+//        result = "notation";
+//      }
+//      else if (inputEquals(input, XSDConstants.GROUP_ELEMENT_TAG, false))
+//      {
+//        result = "group";
+//      }
+//      else if (inputEquals(input, XSDConstants.GROUP_ELEMENT_TAG, true))
+//      {
+//        result = "groupRef";
+//      }
+//      else if (inputEquals(input, XSDConstants.SCHEMA_ELEMENT_TAG, false))
+//      {
+//        result = "schema";
+//      }
+//      else if (inputEquals(input, XSDConstants.COMPLEXTYPE_ELEMENT_TAG, false))
+//      {
+//        result = "complexType";
+//      }
+//      else if (inputEquals(input, XSDConstants.DOCUMENTATION_ELEMENT_TAG, false))
+//      {
+//        result = "documentation";
+//      }
+//      else if (inputEquals(input, XSDConstants.APPINFO_ELEMENT_TAG, false))
+//      {
+//        result = "appInfo";
+//      }
+//      else if (inputEquals(input, XSDConstants.SIMPLECONTENT_ELEMENT_TAG, false))
+//      {
+//        if (input != null && input instanceof Element)
+//        {
+//          Element parentElement = (Element)input;
+//          XSDDOMHelper xsdDOMHelper = new XSDDOMHelper();
+//          Element derivedByNode = xsdDOMHelper.getDerivedByElement(parentElement);
+//          if (derivedByNode != null)
+//          {
+//            if (inputEquals(derivedByNode, XSDConstants.RESTRICTION_ELEMENT_TAG, false))
+//            {
+//              result = "simpleContent";
+//            }
+//            else if (inputEquals(derivedByNode, XSDConstants.EXTENSION_ELEMENT_TAG, false))
+//            {
+//              result = "simpleContent";
+//            }
+//          }
+//          else
+//          {
+//            result = "xsd";
+//          }
+//        }
+//      }
+//      else if (inputEquals(input, XSDConstants.COMPLEXCONTENT_ELEMENT_TAG, false))
+//      {
+//        if (input != null && input instanceof Element)
+//        {
+//          Element parentElement = (Element)input;
+//          XSDDOMHelper xsdDOMHelper = new XSDDOMHelper();
+//          Element derivedByNode = xsdDOMHelper.getDerivedByElement(parentElement);
+//          if (derivedByNode != null)
+//          {
+//            result = "simpleContent";
+//          }
+//          else
+//          {
+//            result = "xsd";
+//          }
+//        }
+//      }
+//      else if (inputEquals(input, XSDConstants.INCLUDE_ELEMENT_TAG, false))
+//      {
+//        result = "includeXSD";
+//      }
+//      else if (inputEquals(input, XSDConstants.IMPORT_ELEMENT_TAG, false))
+//      {
+//        result = "importXSD";
+//      }
+//      else if (inputEquals(input, XSDConstants.REDEFINE_ELEMENT_TAG, false))
+//      {
+//        result = "redefine";
+//      }
+//      else if (inputEquals(input, XSDConstants.LIST_ELEMENT_TAG, false))
+//      {
+//        result = "simpleBase";
+//      }
+//      else if (inputEquals(input, XSDConstants.UNION_ELEMENT_TAG, false))
+//      {
+//        result = "simpleBase";
+//      }
+//      else if (inputEquals(input, XSDConstants.RESTRICTION_ELEMENT_TAG, false))
+//      {
+//        result = getKeyForRestrictWindow(input);
+//      }
+//      else if (XSDDOMHelper.isFacet(input))
+//      {
+//        if (input != null && input instanceof Element)
+//        {
+//          Node parentElement = ((Element)input).getParentNode();
+//          if (inputEquals(parentElement, XSDConstants.RESTRICTION_ELEMENT_TAG, false))
+//          {
+//            result = getKeyForRestrictWindow(input);
+//          } 
+//        }
+//      }
+//      else if (inputEquals(input, XSDConstants.EXTENSION_ELEMENT_TAG, false))
+//      {
+//        if (input != null && input instanceof Element)
+//        {
+//          Node parentElement = ((Element)input).getParentNode();
+//          if (inputEquals(parentElement, XSDConstants.COMPLEXCONTENT_ELEMENT_TAG, false))
+//          {
+//            result = "simpleContent";
+//          }
+//          else if (inputEquals(parentElement, XSDConstants.SIMPLECONTENT_ELEMENT_TAG, false))
+//          {
+//            result = "simpleContent";
+//          }
+//          else
+//          {
+//            result = "xsd";            
+//          }
+//        }
+//      }
+//      else if (inputEquals(input, XSDConstants.PATTERN_ELEMENT_TAG, false))
+//      {
+//        result = "pattern";
+//      }
+//      else if (inputEquals(input, XSDConstants.ENUMERATION_ELEMENT_TAG, false))
+//      {
+//        result = "enum";
+//      }
+//      else if (inputEquals(input, XSDConstants.ANY_ELEMENT_TAG, false))
+//      {
+//        result = "anyElement";
+//      }
+//      else if (inputEquals(input, XSDConstants.ANYATTRIBUTE_ELEMENT_TAG, false))
+//      {
+//        result = "anyAttribute";
+//      }
+//      else if (inputEquals(input, XSDConstants.UNIQUE_ELEMENT_TAG, false))
+//      {
+//        result = "unique";
+//      }
+//      else if (inputEquals(input, XSDConstants.KEYREF_ELEMENT_TAG, false))
+//      {
+//        result = "keyRef";
+//      }
+//      else if (inputEquals(input, XSDConstants.SELECTOR_ELEMENT_TAG, false))
+//      {
+//        result = "selector";
+//      }
+//      else if (inputEquals(input, XSDConstants.FIELD_ELEMENT_TAG, false))
+//      {
+//        result = "field";
+//      }
+//      else if (inputEquals(input, XSDConstants.KEY_ELEMENT_TAG, false))
+//      {
+//        result = "key";
+//      }
+//      else
+//      {
+//        result = "xsd";
+//      }      
+//    }  
+//    else if (modelObject instanceof org.eclipse.wst.wsdl.XSDSchemaExtensibilityElement)
+//    {
+//      result = "schema";
+//    }
+//
+//    return result;
+//  }                                                                
+//
+//
+//  public Viewer createViewer(Object modelObject, Composite parent, IEditorPart editorPart)
+//  {                                       
+//    Viewer viewer = null;
+//
+//    
+//    DesignViewer designViewer = new DesignViewer(editorPart);
+//    designViewer.setControl(parent);    
+//    if (modelObject instanceof XSDConcreteComponent)
+//    {
+//      Element elem = ((XSDConcreteComponent)modelObject).getElement();
+//      viewer = designViewer.createViewer(elem);
+////TODO port
+////      ((BaseWindow)viewer).setModelObject(modelObject);
+////      viewer.setInput(elem);
+//    }
+//    else if (modelObject instanceof org.eclipse.wst.wsdl.XSDSchemaExtensibilityElement)
+//    {
+//      XSDSchemaExtensibilityElement schema = (XSDSchemaExtensibilityElement)modelObject;
+//      XSDSchema xsdSchema = schema.getSchema();
+//      Element elem = xsdSchema.getElement();
+//      viewer = designViewer.createViewer(elem);
+////TODO port
+////      ((BaseWindow)viewer).setModelObject(modelObject);
+////      viewer.setInput(elem);      
+//    }
+//    return viewer;
+//  }
+//
+//  protected boolean inputEquals(Object input, String tagname, boolean isRef)
+//  {
+//    return XSDDOMHelper.inputEquals(input, tagname, isRef);
+//  }
+//
+//  protected String getKeyForRestrictWindow(Object input)
+//  {
+//    // special case where SimpleType restriction is different than SimpleContent restriction
+//
+//    if (input != null && input instanceof Element)
+//    {
+//      Node parentElement = ((Element)input).getParentNode();
+//      if (inputEquals(parentElement, XSDConstants.SIMPLETYPE_ELEMENT_TAG, false))
+//      {
+//        return "simpleRestrict";
+//      }
+//      else if (inputEquals(parentElement, XSDConstants.SIMPLECONTENT_ELEMENT_TAG, false))
+//      {
+//        return "simpleRestrict";
+//      }
+//      else if (inputEquals(parentElement, XSDConstants.COMPLEXCONTENT_ELEMENT_TAG, false))
+//      {
+//        return "simpleContent";
+//      }
+//    }
+//    return "xsd";
+//  }
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/XSDExtension.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/XSDExtension.java
new file mode 100644
index 0000000..fa840f5
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/XSDExtension.java
@@ -0,0 +1,140 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.xsd;
+                                           
+
+// import org.eclipse.emf.edit.provider.ItemProvider;
+// import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
+// import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.wst.wsdl.XSDSchemaExtensibilityElement;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditor;
+import org.eclipse.wst.wsdl.ui.internal.extension.WSDLEditorExtension;
+import org.eclipse.wst.wsdl.ui.internal.xsd.actions.DeleteAction;
+import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
+import org.eclipse.wst.xsd.ui.internal.graph.model.Category;
+import org.eclipse.wst.xsd.ui.internal.provider.CategoryAdapter;
+import org.eclipse.wst.xsd.ui.internal.provider.XSDAdapterFactoryLabelProvider;
+import org.eclipse.wst.xsd.ui.internal.provider.XSDModelAdapterFactoryImpl;
+import org.eclipse.xsd.XSDConcreteComponent;
+
+
+//
+//
+public class XSDExtension implements WSDLEditorExtension
+{
+  XSDModelAdapterFactoryImpl xsdModelAdapterFactory;
+  XSDAdapterFactoryLabelProvider adapterFactoryLabelProvider;
+  
+  public XSDExtension()
+  {
+    xsdModelAdapterFactory = new XSDModelAdapterFactoryImpl();
+    adapterFactoryLabelProvider = new XSDAdapterFactoryLabelProvider(xsdModelAdapterFactory);
+  }
+  
+  public boolean isExtensionTypeSupported(int type)
+  {
+    return 
+           //CS comment these out until the port is complete
+           type == OUTLINE_TREE_CONTENT_PROVIDER || 
+           type == OUTLINE_LABEL_PROVIDER ||
+           type == PROPERTY_SOURCE_PROVIDER ||
+           type == PROPERTY_SECTION_DESCRIPTOR_PROVIDER ||
+           type == MENU_ACTION_CONTRIBUTOR ||
+           type == DETAILS_VIEWER_PROVIDER ||
+           type == EDIT_PART_FACTORY || 
+           type == TYPE_SYSTEM_PROVIDER ||
+           type == NODE_RECONCILER ||
+           type == NODE_ASSOCIATION_PROVIDER ||
+           type == MODEL_QUERY_CONTRIBUTOR;
+  }                                       
+
+  public boolean isApplicable(Object object)
+  {                     
+    return (object instanceof XSDSchemaExtensibilityElement || 
+            object instanceof XSDConcreteComponent ||
+            object instanceof CategoryAdapter ||
+            object instanceof Category);
+            // || object instanceof ItemProvider);
+  } 
+
+  public Object createExtensionObject(int type, WSDLEditor wsdlEditor)
+  {
+    Object result = null;
+    switch (type)
+    {
+      case OUTLINE_TREE_CONTENT_PROVIDER :
+      {
+        result = new XSDModelAdapterContentProvider(xsdModelAdapterFactory); 
+//        result = new XSDModelAdapterContentProvider();
+        // result = new AdapterFactoryContentProvider(XSDExtensionPlugin.getXSDSemanticItemProviderAdapterFactory());
+        break;
+      }
+      case OUTLINE_LABEL_PROVIDER :
+      {
+        result = new XSDLabelProvider(adapterFactoryLabelProvider);
+        // result = new AdapterFactoryLabelProvider(XSDExtensionPlugin.getXSDSemanticItemProviderAdapterFactory());
+        break;
+      }
+      case DETAILS_VIEWER_PROVIDER :
+      {
+        // result = new XSDDetailsViewerProvider();
+        result = null;
+        break;
+      }
+      case MENU_ACTION_CONTRIBUTOR :
+      {
+        result = new XSDMenuActionContributor(wsdlEditor);
+        break;
+      }
+      case TYPE_SYSTEM_PROVIDER :
+      {
+        result = new XSDTypeSystemProvider();
+        break;
+      }    
+      case EDIT_PART_FACTORY :
+      {
+        result = new XSDExtensionEditPartFactory();
+        break;
+      }
+      case NODE_RECONCILER :
+      {
+        result = new XSDNodeReconciler();
+        break;
+      }   
+      case NODE_ASSOCIATION_PROVIDER :
+      {
+        result = new XSDNodeAssociationProvider();
+        break;
+      }  
+      case MODEL_QUERY_CONTRIBUTOR :
+      {
+        //result = new XSDModelQueryContributor(wsdlEditor);
+        break;
+      }
+      case PROPERTY_SOURCE_PROVIDER:
+      {
+        result = new XSDPropertySourceProvider();
+        break;
+      }
+      case PROPERTY_SECTION_DESCRIPTOR_PROVIDER:
+      {
+        result = new XSDSectionDescriptorProvider();
+        break;
+      }
+      case XSD_DELETE_ACTION:
+      {
+        result = new DeleteAction(XSDEditorPlugin.getXSDString("_UI_ACTION_DELETE"));
+        break;
+      }
+    }
+    return result;
+  }
+} 
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/XSDExtensionEditPartFactory.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/XSDExtensionEditPartFactory.java
new file mode 100644
index 0000000..43c50c1
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/XSDExtensionEditPartFactory.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.xsd;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.wst.wsdl.ui.internal.model.WSDLGroupObject;
+import org.eclipse.wst.wsdl.ui.internal.xsd.graph.editparts.XSDSchemaDrillDownEditPart;
+import org.eclipse.wst.xsd.ui.internal.graph.editparts.XSDEditPartFactory;
+import org.eclipse.xsd.XSDSchema;
+
+public class XSDExtensionEditPartFactory extends XSDEditPartFactory
+{
+  public EditPart createEditPart(EditPart parent, Object model)
+  {
+    EditPart editPart = null;
+            
+    if (model instanceof XSDSchema && parent.getModel() instanceof WSDLGroupObject)
+    {         
+      editPart = new XSDSchemaDrillDownEditPart();
+      editPart.setModel(model);
+      editPart.setParent(parent);
+    }
+    else
+    {
+      editPart = super.createEditPart(parent, model);
+    }
+ 
+    return editPart;
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/XSDLabelProvider.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/XSDLabelProvider.java
new file mode 100644
index 0000000..66474aa
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/XSDLabelProvider.java
@@ -0,0 +1,80 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.xsd;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.wst.wsdl.XSDSchemaExtensibilityElement;
+import org.eclipse.wst.xsd.ui.internal.provider.XSDAdapterFactoryLabelProvider;
+import org.eclipse.xsd.XSDSchema;
+
+
+
+/**
+ * This version of the XSDLabelProvider is a modified version of the one in XSDEditor.
+ * This provider only needs to handle nodes in the XML Schema namespace.
+ * Other XML nodes (including comments, PIs etc) get handled by the 'main' provider.
+ */
+public class XSDLabelProvider extends LabelProvider
+{
+  XSDAdapterFactoryLabelProvider adapterFactoryLabelProvider;
+  
+  /**
+   * Constructor for XSDLabelProvider.
+   */
+  public XSDLabelProvider(XSDAdapterFactoryLabelProvider adapterFactoryLabelProvider)
+  {
+    super();
+    this.adapterFactoryLabelProvider = adapterFactoryLabelProvider;
+  }
+  
+  /*
+   * @see ILabelProvider#getImage(Object)
+   */
+  public Image getImage(Object element)
+  {
+    if (element instanceof XSDSchemaExtensibilityElement)
+    {
+      element = ((XSDSchemaExtensibilityElement)element).getSchema().getElement();
+    }
+    return adapterFactoryLabelProvider.getImage(element);
+  }
+    
+  /*
+   * @see ILabelProvider#getText(Object)
+   */
+  public String getText(Object element)
+  {
+    // override text for xsd schema
+    if (element instanceof XSDSchema)
+    {
+      return ((XSDSchema)element).getTargetNamespace();
+    }
+    else
+    {
+    	// We don't call "adapterFactoryLabelProvider.getText(element)" because it will return a object.toString() if
+    	// there is no labelProvider....  but we don't want to display this 'garbage' info to the user.    	
+    	AdapterFactory adapterFactory = adapterFactoryLabelProvider.getAdapterFactory();
+        ILabelProvider labelProvider = (ILabelProvider)adapterFactory.adapt(element, ILabelProvider.class);
+        String text = "";
+        if (labelProvider != null) {
+        	text = labelProvider.getText(element);
+        }
+        
+        return text;
+    }
+  }
+
+}
+
+
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/XSDMenuActionContributor.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/XSDMenuActionContributor.java
new file mode 100644
index 0000000..444acb5
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/XSDMenuActionContributor.java
@@ -0,0 +1,381 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.xsd;
+                                      
+import java.util.ArrayList;
+import java.util.Iterator;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.gef.EditPart;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.wst.wsdl.Types;
+import org.eclipse.wst.wsdl.XSDSchemaExtensibilityElement;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditor;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.eclipse.wst.wsdl.ui.internal.extension.IMenuActionContributor;
+import org.eclipse.wst.wsdl.ui.internal.graph.WSDLComponentViewer;
+import org.eclipse.wst.wsdl.ui.internal.model.WSDLGroupObject;
+import org.eclipse.wst.wsdl.ui.internal.xsd.actions.AddSchemaAction;
+import org.eclipse.wst.wsdl.ui.internal.xsd.actions.BackAction;
+import org.eclipse.wst.xml.core.internal.document.DocumentImpl;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
+import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
+import org.eclipse.wst.xsd.ui.internal.XSDMenuListener;
+import org.eclipse.wst.xsd.ui.internal.actions.CreateElementAction;
+import org.eclipse.wst.xsd.ui.internal.actions.CreateGroupAction;
+import org.eclipse.wst.xsd.ui.internal.actions.DOMAttribute;
+import org.eclipse.wst.xsd.ui.internal.gef.util.editparts.AbstractComponentViewerRootEditPart;
+import org.eclipse.wst.xsd.ui.internal.graph.editparts.TopLevelComponentEditPart;
+import org.eclipse.wst.xsd.ui.internal.graph.model.Category;
+import org.eclipse.wst.xsd.ui.internal.provider.CategoryAdapter;
+import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
+import org.eclipse.xsd.XSDConcreteComponent;
+import org.eclipse.xsd.XSDSchema;
+import org.eclipse.xsd.util.XSDConstants;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+public class XSDMenuActionContributor implements IMenuActionContributor
+{
+  Element currElement;
+  Document currDocument;
+//  XSDSchema xsdSchema;
+//  protected ISelectionProvider iSelectionProvider;
+  WSDLEditor wsdlEditor;
+
+  public XSDMenuActionContributor(WSDLEditor wsdlEditor)
+  {
+    this.wsdlEditor = wsdlEditor;
+  }
+
+  public void contributeMenuActions(IMenuManager manager, Node node, Object object)
+  {
+    XSDMenuExtensionListener xsdMenuListener = new XSDMenuExtensionListener(wsdlEditor.getSelectionManager());
+    xsdMenuListener.contributeMenuActions(manager, node, object);
+  }
+
+  class XSDMenuExtensionListener extends XSDMenuListener
+  {
+    public XSDMenuExtensionListener(ISelectionProvider selectionProvider)
+    {
+      super(selectionProvider);
+    }
+    
+    protected boolean isSchemaReadOnly()
+    {
+    	Iterator eeIt = wsdlEditor.getDefinition().getETypes().getEExtensibilityElements().iterator();
+    	while (eeIt.hasNext()) {
+    		XSDSchemaExtensibilityElement ee = (XSDSchemaExtensibilityElement) eeIt.next();
+    		XSDSchema schema = ee.getSchema();
+    		if (schema == xsdSchema) {
+    			return false;
+    		}
+    	}
+    	
+    	
+    	return true;
+    }
+
+    /*
+     * TODO: For now, just return the first inline schema we have.
+     */
+    protected XSDSchema getCurrentSchemaInEditor()
+    {
+    	Iterator eeIt = wsdlEditor.getDefinition().getETypes().getEExtensibilityElements().iterator();
+    	while (eeIt.hasNext()) {
+    		XSDSchemaExtensibilityElement ee = (XSDSchemaExtensibilityElement) eeIt.next();
+    		return ee.getSchema();    		
+    	}
+    
+      return null;
+    }
+    
+    public void contributeMenuActions(IMenuManager manager, Node node, Object object)
+    {
+      updateXSDSchema();
+      AbstractComponentViewerRootEditPart editPart = (AbstractComponentViewerRootEditPart)wsdlEditor.getGraphViewer().getComponentViewer().getRootEditPart().getContents();
+//    iSelectionProvider = ((WSDLContentOutlinePage)(wsdlEditor.getWSDLTextEditor().getContentOutlinePage())).getTreeViewer();
+      EditPart focusEditPart = wsdlEditor.getGraphViewer().getComponentViewer().getFocusEditPart();
+
+      if (object instanceof WSDLGroupObject)
+      {
+        WSDLGroupObject group = (WSDLGroupObject)object;
+        if (group.getType() == WSDLGroupObject.TYPES_GROUP)
+        {
+          boolean typesExist = group.getParent().getTypes() != null;
+          
+          Element typesElement = null;
+          if (typesExist)
+          {
+            Types types = group.getParent().getETypes();
+            typesElement = types.getElement();
+          }
+          if (manager != null)
+          {
+            Document document = null;
+            if (editPart.getViewer() instanceof WSDLComponentViewer) {
+              WSDLComponentViewer wsdlComponentViewer = (WSDLComponentViewer) editPart.getViewer();
+              document = wsdlComponentViewer.getWSDLEditor().getXMLDocument();
+            }
+
+            manager.add(new AddSchemaAction(group.getDefinition(), (Element)node, typesElement, document));
+          }
+        }
+      } 
+      else if (object instanceof Types)
+      {
+        // IMenuManager menu = manager.findMenuUsingPath("addchild");
+
+        if (manager != null)
+        {
+          Types types = (Types)object;
+          manager.add(new AddSchemaAction(types.getEnclosingDefinition(), (Element)node));
+        }
+      }
+      
+      if (xsdSchema == null)
+      {
+        return;
+      }
+      
+      ArrayList attributes = null;
+      Node relativeNode = null;
+      
+      BackAction backAction;
+      
+      if (object instanceof XSDSchema || focusEditPart instanceof TopLevelComponentEditPart || object instanceof Category)
+      {
+        backAction = new BackAction(WSDLEditorPlugin.getWSDLString("_UI_BACK_TO_DEFINITION"));
+        backAction.setDefinition(wsdlEditor.getDefinition());
+        backAction.setSelectionProvider(selectionProvider);
+        backAction.setRootEditPart(editPart);
+        backAction.setGraphViewer(wsdlEditor.getGraphViewer());
+        manager.add(backAction);
+        manager.add(new Separator());
+      }
+      else if (object instanceof XSDConcreteComponent)
+      {
+        backAction = new BackAction(XSDEditorPlugin.getXSDString("_UI_ACTION_BACK_TO_SCHEMA_VIEW"));
+        // backAction.setXSDSchema(((XSDConcreteComponent)object).getSchema());
+        backAction.setXSDSchema(xsdSchema);
+        backAction.setSelectionProvider(selectionProvider);
+        backAction.setRootEditPart(editPart);
+        backAction.setGraphViewer(wsdlEditor.getGraphViewer());
+        manager.add(backAction);
+        manager.add(new Separator());
+      }
+
+      // CS: I'm removing the 'object instanceof Element' case from this test
+      // for now the menu actions are driven from 'model' objects
+      if (object instanceof XSDConcreteComponent || (object instanceof org.eclipse.wst.wsdl.XSDSchemaExtensibilityElement))
+      {
+        Element parent;
+        if (object instanceof XSDConcreteComponent)
+        {
+          parent = ((XSDConcreteComponent)object).getElement();
+          xsdSchema = ((XSDConcreteComponent)object).getSchema();
+        }
+        else if (object instanceof Element)
+        {
+          manager.add(new Separator());
+          parent = (Element)object; 
+        }
+        else if (object instanceof org.eclipse.wst.wsdl.XSDSchemaExtensibilityElement)
+        {
+          XSDSchemaExtensibilityElement schema = (XSDSchemaExtensibilityElement)object;
+          xsdSchema = schema.getSchema();
+          manager.add(new Separator());
+          parent = xsdSchema.getElement();
+        }
+        else
+        {
+          return;
+        }
+        
+        currElement = parent;
+        currDocument = parent.getOwnerDocument();
+        
+//        if (!(currDocument instanceof DocumentImpl))
+//        {
+//          return;
+//        }
+        
+        addContextItems(manager, currElement, null);
+
+        if (!(object instanceof XSDSchema) ||
+           	(object instanceof XSDSchema && !(wsdlEditor.getGraphViewer().getComponentViewer().getInput() instanceof XSDSchema))) {
+           	IStructuredSelection selections = (IStructuredSelection) wsdlEditor.getSelectionManager().getSelection();
+           	manager.add(new Separator());
+           	org.eclipse.wst.wsdl.ui.internal.actions.DeleteWSDLAndXSDAction deleteWSDLAndXSDAction = new org.eclipse.wst.wsdl.ui.internal.actions.DeleteWSDLAndXSDAction(selections.toList(), currElement, wsdlEditor);
+           	deleteWSDLAndXSDAction.setEnabled(!isReadOnly);
+           	manager.add(deleteWSDLAndXSDAction);
+        }
+      }
+      else if (object instanceof Category
+            || object instanceof CategoryAdapter)
+      {
+        int groupType = -1;
+
+        if (object instanceof Category)
+        {
+          Category cg = (Category)object;
+          xsdSchema = cg.getXSDSchema();
+          groupType = cg.getGroupType();
+        }
+        else  // CategoryAdapter
+        {
+          CategoryAdapter category = (CategoryAdapter)object;
+          groupType = category.getGroupType();
+          xsdSchema = category.getXSDSchema();
+        }
+        Element parent = xsdSchema.getElement();
+        currElement = parent;
+        currDocument = parent.getOwnerDocument();
+        switch (groupType)
+        {
+          case Category.TYPES:
+          {
+            attributes = new ArrayList();
+            attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE, getNewGlobalTypeName("ComplexType")));
+            Action action = addCreateElementAction(manager, XSDConstants.COMPLEXTYPE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_COMPLEX_TYPE"), attributes, parent, relativeNode);
+            ((CreateElementAction)action).setIsGlobal(true);
+            attributes = new ArrayList();
+            attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE, getNewGlobalTypeName("SimpleType")));
+            Action action2 = addCreateSimpleTypeAction(manager, XSDConstants.SIMPLETYPE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_SIMPLE_TYPE"), attributes, parent, relativeNode);
+            ((CreateElementAction)action2).setIsGlobal(true);
+            break;
+          }
+          case Category.ELEMENTS:
+          {
+            attributes = new ArrayList();
+            attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE,
+                                            getNewGlobalName(XSDConstants.ELEMENT_ELEMENT_TAG, "GlobalElement")));
+            attributes.add(new DOMAttribute(XSDConstants.TYPE_ATTRIBUTE, getBuiltInStringQName()));
+            Action action = addCreateElementAction(manager, XSDConstants.ELEMENT_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ELEMENT"), attributes, parent, relativeNode);
+            ((CreateElementAction)action).setIsGlobal(true);
+            break;
+          }
+          case Category.GROUPS:
+          {
+            attributes = new ArrayList();
+            attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE,
+                                            getNewGlobalName(XSDConstants.GROUP_ELEMENT_TAG, "Group")));
+            CreateGroupAction groupAction = addCreateGroupAction(manager, XSDConstants.GROUP_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_GROUP"), attributes, parent, relativeNode);
+            groupAction.setIsGlobal(true);
+            break;
+          }
+          case Category.ATTRIBUTES:
+          {
+            attributes = new ArrayList();
+            attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE,
+                                            getNewGlobalName(XSDConstants.ATTRIBUTE_ELEMENT_TAG, "GlobalAttribute")));
+            attributes.add(new DOMAttribute(XSDConstants.TYPE_ATTRIBUTE, getBuiltInStringQName()));
+            Action action = addCreateElementAction(manager, XSDConstants.ATTRIBUTE_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_GLOBAL_ATTRIBUTE"), attributes, parent, relativeNode);
+            ((CreateElementAction)action).setIsGlobal(true);
+            break;
+          }
+          case Category.ATTRIBUTE_GROUPS:
+          {
+            attributes = new ArrayList();
+            attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE,
+                                            getNewGlobalName(XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG, "AttributeGroup")));
+            Action action = addCreateElementAction(manager, XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ATTRIBUTE_GROUP"), attributes, parent, relativeNode);
+            ((CreateElementAction)action).setIsGlobal(true);
+            break; 
+          }
+          case Category.NOTATIONS:
+          {
+            attributes = new ArrayList();
+            attributes.add(new DOMAttribute(XSDConstants.NAME_ATTRIBUTE, 
+                           getNewGlobalName(XSDConstants.NOTATION_ELEMENT_TAG, "Notation")));
+            attributes.add(new DOMAttribute(XSDConstants.PUBLIC_ATTRIBUTE, ""));
+            Action action = addCreateElementAction(manager, XSDConstants.NOTATION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_NOTATION"), attributes, parent, relativeNode);
+            ((CreateElementAction)action).setIsGlobal(true);
+            break;
+          }
+          case Category.DIRECTIVES:
+          {
+            boolean b = true;
+            NodeList children = parent.getChildNodes();
+            Node effectiveRelativeNode = parent.getFirstChild();
+            for (int i=0; i < children.getLength() && b; i++)
+            {
+              Node child = children.item(i);
+              if (child != null && child instanceof Element)
+              {
+                if (XSDDOMHelper.inputEquals((Element)child, XSDConstants.INCLUDE_ELEMENT_TAG, false) ||
+                    XSDDOMHelper.inputEquals((Element)child, XSDConstants.IMPORT_ELEMENT_TAG, false) ||
+                    XSDDOMHelper.inputEquals((Element)child, XSDConstants.REDEFINE_ELEMENT_TAG, false) ||
+                    XSDDOMHelper.inputEquals((Element)child, XSDConstants.ANNOTATION_ELEMENT_TAG, false))
+                {
+                  effectiveRelativeNode = child;
+                }
+                else
+                {
+                  b = false;
+                }
+              }
+            }
+            relativeNode = effectiveRelativeNode != null ? effectiveRelativeNode.getNextSibling() : null;
+            attributes = new ArrayList();
+            attributes.add(new DOMAttribute(XSDConstants.SCHEMALOCATION_ATTRIBUTE, ""));
+
+            addCreateElementAction(manager, XSDConstants.INCLUDE_ELEMENT_TAG,XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_INCLUDE"), attributes, parent, relativeNode);
+            addCreateElementAction(manager, XSDConstants.IMPORT_ELEMENT_TAG,XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_IMPORT"), null, parent, relativeNode);
+            addCreateElementAction(manager, XSDConstants.REDEFINE_ELEMENT_TAG,XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_REDEFINE"), attributes, parent, relativeNode);
+            
+            
+            break;
+          }
+        }
+      }
+    }    
+
+    protected IFile getFileResource()
+    {
+  ///// WSDL TODO
+  //    if (getEditor() != null)
+  //      return getEditor().getFileResource();
+      return null;
+    }
+
+//    protected Object getSelectedElement()
+//    {
+//      return currElement;
+//    }
+
+    protected XSDSchema getXSDSchema()
+    {
+      return xsdSchema;
+    }
+  
+    protected IDOMModel getXMLModel()
+    {
+      if (currElement != null)
+      {
+        Object obj = currElement.getOwnerDocument();
+        if (obj instanceof DocumentImpl)
+        {
+          DocumentImpl xmlDoc = (DocumentImpl) currElement.getOwnerDocument();
+          return xmlDoc.getModel();
+        }
+      }
+      return null;
+    }
+  }
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/XSDModelAdapterContentProvider.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/XSDModelAdapterContentProvider.java
new file mode 100644
index 0000000..4271d78
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/XSDModelAdapterContentProvider.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.xsd;
+
+import org.eclipse.wst.wsdl.XSDSchemaExtensibilityElement;
+import org.eclipse.wst.xsd.ui.internal.provider.XSDContentProvider;
+import org.eclipse.wst.xsd.ui.internal.provider.XSDModelAdapterFactoryImpl;
+import org.eclipse.xsd.XSDConcreteComponent;
+
+
+public class XSDModelAdapterContentProvider extends XSDContentProvider
+{  
+  public XSDModelAdapterContentProvider(XSDModelAdapterFactoryImpl xsdModelAdapterFactory)
+  {
+    super(xsdModelAdapterFactory);
+  }
+
+  public Object[] getChildren(Object parentObject)
+  {                                     
+    XSDConcreteComponent xsdComp = null;
+    if (parentObject instanceof XSDSchemaExtensibilityElement)
+    {
+      XSDSchemaExtensibilityElement xsdSchemaExtensibilityElement = (XSDSchemaExtensibilityElement)parentObject;
+      xsdComp = xsdSchemaExtensibilityElement.getSchema();
+      return super.getChildren(xsdComp);
+    }
+    return super.getChildren(parentObject);    
+  }
+
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/XSDNodeAssociationProvider.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/XSDNodeAssociationProvider.java
new file mode 100644
index 0000000..81367fd
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/XSDNodeAssociationProvider.java
@@ -0,0 +1,76 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.xsd;
+                                                                    
+import org.eclipse.wst.wsdl.XSDSchemaExtensibilityElement;
+import org.eclipse.wst.wsdl.ui.internal.extension.INodeAssociationProvider;
+import org.eclipse.wst.xsd.ui.internal.graph.model.Category;
+import org.eclipse.wst.xsd.ui.internal.provider.CategoryAdapter;
+import org.eclipse.xsd.XSDConcreteComponent;
+import org.eclipse.xsd.XSDSchema;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+class XSDNodeAssociationProvider implements INodeAssociationProvider
+{                    
+  public Object getModelObject(Object parentModelObject, Element[] elementChain, int start, int[] end)
+  {   
+    Object result = null;
+    if (parentModelObject instanceof XSDSchemaExtensibilityElement)
+    {
+      XSDSchemaExtensibilityElement extensibilityElement = (XSDSchemaExtensibilityElement)parentModelObject;
+      XSDSchema schema = extensibilityElement.getSchema();
+      if (schema != null)
+      {          
+        Element targetElement = elementChain[elementChain.length - 1];
+        result = schema.getCorrespondingComponent(targetElement);
+      }
+    }
+    else if (parentModelObject instanceof CategoryAdapter)
+    {
+      result = ((CategoryAdapter)parentModelObject).getXSDSchema();
+    }
+    else if (parentModelObject instanceof Category)
+    {
+      result = ((Category)parentModelObject).getXSDSchema();
+    }
+
+    return result;
+  }
+
+  public Node getNode(Object modelObject)
+  {        
+    Node node = null;
+    if (modelObject instanceof XSDSchemaExtensibilityElement)
+    {           
+      XSDSchemaExtensibilityElement extensibilityElement = (XSDSchemaExtensibilityElement)modelObject;
+      XSDSchema schema = extensibilityElement.getSchema();
+      if (schema != null)
+      {
+        node = schema.getElement();
+      }
+    }        
+    else if (modelObject instanceof XSDConcreteComponent)
+    {
+      node = ((XSDConcreteComponent)modelObject).getElement();
+    }
+    else if (modelObject instanceof CategoryAdapter)
+    {
+      node = ((CategoryAdapter)modelObject).getXSDSchema().getElement();
+    }
+    else if (modelObject instanceof Category)
+    {
+      node = ((Category)modelObject).getXSDSchema().getElement();
+    }
+    
+    return node;
+  }      
+} 
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/XSDNodeReconciler.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/XSDNodeReconciler.java
new file mode 100644
index 0000000..d4a77c6
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/XSDNodeReconciler.java
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.xsd;
+                                           
+import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
+import org.eclipse.wst.wsdl.XSDSchemaExtensibilityElement;
+import org.eclipse.wst.wsdl.ui.internal.extension.INodeReconciler;
+import org.eclipse.xsd.XSDConcreteComponent;
+import org.w3c.dom.Element;
+
+
+public class XSDNodeReconciler implements INodeReconciler
+{                    
+  public void notifyChanged(Object modelObject, Element element, int eventType, Object feature, Object oldValue, Object newValue, int index)
+  {                         
+    XSDConcreteComponent component = null;
+    if (modelObject instanceof XSDConcreteComponent)
+    {
+      component = (XSDConcreteComponent)modelObject;
+    }
+    else if (modelObject instanceof XSDSchemaExtensibilityElement)
+    {           
+      XSDSchemaExtensibilityElement extensibilityElement = (XSDSchemaExtensibilityElement)modelObject;
+      component = extensibilityElement.getSchema();
+    }   
+
+    if (component != null)
+    {
+      switch (eventType)
+      {
+        case INodeNotifier.CHANGE:
+        {                           
+          component.elementAttributesChanged(element); 
+          break;
+        }
+        case INodeNotifier.STRUCTURE_CHANGED:
+        {                              
+          component.elementContentsChanged(element);
+          break;
+        }
+        case INodeNotifier.CONTENT_CHANGED:
+        {                              
+          component.elementChanged(element);
+          break;
+        }
+      }                   
+    }
+  }
+}                                                                   
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/XSDPropertySourceProvider.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/XSDPropertySourceProvider.java
new file mode 100644
index 0000000..95ff36e
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/XSDPropertySourceProvider.java
@@ -0,0 +1,336 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.xsd;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.ui.provider.PropertySource;
+import org.eclipse.ui.views.properties.IPropertySource;
+import org.eclipse.ui.views.properties.IPropertySourceProvider;
+import org.eclipse.wst.wsdl.XSDSchemaExtensibilityElement;
+import org.eclipse.wst.xsd.ui.internal.properties.AnyAttributePropertySource;
+import org.eclipse.wst.xsd.ui.internal.properties.AnyElementPropertySource;
+import org.eclipse.wst.xsd.ui.internal.properties.AppInfoPropertySource;
+import org.eclipse.wst.xsd.ui.internal.properties.AttributeGroupRefPropertySource;
+import org.eclipse.wst.xsd.ui.internal.properties.AttributePropertySource;
+import org.eclipse.wst.xsd.ui.internal.properties.BasePropertySource;
+import org.eclipse.wst.xsd.ui.internal.properties.ComplexTypePropertySource;
+import org.eclipse.wst.xsd.ui.internal.properties.DocumentationPropertySource;
+import org.eclipse.wst.xsd.ui.internal.properties.ElementPropertySource;
+import org.eclipse.wst.xsd.ui.internal.properties.EnumerationPropertySource;
+import org.eclipse.wst.xsd.ui.internal.properties.GroupRefPropertySource;
+import org.eclipse.wst.xsd.ui.internal.properties.ImportPropertySource;
+import org.eclipse.wst.xsd.ui.internal.properties.IncludePropertySource;
+import org.eclipse.wst.xsd.ui.internal.properties.KeyrefPropertySource;
+import org.eclipse.wst.xsd.ui.internal.properties.ModelGroupPropertySource;
+import org.eclipse.wst.xsd.ui.internal.properties.NamePropertySource;
+import org.eclipse.wst.xsd.ui.internal.properties.NotationPropertySource;
+import org.eclipse.wst.xsd.ui.internal.properties.PatternPropertySource;
+import org.eclipse.wst.xsd.ui.internal.properties.SchemaPropertySource;
+import org.eclipse.wst.xsd.ui.internal.properties.SimpleContentPropertySource;
+import org.eclipse.wst.xsd.ui.internal.properties.SimpleRestrictPropertySource;
+import org.eclipse.wst.xsd.ui.internal.properties.SimpleTypeListPropertySource;
+import org.eclipse.wst.xsd.ui.internal.properties.SimpleTypePropertySource;
+import org.eclipse.wst.xsd.ui.internal.properties.SimpleTypeUnionPropertySource;
+import org.eclipse.wst.xsd.ui.internal.properties.XPathPropertySource;
+import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
+import org.eclipse.xsd.XSDConcreteComponent;
+import org.eclipse.xsd.XSDSchema;
+import org.eclipse.xsd.util.XSDConstants;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+public class XSDPropertySourceProvider implements IPropertySourceProvider
+{
+  /* (non-Javadoc)
+   * @see org.eclipse.ui.views.properties.IPropertySourceProvider#getPropertySource(java.lang.Object)
+   */
+  public IPropertySource getPropertySource(Object object)
+  {
+// Using XSD's item providers
+//    XSDItemProviderAdapterFactory adapterFactory = XSDExtensionPlugin.getXSDItemProviderAdapterFactory();
+//   
+//    IItemPropertySource itemPropertySource =
+//      (IItemPropertySource)
+//        (object instanceof EObject && ((EObject)object).eClass() == null ?
+//          null :
+//          adapterFactory.adapt(object, IItemPropertySource.class));
+//    return 
+//    itemPropertySource != null ?  createPropertySource(object, itemPropertySource) : null;
+    
+    if (object == null) return null;
+    
+    if (object instanceof XSDSchemaExtensibilityElement)
+    {
+      object = ((XSDSchemaExtensibilityElement)object).getSchema();
+    }
+    if (object instanceof XSDConcreteComponent)
+    {
+      BasePropertySource bps = (BasePropertySource)getXSDPropertySource(object);
+      Element input = ((XSDConcreteComponent)object).getElement();
+      bps.setInput(input);
+      return bps;
+    }
+    return null;
+  }
+
+  protected IPropertySource createPropertySource(Object object, IItemPropertySource itemPropertySource)
+  {
+    return new PropertySource(object, itemPropertySource);
+  }
+  
+  protected boolean inputEquals(Object input, String tagname, boolean isRef)
+  {
+    return XSDDOMHelper.inputEquals(input, tagname, isRef);
+  }
+
+  boolean showParent = false;
+  
+  // TODO: We should use adapters to do this.  Do as we complete 'model'-based port
+  public IPropertySource getXSDPropertySource(Object object)
+  {
+    XSDSchema xsdSchema = ((XSDConcreteComponent)object).getSchema();
+    Element input = ((XSDConcreteComponent)object).getElement();
+
+    if (inputEquals(input, XSDConstants.ELEMENT_ELEMENT_TAG, false))
+    {
+      return new ElementPropertySource(xsdSchema);
+    }
+    else if (inputEquals(input, XSDConstants.ELEMENT_ELEMENT_TAG, true))
+    {
+      return new GroupRefPropertySource(xsdSchema);
+    }
+    else if (inputEquals(input, XSDConstants.SEQUENCE_ELEMENT_TAG, false) ||
+              inputEquals(input, XSDConstants.CHOICE_ELEMENT_TAG, false) ||
+              inputEquals(input, XSDConstants.ALL_ELEMENT_TAG, false))
+    {
+      return new ModelGroupPropertySource(xsdSchema);
+    }
+    else if (inputEquals(input, XSDConstants.ATTRIBUTE_ELEMENT_TAG, false))
+    {
+      return new AttributePropertySource(xsdSchema);
+    }
+    else if (inputEquals(input, XSDConstants.ATTRIBUTE_ELEMENT_TAG, true))
+    {
+      return new AttributeGroupRefPropertySource(xsdSchema);
+    }
+    else if (inputEquals(input, XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG, false))
+    {
+      return new NamePropertySource(xsdSchema);
+    }
+    else if (inputEquals(input, XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG, true))
+    {
+      return new AttributeGroupRefPropertySource(xsdSchema);
+    }
+    else if (inputEquals(input, XSDConstants.NOTATION_ELEMENT_TAG, false))
+    {
+      return new NotationPropertySource(xsdSchema);
+    }
+    else if (inputEquals(input, XSDConstants.SIMPLETYPE_ELEMENT_TAG, false))
+    {
+      return new SimpleTypePropertySource(xsdSchema);
+    }
+    else if (inputEquals(input, XSDConstants.GROUP_ELEMENT_TAG, false))
+    {
+      return new NamePropertySource(xsdSchema);
+    }
+    else if (inputEquals(input, XSDConstants.GROUP_ELEMENT_TAG, true))
+    {
+      return new GroupRefPropertySource(xsdSchema);
+    }
+    else if (inputEquals(input, XSDConstants.SCHEMA_ELEMENT_TAG, false))
+    {
+      return new SchemaPropertySource(xsdSchema);
+    }
+    else if (inputEquals(input, XSDConstants.COMPLEXTYPE_ELEMENT_TAG, false))
+    {
+      return new ComplexTypePropertySource(xsdSchema);
+    }
+    else if (inputEquals(input, XSDConstants.DOCUMENTATION_ELEMENT_TAG, false))
+    {
+      return new DocumentationPropertySource(xsdSchema);
+    }
+    else if (inputEquals(input, XSDConstants.APPINFO_ELEMENT_TAG, false))
+    {
+      return new AppInfoPropertySource(xsdSchema);
+    }
+    else if (inputEquals(input, XSDConstants.SIMPLECONTENT_ELEMENT_TAG, false))
+    {
+      if (input != null && input instanceof Element)
+      {
+        Element parent = (Element)input;
+        XSDDOMHelper xsdDOMHelper = new XSDDOMHelper();
+        Element derivedByNode = xsdDOMHelper.getDerivedByElement(parent);
+        if (derivedByNode != null)
+        {
+          if (inputEquals(derivedByNode, XSDConstants.RESTRICTION_ELEMENT_TAG, false) || 
+              inputEquals(derivedByNode, XSDConstants.EXTENSION_ELEMENT_TAG, false))
+          {
+            return new SimpleContentPropertySource(xsdSchema);
+          }
+        }
+        else
+        {
+          return null;
+        }
+      }
+    }
+    else if (inputEquals(input, XSDConstants.COMPLEXCONTENT_ELEMENT_TAG, false))
+    {
+      if (input != null && input instanceof Element)
+      {
+        Element parent = (Element)input;
+        XSDDOMHelper xsdDOMHelper = new XSDDOMHelper();
+        Element derivedByNode = xsdDOMHelper.getDerivedByElement(parent);
+        if (derivedByNode != null)
+        {
+          return new SimpleContentPropertySource(xsdSchema);
+        }
+        else
+        {
+          return null;
+        }
+      }
+    }
+    else if (inputEquals(input, XSDConstants.INCLUDE_ELEMENT_TAG, false))
+    {
+//      if (editor instanceof XSDEditor)
+//      {
+//        IFile inputFile = ((IFileEditorInput)editor.getEditorInput()).getFile();
+        IFile inputFile = null;
+        return new IncludePropertySource(xsdSchema, inputFile);
+//      }
+//      return null;
+    }
+    else if (inputEquals(input, XSDConstants.IMPORT_ELEMENT_TAG, false))
+    {
+//      if (editor instanceof XSDEditor)
+//      {
+//        IFile inputFile = ((IFileEditorInput)editor.getEditorInput()).getFile();
+      IFile inputFile = null;
+        return new ImportPropertySource(xsdSchema, inputFile);
+//      }
+//      return null;
+    }
+    else if (inputEquals(input, XSDConstants.REDEFINE_ELEMENT_TAG, false))
+    {
+//      if (editor instanceof XSDEditor)
+//       {
+//        IFile inputFile = ((IFileEditorInput)editor.getEditorInput()).getFile();
+      IFile inputFile = null;
+        return new IncludePropertySource(xsdSchema, inputFile);
+//      }
+//      return null;
+    }
+    else if (inputEquals(input, XSDConstants.LIST_ELEMENT_TAG, false))
+    {
+      return new SimpleTypeListPropertySource(xsdSchema);
+    }
+    else if (inputEquals(input, XSDConstants.UNION_ELEMENT_TAG, false))
+    {
+      return new SimpleTypeUnionPropertySource(xsdSchema);
+    }
+    else if (inputEquals(input, XSDConstants.RESTRICTION_ELEMENT_TAG, false))
+    {
+      return createRestrictWindow(input, xsdSchema);
+    }
+    else if (XSDDOMHelper.isFacet(input))
+    {
+      if (input != null && input instanceof Element)
+      {
+        Node parent = ((Element)input).getParentNode();
+        if (inputEquals(parent, XSDConstants.RESTRICTION_ELEMENT_TAG, false))
+        {
+          return createRestrictWindow(input, xsdSchema);
+        } 
+      }
+    }
+    else if (inputEquals(input, XSDConstants.EXTENSION_ELEMENT_TAG, false))
+    {
+      if (input != null && input instanceof Element)
+      {
+        Node parent = ((Element)input).getParentNode();
+        if (inputEquals(parent, XSDConstants.COMPLEXCONTENT_ELEMENT_TAG, false)
+            || inputEquals(parent, XSDConstants.SIMPLECONTENT_ELEMENT_TAG, false))
+        {
+          showParent = true;
+          return new SimpleContentPropertySource(xsdSchema);
+        }
+      }
+    }
+    else if (inputEquals(input, XSDConstants.PATTERN_ELEMENT_TAG, false))
+    {
+      return new PatternPropertySource(xsdSchema);
+    }
+    else if (inputEquals(input, XSDConstants.ENUMERATION_ELEMENT_TAG, false))
+    {
+      return new EnumerationPropertySource(xsdSchema);
+    }
+    else if (inputEquals(input, XSDConstants.ANY_ELEMENT_TAG, false))
+    {
+      return new AnyElementPropertySource(xsdSchema);
+    }
+    else if (inputEquals(input, XSDConstants.ANYATTRIBUTE_ELEMENT_TAG, false))
+    {
+      return new AnyAttributePropertySource(xsdSchema);
+    }
+    else if (inputEquals(input, XSDConstants.UNIQUE_ELEMENT_TAG, false))
+    {
+      return new NamePropertySource(xsdSchema);
+    }
+    else if (inputEquals(input, XSDConstants.KEYREF_ELEMENT_TAG, false))
+    {
+      return new KeyrefPropertySource(xsdSchema);
+    }
+    else if (inputEquals(input, XSDConstants.SELECTOR_ELEMENT_TAG, false))
+    {
+      return new XPathPropertySource(xsdSchema);
+    }
+    else if (inputEquals(input, XSDConstants.FIELD_ELEMENT_TAG, false))
+    {
+      return new XPathPropertySource(xsdSchema);
+    }
+    else if (inputEquals(input, XSDConstants.KEY_ELEMENT_TAG, false))
+    {
+      return new NamePropertySource(xsdSchema);
+    }
+    else
+    {
+      return null;
+    }
+    return null;
+  }
+  
+  protected IPropertySource createRestrictWindow(Object input, XSDSchema xsdSchema)
+  {
+    // special case where SimpleType restriction is different than SimpleContent restriction
+
+    if (input != null && input instanceof Element)
+    {
+      Node parent = ((Element)input).getParentNode();
+      if (inputEquals(parent, XSDConstants.SIMPLETYPE_ELEMENT_TAG, false))
+      {
+        return new SimpleRestrictPropertySource(xsdSchema);
+      }
+      else if (inputEquals(parent, XSDConstants.SIMPLECONTENT_ELEMENT_TAG, false))
+      {
+        return new SimpleRestrictPropertySource(xsdSchema);
+      }
+      else if (inputEquals(parent, XSDConstants.COMPLEXCONTENT_ELEMENT_TAG, false))
+      {
+        showParent = true;
+        return new SimpleContentPropertySource(xsdSchema);
+      }
+    }
+    return null;
+  }
+
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/XSDSectionDescriptorProvider.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/XSDSectionDescriptorProvider.java
new file mode 100644
index 0000000..9b5f5a1
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/XSDSectionDescriptorProvider.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.xsd;
+
+import org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor;
+import org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptorProvider;
+
+public class XSDSectionDescriptorProvider implements ISectionDescriptorProvider
+{
+  org.eclipse.wst.xsd.ui.internal.properties.section.XSDSectionDescriptorProvider descriptor;
+  /**
+   * 
+   */
+  public XSDSectionDescriptorProvider()
+  {
+    super();
+    descriptor = new org.eclipse.wst.xsd.ui.internal.properties.section.XSDSectionDescriptorProvider();
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptorProvider#getSectionDescriptors()
+   */
+  public ISectionDescriptor[] getSectionDescriptors()
+  {
+    return descriptor.getSectionDescriptors();
+  }
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/XSDTempDetailsViewer.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/XSDTempDetailsViewer.java
new file mode 100644
index 0000000..1b01ef6
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/XSDTempDetailsViewer.java
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.xsd;
+                                 
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.wst.wsdl.ui.internal.viewers.BaseViewer;
+       
+
+public class XSDTempDetailsViewer extends BaseViewer
+{   
+  protected Composite control;
+
+  public XSDTempDetailsViewer(Composite parent)
+  { 
+    super(null);
+    createControl(parent);
+  }
+              
+  public void doSetInput(Object input)
+  {    
+  }
+
+  public void createControl(Composite parent)
+  {
+    control = flatViewUtility.createComposite(parent, 1, true); 
+                                      
+    flatViewUtility.createFlatPageHeader(control, "XSDViewer");
+  }
+  
+  protected void update()
+  {
+  }
+
+  public Control getControl()
+  {
+    return control;
+  }
+
+  public void doHandleEvent(Event event)
+  {
+
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/XSDTypeSystemProvider.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/XSDTypeSystemProvider.java
new file mode 100644
index 0000000..2d8fadf
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/XSDTypeSystemProvider.java
@@ -0,0 +1,215 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.xsd;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.wst.wsdl.Definition;
+import org.eclipse.wst.wsdl.Import;
+import org.eclipse.wst.wsdl.Types;
+import org.eclipse.wst.wsdl.XSDSchemaExtensibilityElement;
+import org.eclipse.wst.wsdl.ui.internal.extension.ITypeSystemProvider;
+import org.eclipse.wst.wsdl.util.WSDLConstants;
+import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
+import org.eclipse.xsd.XSDComplexTypeDefinition;
+import org.eclipse.xsd.XSDNamedComponent;
+import org.eclipse.xsd.XSDSchema;
+import org.eclipse.xsd.XSDSchemaContent;
+import org.eclipse.xsd.XSDSimpleTypeDefinition;
+import org.eclipse.xsd.impl.XSDImportImpl;
+
+//
+//
+public class XSDTypeSystemProvider implements ITypeSystemProvider
+{
+    public List getPrefixes(Definition definition, String namespace)
+    {
+        List list = new ArrayList();
+        Map map = definition.getNamespaces();
+        for (Iterator i = map.keySet().iterator(); i.hasNext();)
+        {
+            String prefix = (String) i.next();
+            String theNamespace = (String) map.get(prefix);
+            if (theNamespace != null && theNamespace.equals(namespace))
+            {
+                list.add(prefix);
+            }
+        }
+        return list;
+    }
+
+    public List getPrefixedNames(Definition definition, String namespace, String localName)
+    {
+        List list = new ArrayList();
+        for (Iterator i = getPrefixes(definition, namespace).iterator(); i.hasNext();)
+        {
+            String prefix = (String) i.next();
+            String name = (prefix != null && prefix.length() > 0) ? prefix + ":" + localName : localName;
+            list.add(name);
+        }
+        return list;
+    }
+
+    protected void addNamedComponents(Definition definition, List list, List namedComponents)
+    {
+        for (Iterator i = namedComponents.iterator(); i.hasNext();)
+        {
+            XSDNamedComponent component = (XSDNamedComponent) i.next();
+            list.addAll(getPrefixedNames(definition, component.getTargetNamespace(), component.getName()));
+        }
+    }
+
+    public void initWSIStyleImports(XSDSchema xsdSchema)
+    {
+        if (xsdSchema.getTargetNamespace() == null)
+        {
+            for (Iterator i = xsdSchema.getContents().iterator(); i.hasNext();)
+            {
+                XSDSchemaContent content = (XSDSchemaContent) i.next();
+                if (content instanceof XSDImportImpl)
+                {
+                    XSDImportImpl xsdImport = (XSDImportImpl) content;
+					XSDSchema schema = (XSDSchema)xsdImport.getResolvedSchema();					
+					if (schema == null)
+					{
+						schema = xsdImport.importSchema();
+					}             
+                }
+            }
+        }
+    }
+
+    public List getAvailableTypeNames(Definition definition, int typeNameCategory)
+    {
+        List list = new ArrayList();
+        
+        if (typeNameCategory == ITypeSystemProvider.BUILT_IN_TYPE) {
+        	list = getBuiltInTypeNamesList(definition);        	
+        }
+        else {
+        	Types types = definition.getETypes();
+        	if (types != null)
+        	{
+        		for (Iterator i = types.getEExtensibilityElements().iterator(); i.hasNext();)
+        		{
+        			Object o = i.next();
+        			if (o instanceof XSDSchemaExtensibilityElement)
+        			{
+        				XSDSchema schema = ((XSDSchemaExtensibilityElement) o).getSchema();
+        				if (schema != null)
+        				{
+        					initWSIStyleImports(schema);
+        					addNamedComponents(definition, list, schema.getTypeDefinitions());
+        				}
+        			}
+        		}
+        	}
+        
+        	for (Iterator i = definition.getEImports().iterator(); i.hasNext();)
+        	{
+        		Import theImport = (Import) i.next();
+        		XSDSchema schema = theImport.getESchema();
+        		if (schema != null)
+        		{
+        			addNamedComponents(definition, list, schema.getTypeDefinitions());
+        		}
+        	}
+        	list.addAll(getBuiltInTypeNamesList(definition));
+        }
+        
+		return list;        
+    }
+    
+    public List getAvailableTypes(Definition definition, XSDSchema schema, int typeNameCategory)
+    {
+        List keepTypes = new ArrayList();
+        Iterator typeIterator = schema.getTypeDefinitions().iterator();
+        // Filter out unwanted Types
+        if (typeNameCategory == ITypeSystemProvider.USER_DEFINED_COMPLEX_TYPE) {
+        	while (typeIterator.hasNext()) {
+        		Object type = typeIterator.next();
+        		if (type instanceof XSDComplexTypeDefinition) {
+        			keepTypes.add(type);
+        		}
+        	}
+        }
+        else if (typeNameCategory == ITypeSystemProvider.USER_DEFINED_SIMPLE_TYPE) {
+        	while (typeIterator.hasNext()) {
+        		Object type = typeIterator.next();
+        		if (type instanceof XSDSimpleTypeDefinition) {
+        			keepTypes.add(type);
+        		}
+        	}
+        }
+        
+        //addNamedComponents(definition, list, keepTypes);        
+        //return list;
+        return keepTypes;
+    }
+
+    public java.util.List getBuiltInTypeNamesList(Definition definition)
+    {
+        List items = new ArrayList();
+        if (definition != null)
+        {
+            List prefixes = getPrefixes(definition, WSDLConstants.XSD_NAMESPACE_URI);
+            for (Iterator i = prefixes.iterator(); i.hasNext();)
+            {
+                String prefix = (String) i.next();
+                for (int j = 0; j < XSDDOMHelper.dataType.length; j++)
+                {
+                    String localName = XSDDOMHelper.dataType[j][0];
+                    String name = (prefix != null && prefix.length() > 0) ? prefix + ":" + localName : localName;
+                    items.add(name);
+                }
+            }
+        }
+        return items;
+    }
+    public List getAvailableElementNames(Definition definition)
+    {
+        List list = new ArrayList();
+        Types types = definition.getETypes();
+        if (types != null)
+        {
+            for (Iterator i = types.getEExtensibilityElements().iterator(); i.hasNext();)
+            {
+                Object o = i.next();
+                if (o instanceof XSDSchemaExtensibilityElement)
+                {
+                    XSDSchema schema = ((XSDSchemaExtensibilityElement) o).getSchema();
+                    if (schema != null)
+                    {
+						initWSIStyleImports(schema);
+                        addNamedComponents(definition, list, schema.getElementDeclarations());
+                    }
+                }
+            }
+        }
+        
+        for (Iterator i = definition.getEImports().iterator(); i.hasNext();)
+        {
+            Import theImport = (Import) i.next();
+            XSDSchema schema = theImport.getESchema();
+            if (schema != null)
+            {
+                addNamedComponents(definition, list, schema.getElementDeclarations());
+            }
+        }
+        return list;
+    }
+    public int getCategoryForTypeName(Definition definition, String typeName)
+    {
+        return 0;
+    }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/actions/AddSchemaAction.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/actions/AddSchemaAction.java
new file mode 100644
index 0000000..9037b3c
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/actions/AddSchemaAction.java
@@ -0,0 +1,90 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.xsd.actions;
+
+import org.eclipse.wst.wsdl.Definition;
+import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;
+import org.eclipse.wst.wsdl.ui.internal.actions.AddElementAction;
+import org.eclipse.xsd.util.XSDConstants;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+public class AddSchemaAction extends AddElementAction
+{
+  protected String targetNamespace;
+  protected boolean createTypesElement = false;
+
+  public AddSchemaAction(Definition definition, Element definitionElement)
+  {
+    this(definition, definitionElement, false);
+  }
+
+  public AddSchemaAction(Definition definition, Element definitionElement, boolean createTypesElement)
+  {
+    super(WSDLEditorPlugin.getWSDLString("_UI_ACTION_ADD_SCHEMA"), "icons/xsd_obj.gif", definitionElement, "xsd:schema");                       
+    this.createTypesElement = createTypesElement;
+    targetNamespace = definition.getTargetNamespace();    
+  }
+
+  public AddSchemaAction(Definition definition, Element definitionElement, Element typesElement)
+  {
+    super(WSDLEditorPlugin.getWSDLString("_UI_ACTION_ADD_SCHEMA"), "icons/xsd_obj.gif", definitionElement, "xsd:schema");                       
+    if (typesElement != null)
+    {
+      parentNode =  typesElement;
+      this.createTypesElement = false;
+    }
+    else
+    {
+      this.createTypesElement = true;      
+    }
+    targetNamespace = definition.getTargetNamespace();    
+  }
+
+  public AddSchemaAction(Definition definition, Element definitionElement, Element typesElement, Document document)
+  {
+  	this(definition, definitionElement, typesElement);
+  	this.definition = definition;
+  	this.document = document;
+  }
+  
+  protected boolean showDialog()
+  {
+    return true;
+  }
+
+  protected void addAttributes(Element newElement)
+  {                                               
+    newElement.setAttribute("xmlns:xsd", XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001);
+    newElement.setAttribute("elementFormDefault", "qualified");
+    newElement.setAttribute("targetNamespace", targetNamespace);
+  }
+
+  public void run()
+  {
+  	beginRecording();
+  	if (parentNode == null || (document != null && document.getChildNodes().getLength() == 0)) {
+  		createDefinitionStub();
+  		prefix = null;
+  		targetNamespace = definition.getTargetNamespace();
+  	}
+  	
+    if (createTypesElement)
+    {
+      AddElementAction addTypesAction = new AddElementAction("", "icons/xsd_obj.gif", parentNode, parentNode.getPrefix(), "types");
+      addTypesAction.setComputeTopLevelRefChild(true);
+      addTypesAction.run();
+      parentNode =  addTypesAction.getNewElement();
+    } 
+    super.run();
+    endRecording();
+  }     
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/actions/BackAction.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/actions/BackAction.java
new file mode 100644
index 0000000..9757904
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/actions/BackAction.java
@@ -0,0 +1,110 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.xsd.actions;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.wst.wsdl.Definition;
+import org.eclipse.wst.wsdl.ui.internal.graph.WSDLGraphViewer;
+import org.eclipse.wst.xsd.ui.internal.gef.util.editparts.AbstractComponentViewerRootEditPart;
+import org.eclipse.xsd.XSDSchema;
+
+public class BackAction extends Action
+{
+  ISelectionProvider selectionProvider;
+  XSDSchema xsdSchema;
+  Definition definition;
+  WSDLGraphViewer graphViewer;
+  
+  /**
+   * 
+   */
+  public BackAction()
+  {
+    super();
+  }
+
+  /**
+   * @param text
+   */
+  public BackAction(String text)
+  {
+    super(text);
+  }
+
+  /**
+   * @param text
+   * @param image
+   */
+  public BackAction(String text, ImageDescriptor image)
+  {
+    super(text, image);
+  }
+
+  /**
+   * @param text
+   * @param style
+   */
+  public BackAction(String text, int style)
+  {
+    super(text, style);
+  }
+
+  public void setSelectionProvider(ISelectionProvider selectionProvider)
+  {
+    this.selectionProvider = selectionProvider;
+  }
+  
+  AbstractComponentViewerRootEditPart editPart;
+  public void setRootEditPart(AbstractComponentViewerRootEditPart editPart)
+  {
+    this.editPart = editPart;
+  }
+
+  public void setDefinition(Definition definition)
+  {
+    this.definition = definition;
+  }
+  
+  public void setXSDSchema(XSDSchema xsdSchema)
+  {
+    this.xsdSchema = xsdSchema;
+  }
+  
+  public void setGraphViewer(WSDLGraphViewer graphViewer)
+  {
+    this.graphViewer = graphViewer;
+  }
+  
+  /*
+   * @see IAction#run()
+   */
+  public void run()
+  {
+    if (xsdSchema != null)
+    {
+      StructuredSelection selection = new StructuredSelection(xsdSchema);
+      selectionProvider.setSelection(selection);
+      // editPart.setInput(xsdSchema);
+      graphViewer.setInput(xsdSchema);
+    }
+    else if (definition != null)
+    {
+      StructuredSelection selection = new StructuredSelection(definition);
+      selectionProvider.setSelection(selection);
+      // editPart.setInput(definition);
+      graphViewer.setInput(definition);
+    }
+  }
+
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/actions/DeleteAction.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/actions/DeleteAction.java
new file mode 100644
index 0000000..b4e8fcf
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/actions/DeleteAction.java
@@ -0,0 +1,214 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.xsd.actions;
+
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.wst.wsdl.Definition;
+import org.eclipse.wst.wsdl.ui.internal.actions.DeleteInterfaceAction;
+import org.eclipse.wst.wsdl.ui.internal.util.WSDLEditorUtil;
+import org.eclipse.wst.xml.core.internal.document.DocumentImpl;
+import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
+import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
+import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
+import org.eclipse.xsd.XSDComponent;
+import org.eclipse.xsd.XSDConcreteComponent;
+import org.eclipse.xsd.XSDImport;
+import org.eclipse.xsd.XSDInclude;
+import org.eclipse.xsd.XSDRedefine;
+import org.eclipse.xsd.XSDSchema;
+import org.eclipse.xsd.util.XSDConstants;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+
+// Should try to use xsdeditor's delete action....
+
+public class DeleteAction extends Action implements DeleteInterfaceAction
+{
+  XSDSchema xsdSchema;
+  Definition definition;
+  List deleteList;
+  
+  /**
+   * Constructor for DeleteAction.
+   * @param text
+   */
+  public DeleteAction(String text)
+  {
+    super(XSDEditorPlugin.getXSDString("_UI_ACTION_DELETE"));
+  }
+
+  public XSDSchema getSchema()
+  {
+    return xsdSchema;
+  }
+
+  public void setSchema(XSDSchema xsdSchema)
+  {
+    this.xsdSchema = xsdSchema;
+  }
+
+  public void setDeleteList(List list) {
+  	deleteList = list;
+  }
+  
+  public List getDeleteList() {
+  	return deleteList;
+  }
+
+  /*
+   * @see IAction#run()
+   */
+  public void run()
+  {
+    List selections = getDeleteList();
+    
+    if (selections.isEmpty())
+    {
+      return;
+    }
+    
+    Iterator iter = selections.iterator();
+    DocumentImpl doc = null;
+    while (iter.hasNext())
+    {
+      Object obj = iter.next();
+      Element node;
+      if (obj instanceof Element)
+      {
+        node = (Element)obj;
+        Object elem = WSDLEditorUtil.getInstance().findModelObjectForElement(definition, node);
+        if (elem instanceof XSDComponent)
+        {
+          xsdSchema = ((XSDComponent)elem).getSchema();
+        }        
+      }
+      else if (obj instanceof XSDComponent)
+      {
+        node = ((XSDComponent)obj).getElement();
+        xsdSchema = ((XSDComponent)obj).getSchema();
+      }
+      else if (obj instanceof XSDConcreteComponent) {
+      	node = ((XSDConcreteComponent)obj).getElement();
+      	xsdSchema = ((XSDConcreteComponent)obj).getSchema();
+      }
+      else
+      {
+        return; 
+      }
+        
+      if (!XSDDOMHelper.inputEquals(node, XSDConstants.SCHEMA_ELEMENT_TAG, false))
+      {
+        
+        if (doc == null)
+        {
+          doc = (DocumentImpl) node.getOwnerDocument();
+          doc.getModel().beginRecording(this, XSDEditorPlugin.getXSDString("_UI_ACTION_DELETE_NODES"));
+        }
+  
+        boolean refresh = cleanupReferences(node);
+        XSDDOMHelper.removeNodeAndWhitespace(node);
+        
+        // Workaround to reset included elements in XSD model
+        if (refresh)
+        {
+// TODO
+//          getEditor().reparseSchema();
+//          getEditor().getGraphViewer().setSchema(getEditor().getXSDSchema());
+        }
+      }
+    }
+    if (doc != null)
+    {
+      doc.getModel().endRecording(this);
+    }
+  }
+
+  protected boolean cleanupReferences(Node deletedNode)
+  {
+    boolean refresh = false;
+    XSDConcreteComponent comp = getSchema().getCorrespondingComponent(deletedNode);
+    
+    if (comp instanceof XSDInclude ||
+        comp instanceof XSDImport ||
+        comp instanceof XSDRedefine)
+    {
+//      XSDSchema resolvedSchema = ((XSDSchemaDirective)comp).getResolvedSchema();
+      XSDSchema referencedSchema = null;
+      if (comp instanceof XSDInclude)
+      {
+        referencedSchema = ((XSDInclude)comp).getIncorporatedSchema();
+        refresh = true;
+      }
+      else if (comp instanceof XSDRedefine)
+      {
+        referencedSchema = ((XSDRedefine)comp).getIncorporatedSchema();
+        refresh = true;
+      }
+      else if (comp instanceof XSDImport)
+      {
+         referencedSchema = ((XSDImport)comp).getResolvedSchema();
+      }
+
+      if (referencedSchema != null)
+      {
+//        XSDExternalFileCleanup cleanHelper = new XSDExternalFileCleanup(referencedSchema);
+//        cleanHelper.visitSchema(getSchema());
+//        // populate messages
+//// TODO
+////        getEditor().createTasksInTaskList(cleanHelper.getMessages());
+      }
+      if (comp instanceof XSDImport)
+      {
+        TypesHelper typesHelper = new TypesHelper(getSchema());
+        typesHelper.updateMapAfterDelete((XSDImport)comp);
+      }
+    }
+    else if (getSchema().equals(comp.getContainer()))
+    {
+//      BaseGlobalCleanup cleanHelper = null;
+   //   Only need to clean up references if the component being deleted is global scoped
+//      if (comp instanceof XSDElementDeclaration)
+//      {
+//        cleanHelper = new GlobalElementCleanup(comp);
+//      }
+//      else if (comp instanceof XSDModelGroupDefinition)
+//      {
+//        cleanHelper = new GlobalGroupCleanup(comp);
+//      }
+//      else if (comp instanceof XSDTypeDefinition)
+//      {
+//        cleanHelper = new GlobalSimpleOrComplexTypeCleanup(comp);
+//      }
+//      else if (comp instanceof XSDAttributeDeclaration)
+//      {
+//        cleanHelper = new GlobalAttributeCleanup(comp);
+//      }
+//      else if (comp instanceof XSDAttributeGroupDefinition)
+//      {
+//        cleanHelper = new GlobalAttributeGroupCleanup(comp);
+//      }
+//      
+//      
+//      if (cleanHelper != null)
+//      {
+//        cleanHelper.visitSchema(getSchema());
+//        // populate messages
+//// TODO
+////        getEditor().createTasksInTaskList(cleanHelper.getMessages());
+//      }
+    }
+    return refresh;
+  }
+}
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/graph/editparts/XSDSchemaDrillDownEditPart.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/graph/editparts/XSDSchemaDrillDownEditPart.java
new file mode 100644
index 0000000..9a6acfc
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/graph/editparts/XSDSchemaDrillDownEditPart.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.xsd.graph.editparts;
+         
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.wst.wsdl.ui.internal.graph.editparts.DrillDownEditPart;
+import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
+import org.eclipse.xsd.XSDSchema;
+
+
+public class XSDSchemaDrillDownEditPart extends DrillDownEditPart 
+{                                 
+  protected IFigure createFigure()
+  {                                     
+    IFigure figure = super.createFigure();
+    label.setIcon(XSDEditorPlugin.getXSDImage("icons/XSDFile.gif"));
+    return figure;
+  }   
+
+  protected void refreshVisuals()
+  {                                       
+    XSDSchema schema = (XSDSchema)getModel();
+    String ns = schema.getTargetNamespace() != null ? schema.getTargetNamespace() : "";
+    label.setText(ns);
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/graph/editparts/XSDSchemaExtensibilityElementEditPart.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/graph/editparts/XSDSchemaExtensibilityElementEditPart.java
new file mode 100644
index 0000000..c10245b
--- /dev/null
+++ b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/xsd/graph/editparts/XSDSchemaExtensibilityElementEditPart.java
@@ -0,0 +1,55 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2004 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.xsd.graph.editparts;
+         
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPartFactory;
+import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
+import org.eclipse.wst.wsdl.XSDSchemaExtensibilityElement;
+import org.eclipse.wst.xsd.ui.internal.gef.util.figures.ContainerFigure;
+
+
+public class XSDSchemaExtensibilityElementEditPart extends AbstractGraphicalEditPart 
+{                                 
+  protected EditPartFactory factory;
+
+  public XSDSchemaExtensibilityElementEditPart(EditPartFactory factory)
+  {
+    this.factory = factory;
+  }
+
+  protected IFigure createFigure()
+  {                                     
+    ContainerFigure figure = new ContainerFigure();    
+    return figure;
+  }    
+
+  protected EditPart createChild(Object model) 
+  {
+    return factory.createEditPart(this, model);
+  }      
+
+  protected List getModelChildren() 
+  { 
+    XSDSchemaExtensibilityElement e = (XSDSchemaExtensibilityElement)getModel();
+    List result = new ArrayList();
+    result.add(e.getSchema());
+    return result;
+  }
+ 
+  protected void createEditPolicies() 
+  {
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.wsdl.validation/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.wsdl.validation/META-INF/MANIFEST.MF
index 3e6918a..ff54804 100644
--- a/bundles/org.eclipse.wst.wsdl.validation/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.wst.wsdl.validation/META-INF/MANIFEST.MF
@@ -2,11 +2,12 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %_PLUGIN_NAME
 Bundle-SymbolicName: org.eclipse.wst.wsdl.validation; singleton:=true
-Bundle-Version: 1.0.201.qualifier
+Bundle-Version: 1.0.1.qualifier
 Bundle-Activator: org.eclipse.wst.wsdl.validation.internal.eclipse.ValidateWSDLPlugin
 Bundle-Vendor: %_PROVIDER_NAME
 Bundle-Localization: plugin
-Export-Package: org.eclipse.wst.wsdl.validation.internal,
+Export-Package: .,
+ org.eclipse.wst.wsdl.validation.internal,
  org.eclipse.wst.wsdl.validation.internal.eclipse,
  org.eclipse.wst.wsdl.validation.internal.exception,
  org.eclipse.wst.wsdl.validation.internal.resolver,
@@ -26,6 +27,5 @@
  org.eclipse.wst.validation,
  org.wsdl4j,
  org.apache.xerces;visibility:=reexport,
- org.eclipse.core.runtime,
- org.eclipse.wst.xml.core
-Eclipse-LazyStart: true
+ org.eclipse.core.runtime
+Eclipse-AutoStart: true
diff --git a/bundles/org.eclipse.wst.wsdl.validation/exsd/extvalidator.exsd b/bundles/org.eclipse.wst.wsdl.validation/exsd/extvalidator.exsd
index d7ca02a..13ab558 100644
--- a/bundles/org.eclipse.wst.wsdl.validation/exsd/extvalidator.exsd
+++ b/bundles/org.eclipse.wst.wsdl.validation/exsd/extvalidator.exsd
@@ -55,6 +55,13 @@
                </documentation>
             </annotation>
          </attribute>
+         <attribute name="resourcebundle" type="string">
+            <annotation>
+               <documentation>
+                  An optional resource bundle that contains messages to be used by the extension validator.
+               </documentation>
+            </annotation>
+         </attribute>
       </complexType>
    </element>
 
@@ -80,7 +87,8 @@
          point=&quot;org.eclipse.wst.wsdl.validation.extvalidator&quot;&gt;
       &lt;extvalidator
             namespace=&quot;http://schemas.xmlsoap.org/wsdl/&quot;
-            class=&quot;org.eclipse.wst.wsi.internal.validate.wsdl.WSDLValidator&quot;&gt;
+            class=&quot;org.eclipse.wst.wsi.internal.validate.wsdl.WSDLValidator&quot;
+            resourcebundle=&quot;wsivalidate&quot;&gt;
       &lt;/extvalidator&gt;
    &lt;/extension&gt;
 &lt;/pre&gt;
@@ -113,7 +121,7 @@
          <meta.section type="copyright"/>
       </appInfo>
       <documentation>
-         Copyright (c) 2000, 2006 IBM Corporation and others.&lt;br&gt;
+         Copyright (c) 2000, 2005 IBM Corporation and others.&lt;br&gt;
 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 &lt;a
diff --git a/bundles/org.eclipse.wst.wsdl.validation/exsd/wsdl11validator.exsd b/bundles/org.eclipse.wst.wsdl.validation/exsd/wsdl11validator.exsd
index e852048..14ed921 100644
--- a/bundles/org.eclipse.wst.wsdl.validation/exsd/wsdl11validator.exsd
+++ b/bundles/org.eclipse.wst.wsdl.validation/exsd/wsdl11validator.exsd
@@ -55,6 +55,13 @@
                </documentation>
             </annotation>
          </attribute>
+         <attribute name="resourcebundle" type="string">
+            <annotation>
+               <documentation>
+                  An optional resource bundle that contains messages to be used by the extension validator.
+               </documentation>
+            </annotation>
+         </attribute>
       </complexType>
    </element>
 
@@ -78,7 +85,8 @@
          point=&quot;org.eclipse.wst.wsdl.validation.wsdl11validator&quot;&gt;
       &lt;validator
             class=&quot;org.eclipse.wst.wsdl.validation.internal.wsdl11.http.HTTPValidator&quot;
-            namespace=&quot;http://schemas.xmlsoap.org/wsdl/http/&quot;/&gt;
+            namespace=&quot;http://schemas.xmlsoap.org/wsdl/http/&quot;
+            resourcebundle=&quot;validatewsdlhttp&quot;/&gt;
    &lt;/extension&gt;
 &lt;/pre&gt;
       </documentation>
@@ -118,7 +126,7 @@
          <meta.section type="copyright"/>
       </appInfo>
       <documentation>
-         Copyright (c) 2000, 2006 IBM Corporation and others.&lt;br&gt;
+         Copyright (c) 2000, 2005 IBM Corporation and others.&lt;br&gt;
 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 &lt;a
diff --git a/bundles/org.eclipse.wst.wsdl.validation/plugin.properties b/bundles/org.eclipse.wst.wsdl.validation/plugin.properties
index c7a3ec7..7750fd9 100644
--- a/bundles/org.eclipse.wst.wsdl.validation/plugin.properties
+++ b/bundles/org.eclipse.wst.wsdl.validation/plugin.properties
@@ -11,7 +11,5 @@
 !-- properties file for org.eclipse.wst.wsdl.validation
 !-- Tool Name
 
-_PLUGIN_NAME       = WSDL Validator
-_PROVIDER_NAME     = Eclipse.org
-
-_UI_WSDL_VALIDATOR = WSDL Validator
+_PLUGIN_NAME    = WSDL Validator
+_PROVIDER_NAME  = Eclipse.org
diff --git a/bundles/org.eclipse.wst.wsdl.validation/plugin.xml b/bundles/org.eclipse.wst.wsdl.validation/plugin.xml
index 1ec56ed..3406457 100644
--- a/bundles/org.eclipse.wst.wsdl.validation/plugin.xml
+++ b/bundles/org.eclipse.wst.wsdl.validation/plugin.xml
@@ -5,32 +5,5 @@
    <extension-point id="extvalidator" name="WSDL Extension Validator" schema="exsd/extvalidator.exsd"/>
    
    <extension-point id="wsdl11validator" name="WSDL 1.1 Extension Validator" schema="exsd/wsdl11validator.exsd"/>
-   
-   <!-- ====================================================== -->
-   <!-- An extension for adding the WSDL validator to the      -->
-   <!-- validation framework. 						           -->										   -->
-   <!-- ====================================================== -->
-   <extension
-         id="wsdlValidator"
-         name="%_UI_WSDL_VALIDATOR"
-         point="org.eclipse.wst.validation.validator">
-      <validator>
-         <filter
-               objectClass="org.eclipse.core.resources.IFile"
-               caseSensitive="false"
-               nameFilter="*.wsdl">
-         </filter>
-         <helper
-               class="org.eclipse.wst.xml.core.internal.validation.core.Helper">
-         </helper>
-         <run
-               async="true"
-               class="org.eclipse.wst.wsdl.validation.internal.eclipse.Validator"
-               enabled="true"
-               fullBuild="true"
-               incremental="true">
-         </run>
-      </validator>
-   </extension>
 
 </plugin>
diff --git a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/ClassloaderWSDLValidatorDelegate.java b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/ClassloaderWSDLValidatorDelegate.java
deleted file mode 100644
index 3d0fe50..0000000
--- a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/ClassloaderWSDLValidatorDelegate.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.validation.internal;
-
-
-
-/**
- * A delegate holds a validator's information and can instantiate it
- * when requested to.
- */
-public class ClassloaderWSDLValidatorDelegate extends WSDLValidatorDelegate
-{
-  private String validatorClassname = null;
-  private ClassLoader classLoader = null;
-
-  /**
-   * Create a delegate for a validator by its class name.
-   * 
-   * @param validatorClassname The name of the validator class.
-   */
-  public ClassloaderWSDLValidatorDelegate(String validatorClassname)
-  {
-    this.validatorClassname = validatorClassname;
-  }
-
-  /**
-   * Create a delegate for a validator by its class name and 
-   * a class loader to load the validator.
-   * 
-   * @param validatorClassname The name of the validator class.
-   * @param classLoader The class loader to use to load the validator.
-   */
-  public ClassloaderWSDLValidatorDelegate(String validatorClassname, ClassLoader classLoader)
-  {
-    this(validatorClassname);
-    this.classLoader = classLoader;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.wsdl.validation.internal.WSDLValidatorDelegate#loadValidator()
-   */
-  protected IWSDLValidator loadValidator()
-  {
-	IWSDLValidator validator = null;
-    if(classLoader == null)
-    {
-      classLoader = getClass().getClassLoader();
-    }
-    try
-    {
-      Class validatorClass =
-      classLoader != null ? classLoader.loadClass(validatorClassname) : Class.forName(validatorClassname);
-
-      validator = (IWSDLValidator)validatorClass.newInstance();
-    }
-    catch (Exception e)
-    {
-      // TODO: add logging
-      System.err.println(e);
-    }
-    catch(Throwable t)
-    {
-      System.err.println(t);
-    }
-    return validator;
-  }
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.wsdl.validation.internal.WSDLValidatorDelegate#getValidatorName()
-   */
-  public String getValidatorName()
-  {
-    return validatorClassname;
-  }
-}
diff --git a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/IWSDLValidator.java b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/IWSDLValidator.java
index cac0de3..3278e9d 100644
--- a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/IWSDLValidator.java
+++ b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/IWSDLValidator.java
@@ -11,6 +11,8 @@
 
 package org.eclipse.wst.wsdl.validation.internal;
 
+import java.util.ResourceBundle;
+
 import org.eclipse.wst.wsdl.validation.internal.exception.ValidateWSDLException;
 import org.w3c.dom.Document;
 
@@ -28,4 +30,14 @@
    * @throws ValidateWSDLException
    */
   public void validate(Document domModel, IValidationInfo valInfo) throws ValidateWSDLException;
+
+  /**
+   * setResourceBundle
+   * Set the ResourceBundle for this validator. Allows the use of difference 
+   * ResourceBundles for different validators.
+   * 
+   * @param rb The resource bundle to set.
+   */
+  public void setResourceBundle(ResourceBundle rb);
+
 }
diff --git a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/ValidationController.java b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/ValidationController.java
index a138ca6..13113bd 100644
--- a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/ValidationController.java
+++ b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/ValidationController.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
@@ -15,6 +15,7 @@
 import java.io.ByteArrayInputStream;
 import java.io.InputStream;
 import java.io.InputStreamReader;
+import java.util.Hashtable;
 import java.util.Iterator;
 import java.util.List;
 import java.util.ResourceBundle;
@@ -51,6 +52,7 @@
   protected ResourceBundle resourcebundle;
   protected MessageGenerator messagegenerator;
   protected URIResolver uriResolver;
+  protected Hashtable attributes = new Hashtable();
 
   //protected String wsdlNamespace = null;
 
@@ -70,19 +72,41 @@
   }
   
   /**
+   * Add the attributes specified to the validation.
+   * 
+   * @param attributes The attributes to add to the validation.
+   */
+  public void setAttributes(Hashtable attributes)
+  {
+  	this.attributes.putAll(attributes);
+  }
+
+  /**
+   * Validate the WSDL file. Check the file for XML conformance. If it is XML
+   * conformant, read the file and check it for WSDL conformance. If it is WSDL
+   * conformant and WS-I conformance is set to suggest or require, check the
+   * file for WS-I conformance.
+   * 
+   * @param uri
+   *            The uri where the WSDL document is located.
+   * @param wsiLevel
+   *            The level of WS-I conformance to use for validation.
+   * @return A validation report with the validation info for the file.
+   */
+//  public IValidationReport validate(String uri)
+//  { return validate(uri, null);
+//  }
+  
+  /**
    * Validate the WSDL file with the stream. This method will run the check of the 
    * WSDL document. The validation is broken up into three stages: XML conformance,
    * WSDL semantic, and post validation.
    * 
- * @param uri 
- * 			The URI of the WSDL document to be validated.
- * @param inputStream 
- * 			The contents of the WSDL document to be validated.
- * @param configuration
- * 			The WSDL validation configuration to be used while validating this URI.
+ * @param uri The URI of the WSDL document to be validated.
+ * @param inputStream The contents of the WSDL document to be validated.
  * @return A validation report with the validation info for the file.
  */
-  public IValidationReport validate(String uri, InputStream inputStream, WSDLValidationConfiguration configuration)
+  public IValidationReport validate(String uri, InputStream inputStream)
   {
     
     InputStream xmlValidateStream = null;
@@ -96,7 +120,7 @@
     
     ControllerValidationInfo valInfo = new ValidationInfoImpl(uri, messagegenerator);
     ((ValidationInfoImpl)valInfo).setURIResolver(uriResolver);
-    ((ValidationInfoImpl)valInfo).setConfiguration(configuration);
+    ((ValidationInfoImpl)valInfo).setAttributes(attributes);
 
     if (validateXML(valInfo, xmlValidateStream))
     {
@@ -249,7 +273,7 @@
           }
           catch(Throwable  t)
           {
-            valInfo.addWarning(messagegenerator.getString(_ERROR_PROBLEM_EXT_VALIDATOR,  extvaldel.getValidatorName(), wsdlNamespace), 1, 1, valInfo.getFileURI());
+            valInfo.addWarning(messagegenerator.getString(_ERROR_PROBLEM_EXT_VALIDATOR,  extvaldel.getValidatorClassName(), wsdlNamespace), 1, 1, valInfo.getFileURI());
             // This error should be logged and not displayed to the user.
           }
         }
diff --git a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/ValidationInfoImpl.java b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/ValidationInfoImpl.java
index 1f34985..3381ed2 100644
--- a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/ValidationInfoImpl.java
+++ b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/ValidationInfoImpl.java
@@ -14,6 +14,7 @@
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.HashMap;
+import java.util.Hashtable;
 import java.util.List;
 import java.util.Vector;
 
@@ -38,7 +39,7 @@
   private boolean haserrors = false;
   private HashMap nestedMessages = new HashMap();
   private URIResolver uriResolver = null;
-  private WSDLValidationConfiguration configuration;
+  private Hashtable attributes = new Hashtable();
 
   /**
    * Constructor.
@@ -288,14 +289,11 @@
 	 */
 	public Object getAttribute(String name) 
 	{
-		return configuration.getProperty(name);
+		return attributes.get(name);
 	}
 	
-	public void setConfiguration(WSDLValidationConfiguration configuration)
+	public void setAttributes(Hashtable attributes)
 	{
-		this.configuration = configuration;
-	}
-	public boolean isValid() {
-		return !hasErrors();
+		this.attributes.putAll(attributes);
 	}
 }
diff --git a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/WSDLValidationConfiguration.java b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/WSDLValidationConfiguration.java
deleted file mode 100644
index 7b23370..0000000
--- a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/WSDLValidationConfiguration.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package org.eclipse.wst.wsdl.validation.internal;
-
-import java.util.Hashtable;
-
-/**
- * Configuration information for validation of a specific
- * file.
- */
-public class WSDLValidationConfiguration 
-{
-  protected Hashtable properties = new Hashtable();
-  
-  /**
-   * Set an attribute on the validator. An attribute is
-   * defined by a name and a value pair. An attribute may
-   * be defined for any validator, built in or an extension.
-   * Extension validators can probe the attributes set on
-   * the WSDL validator to customize the way in which they
-   * validate. A null value will unset an attribute.
-   * 
-   * @param name The attribute identifier.
-   * @param value The attribute itself.
-   */
-  public void setProperty(String name, Object value)
-  {
-	if(value == null)
-	{
-	  properties.remove(name);
-	}
-	else
-	{
-  	  properties.put(name, value);
-	}
-  }
-  
-  /**
-   * Get the value set for a given property.
-   * 
-   * @return
-   * 		The value for the specified property or null if the property has not been specified.
-   */
-  protected Object getProperty(String name)
-  {
-	if(name != null)
-	  return properties.get(name);
-	return null;
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/WSDLValidator.java b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/WSDLValidator.java
index b1aed20..c42e008 100644
--- a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/WSDLValidator.java
+++ b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/WSDLValidator.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
@@ -12,11 +12,11 @@
 package org.eclipse.wst.wsdl.validation.internal;
 
 import java.io.InputStream;
+import java.util.Hashtable;
 import java.util.ResourceBundle;
 
 import org.eclipse.wst.wsdl.validation.internal.resolver.IExtensibleURIResolver;
 import org.eclipse.wst.wsdl.validation.internal.resolver.URIResolver;
-import org.eclipse.wst.wsdl.validation.internal.wsdl11.ClassloaderWSDL11ValidatorDelegate;
 import org.eclipse.wst.wsdl.validation.internal.wsdl11.WSDL11BasicValidator;
 import org.eclipse.wst.wsdl.validation.internal.wsdl11.WSDL11ValidatorController;
 import org.eclipse.wst.wsdl.validation.internal.wsdl11.WSDL11ValidatorDelegate;
@@ -32,8 +32,12 @@
 public class WSDLValidator
 {
   private static String VALIDATOR_RESOURCE_BUNDLE = "validatewsdl";
+  private static String VALIDATOR_HTTP_RESOURCE_BUNDLE = "validatewsdlhttp";
+  private static String VALIDATOR_SOAP_RESOURCE_BUNDLE = "validatewsdlsoap";
+  private static String VALIDATOR_MIME_RESOURCE_BUNDLE = "validatewsdlmime";
   private ValidationController validationController;
-  protected URIResolver uriResolver;
+  private URIResolver uriResolver;
+  private Hashtable attributes = new Hashtable();
   
   /**
    * Constructor.
@@ -47,15 +51,15 @@
     //Register the default validators.
     ValidatorRegistry registry = ValidatorRegistry.getInstance();
     // Register the WSDL 1.1 validator controller and validators.
-    WSDLValidatorDelegate delegate = new ClassloaderWSDLValidatorDelegate(WSDL11ValidatorController.class.getName(), getClass().getClassLoader());
+    WSDLValidatorDelegate delegate = new WSDLValidatorDelegate(WSDL11ValidatorController.class.getName(), VALIDATOR_RESOURCE_BUNDLE, getClass().getClassLoader());
     registry.registerValidator(Constants.NS_URI_WSDL, delegate, ValidatorRegistry.WSDL_VALIDATOR);
-    WSDL11ValidatorDelegate delegate1 = new ClassloaderWSDL11ValidatorDelegate(WSDL11BasicValidator.class.getName(), getClass().getClassLoader());
+    WSDL11ValidatorDelegate delegate1 = new WSDL11ValidatorDelegate(WSDL11BasicValidator.class.getName(), VALIDATOR_RESOURCE_BUNDLE, getClass().getClassLoader());
     registerWSDL11Validator(Constants.NS_URI_WSDL, delegate1);
-    delegate1 = new ClassloaderWSDL11ValidatorDelegate(HTTPValidator.class.getName(), getClass().getClassLoader());
+    delegate1 = new WSDL11ValidatorDelegate(HTTPValidator.class.getName(), VALIDATOR_HTTP_RESOURCE_BUNDLE, getClass().getClassLoader());
     registerWSDL11Validator(org.eclipse.wst.wsdl.validation.internal.Constants.NS_HTTP, delegate1);
-    delegate1 = new ClassloaderWSDL11ValidatorDelegate(SOAPValidator.class.getName(), getClass().getClassLoader());
+    delegate1 = new WSDL11ValidatorDelegate(SOAPValidator.class.getName(), VALIDATOR_SOAP_RESOURCE_BUNDLE, getClass().getClassLoader());
     registerWSDL11Validator(org.eclipse.wst.wsdl.validation.internal.Constants.NS_SOAP11, delegate1);
-    delegate1 = new ClassloaderWSDL11ValidatorDelegate(MIMEValidator.class.getName(), getClass().getClassLoader());
+    delegate1 = new WSDL11ValidatorDelegate(MIMEValidator.class.getName(), VALIDATOR_MIME_RESOURCE_BUNDLE, getClass().getClassLoader());
     registerWSDL11Validator(org.eclipse.wst.wsdl.validation.internal.Constants.NS_MIME, delegate1);
    
     // The WSDL 1.1 schema validator is a special case as it is registered for three namespaces.
@@ -73,7 +77,7 @@
    */
   public IValidationReport validate(String uri)
   {
-   return validate(uri, null, null);
+   return validate(uri, null);
   }
   
   /**
@@ -83,13 +87,12 @@
    * @param inputStream The stream to validate
    * @return A Validation report summarizing the results of the validation
    */
-  public IValidationReport validate(String uri, InputStream inputStream, WSDLValidationConfiguration configuration)
+  public IValidationReport validate(String uri, InputStream inputStream)
   {
     if(uri == null) 
       return null;
-    if(configuration == null)
-      configuration = new WSDLValidationConfiguration();
-    return validationController.validate(uri, inputStream, configuration);
+    validationController.setAttributes(attributes);
+    return validationController.validate(uri, inputStream);
   }
   
   /**
@@ -103,6 +106,29 @@
   }
   
   /**
+   * Set an attribute on the validator. An attribute is
+   * defined by a name and a value pair. An attribute may
+   * be defined for any validator, built in or an extension.
+   * Extension validators can probe the attributes set on
+   * the WSDL validator to customize the way in which they
+   * validate. A null value will unset an attribute.
+   * 
+   * @param name The attribute identifier.
+   * @param value The attribute itself.
+   */
+  public void setAttribute(String name, Object value)
+  {
+	if(value == null)
+	{
+	  attributes.remove(name);
+	}
+	else
+	{
+  	  attributes.put(name, value);
+	}
+  }
+  
+  /**
    * Register an extension WSDL validator delegate with this validator.
    * 
    * @param namespace The namespace the validator validates for. This is the WSDL namespace.
diff --git a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/WSDLValidatorDelegate.java b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/WSDLValidatorDelegate.java
index 82ae025..ab4075f 100644
--- a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/WSDLValidatorDelegate.java
+++ b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/WSDLValidatorDelegate.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
@@ -11,14 +11,47 @@
 
 package org.eclipse.wst.wsdl.validation.internal;
 
+import java.util.Locale;
+import java.util.ResourceBundle;
+
+
 /**
- * A WSDLValidatorDelegate holds a reference to a WSDL validator.
- * A delegate is used to lazy load extension validators.
+ * A delegate holds a validator's information and can instantiate it
+ * when requested to.
  */
-public abstract class WSDLValidatorDelegate 
+public class WSDLValidatorDelegate
 {
+  private String validatorClassname = null;
+  private String resourceBundle = null;
+  private ClassLoader classLoader = null;
   private IWSDLValidator validator = null;
-  
+
+  /**
+   * Create a delegate for a validator by its class name and resource bundle name.
+   * 
+   * @param validatorClassname The name of the validator class.
+   * @param resourceBundle The name of the validator base resource bundle.
+   */
+  public WSDLValidatorDelegate(String validatorClassname, String resourceBundle)
+  {
+    this.validatorClassname = validatorClassname;
+    this.resourceBundle = resourceBundle;
+  }
+
+  /**
+   * Create a delegate for a validator by its class name, resource bundle name and 
+   * a class loader to load the validator and bundle.
+   * 
+   * @param validatorClassname The name of the validator class.
+   * @param resourceBundle The name of the validator base resource bundle.
+   * @param classLoader The class loader to use to load the validator and bundle.
+   */
+  public WSDLValidatorDelegate(String validatorClassname, String resourceBundle, ClassLoader classLoader)
+  {
+    this(validatorClassname, resourceBundle);
+    this.classLoader = classLoader;
+  }
+
   /**
    * Get the validator specified in this delegate.
    * 
@@ -27,23 +60,43 @@
   public IWSDLValidator getValidator()
   {
     if (validator == null)
-    {
-      validator = loadValidator();
+     {
+      if(classLoader == null)
+       {
+        classLoader = getClass().getClassLoader();
+      }
+      try
+      {
+        Class validatorClass =
+        classLoader != null ? classLoader.loadClass(validatorClassname) : Class.forName(validatorClassname);
+
+        validator = (IWSDLValidator)validatorClass.newInstance();
+        
+        if (resourceBundle != null)
+        {
+         ResourceBundle validatorBundle = ResourceBundle.getBundle(resourceBundle, Locale.getDefault(), classLoader);
+         validator.setResourceBundle(validatorBundle);
+       }
+      }
+      catch (Exception e)
+      {
+        // TODO: add logging
+        System.err.println(e);
+      }
+      catch(Throwable t)
+      {
+        System.err.println(t);
+      }
     }
     return validator;
   }
   
   /**
-   * Load the validator specified in this delegate.
-   * 
-   * @return The WSDL validator specified by this delegate.
+   * Return the validator class name.
+   * @return The validator class name.
    */
-  protected abstract IWSDLValidator loadValidator();
-  
-  /**
-   * Return the name of the validator.
-   * 
-   * @return The validator name.
-   */
-  public abstract String getValidatorName();
+  public String getValidatorClassName()
+  {
+    return validatorClassname;
+  }
 }
diff --git a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/eclipse/EclipseWSDL11ValidatorDelegate.java b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/eclipse/EclipseWSDL11ValidatorDelegate.java
deleted file mode 100644
index 7e7ccc9..0000000
--- a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/eclipse/EclipseWSDL11ValidatorDelegate.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.validation.internal.eclipse;
-
-import org.eclipse.wst.wsdl.validation.internal.wsdl11.IWSDL11Validator;
-import org.eclipse.wst.wsdl.validation.internal.wsdl11.WSDL11ValidatorDelegate;
-import org.osgi.framework.Bundle;
-
-public class EclipseWSDL11ValidatorDelegate extends WSDL11ValidatorDelegate
-{
-  private String validatorClassname = null;
-  private Bundle bundle = null;
-
-  /**
-   * Create a delegate for a validator by its class name and 
-   * a class loader to load the validator.
-   * 
-   * @param validatorClassname The name of the validator class.
-   * @param bundle The bundle to use to load the validator.
-   */
-  public EclipseWSDL11ValidatorDelegate(String validatorClassname, Bundle bundle)
-  {
-	this.validatorClassname = validatorClassname;
-    this.bundle = bundle;
-  }
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.wsdl.validation.internal.wsdl11.WSDL11ValidatorDelegate#loadValidator()
-   */
-  protected IWSDL11Validator loadValidator()
-  {
-	IWSDL11Validator validator = null;
-	if(bundle != null)
-	{
-	  try
-	  {
-        Class validatorClass = bundle.loadClass(validatorClassname);
-
-        validator = (IWSDL11Validator)validatorClass.newInstance();
-      
-      }
-      catch (Throwable t)
-      {
-        // TODO: add logging
-        System.err.println(t);
-      }
-	}
-	return validator;
-  }
-}
diff --git a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/eclipse/EclipseWSDLValidatorDelegate.java b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/eclipse/EclipseWSDLValidatorDelegate.java
deleted file mode 100644
index 109d366..0000000
--- a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/eclipse/EclipseWSDLValidatorDelegate.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.validation.internal.eclipse;
-
-import org.eclipse.wst.wsdl.validation.internal.WSDLValidatorDelegate;
-import org.eclipse.wst.wsdl.validation.internal.IWSDLValidator;
-import org.osgi.framework.Bundle;
-
-
-/**
- * A delegate holds a validator's information and can instantiate it
- * when requested to.
- */
-public class EclipseWSDLValidatorDelegate extends WSDLValidatorDelegate
-{
-  private String validatorClassname = null;
-  private Bundle bundle = null;
-
-  /**
-   * Create a delegate for a validator by its class name and 
-   * an OSGI bundle to load the validator.
-   * 
-   * @param validatorClassname The name of the validator class.
-   * @param bundle The OSGI bundle to use to load the validator.
-   */
-  public EclipseWSDLValidatorDelegate(String validatorClassname, Bundle bundle)
-  {
-	this.validatorClassname = validatorClassname;
-    this.bundle = bundle;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.wsdl.validation.internal.AbstractWSDLValidatorDelegate#loadValidator()
-   */
-  protected IWSDLValidator loadValidator()
-  {
-	IWSDLValidator validator = null;
-    if(bundle != null)
-    {
-      try
-      {
-    	Class validatorClass = bundle.loadClass(validatorClassname);
-
-        validator = (IWSDLValidator)validatorClass.newInstance();
-      }
-      catch(Throwable t)
-      {
-        // TODO: add logging
-        System.err.println(t);
-      }
-    }
-    return validator;
-  }
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.wsdl.validation.internal.AbstractWSDLValidatorDelegate#getValidatorName()
-   */
-  public String getValidatorName()
-  {
-    return validatorClassname;
-  }
-}
diff --git a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/eclipse/ValidateWSDLPlugin.java b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/eclipse/ValidateWSDLPlugin.java
index 7486b14..c170ad1 100644
--- a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/eclipse/ValidateWSDLPlugin.java
+++ b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/eclipse/ValidateWSDLPlugin.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
@@ -14,16 +14,15 @@
 import java.io.IOException;
 import java.util.ResourceBundle;
 
-import org.eclipse.core.runtime.FileLocator;
 import org.eclipse.core.runtime.IConfigurationElement;
 import org.eclipse.core.runtime.IExtensionPoint;
 import org.eclipse.core.runtime.IExtensionRegistry;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.core.runtime.Plugin;
 import org.eclipse.wst.wsdl.validation.internal.Constants;
+import org.eclipse.wst.wsdl.validation.internal.WSDLValidatorDelegate;
 import org.eclipse.wst.wsdl.validation.internal.wsdl11.WSDL11ValidatorDelegate;
 import org.eclipse.wst.wsdl.validation.internal.xml.XMLCatalog;
-import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
 
 /**
@@ -91,7 +90,7 @@
   {
     try
     {
-      return FileLocator.resolve(getBundle().getEntry("/")).getFile();
+      return Platform.resolve(getBundle().getEntry("/")).getFile();
     }
     catch (IOException e)
     {
@@ -143,6 +142,7 @@
   protected static final String PLUGIN_ID = "org.eclipse.wst.wsdl.validation";
   protected static final String ATT_CLASS = "class";
   protected static final String ATT_NAMESPACE = "namespace";
+  protected static final String ATT_RESOURCEBUNDLE = "resourcebundle";
   protected static final int WSDL_VALIDATOR = 0;
   protected static final int EXT_VALIDATOR = 1;
   protected String extensionPointId;
@@ -194,6 +194,7 @@
     {
       String validatorClass = element.getAttribute(ATT_CLASS);
       String namespace = element.getAttribute(ATT_NAMESPACE);
+      String resourceBundle = element.getAttribute(ATT_RESOURCEBUNDLE);
 
       if (validatorClass != null)
       {
@@ -203,13 +204,23 @@
           //            element.getDeclaringExtension().getDeclaringPluginDescriptor().getPlugin().getClass().getClassLoader();
           //				modified to resolve certain situations where the plugin has not been initialized
 
-          Bundle pluginBundle = Platform.getBundle(element.getDeclaringExtension().getContributor().getName());
+          ClassLoader pluginLoader =
+            element.getDeclaringExtension().getDeclaringPluginDescriptor().getPluginClassLoader();
           
+//          if (validatorType == WSDL_VALIDATOR)
+//           {
+//            WSDL11ValidatorDelegate delegate = new WSDL11ValidatorDelegate(validatorClass, resourceBundle, pluginLoader);
+//            WSDLValidator.getInstance().registerWSDL11Validator(namespace, delegate);
+//          }
           if (validatorType == EXT_VALIDATOR)
            {
-            EclipseWSDLValidatorDelegate delegate = new EclipseWSDLValidatorDelegate(validatorClass, pluginBundle);
+            WSDLValidatorDelegate delegate = new WSDLValidatorDelegate(validatorClass, resourceBundle, pluginLoader);
             WSDLValidator.getInstance().registerWSDLExtensionValidator(namespace, delegate);
           }
+//          registerWSDLValidatorPluginExtensionWithClassName(
+//            pluginLoader,
+//            WSDLValidatorExtensionClass,
+//            WSDLValidatorExtensionNamespace);
         }
         catch (Exception e)
         {
@@ -217,6 +228,54 @@
       }
     }
   }
+
+  /**
+   * Register the extension validator with the given class name and namespaces.
+   * 
+   * @param classLoader - the class loader to create the validator
+   * @param className - the name of the extension validator
+   * @param namespace - the namespace of the extension validator
+   * @throws Exception
+   */
+//  protected void registerWSDLValidatorPluginExtensionWithClassName(
+//    ClassLoader classLoader,
+//    String className,
+//    String namespace)
+//    throws Exception
+//  {
+//    try
+//    {
+//      Class validatorExtensionClass = classLoader != null ? classLoader.loadClass(className) : Class.forName(className);
+//
+//      
+//      //IValidatorExtensionPlugin validatorHandler = (IValidatorExtensionPlugin)validatorExtensionClass.newInstance();
+//      //add(namespace, validatorHandler.getValidator());
+//    }
+//    catch (Exception e)
+//    {
+//      //System.out.println(e.getMessage());
+//      //TODO: write the error message to the log file - use custom log writer class
+//      //ValidateWSDLPlugin.getInstance().getMsgLogger().write("WSDL Validator could not register the extension validator." + e.getMessage());	
+//    }
+//  }
+
+  /**
+   * Register the loaded validator.
+   * 
+   * @param namespace - the namespace of the validator
+   * @param validatorExtension - the extension validator
+   */
+//  protected void add(String namespace, IWSDLValidator validatorExtension)
+//  {
+//    if (validatorType == WSDL_VALIDATOR)
+//    {
+//      WSDLConfigurator.registerWSDLValidator(namespace, validatorExtension);
+//    }
+//    else if (validatorType == WSI_VALIDATOR)
+//    {
+//      WSDLConfigurator.registerWSIValidator(namespace, validatorExtension);
+//    }
+//  }
 }
 
 /**
@@ -238,6 +297,7 @@
   protected static final String PLUGIN_ID = "org.eclipse.wst.wsdl.validation";
   protected static final String ATT_CLASS = "class";
   protected static final String ATT_NAMESPACE = "namespace";
+  protected static final String ATT_RESOURCEBUNDLE = "resourcebundle";
   protected String extensionPointId;
   protected String tagName;
 
@@ -282,13 +342,15 @@
     {
       String validatorClass = element.getAttribute(ATT_CLASS);
       String namespace = element.getAttribute(ATT_NAMESPACE);
+      String resourceBundle = element.getAttribute(ATT_RESOURCEBUNDLE);
 
       if (validatorClass != null && namespace != null)
       {
         try
         {
-          Bundle pluginBundle = Platform.getBundle(element.getDeclaringExtension().getContributor().getName());
-          WSDL11ValidatorDelegate delegate = new EclipseWSDL11ValidatorDelegate(validatorClass, pluginBundle);
+          ClassLoader pluginLoader =
+            element.getDeclaringExtension().getDeclaringPluginDescriptor().getPluginClassLoader();
+          WSDL11ValidatorDelegate delegate = new WSDL11ValidatorDelegate(validatorClass, resourceBundle, pluginLoader);
           WSDLValidator.getInstance().registerWSDL11Validator(namespace, delegate);
         }
         catch (Exception e)
diff --git a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/eclipse/Validator.java b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/eclipse/Validator.java
deleted file mode 100644
index ddf4739..0000000
--- a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/eclipse/Validator.java
+++ /dev/null
@@ -1,144 +0,0 @@
-package org.eclipse.wst.wsdl.validation.internal.eclipse;
-
-import java.io.InputStream;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-
-import org.apache.xerces.util.XMLGrammarPoolImpl;
-import org.apache.xerces.xni.grammars.XMLGrammarPool;
-import org.eclipse.wst.wsdl.validation.internal.Constants;
-import org.eclipse.wst.wsdl.validation.internal.IValidationMessage;
-import org.eclipse.wst.wsdl.validation.internal.IValidationReport;
-import org.eclipse.wst.wsdl.validation.internal.WSDLValidationConfiguration;
-import org.eclipse.wst.xml.core.internal.validation.core.AbstractNestedValidator;
-import org.eclipse.wst.xml.core.internal.validation.core.NestedValidatorContext;
-import org.eclipse.wst.xml.core.internal.validation.core.ValidationInfo;
-import org.eclipse.wst.xml.core.internal.validation.core.ValidationReport;
-
-/**
- * A WSDL validator to contribute to the WTP validation framework.
- */
-public class Validator extends AbstractNestedValidator 
-{
-  protected HashMap xsdGrammarPools = new HashMap();
-  protected HashMap xmlGrammarPools = new HashMap();
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.xml.core.internal.validation.core.AbstractNestedValidator#getValidatorName()
-   */
-  protected String getValidatorName() 
-  {
-	return WSDLValidationMessages.Message_WSDL_validation_message_ui;
-  }
-
-  /** 
-   * Create and configure the two grammar pools for this WSDL validation context.
-   * 
-   * @see org.eclipse.wst.xml.core.internal.validation.core.AbstractNestedValidator#setupValidation(org.eclipse.wst.xml.core.internal.validation.core.NestedValidatorContext)
-   */
-  protected void setupValidation(NestedValidatorContext context) 
-  {
-	super.setupValidation(context);
-    
-	XMLGrammarPool xsdGrammarPool = new InlineSchemaModelGrammarPoolImpl();
-	XMLGrammarPool xmlGrammarPool = new XMLGrammarPoolImpl();
-	
-	xsdGrammarPools.put(context, xsdGrammarPool);
-	xmlGrammarPools.put(context, xmlGrammarPool);
-  }
-
-  /**
-   * Remove two grammar pools for this WSDL validation context.
-   * 
-   * @see org.eclipse.wst.xml.core.internal.validation.core.AbstractNestedValidator#teardownValidation(org.eclipse.wst.xml.core.internal.validation.core.NestedValidatorContext)
-   */
-  protected void teardownValidation(NestedValidatorContext context) 
-  {
-    XMLGrammarPool xsdGrammarPool = (XMLGrammarPool)xsdGrammarPools.remove(context);
-    if(xsdGrammarPool != null)
-      xsdGrammarPool.clear();
-    XMLGrammarPool xmlGrammarPool = (XMLGrammarPool)xmlGrammarPools.remove(context);
-    if(xmlGrammarPool != null)
-      xmlGrammarPool.clear();
-    
-    super.teardownValidation(context);
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.xml.core.internal.validation.core.AbstractNestedValidator#validate(java.lang.String, java.io.InputStream, org.eclipse.wst.xml.core.internal.validation.core.NestedValidatorContext)
-   */
-  public ValidationReport validate(String uri, InputStream inputstream, NestedValidatorContext context) 
-  {
-	XMLGrammarPool xsdGrammarPool = (XMLGrammarPool)xsdGrammarPools.get(context);
-	XMLGrammarPool xmlGrammarPool = (XMLGrammarPool)xmlGrammarPools.get(context);
-	
-	WSDLValidator validator = WSDLValidator.getInstance();
-	
-	WSDLValidationConfiguration configuration = new WSDLValidationConfiguration();
-	configuration.setProperty(Constants.XMLSCHEMA_CACHE_ATTRIBUTE, xsdGrammarPool);
-    configuration.setProperty(Constants.XML_CACHE_ATTRIBUTE, xmlGrammarPool);
-
-	IValidationReport valreport = null;
-	if (inputstream != null)
-	{
-	  valreport = validator.validate(uri, inputstream, configuration);
-	}
-	else
-	{
-	  valreport = validator.validate(uri, null, configuration);
-	}
-			        
-	return convertReportToXMLReport(valreport);
-  }
-  
-  /**
-   * Convert a WSDL IValidationReport to an XML Validation Report.
-   * 
-   * @param report 
-   * 		The WSDL IValidationReport to convert.
-   * @return 
-   * 		An XML Validation Report representing the information contained in the IValidationReport.
-   */
-  protected ValidationReport convertReportToXMLReport(IValidationReport report)
-  {
-	ValidationInfo convertedReport = new ValidationInfo(report.getFileURI());
-	IValidationMessage[] messages = report.getValidationMessages();
-	int numMessages = messages.length;
-	for(int i = 0; i < numMessages; i++)
-	{
-	  convertMessage(messages[i], convertedReport);
-	}
-
-	return convertedReport;
-  }
-  
-  /**
-   * Convert a WSDL IValidationMessage by reporting it in the ValidationInfo object.
-   * 
-   * @param message
-   * 		The IValidationMessage to convert.
-   * @param convertedReport
-   * 		The ValidationInfo object represting the converted report.
-   */
-  protected void convertMessage(IValidationMessage message, ValidationInfo convertedReport)
-  {
-	List nestedMessages = message.getNestedMessages();
-	if(nestedMessages != null && nestedMessages.size() > 0)
-	{
-	  Iterator messageIter = nestedMessages.iterator();
-	  while(messageIter.hasNext())
-	  {
-		convertMessage((IValidationMessage)messageIter.next(), convertedReport);
-	  }
-	}
-	else
-	{
-	  if(message.getSeverity() == IValidationMessage.SEV_WARNING)
-	    convertedReport.addWarning(message.getMessage(), message.getLine(), message.getColumn(), message.getURI());
-	  else
-		convertedReport.addError(message.getMessage(), message.getLine(), message.getColumn(), message.getURI());
-	}
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/eclipse/WSDLValidationMessages.java b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/eclipse/WSDLValidationMessages.java
deleted file mode 100644
index 38ac09b..0000000
--- a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/eclipse/WSDLValidationMessages.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *   IBM - Initial API and implementation
- * 
- */
-package org.eclipse.wst.wsdl.validation.internal.eclipse;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Strings used by WSDL Validation
- */
-public class WSDLValidationMessages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.wst.wsdl.validation.internal.eclipse.wsdlvalidation";//$NON-NLS-1$
-
-	public static String Message_WSDL_validation_message_ui;
-
-	static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, WSDLValidationMessages.class);
-	}
-
-	private WSDLValidationMessages() {
-		// cannot create new instance
-	}
-}
diff --git a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/eclipse/WSDLValidator.java b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/eclipse/WSDLValidator.java
index 516c555..0c68260 100644
--- a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/eclipse/WSDLValidator.java
+++ b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/eclipse/WSDLValidator.java
@@ -28,7 +28,7 @@
 	 * WSDL URI resolver extension point with the WSDL validator. 
 	 * 
 	 */
-	protected WSDLValidator()
+	private WSDLValidator()
 	{
       super();
       URIResolverWrapper resolver = new URIResolverWrapper();
diff --git a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/eclipse/wsdlvalidation.properties b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/eclipse/wsdlvalidation.properties
deleted file mode 100644
index 3adb534..0000000
--- a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/eclipse/wsdlvalidation.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-###############################################################################
-# Copyright (c) 2001, 2006 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
-###############################################################################
-!-- Constants for strings  
-
-# validation strings
-Message_WSDL_validation_message_ui=WSDL Validator validating {0}
diff --git a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/ui/ant/ExtensionValidator.java b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/ui/ant/ExtensionValidator.java
index 3f49448..6b9aa20 100644
--- a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/ui/ant/ExtensionValidator.java
+++ b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/ui/ant/ExtensionValidator.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
@@ -18,6 +18,7 @@
 {
   private String classname = null;
   private String namespace = null;
+  private String resourcebundle = null;
   
   public void setClass(String classname)
   {
@@ -38,4 +39,14 @@
   {
     return this.namespace;
   }
+  
+  public void setResourceBundle(String resourcebundle)
+  {
+    this.resourcebundle = resourcebundle;
+  }
+  
+  public String getResourceBundle()
+  {
+    return this.resourcebundle;
+  }
 }
diff --git a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/ui/ant/WSDLValidate.java b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/ui/ant/WSDLValidate.java
index 4450a90..5ad53d9 100644
--- a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/ui/ant/WSDLValidate.java
+++ b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/ui/ant/WSDLValidate.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
@@ -12,6 +12,7 @@
 package org.eclipse.wst.wsdl.validation.internal.ui.ant;
 
 import java.io.File;
+
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.Iterator;
@@ -26,13 +27,12 @@
 import org.apache.tools.ant.types.FileSet;
 import org.apache.tools.ant.types.Path;
 import org.apache.tools.ant.types.XMLCatalog;
-import org.eclipse.wst.wsdl.validation.internal.ClassloaderWSDLValidatorDelegate;
 import org.eclipse.wst.wsdl.validation.internal.IValidationMessage;
 import org.eclipse.wst.wsdl.validation.internal.IValidationReport;
 import org.eclipse.wst.wsdl.validation.internal.WSDLValidator;
+import org.eclipse.wst.wsdl.validation.internal.WSDLValidatorDelegate;
 import org.eclipse.wst.wsdl.validation.internal.resolver.URIResolverDelegate;
 import org.eclipse.wst.wsdl.validation.internal.util.MessageGenerator;
-import org.eclipse.wst.wsdl.validation.internal.wsdl11.ClassloaderWSDL11ValidatorDelegate;
 import org.eclipse.wst.wsdl.validation.internal.wsdl11.WSDL11ValidatorDelegate;
 
 /**
@@ -293,7 +293,7 @@
     while(wsdl11extIter.hasNext())
     {
       ExtensionValidator extVal = (ExtensionValidator)wsdl11extIter.next();
-      WSDL11ValidatorDelegate delegate = new ClassloaderWSDL11ValidatorDelegate(extVal.getClassName());
+      WSDL11ValidatorDelegate delegate = new WSDL11ValidatorDelegate(extVal.getClassName(), extVal.getResourceBundle());
       wsdlValidator.registerWSDL11Validator(extVal.getNamespace(), delegate);
     }
     
@@ -302,7 +302,7 @@
     while(extIter.hasNext())
     {
       ExtensionValidator extVal = (ExtensionValidator)extIter.next();
-      ClassloaderWSDLValidatorDelegate delegate = new ClassloaderWSDLValidatorDelegate(extVal.getClassName());
+      WSDLValidatorDelegate delegate = new WSDLValidatorDelegate(extVal.getClassName(), extVal.getResourceBundle());
       wsdlValidator.registerWSDLExtensionValidator(extVal.getNamespace(), delegate);
     }
 
diff --git a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/ui/text/WSDLValidate.java b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/ui/text/WSDLValidate.java
index e706799..5daa05e 100644
--- a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/ui/text/WSDLValidate.java
+++ b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/ui/text/WSDLValidate.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
@@ -19,14 +19,13 @@
 import java.util.ResourceBundle;
 import java.util.Vector;
 
-import org.eclipse.wst.wsdl.validation.internal.ClassloaderWSDLValidatorDelegate;
 import org.eclipse.wst.wsdl.validation.internal.IValidationMessage;
 import org.eclipse.wst.wsdl.validation.internal.IValidationReport;
 import org.eclipse.wst.wsdl.validation.internal.WSDLValidator;
+import org.eclipse.wst.wsdl.validation.internal.WSDLValidatorDelegate;
 import org.eclipse.wst.wsdl.validation.internal.resolver.IExtensibleURIResolver;
 import org.eclipse.wst.wsdl.validation.internal.resolver.URIResolverDelegate;
 import org.eclipse.wst.wsdl.validation.internal.util.MessageGenerator;
-import org.eclipse.wst.wsdl.validation.internal.wsdl11.ClassloaderWSDL11ValidatorDelegate;
 import org.eclipse.wst.wsdl.validation.internal.wsdl11.WSDL11ValidatorDelegate;
 import org.eclipse.wst.wsdl.validation.internal.xml.XMLCatalog;
 import org.eclipse.wst.wsdl.validation.internal.xml.XMLCatalogEntityHolder;
@@ -211,14 +210,20 @@
 
           if (!namespace.startsWith(WSDLValidate.STRING_DASH))
           {
+            String propertiesFile = args[++i];
+            if (propertiesFile.startsWith(WSDLValidate.STRING_DASH))
+            {
+              propertiesFile = null;
+              i--;
+            }
             if(param.equalsIgnoreCase(WSDLValidate.PARAM_WSDL11VAL))
             {  
-              WSDL11ValidatorDelegate delegate = new ClassloaderWSDL11ValidatorDelegate(validatorClass);
+              WSDL11ValidatorDelegate delegate = new WSDL11ValidatorDelegate(validatorClass, propertiesFile);
               wsdlValidator.wsdlValidator.registerWSDL11Validator(namespace, delegate);
             }
             else if(param.equalsIgnoreCase(WSDLValidate.PARAM_EXTVAL))
             {
-              ClassloaderWSDLValidatorDelegate delegate = new ClassloaderWSDLValidatorDelegate(validatorClass);
+              WSDLValidatorDelegate delegate = new WSDLValidatorDelegate(validatorClass, propertiesFile);
               wsdlValidator.wsdlValidator.registerWSDLExtensionValidator(namespace, delegate);
             }
           }
@@ -299,4 +304,73 @@
       }
     }
   }
+
+  /**
+   * Load a validator into the wsdl validation framework registry.
+   * 
+   * @param namespace - the namespace the validator checks
+   * @param validatorClass - the name of the class the implements IWSDLValidator
+   * @param propertiesFile - the name of the properties file for the validator
+   * @param type           - the type of validator - WSDL or WS-I
+   * @param messGen        - a MessageGenerator for producing error messages
+   */
+//  protected static void loadExtensionValidator(
+//    String namespace,
+//    String validatorClass,
+//    String propertiesFile,
+//    Integer type,
+//    MessageGenerator messGen)
+//  {
+//    try
+//    {
+//      ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+//      IWSDLValidator validator = (IWSDLValidator)classLoader.loadClass(validatorClass).newInstance();
+//      // if no properties file is specified we can still load the validator
+//      if (propertiesFile != null && !propertiesFile.equals(""))
+//      {
+//        ResourceBundle rb = ResourceBundle.getBundle(propertiesFile);
+//        validator.setResourceBundle(rb);
+//      }
+//      else
+//      {
+//        propertiesFile = null;
+//      }
+//
+//      ValidatorRegistry.getInstance().registerValidator(namespace, validator, type);
+//    }
+//    catch (Exception e)
+//    {
+//      System.out.println(messGen.getString(_ERROR_UNABLE_TO_LOAD_EXT_VALIDATOR, namespace, e));
+//    }
+//
+//  }
+  //	/**
+  //	 * loadWSDL11ExtensionValidator
+  //	 * Load an extension validator into the WSDL 1.1 validator
+  //   * @param namespace
+  //   * @param validatorClass
+  //   * @param propertiesFile
+  //   * @param type
+  //   * @param classLoader
+  //   */
+  //  protected static void loadWSDL11ExtensionValidator(
+  //			String namespace,
+  //			String validatorClass,
+  //			String resourceBundle,
+  //			ClassLoader classLoader)
+  //		{
+  //			try
+  // {
+  // 	Class valclass = classLoader.loadClass(validatorClass);
+  // 	IWSDL11Validator validator = (IWSDL11Validator)valclass.newInstance();
+  // 	validator.setResourceBundle(ResourceBundle.getBundle(resourceBundle));
+  // 	WSDLConfigurator.registerWSDL11Validator(namespace,validator);
+  // }
+  // catch(Exception e)
+  // {
+  //	 System.out.println("Unable to load the WSDL 1.1 validator for namespace "
+  // + namespace + e);
+  // }
+  //
+  //		}
 }
diff --git a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/ClassloaderWSDL11ValidatorDelegate.java b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/ClassloaderWSDL11ValidatorDelegate.java
deleted file mode 100644
index 955f352..0000000
--- a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/ClassloaderWSDL11ValidatorDelegate.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.validation.internal.wsdl11;
-
-public class ClassloaderWSDL11ValidatorDelegate extends WSDL11ValidatorDelegate
-{
-  private String validatorClassname = null;
-  private ClassLoader classLoader = null;
-
-  /**
-   * Create a delegate for a validator by its class name.
-   * 
-   * @param validatorClassname The name of the validator class.
-   */
-  public ClassloaderWSDL11ValidatorDelegate(String validatorClassname)
-  {
-	this.validatorClassname = validatorClassname;
-  }
-
-  /**
-   * Create a delegate for a validator by its class name and 
-   * a class loader to load the validator.
-   * 
-   * @param validatorClassname The name of the validator class.
-   * @param classLoader The class loader to use to load the validator.
-   */
-  public ClassloaderWSDL11ValidatorDelegate(String validatorClassname, ClassLoader classLoader)
-  {
-    this(validatorClassname);
-    this.classLoader = classLoader;
-  }
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.wsdl.validation.internal.wsdl11.WSDL11ValidatorDelegate#loadValidator()
-   */
-  protected IWSDL11Validator loadValidator()
-  {
-	IWSDL11Validator validator = null;
-	if(classLoader == null)
-	{
-	  classLoader = getClass().getClassLoader();
-	}
-	try
-	{
-      Class validatorClass =
-      classLoader != null ? classLoader.loadClass(validatorClassname) : Class.forName(validatorClassname);
-
-      validator = (IWSDL11Validator)validatorClass.newInstance();
-    }
-    catch (Throwable t)
-    {
-      // TODO: add logging
-      System.err.println(t);
-    }
-	return validator;
-  }
-}
diff --git a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/IWSDL11Validator.java b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/IWSDL11Validator.java
index daabcd6..a6bd2e2 100644
--- a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/IWSDL11Validator.java
+++ b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/IWSDL11Validator.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
@@ -12,6 +12,7 @@
 package org.eclipse.wst.wsdl.validation.internal.wsdl11;
 
 import java.util.List;
+import java.util.ResourceBundle;
 
 /**
  * Interface for a validator plugged into the WSDL 1.1 validator.
@@ -26,4 +27,12 @@
    * @param valInfo The current validation information.
    */
   public void validate(Object element, List parents, IWSDL11ValidationInfo valInfo);
+
+  /**
+   * Set the resource bundle of the validator.
+   * 
+   * @param rb The resource bundle to set.
+   */
+  public void setResourceBundle(ResourceBundle rb);
+
 }
diff --git a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/WSDL11BasicValidator.java b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/WSDL11BasicValidator.java
index a77067b..bd7b98a 100644
--- a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/WSDL11BasicValidator.java
+++ b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/WSDL11BasicValidator.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
@@ -14,7 +14,6 @@
 import java.util.Hashtable;
 import java.util.Iterator;
 import java.util.List;
-import java.util.Locale;
 import java.util.Map;
 import java.util.ResourceBundle;
 import java.util.Vector;
@@ -49,8 +48,6 @@
  */
 public class WSDL11BasicValidator implements IWSDL11Validator
 {
-  private static String VALIDATOR_RESOURCE_BUNDLE_NAME = "validatewsdl";
-	
   protected final String NAMESPACES_FEATURE_ID = "http://xml.org/sax/features/namespaces";
   protected final String VALIDATION_FEATURE_ID = "http://xml.org/sax/features/validation";
   protected final String SCHEMA_VALIDATION_FEATURE_ID = "http://apache.org/xml/features/validation/schema";
@@ -90,11 +87,6 @@
   //protected WSDL11ValidatorController validatorcontroller;
   protected MessageGenerator messagegenerator;
 
-  public WSDL11BasicValidator()
-  {
-	ResourceBundle rb = ResourceBundle.getBundle(VALIDATOR_RESOURCE_BUNDLE_NAME, Locale.getDefault());
-    messagegenerator = new MessageGenerator(rb);
-  }
   /**
    * @see org.eclipse.wst.wsdl.validation.internal.wsdl11.IWSDL11Validator#validate(java.lang.Object, java.util.List, org.eclipse.wsdl.validate.wsdl11.IWSDL11ValidationInfo)
    */
@@ -144,6 +136,29 @@
   }
 
   /**
+   * If the resourcebundle hasn't been set, set it to the one registered with the ValidatorController.
+   * 
+   * @param validatorcontroller The validator controller to get the resource bundle from.
+   */
+  //  protected void setDefaultResourceBundleIfNeeded(WSDL11ValidatorController validatorcontroller)
+  //  {
+  //    if (messagegenerator == null)
+  //    {
+  //      setResourceBundle(validatorcontroller.getResourceBundle());
+  //    }
+  //  }
+
+  /**
+   * Set the resourcebundle to the one specified.
+   * 
+   * @param rb The resource bundle to set.
+   */
+  public void setResourceBundle(ResourceBundle rb)
+  {
+    messagegenerator = new MessageGenerator(rb);
+  }
+
+  /**
    * Ensure that the Types element is correct. 
    * 
    * @param wsdlDefinition The definitions element from the current document.
diff --git a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/WSDL11ValidatorController.java b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/WSDL11ValidatorController.java
index 089719a..aa46e81 100644
--- a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/WSDL11ValidatorController.java
+++ b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/WSDL11ValidatorController.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
@@ -13,7 +13,6 @@
 
 import java.util.Iterator;
 import java.util.List;
-import java.util.Locale;
 import java.util.ResourceBundle;
 import java.util.Vector;
 
@@ -34,7 +33,6 @@
  */
 public class WSDL11ValidatorController implements IWSDLValidator
 {
-  private static String VALIDATOR_RESOURCE_BUNDLE_NAME = "validatewsdl";
   protected final String _WARN_NO_VALDIATOR = "_WARN_NO_VALDIATOR";
 //  protected final int ERROR_MESSAGE = 0;
 //  protected final int WARNING_MESSAGE = 1;
@@ -50,8 +48,6 @@
    */
   public WSDL11ValidatorController()
   {
-    ResourceBundle rb = ResourceBundle.getBundle(VALIDATOR_RESOURCE_BUNDLE_NAME, Locale.getDefault());
-	messagegenerator = new MessageGenerator(rb);
   }
 
 
@@ -114,6 +110,34 @@
   }
   
   /**
+   * Validate an imported WSDL document. Allows the calling class to have access to the internal
+   * components of the validation.
+   * 
+   * @param wsdlvalinfo The WSDL 1.1 validation info object to use.
+   * @return The definitions element for the import.
+   * @throws ValidateWSDLException
+   */
+//  protected Definition validateImport(WSDL11ValidationInfo wsdlvalinfo)
+//  {
+//    WSDLDocument[] wsdlDocs = null;
+//    try
+//    {
+//      wsdlDocs = readWSDLDocument(null, wsdlvalinfo.getFileURI(), getMessageGenerator(), wsdlvalinfo);
+//    }
+//    catch(ValidateWSDLException e)
+//    {
+//      // supress any validation issues with imported documents
+//    }
+//    // Don't validate an null definitions element. Either the file is emtpy and valid or
+//    // had an error when reading.
+//    if(wsdlDocs != null)
+//     {  
+//      validateWSDLElement(Constants.NS_URI_WSDL, wsdlDefinition, new Vector(), wsdlvalinfo);
+//    }
+//    return wsdlDefinition;
+//  }
+  
+  /**
    * Read in the WSDL document and set the model and imported schemas.
    * 
    * @param domModel A DOM model of the document to be read.
@@ -194,6 +218,55 @@
       //wsdlvalinfo.addWarning(messagegenerator.getString(_WARN_NO_VALDIATOR, namespace), element);
     }
   }
+
+  /**
+   * Add a schema to the list of schemas.
+   * 
+   * @param xsModel The schema to add.
+   */
+//  public void addSchema(XSModel xsModel)
+//  {
+//    if (xsModel != null)
+//    {
+//      schemas.add(xsModel);
+//    }
+//  }
+
+  /**
+   * Return the list containing the schemas.
+   * 
+   * @return The list of schemas.
+   */
+//  public List getSchemas()
+//  {
+//    return schemas;
+//  }
+
+  /**
+  	* Get the ResourceBundle for this ValidatorManager.
+  	* 
+  	* @return The resource bundle registered for this controller.
+  	* @see #setResourceBundle
+  	*/
+//  public ResourceBundle getResourceBundle()
+//  {
+//    return resourcebundle;
+//  }
+
+  /**
+   * Set the ResourceBundle for this ValidatorManager.
+   * 
+   * @param rb The resource bundle to set.
+   * @see #getResourceBundle
+   */
+  public void setResourceBundle(ResourceBundle rb)
+  {
+    if (messagegenerator == null)
+    {
+      messagegenerator = new MessageGenerator(rb);
+    }
+
+  }
   
   /**
    * Set the message generator for this controller.
diff --git a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/WSDL11ValidatorDelegate.java b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/WSDL11ValidatorDelegate.java
index 32135e4..e627a78 100644
--- a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/WSDL11ValidatorDelegate.java
+++ b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/WSDL11ValidatorDelegate.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
@@ -11,14 +11,46 @@
 
 package org.eclipse.wst.wsdl.validation.internal.wsdl11;
 
+import java.util.Locale;
+import java.util.ResourceBundle;
+
+
 /**
  * The WSDL 1.1 validator delegate holds a reference to a validator to be instantiated at
  * a later point.
  */
-public abstract class WSDL11ValidatorDelegate
+public class WSDL11ValidatorDelegate
 {
+  private String validatorClassname = null;
+  private String resourceBundle = null;
+  private ClassLoader classLoader = null;
   private IWSDL11Validator validator = null;
 
+  /**
+   * Create a delegate for a validator by its class name and resource bundle name.
+   * 
+   * @param validatorClassname The name of the validator class.
+   * @param resourceBundle The name of the validator base resource bundle.
+   */
+  public WSDL11ValidatorDelegate(String validatorClassname, String resourceBundle)
+  {
+    this.validatorClassname = validatorClassname;
+    this.resourceBundle = resourceBundle;
+  }
+
+  /**
+   * Create a delegate for a validator by its class name, resource bundle name and 
+   * a class loader to load the validator and bundle.
+   * 
+   * @param validatorClassname The name of the validator class.
+   * @param resourceBundle The name of the validator base resource bundle.
+   * @param classLoader The class loader to use to load the validator and bundle.
+   */
+  public WSDL11ValidatorDelegate(String validatorClassname, String resourceBundle, ClassLoader classLoader)
+  {
+    this(validatorClassname, resourceBundle);
+    this.classLoader = classLoader;
+  }
 
   /**
    * Get the validator specified in this delegate.
@@ -29,10 +61,38 @@
   {
     if (validator == null)
     {
-      validator = loadValidator();
+      if(classLoader == null)
+      {
+      	classLoader = getClass().getClassLoader();
+      }
+      try
+      {
+        Class validatorClass =
+          classLoader != null ? classLoader.loadClass(validatorClassname) : Class.forName(validatorClassname);
+
+        validator = (IWSDL11Validator)validatorClass.newInstance();
+        if (resourceBundle != null)
+        {
+          ResourceBundle validatorBundle = ResourceBundle.getBundle(resourceBundle, Locale.getDefault(), classLoader);
+          validator.setResourceBundle(validatorBundle);
+        }
+      }
+      catch (ClassNotFoundException e)
+      {
+        // TODO: add logging
+        System.err.println(e);
+      }
+      catch (IllegalAccessException e)
+      {
+        // TODO: add logging
+        System.err.println(e);
+      }
+      catch (InstantiationException e)
+      {
+        // TODO: add logging
+        System.err.println(e);
+      }
     }
     return validator;
   }
-  
-  protected abstract IWSDL11Validator loadValidator();
 }
diff --git a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/http/HTTPValidator.java b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/http/HTTPValidator.java
index 5134e33..6780e48 100644
--- a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/http/HTTPValidator.java
+++ b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/http/HTTPValidator.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
@@ -13,7 +13,6 @@
 
 import java.util.Iterator;
 import java.util.List;
-import java.util.Locale;
 import java.util.ResourceBundle;
 
 import javax.wsdl.Binding;
@@ -24,8 +23,8 @@
 import javax.wsdl.extensions.http.HTTPOperation;
 
 import org.eclipse.wst.wsdl.validation.internal.util.MessageGenerator;
-import org.eclipse.wst.wsdl.validation.internal.wsdl11.IWSDL11ValidationInfo;
 import org.eclipse.wst.wsdl.validation.internal.wsdl11.IWSDL11Validator;
+import org.eclipse.wst.wsdl.validation.internal.wsdl11.IWSDL11ValidationInfo;
 
 import com.ibm.wsdl.BindingImpl;
 import com.ibm.wsdl.BindingInputImpl;
@@ -43,8 +42,6 @@
  */
 public class HTTPValidator implements IWSDL11Validator
 {
-  private static String HTTP_RESOURCE_BUNDLE_NAME = "validatewsdlhttp";
-	
   private final String _ERROR_INVALID_PORT_ELEMENT = "_ERROR_INVALID_PORT_ELEMENT";
   private final String _ERROR_INVALID_BINDING_ELEMENT = "_ERROR_INVALID_BINDING_ELEMENT";
   private final String _ERROR_INVALID_BINDING_OPERATION_ELEMENT = "_ERROR_INVALID_BINDING_OPERATION_ELEMENT";
@@ -67,15 +64,6 @@
   private MessageGenerator messagegenerator;
 
   /**
-   * Default constructor.
-   */
-  public HTTPValidator()
-  {
-	ResourceBundle rb = ResourceBundle.getBundle(HTTP_RESOURCE_BUNDLE_NAME, Locale.getDefault());
-	messagegenerator = new MessageGenerator(rb);
-  }
-  
-  /**
    * @see org.eclipse.wst.wsdl.validation.internal.wsdl11.IWSDL11Validator#validate(java.lang.Object, java.util.List, org.eclipse.wsdl.validate.wsdl11.IWSDL11ValidationInfo)
    */
   public void validate(Object element, List parents, IWSDL11ValidationInfo valInfo)
@@ -163,6 +151,17 @@
   }
 
   /**
+   * @see org.eclipse.wst.wsdl.validation.internal.wsdl11.validator.IWSDL11Validator#setResourceBundle(java.util.ResourceBundle)
+   */
+  public void setResourceBundle(ResourceBundle rb)
+  {
+    if (messagegenerator == null)
+    {
+      messagegenerator = new MessageGenerator(rb);
+    }
+  }
+
+  /**
    * Ensure that the HTTP address has a value specified for it's uri and that there is a HTTP Binding defined
    * for the Binding specified in the port.
    * 
diff --git a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/mime/MIMEValidator.java b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/mime/MIMEValidator.java
index 912a3b4..54fcea8 100644
--- a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/mime/MIMEValidator.java
+++ b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/mime/MIMEValidator.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
@@ -12,7 +12,6 @@
 package org.eclipse.wst.wsdl.validation.internal.wsdl11.mime;
 
 import java.util.List;
-import java.util.Locale;
 import java.util.ResourceBundle;
 
 import org.eclipse.wst.wsdl.validation.internal.util.MessageGenerator;
@@ -25,14 +24,8 @@
  */
 public class MIMEValidator implements IWSDL11Validator
 {
-  private static String MIME_RESOURCE_BUNDLE_NAME = "validatewsdlmime";
   protected MessageGenerator messagegenerator;
 
-  public MIMEValidator()
-  {
-	ResourceBundle rb = ResourceBundle.getBundle(MIME_RESOURCE_BUNDLE_NAME, Locale.getDefault());
-	messagegenerator = new MessageGenerator(rb);
-  }
   /**
    * @see org.eclipse.wst.wsdl.validation.internal.wsdl11.IWSDL11Validator#validate(java.lang.Object, java.util.List, org.eclipse.wsdl.validate.wsdl11.IWSDL11ValidationInfo)
    */
@@ -40,4 +33,15 @@
   {
 
   }
+  
+  /**
+   * @see org.eclipse.wst.wsdl.validation.internal.wsdl11.validator.IWSDL11Validator#setResourceBundle(java.util.ResourceBundle)
+   */
+  public void setResourceBundle(ResourceBundle rb)
+  {
+    if (messagegenerator == null)
+    {
+      messagegenerator = new MessageGenerator(rb);
+    }
+  }
 }
diff --git a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/soap/SOAPValidator.java b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/soap/SOAPValidator.java
index 47f8570..c591425 100644
--- a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/soap/SOAPValidator.java
+++ b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/soap/SOAPValidator.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
@@ -13,7 +13,6 @@
 
 import java.util.Iterator;
 import java.util.List;
-import java.util.Locale;
 import java.util.ResourceBundle;
 
 import javax.wsdl.Binding;
@@ -55,8 +54,6 @@
  */
 public class SOAPValidator implements IWSDL11Validator
 {
-  private static String SOAP_RESOURCE_BUNDLE_NAME = "validatewsdlsoap";
-	  
   private final String _ERROR_INVALID_PORT_ELEMENT = "_ERROR_INVALID_PORT_ELEMENT";
   private final String _ERROR_INVALID_BINDING_ELEMENT = "_ERROR_INVALID_BINDING_ELEMENT";
   private final String _ERROR_INVALID_BINDING_OPERATION_ELEMENT = "_ERROR_INVALID_BINDING_OPERATION_ELEMENT";
@@ -101,15 +98,6 @@
   protected MessageGenerator messagegenerator;
  
   /**
-   * Default constructor.
-   */
-  public SOAPValidator()
-  {
-	ResourceBundle rb = ResourceBundle.getBundle(SOAP_RESOURCE_BUNDLE_NAME, Locale.getDefault());
-	messagegenerator = new MessageGenerator(rb);
-  }
-  
-  /**
    * @see org.eclipse.wst.wsdl.validation.internal.wsdl11.IWSDL11Validator#validate(java.lang.Object, java.util.List, org.eclipse.wsdl.validate.wsdl11.IWSDL11ValidationInfo)
    */
   public void validate(Object element, List parents, IWSDL11ValidationInfo valInfo)
@@ -210,6 +198,17 @@
     }
 
   }
+  
+  /**
+   * @see org.eclipse.wst.wsdl.validation.internal.wsdl11.validator.IWSDL11Validator#setResourceBundle(java.util.ResourceBundle)
+   */
+  public void setResourceBundle(ResourceBundle rb)
+  {
+    if (messagegenerator == null)
+    {
+      messagegenerator = new MessageGenerator(rb);
+    }
+  }
 
   /**
    * Ensure that the SOAP address has a value specified for it's uri and that the binding has a SOAP
diff --git a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/xml/DefaultXMLValidator.java b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/xml/DefaultXMLValidator.java
index 25153cc..f890942 100644
--- a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/xml/DefaultXMLValidator.java
+++ b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/xml/DefaultXMLValidator.java
@@ -31,6 +31,7 @@
 import org.apache.xerces.xni.parser.XMLErrorHandler;
 import org.apache.xerces.xni.parser.XMLInputSource;
 import org.apache.xerces.xni.parser.XMLParseException;
+import org.eclipse.core.resources.IFile;
 import org.eclipse.wst.wsdl.validation.internal.ValidationMessageImpl;
 import org.eclipse.wst.wsdl.validation.internal.resolver.IURIResolutionResult;
 import org.eclipse.wst.wsdl.validation.internal.resolver.URIResolver;
@@ -76,32 +77,26 @@
     ignoredNamespaceList.add(Constants.NS_URI_XSD_2001);
   }
 
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.wsdl.validation.internal.xml.IXMLValidator#setFile(java.lang.String)
+  /**
+   * @see org.eclipse.validate.wsdl.xmlconformance.IXMLValidatorAction#setFile(IFile)
    */
   public void setFile(String uri)
   {
     this.uri = uri;
   }
   
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.wsdl.validation.internal.xml.IXMLValidator#setURIResolver(org.eclipse.wst.wsdl.validation.internal.resolver.URIResolver)
-   */
   public void setURIResolver(URIResolver uriResolver)
   {
   	this.uriResolver = uriResolver;
   }
   
-  /**
-   * @param grammarPool
-   */
   public void setGrammarPool(XMLGrammarPool grammarPool)
   {
 	this.grammarPool = grammarPool;
   }
 
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.wsdl.validation.internal.xml.IXMLValidator#run()
+  /**
+   * @see org.eclipse.validate.wsdl.xmlconformance.IXMLValidatorAction#run()
    */
   public void run()
   {
@@ -112,14 +107,18 @@
       
       InputSource validateInputSource; 
      
-      validateInputSource = new InputSource(uri);
+      
       if (this.inputStream != null)
       {    
+      
+
         String string = createStringForInputStream(inputStream);
         reader1 = new StringReader(string);
           
-        validateInputSource.setByteStream(inputStream);
+        validateInputSource = new InputSource(inputStream);
         validateInputSource.setCharacterStream(reader1);
+      } else
+      { validateInputSource = new InputSource(uri);
       }
       
       XMLReader reader = createXMLReader();
@@ -132,6 +131,7 @@
     catch (IOException e)
     {
       // TODO: Log exception.
+      // System.out.println(e);
     }
     catch (Exception e)
     {
@@ -140,10 +140,6 @@
     }
   }
   
-  /**
-   * @param inputStream
-   * @return
-   */
   final String createStringForInputStream(InputStream inputStream)
   {
     // Here we are reading the file and storing to a stringbuffer.
@@ -168,28 +164,22 @@
     return fileString.toString();
   }
 
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.wsdl.validation.internal.xml.IXMLValidator#hasErrors()
+  /**
+   * @see org.eclipse.validate.wsdl.xmlconformance.IXMLValidatorAction#hasErrors()
    */
   public boolean hasErrors()
   {
     return !errors.isEmpty();
   }
 
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.wsdl.validation.internal.xml.IXMLValidator#getErrors()
+  /**
+   * @see org.eclipse.validate.wsdl.xmlconformance.IXMLValidatorAction#getErrorList()
    */
   public List getErrors()
   {
     return errors;
   }
   
-  /**
-   * @param message
-   * @param line
-   * @param column
-   * @param uri
-   */
   public void addError(String message, int line, int column, String uri)
   {
 	  errors.add(new ValidationMessageImpl(message, line, column, ValidationMessageImpl.SEV_WARNING, uri, currentErrorKey, currentMessageArguments));
diff --git a/bundles/org.eclipse.wst.wsdl.validation/src/validatewsdl.properties b/bundles/org.eclipse.wst.wsdl.validation/src/validatewsdl.properties
index a053432..73d05de 100644
--- a/bundles/org.eclipse.wst.wsdl.validation/src/validatewsdl.properties
+++ b/bundles/org.eclipse.wst.wsdl.validation/src/validatewsdl.properties
@@ -53,5 +53,3 @@
 !-- Referenced file error
 !-- Note to translator - _REF_FILE_ERROR_MESSAGE needs a trailing space as another message may follow.
 _REF_FILE_ERROR_MESSAGE          = Referenced file contains errors ({0}). 
-
-
diff --git a/bundles/org.eclipse.wst.wsdl/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.wst.wsdl/.settings/org.eclipse.jdt.core.prefs
index ae9d67c..2407534 100644
--- a/bundles/org.eclipse.wst.wsdl/.settings/org.eclipse.jdt.core.prefs
+++ b/bundles/org.eclipse.wst.wsdl/.settings/org.eclipse.jdt.core.prefs
@@ -1,6 +1,6 @@
-#Mon Jan 30 23:40:08 EST 2006
+#Mon Jan 30 18:52:04 EST 2006
 eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
 org.eclipse.jdt.core.compiler.compliance=1.4
@@ -34,7 +34,6 @@
 org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
 org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
 org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
 org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
@@ -49,7 +48,6 @@
 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
 org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
 org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
 org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
 org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
diff --git a/bundles/org.eclipse.wst.wsdl/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.wst.wsdl/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 17c50aa..0000000
--- a/bundles/org.eclipse.wst.wsdl/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Mon Jan 30 23:19:19 EST 2006
-eclipse.preferences.version=1
-internal.default.compliance=default
diff --git a/bundles/org.eclipse.wst.wsdl/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.wsdl/META-INF/MANIFEST.MF
index 8778f37..b9ea33b 100644
--- a/bundles/org.eclipse.wst.wsdl/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.wst.wsdl/META-INF/MANIFEST.MF
@@ -3,33 +3,33 @@
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.wst.wsdl; singleton:=true
 Bundle-Version: 1.0.0.qualifier
-Bundle-Activator: org.eclipse.wst.wsdl.WSDLPluginImplementation
+Bundle-Activator: org.eclipse.core.internal.compatibility.PluginActivator
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Export-Package: model,
  org.eclipse.wst.wsdl,
  org.eclipse.wst.wsdl.binding.http,
- org.eclipse.wst.wsdl.binding.http.internal.generator;x-internal:=true,
- org.eclipse.wst.wsdl.binding.http.internal.impl;x-internal:=true,
- org.eclipse.wst.wsdl.binding.http.internal.util;x-internal:=true,
+ org.eclipse.wst.wsdl.binding.http.internal.generator,
+ org.eclipse.wst.wsdl.binding.http.internal.impl,
+ org.eclipse.wst.wsdl.binding.http.internal.util,
  org.eclipse.wst.wsdl.binding.mime,
- org.eclipse.wst.wsdl.binding.mime.internal.impl;x-internal:=true,
- org.eclipse.wst.wsdl.binding.mime.internal.util;x-internal:=true,
+ org.eclipse.wst.wsdl.binding.mime.internal.impl,
+ org.eclipse.wst.wsdl.binding.mime.internal.util,
  org.eclipse.wst.wsdl.binding.soap,
- org.eclipse.wst.wsdl.binding.soap.internal.generator;x-internal:=true,
- org.eclipse.wst.wsdl.binding.soap.internal.impl;x-internal:=true,
- org.eclipse.wst.wsdl.binding.soap.internal.util;x-internal:=true,
- org.eclipse.wst.wsdl.internal.extensibility;x-internal:=true,
- org.eclipse.wst.wsdl.internal.generator;x-internal:=true,
- org.eclipse.wst.wsdl.internal.generator.extension;x-internal:=true,
- org.eclipse.wst.wsdl.internal.impl;x-internal:=true,
- org.eclipse.wst.wsdl.internal.impl.wsdl4j;x-internal:=true,
- org.eclipse.wst.wsdl.internal.util;x-internal:=true,
+ org.eclipse.wst.wsdl.binding.soap.internal.generator,
+ org.eclipse.wst.wsdl.binding.soap.internal.impl,
+ org.eclipse.wst.wsdl.binding.soap.internal.util,
+ org.eclipse.wst.wsdl.internal.extensibility,
+ org.eclipse.wst.wsdl.internal.generator,
+ org.eclipse.wst.wsdl.internal.generator.extension,
+ org.eclipse.wst.wsdl.internal.impl,
+ org.eclipse.wst.wsdl.internal.impl.wsdl4j,
+ org.eclipse.wst.wsdl.internal.util,
  org.eclipse.wst.wsdl.util
-Require-Bundle: org.eclipse.emf.ecore,
+Require-Bundle: org.eclipse.core.runtime.compatibility,
+ org.eclipse.emf.ecore,
  org.eclipse.xsd,
  org.eclipse.core.resources,
- org.wsdl4j,
- org.eclipse.core.runtime,
- org.apache.xerces
-Eclipse-LazyStart: true
+ org.wsdl4j
+Eclipse-AutoStart: true
+Plugin-Class: org.eclipse.wst.wsdl.WSDLPluginImplementation
diff --git a/bundles/org.eclipse.wst.wsdl/plugin.properties b/bundles/org.eclipse.wst.wsdl/plugin.properties
index 34bd26d..4edaf9d 100644
--- a/bundles/org.eclipse.wst.wsdl/plugin.properties
+++ b/bundles/org.eclipse.wst.wsdl/plugin.properties
@@ -29,6 +29,4 @@
 xpWSDLContentType = WSDL Content Type
 
 _ERROR_INVALID_WSDL = The input source is not a valid WSDL document.
-_UI_IOError_message = IO: {0}
-_UI_ParserError_message = DOM: {0}
 
diff --git a/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/WSDLPluginImplementation.java b/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/WSDLPluginImplementation.java
index 3a02b7c..a07de7a 100644
--- a/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/WSDLPluginImplementation.java
+++ b/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/WSDLPluginImplementation.java
@@ -10,6 +10,7 @@
  *******************************************************************************/
 package org.eclipse.wst.wsdl;
 
+import org.eclipse.core.runtime.IPluginDescriptor;
 import org.eclipse.emf.common.EMFPlugin.EclipsePlugin;
 
 /**
@@ -26,10 +27,11 @@
   {
     /**
      * Creates an instance.
+     * @param descriptor the description of the plugin.
      */
-    public WSDLPluginImplementation()
+    public WSDLPluginImplementation(IPluginDescriptor descriptor)
     {
-      super();
+      super(descriptor);
 
       // Remember the static instance.
       //
diff --git a/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/extensibility/ExtensibilityElementFactoryDescriptor.java b/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/extensibility/ExtensibilityElementFactoryDescriptor.java
index 64a2fc7..040b799 100644
--- a/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/extensibility/ExtensibilityElementFactoryDescriptor.java
+++ b/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/extensibility/ExtensibilityElementFactoryDescriptor.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
@@ -11,20 +11,19 @@
 package org.eclipse.wst.wsdl.internal.extensibility;
 
 import org.eclipse.wst.wsdl.util.ExtensibilityElementFactory;
-import org.osgi.framework.Bundle;
 
 public class ExtensibilityElementFactoryDescriptor
 {
   private final static String CLASS_LOADING_ERROR = "CLASS_LOADING_ERROR";
   
-  protected Bundle bundle;
+  protected ClassLoader classLoader;
   protected String namespace;
   protected String className;  
   protected Object factory;
 
-  public ExtensibilityElementFactoryDescriptor(String className, String namespace, Bundle bundle)
+  public ExtensibilityElementFactoryDescriptor(String className, String namespace, ClassLoader classLoader)
   {
-    this.bundle = bundle;
+    this.classLoader = classLoader;
     this.className = className;
     this.namespace = namespace;
   }
@@ -35,7 +34,7 @@
     {
       try
       {
-        Class theClass = bundle.loadClass(className);
+        Class theClass = classLoader != null ? classLoader.loadClass(className) : Class.forName(className);
         factory = (ExtensibilityElementFactory)theClass.newInstance();
       }
       catch (Exception e)
diff --git a/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/extensibility/ExtensibilityElementFactoryRegistryReader.java b/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/extensibility/ExtensibilityElementFactoryRegistryReader.java
index 57be9ad..ddc5407 100644
--- a/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/extensibility/ExtensibilityElementFactoryRegistryReader.java
+++ b/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/extensibility/ExtensibilityElementFactoryRegistryReader.java
@@ -11,18 +11,16 @@
 package org.eclipse.wst.wsdl.internal.extensibility;
 import java.net.URL;
 
-import org.eclipse.core.runtime.FileLocator;
 import org.eclipse.core.runtime.IConfigurationElement;
 import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.IPluginRegistry;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.wst.wsdl.WSDLPlugin;
-import org.osgi.framework.Bundle;
 
 
 public class ExtensibilityElementFactoryRegistryReader
 {
-  protected static final String PLUGIN_ID = WSDLPlugin.getPlugin().getSymbolicName();
+  protected static final String PLUGIN_ID = WSDLPlugin.getPlugin().getDescriptor().getUniqueIdentifier();
   protected static final String EXTENSION_POINT_ID = "extensibilityElementFactories";
   protected static final String ELEMENT_NAME = "extensibilityElementFactory";
   protected static final String ATT_NAMESPACE = "namespace";
@@ -39,8 +37,8 @@
    */
   public void readRegistry()
   {
-	IExtensionRegistry pluginRegistry = Platform.getExtensionRegistry();
-	IExtensionPoint point = pluginRegistry.getExtensionPoint(PLUGIN_ID, EXTENSION_POINT_ID);
+    IPluginRegistry pluginRegistry = Platform.getPluginRegistry();
+    IExtensionPoint point = pluginRegistry.getExtensionPoint(PLUGIN_ID, EXTENSION_POINT_ID);
     if (point != null)
     {
       IConfigurationElement[] elements = point.getConfigurationElements();
@@ -53,7 +51,7 @@
 
   public String resolve(URL platformURL, String relativePath) throws Exception
   {
-    URL resolvedURL = FileLocator.resolve(platformURL);
+    URL resolvedURL = Platform.resolve(platformURL);
     return resolvedURL.toString() + relativePath;
   }
 
@@ -67,9 +65,9 @@
         String namespace = childElement.getAttribute(ATT_NAMESPACE);
         if (namespace != null)
         {
-          Bundle pluginBundle = Platform.getBundle(element.getDeclaringExtension().getContributor().getName());
+          ClassLoader pluginClasssLoader = element.getDeclaringExtension().getDeclaringPluginDescriptor().getPluginClassLoader();
           String className = childElement.getAttribute(ATT_CLASS);
-          ExtensibilityElementFactoryDescriptor descriptor = new ExtensibilityElementFactoryDescriptor(className,namespace,pluginBundle);
+          ExtensibilityElementFactoryDescriptor descriptor = new ExtensibilityElementFactoryDescriptor(className,namespace,pluginClasssLoader);
           extensibilityElementFactoryRegistry.put(namespace, descriptor);
         }
       }
diff --git a/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/generator/BindingGenerator.java b/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/generator/BindingGenerator.java
index 2ba499c..313fab3 100644
--- a/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/generator/BindingGenerator.java
+++ b/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/generator/BindingGenerator.java
@@ -101,6 +101,10 @@
 	}
 	
 	private Binding createEmptyBinding(String localName) {
+		String name = localName;
+		if (localName == null) {
+			name = "";
+		}
 	    Binding newBinding = WSDLFactory.eINSTANCE.createBinding();
 		newBinding.setQName(new QName(definition.getTargetNamespace(),localName));
 		newBinding.setEnclosingDefinition(definition);
diff --git a/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/generator/PortGenerator.java b/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/generator/PortGenerator.java
index c16557b..0d3bce0 100644
--- a/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/generator/PortGenerator.java
+++ b/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/generator/PortGenerator.java
@@ -16,8 +16,6 @@
 import java.util.Map;
 
 import org.eclipse.wst.wsdl.Binding;
-import org.eclipse.wst.wsdl.Definition;
-import org.eclipse.wst.wsdl.Import;
 import org.eclipse.wst.wsdl.Port;
 import org.eclipse.wst.wsdl.Service;
 import org.eclipse.wst.wsdl.WSDLFactory;
@@ -25,132 +23,43 @@
 public class PortGenerator extends BaseGenerator {
 	private Service service;
 	
-    /**
-     * Constructs a port generator given the target service.
-     * @param service the target Service, must not be null.
-     */
 	public PortGenerator(Service service) {
 		this.service = service;
 		definition = service.getEnclosingDefinition();
 	}
 	
-    /**
-     * Generates a service port given it's name and binding name.
-     * The port is then added to the service passed in the constructor.
-     * @return the Port instance
-     */
 	public Port generatePort() {
-	  String portName = getName();
-	  String bindingName = getRefName();		
-	  
-	  Binding binding = getBinding(bindingName);
-	  
-	  Port port = WSDLFactory.eINSTANCE.createPort();
-	  port.setName(portName);
-	  port.setEnclosingDefinition(definition);
-	  port.setBinding(binding);
-	  
-	  service.addPort(port);
-	  
-	  ContentGenerator contentGenerator = getContentGenerator(); 
-	  
-	  if (contentGenerator != null) {
-	    contentGenerator.generatePortContent(port);
-	  }
-	  
-	  return port;
+		String name = getName();
+		String bindingName = getRefName();		
+		
+	    Port port = WSDLFactory.eINSTANCE.createPort();
+	    port.setName(getName());
+	    port.setEnclosingDefinition(service.getEnclosingDefinition());
+		port.setBinding(getBinding(getRefName()));
+	    service.addPort(port);
+		
+		if (this.getContentGenerator() != null) {
+			this.getContentGenerator().generatePortContent(port);
+		}
+		
+		return port;
 	}
 	
-	/**
-	 * Locates a binding given its prefixed name (someNSPrefix:someBindingName).
-	 * 
-	 * @param bindingName the qname of the desired binding.
-	 * @return a Binding with the given name, or null if one is not found.
-	 */
 	private Binding getBinding(String bindingName) {
-      List allBindings = getAllBindings();
-      Iterator bindingIterator = allBindings.iterator();
-	  
-	  while (bindingIterator.hasNext()) {
-	    Binding binding = (Binding)bindingIterator.next();
-	    
-	    List prefixedNames = getPrefixedNames(binding);
-	    
-	    if (prefixedNames.contains(bindingName)) {
-	      return binding;
-	    }
-	  }
-	  
-	  return null;
-	}
-	
-	/**
-	 * Locates all the bindings available in this definition and all its
-	 * imported definitions.
-	 * 
-	 * @return a List with all available bindings.
-	 */
-	public List getAllBindings() {
-	  List allBindings = new ArrayList();
-	  List allDefinitions = getAllDefinitions();
-	  
-	  Iterator defsIterator = allDefinitions.iterator();
-	  
-	  while (defsIterator.hasNext()) {
-	    Definition definition = (Definition) defsIterator.next();
-	    Map bindings = definition.getBindings();
-	    
-	    // ISSUE A possible problem here if somehow a binding is duplicated in one of the imports?
-	    // In that case we should iterate over and check them one by one.
-	    
-	    allBindings.addAll(bindings.values());
-	  }
-	  
-	  return allBindings;
-	}
-	
-	/**
-	 * Attempts to locate and add to the list all the definitions imported by the
-	 * definition passed in. Recursively tries to locate all definitions.
-	 * 
-	 * @param definition the start Definition. Must not be null.
-	 * @param list used to collect all the imported definitions. Must not be null.
-	 */
-	private void addDefinition(Definition definition, List list) {
-	  list.add(definition);
-	  List imports = definition.getEImports();
-	  Iterator importsIterator = imports.iterator();
-	  
-	  while (importsIterator.hasNext()) {
-	    Import theImport = (Import)importsIterator.next();
-	    
-	    String importLocationURI = theImport.getLocationURI();
-	    if (importLocationURI != null && 
-	        // ISSUE This assumption seems a bit weak.
-            importLocationURI.endsWith("wsdl")) {
-	      Definition importedDefinition = theImport.getEDefinition();
-	      
-	      if (importedDefinition != null && 
-              !list.contains(importedDefinition)) {
-	        // Recursively try to locate all definitions.
-
-            addDefinition(importedDefinition, list);
-	      }
-	    }
-	  }
-	}
-	
-	/**
-	 * Attempts to locate all definitions imported by the current definition and
-     * all their imports in turn. 
-	 * 
-	 * @return a List with all definitions imported by the current definition.
-	 */
-	private List getAllDefinitions()
-	{
-	  List list = new ArrayList();
-	  addDefinition(definition, list);
-	  return list;
+		Iterator bindingIt = definition.getEBindings().iterator();
+		while (bindingIt.hasNext()) {
+			Binding binding = (Binding) bindingIt.next();
+			String currentBindingName = binding.getQName().getLocalPart();
+			String currentNamespace = binding.getQName().getNamespaceURI();
+			
+			List prefixedNames = getPrefixedNames(binding);
+			
+			if (prefixedNames.contains(bindingName)) {
+				return binding;
+			}
+		}
+		
+		return null;
 	}
 	
 	private List getPrefixedNames(Binding binding) {
@@ -166,7 +75,7 @@
 			
 			if (currentNamespace.equals(value)) {
 				// Found a match.  Add to our list
-				prefixedNames.add(key + ":" + currentBindingName); //$NON-NLS-1$
+				prefixedNames.add(key + ":" + currentBindingName);
 			}
 		}
 		
diff --git a/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/generator/extension/ContentGeneratorExtensionDescriptor.java b/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/generator/extension/ContentGeneratorExtensionDescriptor.java
index cd88bdf..c49e99c 100644
--- a/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/generator/extension/ContentGeneratorExtensionDescriptor.java
+++ b/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/generator/extension/ContentGeneratorExtensionDescriptor.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
+ * Copyright (c) 2000, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials 
  * are made available under the terms of the Common Public License v1.0
  * which accompanies this distribution, and is available at
@@ -11,20 +11,19 @@
 package org.eclipse.wst.wsdl.internal.generator.extension;
 
 import org.eclipse.wst.wsdl.internal.generator.ContentGenerator;
-import org.osgi.framework.Bundle;
 
 /*
  * Class which acts as a container to hold information about the extension.
  */
 public class ContentGeneratorExtensionDescriptor {
-	protected Bundle bundle;
+	protected ClassLoader classLoader;
 	protected ContentGenerator contentGenerator;
 	protected String namespace;
 	protected String name;
 	protected String className;
 	
-	public ContentGeneratorExtensionDescriptor(Bundle bundle, String classString, String namespace, String name) {
-		this.bundle = bundle;
+	public ContentGeneratorExtensionDescriptor(ClassLoader classLoader, String classString, String namespace, String name) {
+		this.classLoader = classLoader;
 		this.namespace = namespace;
 		this.name = name;
 		this.className = classString;
@@ -33,7 +32,7 @@
 	
 	public Object getContentGenerator() {
 		try {
-	        Class theClass = bundle.loadClass(className);
+	        Class theClass = classLoader != null ? classLoader.loadClass(className) : Class.forName(className);
 	        contentGenerator = (ContentGenerator) theClass.newInstance();
 	      }
 	      catch (Exception e) {
diff --git a/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/generator/extension/ContentGeneratorExtensionRegistryReader.java b/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/generator/extension/ContentGeneratorExtensionRegistryReader.java
index 79c448d..57075b6 100644
--- a/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/generator/extension/ContentGeneratorExtensionRegistryReader.java
+++ b/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/generator/extension/ContentGeneratorExtensionRegistryReader.java
@@ -12,16 +12,14 @@
 
 import java.net.URL;
 
-import org.eclipse.core.runtime.FileLocator;
 import org.eclipse.core.runtime.IConfigurationElement;
 import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.IPluginRegistry;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.wst.wsdl.WSDLPlugin;
-import org.osgi.framework.Bundle;
 
 public class ContentGeneratorExtensionRegistryReader {
-	  protected static final String PLUGIN_ID = WSDLPlugin.getPlugin().getSymbolicName();
+	  protected static final String PLUGIN_ID = WSDLPlugin.getPlugin().getDescriptor().getUniqueIdentifier();
 	  protected static final String EXTENSION_POINT_ID = "contentGenerators";
 	  protected static final String ELEMENT_NAME = "contentGenerator";
 	  protected static final String ATT_NAMESPACE = "namespace";
@@ -38,8 +36,8 @@
 	   * read from plugin registry and parse it.
 	   */
 	  public void readRegistry() {
-		IExtensionRegistry pluginRegistry = Platform.getExtensionRegistry();
-		IExtensionPoint point = pluginRegistry.getExtensionPoint(PLUGIN_ID, EXTENSION_POINT_ID);
+	    IPluginRegistry pluginRegistry = Platform.getPluginRegistry();
+	    IExtensionPoint point = pluginRegistry.getExtensionPoint(PLUGIN_ID, EXTENSION_POINT_ID);
 	    if (point != null) {
 	      IConfigurationElement[] elements = point.getConfigurationElements();
 	      for (int i = 0; i < elements.length; i++) {
@@ -49,7 +47,7 @@
 	  }
 
 	  public String resolve(URL platformURL, String relativePath) throws Exception {
-	    URL resolvedURL = FileLocator.resolve(platformURL);
+	    URL resolvedURL = Platform.resolve(platformURL);
 	    return resolvedURL.toString() + relativePath;
 	  }
 
@@ -61,9 +59,9 @@
 	        String namespace = childElement.getAttribute(ATT_NAMESPACE);
 			
 	        if (namespace != null) {
-	          Bundle pluginBundle = Platform.getBundle(element.getDeclaringExtension().getContributor().getName());
+	          ClassLoader pluginClasssLoader = element.getDeclaringExtension().getDeclaringPluginDescriptor().getPluginClassLoader();
 	          String className = childElement.getAttribute(ATT_CLASS);
-	          ContentGeneratorExtensionDescriptor descriptor = new ContentGeneratorExtensionDescriptor(pluginBundle, className, namespace, name);
+	          ContentGeneratorExtensionDescriptor descriptor = new ContentGeneratorExtensionDescriptor(pluginClasssLoader, className, namespace, name);
 	          contentGeneratorExtensionFactoryRegistry.put(namespace, name, descriptor);
 	        }
 	      }
diff --git a/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/DefinitionImpl.java b/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/DefinitionImpl.java
index 158658c..e4604c4 100644
--- a/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/DefinitionImpl.java
+++ b/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/DefinitionImpl.java
@@ -66,7 +66,6 @@
 import org.eclipse.wst.wsdl.internal.util.WSDLUtil;
 import org.eclipse.wst.wsdl.util.WSDLConstants;
 import org.eclipse.wst.wsdl.util.WSDLResourceImpl;
-import org.eclipse.xsd.XSDConcreteComponent;
 import org.eclipse.xsd.XSDElementDeclaration;
 import org.eclipse.xsd.XSDImport;
 import org.eclipse.xsd.XSDSchema;
@@ -1961,13 +1960,6 @@
     return result;
   }
 
-  private boolean isComponentDefined(XSDConcreteComponent component)
-  {
-    // note the getContainer() test to eliminate 'synthetic' types
-    // that are created by the XMLSchema model when resolution fails   
-    return component != null && component.getContainer() != null;
-  } 
-  
   public XSDElementDeclaration resolveElementDeclaration(String namespace, String localName)
   {
     XSDElementDeclaration result = null;
@@ -1975,8 +1967,8 @@
     {
       XSDSchema schema = (XSDSchema) i.next();
       result = schema.resolveElementDeclaration(namespace, localName);
-      if (isComponentDefined(result))      
-        return result; 
+      if (result != null)
+        return result;
     }
     
     // Could not resolve. Try against all <import>ed and inlined schemas.
@@ -1984,8 +1976,8 @@
     {
       XSDSchema schema = (XSDSchema)i.next();
       result = schema.resolveElementDeclaration(namespace, localName);
-      if (isComponentDefined(result))      
-        return result;  
+      if (result != null)
+        return result;
     }
     
     return result;
@@ -2009,8 +2001,8 @@
     {
       XSDSchema schema = (XSDSchema)i.next();
       result = schema.resolveTypeDefinition(namespace, localName);
-      if (isComponentDefined(result))      
-        return result;      
+      if (result != null)
+        return result;
     }
     
     // Could not resolve. Try against all <import>ed and inlined schemas.
@@ -2018,8 +2010,8 @@
     {
       XSDSchema schema = (XSDSchema)i.next();
       result = schema.resolveTypeDefinition(namespace, localName);
-      if (isComponentDefined(result))      
-        return result; 
+      if (result != null)
+        return result;
     }
     
     return result; // Failed to resolve.
diff --git a/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/ImportImpl.java b/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/ImportImpl.java
index 76c576e..72ad9eb 100644
--- a/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/ImportImpl.java
+++ b/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/ImportImpl.java
@@ -490,14 +490,6 @@
   {
     if (!resolved)
     {
-      // KB: bugzilla 118293
-      // If a user changes <wsdl:import> from a WSDL file to an XML Schema file
-      // or the other way around, we should set the variable for the first
-      // <wsdl:import> source to null. Here I am simply setting both variables to null,
-      // which will have the same effect.
-      eDefinition = null;
-      eSchema = null;
-        
       Definition definition = getEnclosingDefinition();
       if (definition != null && definition.getDocumentBaseURI() != null)
       {
diff --git a/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/util/WSDLDiagnostic.java b/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/util/WSDLDiagnostic.java
deleted file mode 100644
index 55cf9a2..0000000
--- a/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/util/WSDLDiagnostic.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 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.util;
-
-import org.eclipse.emf.ecore.resource.Resource;
-
-/**
- * Generated by the WSDL model parsing and validation mechanisms.
- * 
- * <p>
- * <b>Note:</b> This class/interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this
- * API will almost certainly be broken (repeatedly) as the API evolves.
- * </p>
- * 
- * This interface is a candidate to becoming a first class WSDL model object.
- */
-public interface WSDLDiagnostic extends Resource.Diagnostic
-{
-  /**
-   * Provides this diagnostic's severity.
-   * 
-   * @return an XSDDiagnosticSeverity
-   */
-  WSDLDiagnosticSeverity getSeverity();
-
-  /**
-   * Sets this diagnostic's severity.
-   * 
-   * @param severity
-   *          the new diagnostic severity.
-   */
-  void setSeverity(WSDLDiagnosticSeverity severity);
-}
diff --git a/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/util/WSDLDiagnosticImpl.java b/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/util/WSDLDiagnosticImpl.java
deleted file mode 100644
index a07974c..0000000
--- a/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/util/WSDLDiagnosticImpl.java
+++ /dev/null
@@ -1,260 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 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.util;
-
-import org.eclipse.emf.ecore.impl.EObjectImpl;
-import org.eclipse.xsd.XSDDiagnostic;
-import org.eclipse.xsd.XSDDiagnosticSeverity;
-
-/**
- * Default implementation of the WSDLDiagnostic interface. This class is based
- * on XSDDiagnosticImpl
- * <p>
- * <b>Note:</b> This class/interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this
- * API will almost certainly be broken (repeatedly) as the API evolves.
- * </p>
- */
-public class WSDLDiagnosticImpl extends EObjectImpl implements WSDLDiagnostic
-{
-  /**
-   * The default value of the '{@link #getColumn() <em>Column</em>}'
-   * attribute.
-   * 
-   * @see #getColumn()
-   */
-  protected static final int COLUMN_EDEFAULT = 1;
-
-  /**
-   * The default value of the '{@link #getLine() <em>Line</em>}' attribute.
-   * 
-   * 
-   * @see #getLine()
-   */
-  protected static final int LINE_EDEFAULT = 1;
-
-  /**
-   * The default value of the '{@link #getLocationURI() <em>Location URI</em>}'
-   * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-   * 
-   * @see #getLocationURI()
-   */
-  protected static final String LOCATION_URI_EDEFAULT = null;
-
-  /**
-   * The default value of the '{@link #getMessage() <em>Message</em>}'
-   * attribute.
-   * 
-   * @see #getMessage()
-   */
-  protected static final String MESSAGE_EDEFAULT = null;
-
-  /**
-   * The default value of the '{@link #getSeverity() <em>Severity</em>}'
-   * attribute.
-   * 
-   * @see #getSeverity()
-   */
-  protected static final WSDLDiagnosticSeverity SEVERITY_EDEFAULT = WSDLDiagnosticSeverity.FATAL_LITERAL;
-
-  /**
-   * The cached value of the '{@link #getColumn() <em>Column</em>}' attribute.
-   * 
-   * 
-   * @see #getColumn()
-   * 
-   * @ordered
-   */
-  protected int column = COLUMN_EDEFAULT;
-
-  /**
-   * The cached value of the '{@link #getLine() <em>Line</em>}' attribute.
-   * 
-   * 
-   * @see #getLine()
-   */
-  protected int line = LINE_EDEFAULT;
-
-  /**
-   * The cached value of the '{@link #getLocationURI() <em>Location URI</em>}'
-   * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-   * 
-   * @see #getLocationURI()
-   */
-  protected String locationURI = LOCATION_URI_EDEFAULT;
-
-  /**
-   * The cached value of the '{@link #getMessage() <em>Message</em>}'
-   * attribute.
-   * 
-   * @see #getMessage()
-   */
-  protected String message = MESSAGE_EDEFAULT;
-
-  /**
-   * The cached value of the '{@link #getSeverity() <em>Severity</em>}'
-   * attribute.
-   * 
-   * @see #getSeverity()
-   */
-  protected WSDLDiagnosticSeverity severity = SEVERITY_EDEFAULT;
-
-  /**
-   * Default constructor.
-   */
-  public WSDLDiagnosticImpl()
-  {
-    super();
-  }
-
-  /**
-   * Wraps an XSD diagnostic into a WSDL diagnostic. Used to report problems in
-   * inline schemas.
-   * 
-   * @param xsdDiagnostic
-   *          the XSD diagnostic object to wrap. Must not be null.
-   */
-  public WSDLDiagnosticImpl(XSDDiagnostic xsdDiagnostic)
-  {
-    this();
-    setMessage(xsdDiagnostic.getMessage());
-    setSeverity(getSeverity(xsdDiagnostic.getSeverity()));
-    setLine(xsdDiagnostic.getLine());
-    setColumn(xsdDiagnostic.getColumn());
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.eclipse.emf.ecore.resource.Resource$Diagnostic#getColumn()
-   */
-  public int getColumn()
-  {
-    return column;
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.eclipse.emf.ecore.resource.Resource$Diagnostic#getLine()
-   */
-  public int getLine()
-  {
-    return line;
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.eclipse.emf.ecore.resource.Resource$Diagnostic#getLocation()
-   */
-  public String getLocation()
-  {
-    return locationURI;
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.eclipse.emf.ecore.resource.Resource$Diagnostic#getMessage()
-   */
-  public String getMessage()
-  {
-    return message;
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see com.ibm.ccl.wsdl.validation.WSDLDiagnostic#getSeverity()
-   */
-  public WSDLDiagnosticSeverity getSeverity()
-  {
-    return severity;
-  }
-
-  /**
-   * Converts an XSD diagnostic severity level into a WSDL diagnostic severity
-   * level.
-   * 
-   * @param xsdDiagnosticSeverity
-   *          the source XSD diagnostic severity.
-   * @return the equivalent WSDL diagnostic severity.
-   */
-  private WSDLDiagnosticSeverity getSeverity(XSDDiagnosticSeverity xsdDiagnosticSeverity)
-  {
-    switch (xsdDiagnosticSeverity.getValue())
-    {
-    case XSDDiagnosticSeverity.FATAL:
-      return WSDLDiagnosticSeverity.FATAL_LITERAL;
-    case XSDDiagnosticSeverity.ERROR:
-      return WSDLDiagnosticSeverity.ERROR_LITERAL;
-    case XSDDiagnosticSeverity.WARNING:
-      return WSDLDiagnosticSeverity.WARNING_LITERAL;
-    case XSDDiagnosticSeverity.INFORMATION:
-      return WSDLDiagnosticSeverity.INFORMATION_LITERAL;
-    default:
-      break;
-    }
-    return SEVERITY_EDEFAULT;
-  }
-
-  /**
-   * Sets the new value of the column attribute.
-   * 
-   * @param newColumn
-   *          the new column value.
-   */
-  public void setColumn(int newColumn)
-  {
-    column = newColumn;
-  }
-
-  public void setLine(int newLine)
-  {
-    line = newLine;
-  }
-
-  /**
-   * Sets the value of the loaction attribute.
-   * 
-   * @param location
-   *          a String with the new value for the location attribute
-   */
-  public void setLocation(String location)
-  {
-    locationURI = location;
-  }
-
-  /**
-   * Sets a new value for the message attribute.
-   * 
-   * @param newMessage
-   *          a String with the new message.
-   */
-  public void setMessage(String newMessage)
-  {
-    message = newMessage;
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see com.ibm.ccl.wsdl.validation.WSDLDiagnostic#setSeverity(com.ibm.ccl.wsdl.validation.WSDLDiagnosticSeverity)
-   */
-  public void setSeverity(WSDLDiagnosticSeverity newSeverity)
-  {
-    severity = newSeverity == null ? SEVERITY_EDEFAULT : newSeverity;
-  }
-}
diff --git a/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/util/WSDLDiagnosticSeverity.java b/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/util/WSDLDiagnosticSeverity.java
deleted file mode 100644
index 971ff89..0000000
--- a/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/util/WSDLDiagnosticSeverity.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 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.util;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.emf.common.util.AbstractEnumerator;
-
-/**
- * WSDL diagnostic severity levels type safe enumeration. This class is similar
- * to XSDDiagnosticSeverity.
- * <p>
- * <b>Note:</b> This class/interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this
- * API will almost certainly be broken (repeatedly) as the API evolves.
- * </p>
- */
-public final class WSDLDiagnosticSeverity extends AbstractEnumerator
-{
-  /**
-   * This is used to indicate that the problem is really bad and that further
-   * processing is likely not possible.
-   * 
-   * @see #FATAL_LITERAL
-   */
-  public static final int FATAL = 0;
-
-  /**
-   * This is used to indicate that the problem is bad and that the schema is
-   * likely not suitable for use.
-   * 
-   * @see #ERROR_LITERAL
-   */
-  public static final int ERROR = 1;
-
-  /**
-   * This is used to indicate that the problem is not too bad and that the
-   * definition is likely suitable for use.
-   * 
-   * @see #WARNING_LITERAL
-   */
-  public static final int WARNING = 2;
-
-  /**
-   * This is used to indicate that the problem is only potential and that the
-   * definition is very likely suitable for use.
-   * 
-   * @see #INFORMATION_LITERAL
-   */
-  public static final int INFORMATION = 3;
-
-  /**
-   * The '<em><b>Fatal</b></em>' literal object.
-   * 
-   * @see #FATAL
-   */
-  public static final WSDLDiagnosticSeverity FATAL_LITERAL = new WSDLDiagnosticSeverity(FATAL, "fatal", "fatal");
-
-  /**
-   * The '<em><b>Error</b></em>' literal object.
-   * 
-   * @see #ERROR
-   */
-  public static final WSDLDiagnosticSeverity ERROR_LITERAL = new WSDLDiagnosticSeverity(ERROR, "error", "error");
-
-  /**
-   * The '<em><b>Warning</b></em>' literal object.
-   * 
-   * @see #WARNING
-   */
-  public static final WSDLDiagnosticSeverity WARNING_LITERAL = new WSDLDiagnosticSeverity(WARNING, "warning", "warning");
-
-  /**
-   * The '<em><b>Information</b></em>' literal object.
-   * 
-   * @see #INFORMATION
-   */
-  public static final WSDLDiagnosticSeverity INFORMATION_LITERAL = new WSDLDiagnosticSeverity(INFORMATION, "information", "information");
-
-  /**
-   * An array of all the '<em><b>Diagnostic Severity</b></em>' enumerators.
-   */
-  private static final WSDLDiagnosticSeverity[] VALUES_ARRAY = new WSDLDiagnosticSeverity[] { FATAL_LITERAL, ERROR_LITERAL, WARNING_LITERAL, INFORMATION_LITERAL, };
-
-  /**
-   * A public read-only list of all the '<em><b>Diagnostic Severity</b></em>'
-   * enumerators.
-   */
-  public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
-
-  /**
-   * Returns the '<em><b>Diagnostic Severity</b></em>' literal with the
-   * specified literal value.
-   */
-  public static WSDLDiagnosticSeverity get(String literal)
-  {
-    for (int i = 0; i < VALUES_ARRAY.length; ++i)
-    {
-      WSDLDiagnosticSeverity result = VALUES_ARRAY[i];
-      if (result.toString().equals(literal))
-      {
-        return result;
-      }
-    }
-    return null;
-  }
-
-  /**
-   * Returns the '<em><b>Diagnostic Severity</b></em>' literal with the
-   * specified name.
-   */
-  public static WSDLDiagnosticSeverity getByName(String name)
-  {
-    for (int i = 0; i < VALUES_ARRAY.length; ++i)
-    {
-      WSDLDiagnosticSeverity result = VALUES_ARRAY[i];
-      if (result.getName().equals(name))
-      {
-        return result;
-      }
-    }
-    return null;
-  }
-
-  /**
-   * Returns the '<em><b>Diagnostic Severity</b></em>' literal with the
-   * specified integer value.
-   */
-  public static WSDLDiagnosticSeverity get(int value)
-  {
-    switch (value)
-    {
-    case FATAL:
-      return FATAL_LITERAL;
-    case ERROR:
-      return ERROR_LITERAL;
-    case WARNING:
-      return WARNING_LITERAL;
-    case INFORMATION:
-      return INFORMATION_LITERAL;
-    }
-    return null;
-  }
-
-  /**
-   * Only this class can construct instances.
-   */
-  private WSDLDiagnosticSeverity(int value, String name, String literal)
-  {
-    super(value, name, literal);
-  }
-}
diff --git a/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/util/WSDLParser.java b/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/util/WSDLParser.java
deleted file mode 100644
index 3234a3c..0000000
--- a/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/util/WSDLParser.java
+++ /dev/null
@@ -1,660 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 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.util;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Stack;
-import java.util.WeakHashMap;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-
-import org.eclipse.wst.wsdl.WSDLPlugin;
-import org.eclipse.xsd.XSDPlugin;
-import org.eclipse.xsd.util.XSDConstants;
-import org.eclipse.xsd.util.XSDParser;
-import org.w3c.dom.Comment;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.Text;
-import org.xml.sax.Attributes;
-import org.xml.sax.InputSource;
-import org.xml.sax.Locator;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-import org.xml.sax.ext.LexicalHandler;
-import org.xml.sax.helpers.DefaultHandler;
-
-/**
- * The <b>SAX Parser</b> for the WSDL model. This class' main responsibility is
- * to compute line/column information for all elements in the source XML
- * document. This information is stored in a map of each node to its user data.
- * <p>
- * <b>Note:</b> This class/interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this
- * API will almost certainly be broken (repeatedly) as the API evolves.
- * </p>
- * 
- * [ISSUE] Most of this class' implementation is a clone of XSDParser. There are
- * plans to work on closely integrating this class and XSDParser to provide for
- * the most efficient processing of inline schemas.
- */
-public class WSDLParser extends DefaultHandler implements LexicalHandler
-{
-  /**
-   * The name of the user data part holding end column location of an element.
-   */
-  private static final String END_COLUMN = "endColumn"; //$NON-NLS-1$
-
-  /**
-   * The name of the user data part holding end line location of an element.
-   */
-  private static final String END_LINE = "endLine"; //$NON-NLS-1$
-
-  /**
-   * The name of the user data part holding start column location of an element.
-   */
-  private static final String START_COLUMN = "startColumn"; //$NON-NLS-1$
-
-  /**
-   * The name of the user data part holding start line location of an element.
-   */
-  private static final String START_LINE = "startLine"; //$NON-NLS-1$
-
-  /**
-   * Holds pairs Node -> Map with user data.
-   * 
-   * @see #END_COLUMN
-   * @see #END_LINE
-   * @see #START_COLUMN
-   * @see #START_LINE
-   * 
-   * A WeakHashMap is used in order to simplify this map's maintenance. As nodes
-   * are garbage collected when not needed anymore, the JVM will take care of
-   * removing entries from this map.
-   */
-  protected static final Map userDataMap = Collections.synchronizedMap(new WeakHashMap());
-
-  /**
-   * Returns the column at which the given node ends.
-   * 
-   * @param node
-   *          the node to query.
-   * @return the column at which the given node ends.
-   */
-  public static int getEndColumn(Node node)
-  {
-    Integer result = (Integer) getUserData(node).get(END_COLUMN);
-    return result == null ? 1 : result.intValue();
-  }
-
-  /**
-   * Returns the line at which the given node ends.
-   * 
-   * @param node
-   *          the node to query.
-   * @return the line at which the given node ends.
-   */
-  public static int getEndLine(Node node)
-  {
-    Integer result = (Integer) getUserData(node).get(END_LINE);
-    return result == null ? 1 : result.intValue();
-  }
-
-  /**
-   * Returns the column at which the given node starts.
-   * 
-   * @param node
-   *          the node to query.
-   * @return the column at which the given node starts.
-   */
-  public static int getStartColumn(Node node)
-  {
-    Integer result = (Integer) getUserData(node).get(START_COLUMN);
-    return result == null ? 1 : result.intValue();
-  }
-
-  /**
-   * Returns the line at which the given node starts.
-   * 
-   * @param node
-   *          the node to query.
-   * @return the line at which the given node starts.
-   */
-  public static int getStartLine(Node node)
-  {
-    Integer result = (Integer) getUserData(node).get(START_LINE);
-    return result == null ? 1 : result.intValue();
-  }
-
-  /**
-   * Returns the user data associated with the node. If the node has no user
-   * data, a new empty map is created.
-   * 
-   * @param node
-   *          the node to query.
-   * @return the user data associated with the node.
-   */
-  public static Map getUserData(Node node)
-  {
-    Map result = (Map) userDataMap.get(node);
-    if (result == null)
-    {
-      result = new HashMap();
-      userDataMap.put(node, result);
-    }
-    return result;
-  }
-
-  protected int column;
-  List diagnostics = new ArrayList();
-  protected Document document;
-  protected Element element;
-  protected String encoding;
-  protected boolean inSchema;
-  protected int line;
-  protected Locator locator;
-  protected SAXParser saxParser;
-  protected Stack stack = new Stack();
-
-  /**
-   * Default constructor.
-   */
-  public WSDLParser()
-  {
-    saxParser = createSAXParser();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.xml.sax.helpers.DefaultHandler#characters(char[], int, int)
-   */
-  public void characters(char[] characters, int start, int length) throws SAXException
-  {
-    Text textNode = document.createTextNode(new String(characters, start, length));
-    element.appendChild(textNode);
-    saveLocation();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.xml.sax.ext.LexicalHandler#comment(char[], int, int)
-   */
-  public void comment(char[] characters, int start, int length) throws SAXException
-  {
-    Comment commentNode = document.createComment(new String(characters, start, length));
-    if (element == null)
-    {
-      document.appendChild(commentNode);
-    }
-    else
-    {
-      element.appendChild(commentNode);
-    }
-    saveLocation();
-  }
-
-  /**
-   * Creates an empty DOM Document.
-   * 
-   * @return an empty DOM Document or null is a JAXP misconfiguration error
-   *         occurs.
-   */
-  private Document createDocument()
-  {
-    try
-    {
-      DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
-      documentBuilderFactory.setNamespaceAware(true);
-      documentBuilderFactory.setValidating(false);
-      DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
-      return documentBuilder.newDocument();
-    }
-    catch (ParserConfigurationException exception)
-    {
-      WSDLPlugin.INSTANCE.log(exception);
-      return null;
-    }
-  }
-
-  /**
-   * Creates the SAXParser instance used for parsing the source WSDL XML
-   * document.
-   * 
-   * @return a configured SAXParser instance or null if an exception occurs.
-   *         Problems are reported through the diagnostics collection.
-   */
-  private SAXParser createSAXParser()
-  {
-    SAXParser saxParser = null;
-    try
-    {
-      SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();
-      saxParserFactory.setNamespaceAware(true);
-      saxParserFactory.setValidating(false);
-
-      saxParserFactory.setFeature("http://xml.org/sax/features/validation", false); //$NON-NLS-N$
-      saxParserFactory.setFeature("http://xml.org/sax/features/namespaces", true); //$NON-NLS-N$
-      saxParserFactory.setFeature("http://xml.org/sax/features/namespace-prefixes", true); //$NON-NLS-N$
-
-      saxParser = saxParserFactory.newSAXParser();
-
-      saxParser.setProperty("http://xml.org/sax/properties/lexical-handler", this); //$NON-NLS-N$
-    }
-    catch (SAXException exception)
-    {
-      fatalError(exception);
-    }
-    catch (ParserConfigurationException exception)
-    {
-      fatalError(exception);
-    }
-
-    return saxParser;
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.xml.sax.ext.LexicalHandler#endCDATA()
-   */
-  public void endCDATA()
-  {
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.xml.sax.helpers.DefaultHandler#endDocument()
-   */
-  public void endDocument()
-  {
-    element = null;
-    saveLocation();
-    this.locator = null;
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.xml.sax.ext.LexicalHandler#endDTD()
-   */
-  public void endDTD()
-  {
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.xml.sax.helpers.DefaultHandler#endElement(java.lang.String,
-   *      java.lang.String, java.lang.String)
-   */
-  public void endElement(String uri, String localName, String qName) throws SAXException
-  {
-    saveLocation();
-
-    Map extendedAttributes = null;
-
-    if (inSchema)
-    {
-      extendedAttributes = XSDParser.getUserData(element);
-    }
-    else
-    {
-      extendedAttributes = getUserData(element);
-    }
-
-    extendedAttributes.put(END_LINE, new Integer(line));
-    extendedAttributes.put(END_COLUMN, new Integer(column));
-
-    if (isSchemaElement(uri, localName))
-    {
-      inSchema = false;
-    }
-
-    element = (Element) stack.pop();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.xml.sax.ext.LexicalHandler#endEntity(java.lang.String)
-   */
-  public void endEntity(String name)
-  {
-  }
-
-  public void error(SAXParseException exception)
-  {
-    WSDLDiagnosticImpl diagnostic = new WSDLDiagnosticImpl();
-    diagnostic.setSeverity(WSDLDiagnosticSeverity.ERROR_LITERAL);
-    diagnostic.setMessage(WSDLPlugin.INSTANCE.getString("_UI_IOError_message", new Object[] { exception.getMessage() }));
-    diagnostic.setLine(exception.getLineNumber());
-    diagnostic.setColumn(exception.getColumnNumber());
-    diagnostics.add(diagnostic);
-  }
-
-  protected void fatalError(IOException exception)
-  {
-    WSDLDiagnosticImpl diagnostic = new WSDLDiagnosticImpl();
-    diagnostic.setSeverity(WSDLDiagnosticSeverity.FATAL_LITERAL);
-    diagnostic.setMessage(WSDLPlugin.INSTANCE.getString("_UI_IOError_message", new Object[] { exception.getMessage() }));
-    diagnostics.add(diagnostic);
-  }
-
-  protected void fatalError(ParserConfigurationException exception)
-  {
-    WSDLDiagnosticImpl diagnostic = new WSDLDiagnosticImpl();
-    diagnostic.setSeverity(WSDLDiagnosticSeverity.FATAL_LITERAL);
-    diagnostic.setMessage(WSDLPlugin.INSTANCE.getString("_UI_ParserError_message", new Object[] { exception.getMessage() }));
-    diagnostics.add(diagnostic);
-  }
-
-  public void fatalError(SAXException exception)
-  {
-    WSDLDiagnosticImpl diagnostic = new WSDLDiagnosticImpl();
-    diagnostic.setSeverity(WSDLDiagnosticSeverity.FATAL_LITERAL);
-    diagnostic.setMessage(WSDLPlugin.INSTANCE.getString("_UI_ParserError_message", new Object[] { exception.getMessage() }));
-    diagnostics.add(diagnostic);
-  }
-
-  public void fatalError(SAXParseException exception)
-  {
-    WSDLDiagnosticImpl diagnostic = new WSDLDiagnosticImpl();
-    diagnostic.setSeverity(WSDLDiagnosticSeverity.FATAL_LITERAL);
-    diagnostic.setMessage(WSDLPlugin.INSTANCE.getString("_UI_ParserError_message", new Object[] { exception.getMessage() }));
-    diagnostic.setLine(exception.getLineNumber());
-    diagnostic.setColumn(exception.getColumnNumber());
-    diagnostics.add(diagnostic);
-  }
-
-  /**
-   * Provides a collection with the diagnostics generated during parsing.
-   * 
-   * @return a Collection of {@link WSDLDiagnostic} objects.
-   */
-  public Collection getDiagnostics()
-  {
-    return diagnostics;
-  }
-
-  /**
-   * Provides the DOM document created by parsing the WSDL document.
-   * 
-   * @return the resulting DOM document.
-   */
-  public Document getDocument()
-  {
-    return document;
-  }
-
-  /**
-   * Determines if an element is the root XML schema element.
-   * 
-   * @param uri
-   *          the URI to test.
-   * @param localName
-   *          the element's local name.
-   * @return true if the element is the root XML schema element, false
-   *         otherwise.
-   */
-  private boolean isSchemaElement(String uri, String localName)
-  {
-    if (uri.equals(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001) && localName.equals(XSDConstants.SCHEMA_ELEMENT_TAG))
-    {
-      return true;
-    }
-    return false;
-  }
-
-  /**
-   * Parses the XML content read from the given input stream.
-   * 
-   * @param inputStream
-   *          the source input stream. Must not be null.
-   */
-  public void parse(InputStream inputStream)
-  {
-    try
-    {
-      saxParser.parse(new InputSource(inputStream), this);
-    }
-    catch (IOException exception)
-    {
-      fatalError(exception);
-    }
-    catch (SAXException exception)
-    {
-      fatalError(exception);
-    }
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.xml.sax.helpers.DefaultHandler#processingInstruction(java.lang.String,
-   *      java.lang.String)
-   */
-  public void processingInstruction(String target, String data)
-  {
-    Node processingInstruction = document.createProcessingInstruction(target, data);
-
-    if (stack.isEmpty())
-    {
-      document.appendChild(processingInstruction);
-    }
-    else
-    {
-      element.appendChild(processingInstruction);
-    }
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.xml.sax.helpers.DefaultHandler#resolveEntity(java.lang.String,
-   *      java.lang.String)
-   */
-  public InputSource resolveEntity(String publicId, String systemId) throws SAXException
-  {
-    InputSource inputSource;
-    if ("-//W3C//DTD XMLSCHEMA 200102//EN".equalsIgnoreCase(publicId))
-    {
-      inputSource = new InputSource(XSDPlugin.INSTANCE.getBaseURL() + "cache/www.w3.org/2001/XMLSchema.dtd");
-      inputSource.setPublicId(publicId);
-    }
-    else if (systemId != null && systemId.startsWith("file://bundleentry:"))
-    {
-      inputSource = new InputSource(systemId.substring(7));
-      inputSource.setPublicId(publicId);
-    }
-    else
-    {
-      try
-      {
-        inputSource = super.resolveEntity(publicId, systemId);
-        if (false)
-        {
-          throw new IOException();
-        }
-      }
-      catch (IOException exception)
-      {
-        throw new SAXException(exception);
-      }
-    }
-
-    return inputSource;
-  }
-
-  /**
-   * Saves the current line and column numbers.
-   */
-  protected void saveLocation()
-  {
-    line = locator.getLineNumber();
-    column = locator.getColumnNumber();
-
-    // The crimson parser seems to give poor coodinates and is 0-based for line
-    // count.
-
-    if (column == -1)
-    {
-      column = 1;
-    }
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.xml.sax.helpers.DefaultHandler#setDocumentLocator(org.xml.sax.Locator)
-   */
-  public void setDocumentLocator(Locator locator)
-  {
-    this.locator = locator;
-    super.setDocumentLocator(locator);
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.xml.sax.ext.LexicalHandler#startCDATA()
-   */
-  public void startCDATA()
-  {
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.xml.sax.helpers.DefaultHandler#startDocument()
-   */
-  public void startDocument()
-  {
-    saveLocation();
-    document = createDocument();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.xml.sax.ext.LexicalHandler#startDTD(java.lang.String,
-   *      java.lang.String, java.lang.String)
-   */
-  public void startDTD(String name, String publicId, String systemId)
-  {
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.xml.sax.helpers.DefaultHandler#startElement(java.lang.String,
-   *      java.lang.String, java.lang.String, org.xml.sax.Attributes)
-   */
-  public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException
-  {
-    if (!inSchema)
-    {
-      inSchema = isSchemaElement(uri, localName);
-    }
-
-    Element newElement = document.createElementNS(uri, qName);
-
-    for (int index = 0, count = attributes.getLength(); index < count; ++index)
-    {
-      String attributeURI = attributes.getURI(index);
-      String attributeQName = attributes.getQName(index);
-      String attributeValue = attributes.getValue(index);
-
-      if (attributeQName.equals("xmlns") || attributeQName.startsWith("xmlns:")) //$NON-NLS-1$ //$NON-NLS-2$
-      {
-        attributeURI = XSDConstants.XMLNS_URI_2000;
-      }
-      else if ("".equals(attributeURI)) //$NON-NLS-1$
-      {
-        attributeURI = null;
-      }
-
-      newElement.setAttributeNS(attributeURI, attributeQName, attributeValue);
-    }
-
-    if (stack.isEmpty())
-    {
-      document.appendChild(newElement);
-    }
-    else
-    {
-      element.appendChild(newElement);
-    }
-
-    stack.push(element);
-    element = newElement;
-
-    // Make sure we location attributes end up in the XSDParser's user data if
-    // we are inside an inline schema. If not, they should go in the
-    // WSDLParser's user data.
-
-    Map extendedAttributes = null;
-
-    if (inSchema)
-    {
-      extendedAttributes = XSDParser.getUserData(element);
-    }
-    else
-    {
-      extendedAttributes = getUserData(element);
-    }
-    extendedAttributes.put(START_LINE, new Integer(line));
-    extendedAttributes.put(START_COLUMN, new Integer(column));
-
-    saveLocation();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.xml.sax.ext.LexicalHandler#startEntity(java.lang.String)
-   */
-  public void startEntity(String name)
-  {
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.xml.sax.helpers.DefaultHandler#warning(org.xml.sax.SAXParseException)
-   */
-  public void warning(SAXParseException exception)
-  {
-    WSDLDiagnosticImpl diagnostic = new WSDLDiagnosticImpl();
-    diagnostic.setSeverity(WSDLDiagnosticSeverity.WARNING_LITERAL);
-    diagnostic.setMessage("DOM:" + exception.getMessage());
-    diagnostic.setLine(exception.getLineNumber());
-    diagnostic.setColumn(exception.getColumnNumber());
-    diagnostics.add(diagnostic);
-  }
-}
diff --git a/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/util/WSDLResourceImpl.java b/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/util/WSDLResourceImpl.java
index 34e5c56..ee5e521 100644
--- a/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/util/WSDLResourceImpl.java
+++ b/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/util/WSDLResourceImpl.java
@@ -13,7 +13,6 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
-import java.util.Collection;
 import java.util.Iterator;
 import java.util.Map;
 
@@ -73,22 +72,9 @@
   private boolean useExtensionFactories = true;
   private boolean continueOnLoadError = true;
 
-  public static String USE_EXTENSION_FACTORIES = "USE_EXTENSION_FACTORIES"; //$NON-NLS-1$
-  public static String CONTINUE_ON_LOAD_ERROR = "CONTINUE_ON_LOAD_ERROR"; //$NON-NLS-1$
-  public static String WSDL_ENCODING = "WSDL_ENCODING"; //$NON-NLS-1$
-  
-  /**
-   * Add this option with a value of Boolean.TRUE to the options map when
-   * loading a resource to instruct the loader to track source code location for
-   * each node in the source document.
-   * 
-   * @see WSDLParser#getUserData(org.w3c.dom.Node)
-   * @see WSDLParser#getStartColumn(org.w3c.dom.Node)
-   * @see WSDLParser#getEndColumn(org.w3c.dom.Node)
-   * @see WSDLParser#getStartLine(org.w3c.dom.Node)
-   * @see WSDLParser#getEndLine(org.w3c.dom.Node)
-   */
-  public static String TRACK_LOCATION = "TRACK_LOCATION"; //$NON-NLS-1$
+  public static String USE_EXTENSION_FACTORIES = "USE_EXTENSION_FACTORIES";
+  public static String CONTINUE_ON_LOAD_ERROR = "CONTINUE_ON_LOAD_ERROR";
+  public static String WSDL_ENCODING = "WSDL_ENCODING";
 
   /**
    * Creates an instance of the resource. 
@@ -201,17 +187,8 @@
     Document doc = null;
     try
     {
-      boolean trackLocation = options != null && Boolean.TRUE.equals(options.get(TRACK_LOCATION)); 
-
-      if (trackLocation)
-      {
-        doc = getDocumentUsingSAX(inputStream);
-      }
-      else
-      {
-        // Create a DOM document
-        doc = getDocument(inputStream, new InternalErrorHandler());
-      }
+      // Create a DOM document
+      doc = getDocument(inputStream, new InternalErrorHandler());
 
       if (doc != null && doc.getDocumentElement() != null)
       {
@@ -267,48 +244,6 @@
   }
 
   /**
-   * Use a custom SAX parser to allow us to track the source location of 
-   * each node in the source XML document.
-   * @param inputStream the parsing source. Must not be null. 
-   * @return the DOM document created by parsing the input stream. 
-   */
-  private Document getDocumentUsingSAX(InputStream inputStream)
-  {
-    WSDLParser wsdlParser = new WSDLParser();
-    wsdlParser.parse(inputStream);
-    
-    Collection errors = wsdlParser.getDiagnostics();
-    
-    if (errors != null)
-    {
-      Iterator iterator = errors.iterator();
-      
-      while(iterator.hasNext())
-      {
-          WSDLDiagnostic wsdlDiagnostic = (WSDLDiagnostic)iterator.next();
-          switch (wsdlDiagnostic.getSeverity().getValue())
-          {
-            case WSDLDiagnosticSeverity.FATAL:
-            case WSDLDiagnosticSeverity.ERROR:
-            {
-              getErrors().add(wsdlDiagnostic);
-              break;
-            }
-            case WSDLDiagnosticSeverity.WARNING:
-            case WSDLDiagnosticSeverity.INFORMATION:
-            {
-              getWarnings().add(wsdlDiagnostic);
-              break;
-          }
-        }
-      }
-    }        
-    
-    Document doc = wsdlParser.getDocument();
-    return doc;
-  }
-
-  /**
    * Builds a document using Xerces.
    * @param inputStream the contents to parse.
    * @param errorHandler the handled used by the parser.
@@ -325,22 +260,6 @@
       documentBuilderFactory.setNamespaceAware(true);
       documentBuilderFactory.setValidating(false);
 
-      try
-      {
-        // Using a deferred DOM document in the WSDL model may cause a
-        // performance problem in terms of memory consumption in particular.
-        // We're attempting to use the feature which instructs the Xerces parser
-        // to not use deferred DOM trees.
-        // TODO Convert to use setFeature when it becomes available. The Xerces
-        // versions < 2.7.1 do not fully support setFeature, so we have to use
-        // setAttribute.
-        documentBuilderFactory.setAttribute("http://apache.org/xml/features/dom/defer-node-expansion", Boolean.FALSE); //$NON-NLS-1$
-      }
-      catch (IllegalArgumentException e)
-      {
-        // Ignore, as the code will have to run with parsers other than Xerces.
-      }      
-
       DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
 
       // TBD - Revisit
diff --git a/bundles/org.eclipse.wst.wsi.ui/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.wst.wsi.ui/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index dcf4ffc..0000000
--- a/bundles/org.eclipse.wst.wsi.ui/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-#Wed Mar 29 04:08:58 EST 2006
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.source=1.3
diff --git a/bundles/org.eclipse.wst.wsi.ui/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.wst.wsi.ui/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 029d3c7..0000000
--- a/bundles/org.eclipse.wst.wsi.ui/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Wed Mar 29 04:08:57 EST 2006
-eclipse.preferences.version=1
-internal.default.compliance=default
diff --git a/bundles/org.eclipse.wst.wsi.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.wsi.ui/META-INF/MANIFEST.MF
index 41269d5..1818f01 100644
--- a/bundles/org.eclipse.wst.wsi.ui/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.wst.wsi.ui/META-INF/MANIFEST.MF
@@ -6,11 +6,10 @@
 Bundle-Activator: org.eclipse.wst.wsi.ui.internal.WSIUIPlugin
 Bundle-Vendor: %_PROVIDER_NAME
 Bundle-Localization: plugin
-Export-Package: org.eclipse.wst.wsi.ui.internal;x-internal:=true,
- org.eclipse.wst.wsi.ui.internal.actions;x-internal:=true,
- org.eclipse.wst.wsi.ui.internal.actions.actionDelegates;x-internal:=true,
- org.eclipse.wst.wsi.ui.internal.actions.icons;x-internal:=true,
- org.eclipse.wst.wsi.ui.internal.wizards;x-internal:=true
+Export-Package: org.eclipse.wst.wsi.ui.internal,
+ org.eclipse.wst.wsi.ui.internal.actions,
+ org.eclipse.wst.wsi.ui.internal.actions.actionDelegates,
+ org.eclipse.wst.wsi.ui.internal.wizards
 Require-Bundle: org.eclipse.jface.text,
  org.eclipse.core.resources,
  org.eclipse.ui,
diff --git a/bundles/org.eclipse.wst.wsi.ui/src/org/eclipse/wst/wsi/ui/internal/Messages.java b/bundles/org.eclipse.wst.wsi.ui/src/org/eclipse/wst/wsi/ui/internal/Messages.java
index 3213fd5..8b20b3e 100644
--- a/bundles/org.eclipse.wst.wsi.ui/src/org/eclipse/wst/wsi/ui/internal/Messages.java
+++ b/bundles/org.eclipse.wst.wsi.ui/src/org/eclipse/wst/wsi/ui/internal/Messages.java
@@ -3,14 +3,15 @@
  * 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 
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
  * Contributors:
  *    IBM Corporation - Initial API and implementation
  **********************************************************************/
 package org.eclipse.wst.wsi.ui.internal;
 
 import org.eclipse.osgi.util.NLS;
- 
+
 /**
  * Translated messages.
  */
diff --git a/bundles/org.eclipse.wst.wsi.ui/src/org/eclipse/wst/wsi/ui/internal/actions/ValidateAction.java b/bundles/org.eclipse.wst.wsi.ui/src/org/eclipse/wst/wsi/ui/internal/actions/ValidateAction.java
deleted file mode 100644
index 4efceca..0000000
--- a/bundles/org.eclipse.wst.wsi.ui/src/org/eclipse/wst/wsi/ui/internal/actions/ValidateAction.java
+++ /dev/null
@@ -1,431 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 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.wsi.ui.internal.actions;
-
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.wst.validation.internal.operations.LocalizedMessage;
-import org.eclipse.wst.validation.internal.operations.WorkbenchReporter;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-import org.eclipse.wst.validation.internal.provisional.core.IValidator;
-import org.eclipse.wst.wsi.ui.internal.WSIUIPlugin;
-import org.eclipse.wst.xml.core.internal.validation.core.ValidationMessage;
-import org.eclipse.wst.xml.core.internal.validation.core.logging.ILogger;
-import org.eclipse.wst.xml.core.internal.validation.core.logging.LoggerFactory;
-import org.eclipse.wst.xml.ui.internal.Logger;
-import org.eclipse.wst.xml.ui.internal.validation.XMLValidationUIMessages;
-
-/**
- * A general validate action class that can be extended by validators. This class
- * provides methods to run the action, add markers to a file and will handle
- * showing a dialog with the results of validation (if requested) and prompt to
- * save dirty files (if requested.)
- */
-public abstract class ValidateAction extends Action
-{
-  // Locally used, non-UI strings.
-  private static final String REFERENCED_FILE_ERROR_OPEN = "referencedFileError("; //$NON-NLS-1$
-
-  private static final String REFERENCED_FILE_ERROR_CLOSE = ")"; //$NON-NLS-1$
-
-  private static final String REFERENCED_FILE_ERROR = "referencedFileError"; //$NON-NLS-1$
-
-  private static final String GROUP_NAME = "groupName"; //$NON-NLS-1$
-  
-  private static final String FILE_PROTOCOL_NO_SLASH = "file:"; //$NON-NLS-1$
-  private static final String FILE_PROTOCOL = "file:///"; //$NON-NLS-1$
-  
-  protected static final String COLUMN_NUMBER_ATTRIBUTE = "columnNumber"; //$NON-NLS-1$
-  protected static final String SQUIGGLE_SELECTION_STRATEGY_ATTRIBUTE = "squiggleSelectionStrategy"; //$NON-NLS-1$
-  protected static final String SQUIGGLE_NAME_OR_VALUE_ATTRIBUTE = "squiggleNameOrValue"; //$NON-NLS-1$
-
-  protected boolean showDialog = true;
-
-  protected IFile file = null;
-
-  protected IReporter reporter;
-
-  protected IValidator validator;
-
-  /**
-   * Constructor.
-   * 
-   * @param file
-   *          The file to validate.
-   * @param showDialog
-   *          Whether or not to show a dialog when validation is complete.
-   */
-  public ValidateAction(IFile file, boolean showDialog)
-  {
-    this.showDialog = showDialog;
-    this.file = file;
-  }
-
-  /**
-   * Validate the specified file.
-   * 
-   * @param file
-   *          The file to validate.
-   */
-  protected abstract void validate(final IFile file);
-
-  protected void addInfoToMessage (ValidationMessage v, IMessage m)
-  { // This method is overidden by subclasses
-  }
-  
-  /**
-   * Create markers for the valiation messages generated from the validation.
-   * 
-   * @param iFile
-   *          The resource to create the markers on.
-   * @param valmessages
-   *          The array of validation messages.
-   */
-  public void createMarkers(IFile iFile, ValidationMessage[] valmessages)
-  {
-    if (!fileIsOK(iFile))
-    {
-      return;
-    }
-    int nummessages = valmessages.length;
-    for (int i = 0; i < nummessages; i++)
-    {
-      ValidationMessage validationMessage = valmessages[i];
-      String uri = validationMessage.getUri();
-
-      LocalizedMessage message;
-      if (validationMessage.getSeverity() == ValidationMessage.SEV_LOW)
-      {
-        message = new LocalizedMessage(getValidationFrameworkSeverity(IMarker.SEVERITY_WARNING), validationMessage
-            .getMessage(), iFile);
-      }
-      else
-      { 
-        message = new LocalizedMessage(getValidationFrameworkSeverity(IMarker.SEVERITY_ERROR), validationMessage.getMessage(), iFile);
-      }
-      
-      message.setLineNo(validationMessage.getLineNumber());
-      addInfoToMessage(validationMessage, message);
-      
-      List nestederrors = validationMessage.getNestedMessages();
-      if (nestederrors != null && !nestederrors.isEmpty())
-      {
-        message.setGroupName(REFERENCED_FILE_ERROR_OPEN + uri + REFERENCED_FILE_ERROR_CLOSE);
-      }
-
-      getOrCreateReporter().addMessage(getValidator(), message);
-
-      
-    }
-    try
-    {
-      IMarker[] markers = iFile.findMarkers(null, true, IResource.DEPTH_INFINITE);
-      for (int i = 0; i < markers.length; i++)
-      {
-        IMarker marker = markers[i];
-        String groupName = null;
-        try
-        {
-          groupName = (String) marker.getAttribute(GROUP_NAME);
-        }
-        catch (Exception e)
-        {
-        }
-
-        if (groupName != null && groupName.startsWith(REFERENCED_FILE_ERROR))
-        {
-
-          marker.setAttribute(IMarker.DONE, true);
-        }
-      }
-    }
-    catch (CoreException e)
-    {
-      e.printStackTrace();
-    }
-
-  }
-
-  public void clearMarkers(IFile iFile)
-  {
-    if (fileIsOK(iFile))
-    {
-      getOrCreateReporter().removeAllMessages(getValidator(), iFile);
-    }
-  }
-
-  public void run()
-  {
-  	try
-  	{
-  		// CS... a temporary test to avoid performing validation in the absence of xerces 
-  		//
-  		//dw Class theClass = 
-  		Class.forName("org.apache.xerces.xni.parser.XMLParserConfiguration", true, this.getClass().getClassLoader()); //$NON-NLS-1$
-  		  		
-  		if (fileIsOK(file))
-  		{
-  			// Check if the editor is dirty for this file. If so, prompt the user to
-  			// save before validating.
-  			if(showDialog)
-  			{
-  				checkIfFileDirty(file);
-  			}
-  			try
-  			{
-  				validate(file);
-  			}
-  			catch (Exception e)
-  			{
-  				ILogger logger = LoggerFactory.getLoggerInstance();
-  				logger.logError("", e); //$NON-NLS-1$
-  				//      e.printStackTrace();
-  			}
-  		}
-  	}
-  	catch (Exception e)
-  	{		
-  	}
-  }
-
-  /**
-   * Test whether the file given is OK to use. A file is OK to use if 1. It is
-   * not null 2. It exists. 3. The project containing the file is accessible.
-   * 
-   * @param file The file to check.
-   * @return True if the file is OK to use, false otherwise.
-   */
-  protected boolean fileIsOK(IFile file)
-  {
-    if (file != null && file.exists() && file.getProject().isAccessible())
-    {
-      return true;
-    }
-    return false;
-  }
-
-  /**
-   * Check if the file is dirty. A file is dirty if there is an open editor for
-   * the file that contains changes that haven't been saved.
-   * 
-   * @param file The file to check to see if it is dirty.
-   */
-  protected void checkIfFileDirty(IFile file)
-  {
-    IEditorPart[] dirtyEditors = WSIUIPlugin.getInstance().getWorkbench().getActiveWorkbenchWindow()
-        .getActivePage().getDirtyEditors();
-    int numeditors = dirtyEditors.length;
-    for (int i = 0; i < numeditors; i++)
-    {
-      IEditorInput editorInput = dirtyEditors[i].getEditorInput();
-      if (editorInput instanceof FileEditorInput)
-      {
-        FileEditorInput fileEditorInput = (FileEditorInput) editorInput;
-        if (fileEditorInput.getFile().equals(file))
-        {
-          String message = XMLValidationUIMessages._UI_SAVE_DIRTY_FILE_MESSAGE;
-          String title = XMLValidationUIMessages._UI_SAVE_DIRTY_FILE_TITLE;
-          if (MessageDialog.openQuestion(Display.getDefault().getActiveShell(), title, message))
-          {
-            dirtyEditors[i].doSave(null);
-          }
-          // There can only be one open editor/file so we can break.
-          break;
-        }
-      }
-    }
-  }
-
-  /**
-   * Gets the reporter.
-   * 
-   * @return Returns a IReporter
-   */
-  public IReporter getReporter()
-  {
-    return reporter;
-  }
-
-  /**
-   * Sets the reporter.
-   * 
-   * @param reporter
-   *          The reporter to set
-   */
-  public void setReporter(IReporter reporter)
-  {
-    this.reporter = reporter;
-  }
-
-  /**
-   * Gets the validator.
-   * 
-   * @return Returns a IValidator
-   */
-  public IValidator getValidator()
-  {
-    return validator;
-  }
-
-  /**
-   * Sets the validator.
-   * 
-   * @param validator
-   *          The validator to set
-   */
-  public void setValidator(IValidator validator)
-  {
-    this.validator = validator;
-  }
-
-  protected IReporter getOrCreateReporter()
-  {
-    if (reporter == null)
-    { 
-      reporter = new WorkbenchReporter(file.getProject(), new NullProgressMonitor());
-    }
-    return reporter;
-  }
-
-  /**
-   * Originally from *validation.Helper
-   * 
-   * @param severity
-   *          The severity given.
-   * @return The validation framework severity corresponding to the error.
-   */
-  protected int getValidationFrameworkSeverity(int severity)
-  {
-    switch (severity) {
-    case IMarker.SEVERITY_ERROR:
-      return IMessage.HIGH_SEVERITY;
-    case IMarker.SEVERITY_WARNING:
-      return IMessage.NORMAL_SEVERITY;
-    case IMarker.SEVERITY_INFO:
-      return IMessage.LOW_SEVERITY;
-    }
-    return IMessage.LOW_SEVERITY;
-  }
-  
-  /**
-   * Open an error dialog with the given title and message. Show the problems view
-   * if it is not already visible.
-   * 
-   * @param title The title of the error dialog.
-   * @param message The message in the error dialog.
-   */
-  protected void openErrorDialog(String title, String message)
-  {
-    showProblemsView();
-    MessageDialog.openError(Display.getDefault().getActiveShell(), title, message);
-  }
-  
-  /**
-   * Open an warning dialog with the given title and message. Show the problems view
-   * if it is not already visible.
-   * 
-   * @param title The title of the warning dialog.
-   * @param message The message in the warning dialog.
-   */
-  protected void openWarningDialog(String title, String message)
-  {
-    showProblemsView();
-    MessageDialog.openWarning(Display.getDefault().getActiveShell(), title, message);
-  }
-  
-  /**
-   * Open a valid dialog with the given title and message. 
-   * 
-   * @param title The title of the valid dialog.
-   * @param message The message in the valid dialog.
-   */
-  protected void openValidDialog(String title, String message)
-  {
-    MessageDialog.openInformation(Display.getDefault().getActiveShell(), title, message);
-  }
-  
-  /**
-   * Show the problems view if it is not already visible.
-   */
-  protected void showProblemsView()
-  {
-    IWorkbenchWindow dw = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-    IWorkbenchPage page = dw.getActivePage();
-    IWorkbenchPart activePart = page.getActivePart();
-    try
-    {
-      if (page != null)
-      {
-        page.showView(IPageLayout.ID_PROBLEM_VIEW);
-      }
-    }
-    catch (PartInitException e)
-    {
-    	Logger.logException(e);
-    }
-    page.activate(activePart);
-  }
-  
-  /**
-   * Format a file name into a correct URI.
-   * 
-   * @param filename The file name to format.
-   * @return The formatted URI.
-   */
-  protected String createURIForFilePath(String filename)
-  {
-  	if(!filename.startsWith(FILE_PROTOCOL_NO_SLASH))
-    {
-      while(filename.startsWith("/")) //$NON-NLS-1$
-      {
-        filename = filename.substring(1);
-      }
-      filename = FILE_PROTOCOL + filename;
-    }
-  	return filename;
-  }
-  
-  /**
-   * The validation outcome class holds the results from validating
-   * a file.
-   * 
-   * @author Lawrence Mandel, IBM
-   */
-  protected class ValidationOutcome
-  {
-    public boolean isValid = true;
-
-    public boolean hasMessages = false;
-
-    public ValidationOutcome()
-    {
-    }
-  }
-}
-
diff --git a/bundles/org.eclipse.wst.wsi.ui/src/org/eclipse/wst/wsi/ui/internal/actions/WSIValidateAction.java b/bundles/org.eclipse.wst.wsi.ui/src/org/eclipse/wst/wsi/ui/internal/actions/WSIValidateAction.java
index 26aab86..07d04bf 100644
--- a/bundles/org.eclipse.wst.wsi.ui/src/org/eclipse/wst/wsi/ui/internal/actions/WSIValidateAction.java
+++ b/bundles/org.eclipse.wst.wsi.ui/src/org/eclipse/wst/wsi/ui/internal/actions/WSIValidateAction.java
@@ -28,9 +28,10 @@
 import org.eclipse.wst.wsi.internal.analyzer.MessageAnalyzer;
 import org.eclipse.wst.wsi.internal.analyzer.WSIAnalyzerException;
 import org.eclipse.wst.wsi.internal.core.WSIConstants;
-import org.eclipse.wst.wsi.internal.report.AssertionError;
 import org.eclipse.wst.wsi.ui.internal.Messages;
+import org.eclipse.wst.wsi.internal.report.AssertionError;
 import org.eclipse.wst.xml.core.internal.validation.core.ValidationMessage;
+import org.eclipse.wst.xml.ui.internal.validation.ValidateAction;
 import org.xml.sax.SAXParseException;
 
 /**
diff --git a/bundles/org.eclipse.wst.wsi.ui/src/org/eclipse/wst/wsi/ui/internal/actions/WSIValidationUIMessages.java b/bundles/org.eclipse.wst.wsi.ui/src/org/eclipse/wst/wsi/ui/internal/actions/WSIValidationUIMessages.java
deleted file mode 100644
index c01a2a5..0000000
--- a/bundles/org.eclipse.wst.wsi.ui/src/org/eclipse/wst/wsi/ui/internal/actions/WSIValidationUIMessages.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *   IBM - Initial API and implementation
- * 
- */
-package org.eclipse.wst.wsi.ui.internal.actions;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Strings used by XML Validation
- */
-public class WSIValidationUIMessages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.wst.wsi.ui.internal.actions.wsivalidation"; //$NON-NLS-1$
-
-	private WSIValidationUIMessages() {
-		// cannot create new instance
-	}
-
-	static {
-		// initialize resource bundle
-		NLS.initializeMessages(BUNDLE_NAME, WSIValidationUIMessages.class);
-	}
-	public static String _UI_SAVE_DIRTY_FILE_MESSAGE;
-	public static String _UI_SAVE_DIRTY_FILE_TITLE;
-}
diff --git a/bundles/org.eclipse.wst.wsi.ui/src/org/eclipse/wst/wsi/ui/internal/actions/wsivalidation.properties b/bundles/org.eclipse.wst.wsi.ui/src/org/eclipse/wst/wsi/ui/internal/actions/wsivalidation.properties
deleted file mode 100644
index 94f744a..0000000
--- a/bundles/org.eclipse.wst.wsi.ui/src/org/eclipse/wst/wsi/ui/internal/actions/wsivalidation.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2001, 2006 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
-###############################################################################
-### Constants for strings  
-
-#
-# Dirty File Dialog Related Messages
-#
-_UI_SAVE_DIRTY_FILE_MESSAGE         = An open editor contains changes to this file that have not been saved. Do you want to save the file before running validation? (If you do not save the file the previously saved version will be validated.)
-_UI_SAVE_DIRTY_FILE_TITLE           = Save file?
diff --git a/bundles/org.eclipse.wst.wsi/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.wst.wsi/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index a47032c..0000000
--- a/bundles/org.eclipse.wst.wsi/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-#Wed Mar 29 04:08:26 EST 2006
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.source=1.3
diff --git a/bundles/org.eclipse.wst.wsi/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.wst.wsi/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index b190b41..0000000
--- a/bundles/org.eclipse.wst.wsi/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Wed Mar 29 04:08:26 EST 2006
-eclipse.preferences.version=1
-internal.default.compliance=default
diff --git a/bundles/org.eclipse.wst.wsi/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.wsi/META-INF/MANIFEST.MF
index 2b3a315..e356712 100644
--- a/bundles/org.eclipse.wst.wsi/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.wst.wsi/META-INF/MANIFEST.MF
@@ -2,47 +2,18 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %_PLUGIN_NAME
 Bundle-SymbolicName: org.eclipse.wst.wsi; singleton:=true
-Bundle-Version: 1.0.101.qualifier
+Bundle-Version: 1.0.2.qualifier
 Bundle-Activator: org.eclipse.wst.wsi.internal.WSITestToolsPlugin
 Bundle-Vendor: %_PROVIDER_NAME
 Bundle-Localization: plugin
-Export-Package: org.eclipse.wst.wsi.internal;x-internal:=true,
- org.eclipse.wst.wsi.internal.analyzer;x-internal:=true,
- org.eclipse.wst.wsi.internal.core;x-internal:=true,
- org.eclipse.wst.wsi.internal.core.analyzer;x-internal:=true,
- org.eclipse.wst.wsi.internal.core.analyzer.config;x-internal:=true,
- org.eclipse.wst.wsi.internal.core.analyzer.config.impl;x-internal:=true,
- org.eclipse.wst.wsi.internal.core.common;x-internal:=true,
- org.eclipse.wst.wsi.internal.core.common.impl;x-internal:=true,
- org.eclipse.wst.wsi.internal.core.document;x-internal:=true,
- org.eclipse.wst.wsi.internal.core.document.impl;x-internal:=true,
- org.eclipse.wst.wsi.internal.core.log;x-internal:=true,
- org.eclipse.wst.wsi.internal.core.log.impl;x-internal:=true,
- org.eclipse.wst.wsi.internal.core.monitor;x-internal:=true,
- org.eclipse.wst.wsi.internal.core.monitor.config;x-internal:=true,
- org.eclipse.wst.wsi.internal.core.monitor.config.impl;x-internal:=true,
- org.eclipse.wst.wsi.internal.core.profile;x-internal:=true,
- org.eclipse.wst.wsi.internal.core.profile.impl;x-internal:=true,
- org.eclipse.wst.wsi.internal.core.profile.validator;x-internal:=true,
- org.eclipse.wst.wsi.internal.core.profile.validator.impl;x-internal:=true,
- org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope;x-internal:=true,
- org.eclipse.wst.wsi.internal.core.profile.validator.impl.message;x-internal:=true,
- org.eclipse.wst.wsi.internal.core.profile.validator.impl.uddi;x-internal:=true,
- org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl;x-internal:=true,
- org.eclipse.wst.wsi.internal.core.report;x-internal:=true,
- org.eclipse.wst.wsi.internal.core.report.impl;x-internal:=true,
- org.eclipse.wst.wsi.internal.core.util;x-internal:=true,
- org.eclipse.wst.wsi.internal.core.wsdl;x-internal:=true,
- org.eclipse.wst.wsi.internal.core.wsdl.traversal;x-internal:=true,
- org.eclipse.wst.wsi.internal.core.wsdl.xsd;x-internal:=true,
- org.eclipse.wst.wsi.internal.core.xml;x-internal:=true,
- org.eclipse.wst.wsi.internal.core.xml.dom;x-internal:=true,
- org.eclipse.wst.wsi.internal.core.xml.jaxp;x-internal:=true,
- org.eclipse.wst.wsi.internal.core.xml.schema;x-internal:=true,
- org.eclipse.wst.wsi.internal.document;x-internal:=true,
- org.eclipse.wst.wsi.internal.report;x-internal:=true,
- org.eclipse.wst.wsi.internal.validate.wsdl;x-internal:=true
-Require-Bundle: org.eclipse.wst.command.env,
+Export-Package: org.eclipse.wst.wsi.internal,
+ org.eclipse.wst.wsi.internal.analyzer,
+ org.eclipse.wst.wsi.internal.core,
+ org.eclipse.wst.wsi.internal.core.log,
+ org.eclipse.wst.wsi.internal.core.wsdl,
+ org.eclipse.wst.wsi.internal.core.xml,
+ org.eclipse.wst.wsi.internal.report
+Require-Bundle:  org.eclipse.wst.command.env,
  org.eclipse.wst.command.env.core,
  org.eclipse.wst.common.uriresolver,
  org.eclipse.core.resources,
@@ -51,7 +22,5 @@
  org.wsdl4j,
  org.uddi4j,
  org.eclipse.core.runtime;bundle-version="2.1.0",
- org.apache.axis,
- com.ibm.icu, 
- org.apache.xerces
-Eclipse-LazyStart: true
+ org.apache.axis
+Eclipse-AutoStart: true
diff --git a/bundles/org.eclipse.wst.wsi/plugin.xml b/bundles/org.eclipse.wst.wsi/plugin.xml
index 7e80a2b..84a3928 100644
--- a/bundles/org.eclipse.wst.wsi/plugin.xml
+++ b/bundles/org.eclipse.wst.wsi/plugin.xml
@@ -20,7 +20,8 @@
          point="org.eclipse.wst.wsdl.validation.extvalidator">
       <extvalidator
             namespace="http://schemas.xmlsoap.org/wsdl/"
-            class="org.eclipse.wst.wsi.internal.validate.wsdl.WSDLValidator">
+            class="org.eclipse.wst.wsi.internal.validate.wsdl.WSDLValidator"
+            resourcebundle="wsivalidate">
       </extvalidator>
    </extension>
   
diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/WSITestToolsEclipseProperties.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/WSITestToolsEclipseProperties.java
index b5e509c..debcff7 100644
--- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/WSITestToolsEclipseProperties.java
+++ b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/WSITestToolsEclipseProperties.java
@@ -14,6 +14,8 @@
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.Path;
+import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolver;
+import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolverPlugin;
 import org.eclipse.wst.ws.internal.plugin.WSPlugin;
 import org.eclipse.wst.ws.internal.preferences.PersistentWSIContext;
 
@@ -27,8 +29,10 @@
   */
   public static WSIPreferences checkWSIPreferences(String fileuri)
   {
+	// Cache the WS-I tads.
+	cacheTADFiles();
+	
     WSIPreferences preferences = new WSIPreferences();
-    
     // Remove file: and any slashes from the fileuri. 
     // Eclipse's resolution mechanism needs to start with the drive.
     String uriStr = trimURI(fileuri);
@@ -101,5 +105,38 @@
     }
     return preferences;
   }
+  
+  protected static void cacheTADFiles()
+  {
+	  String resultAP = cacheFile(AP_ASSERTION_FILE);
+	  if(resultAP != null)
+	  {
+		  AP_ASSERTION_FILE = resultAP;
+	  }
+	  
+	  String resultSSBP = cacheFile(SSBP_ASSERTION_FILE);
+	  if(resultSSBP != null)
+	  {
+		  SSBP_ASSERTION_FILE = resultSSBP;
+	  }
+  }
+  
+  protected static String cacheFile(String uri)
+  {
+	  URIResolver resolver = getURIResolver();
+	  String resolvedUri = resolver.resolve("", null, uri);
+	  return resolver.resolvePhysicalLocation("", null, resolvedUri);
+  }
+  
+  /**
+   * Get the URI resolver to use for WS-I validaiton.
+   * 
+   * @return
+   * 		The URI resolver to use for WS-I validation.
+   */
+  public static URIResolver getURIResolver()
+  {
+	  return URIResolverPlugin.createResolver();
+  }
 
 }
diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/WSITestToolsProperties.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/WSITestToolsProperties.java
index f18cf04..8e69cdf 100644
--- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/WSITestToolsProperties.java
+++ b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/WSITestToolsProperties.java
@@ -19,8 +19,8 @@
   protected static String tadfile = "";
 
   public final static String schemaDir = "common/schemas/";
-  public final static String SSBP_ASSERTION_FILE = "http://www.ws-i.org/Testing/Tools/2005/01/SSBP10_BP11_TAD_1-0.xml";
-  public final static String AP_ASSERTION_FILE = "http://www.ws-i.org/Testing/Tools/2004/12/AP10_BP11_SSBP10_TAD.xml";
+  public static String SSBP_ASSERTION_FILE = "http://www.ws-i.org/Testing/Tools/2005/01/SSBP10_BP11_TAD_1-0.xml";
+  public static String AP_ASSERTION_FILE = "http://www.ws-i.org/Testing/Tools/2004/12/AP10_BP11_SSBP10_TAD.xml";
   public final static String DEFAULT_ASSERTION_FILE = AP_ASSERTION_FILE;
   
   public static final String STOP_NON_WSI = "0";
diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/LogBuilder.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/LogBuilder.java
index b4dfc80..2a80668 100644
--- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/LogBuilder.java
+++ b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/LogBuilder.java
@@ -13,16 +13,23 @@
 import java.io.PrintWriter;
 import java.io.StringReader;
 import java.io.StringWriter;
+import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.Iterator;
 import java.util.List;
+import java.util.TimeZone;
 
 import org.eclipse.core.resources.IFile;
-import org.eclipse.wst.wsi.internal.core.ToolInfo;
 import org.eclipse.wst.wsi.internal.core.WSIConstants;
+import org.eclipse.wst.wsi.internal.core.ToolInfo;
 import org.eclipse.wst.wsi.internal.core.common.AddStyleSheet;
 import org.eclipse.wst.wsi.internal.core.common.impl.AddStyleSheetImpl;
 import org.eclipse.wst.wsi.internal.core.document.DocumentFactory;
+import org.eclipse.wst.wsi.internal.core.log.Log;
+import org.eclipse.wst.wsi.internal.core.log.LogWriter;
+import org.eclipse.wst.wsi.internal.core.log.MessageEntry;
+import org.eclipse.wst.wsi.internal.core.log.MimeParts;
+import org.eclipse.wst.wsi.internal.core.log.RequestHandler;
 import org.eclipse.wst.wsi.internal.core.log.impl.LogImpl;
 import org.eclipse.wst.wsi.internal.core.log.impl.LogWriterImpl;
 import org.eclipse.wst.wsi.internal.core.log.impl.MessageEntryImpl;
@@ -33,9 +40,6 @@
 import org.eclipse.wst.wsi.internal.core.monitor.config.impl.ManInTheMiddleImpl;
 import org.eclipse.wst.wsi.internal.core.util.Utils;
 
-import com.ibm.icu.text.SimpleDateFormat;
-import com.ibm.icu.util.TimeZone;
-
 /**
  * Given a list of RequestHandlers, this class builds a 
  * WS-I compliant Message Log file.
diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/impl/ProfileAssertionsReaderImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/impl/ProfileAssertionsReaderImpl.java
index 3b2a9d9..db95949 100644
--- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/impl/ProfileAssertionsReaderImpl.java
+++ b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/impl/ProfileAssertionsReaderImpl.java
@@ -10,12 +10,17 @@
  *******************************************************************************/
 package org.eclipse.wst.wsi.internal.core.profile.impl;
 
+import java.io.IOException;
 import java.io.Reader;
+import java.net.URL;
 import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.TreeMap;
 
+import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolver;
+import org.eclipse.wst.wsi.internal.WSITestToolsEclipseProperties;
+import org.eclipse.wst.wsi.internal.WSITestToolsProperties;
 import org.eclipse.wst.wsi.internal.core.WSIConstants;
 import org.eclipse.wst.wsi.internal.core.WSIException;
 import org.eclipse.wst.wsi.internal.core.profile.EntryTypeList;
@@ -27,7 +32,9 @@
 import org.eclipse.wst.wsi.internal.core.util.Utils;
 import org.eclipse.wst.wsi.internal.core.xml.XMLUtils;
 import org.xml.sax.Attributes;
+import org.xml.sax.EntityResolver;
 import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
 import org.xml.sax.XMLReader;
 import org.xml.sax.helpers.DefaultHandler;
 
@@ -93,7 +100,32 @@
 
       // Set content handler to inner class
       reader.setContentHandler(new ProfileAssertionsHandler());
+      
+      if(WSITestToolsProperties.getEclipseContext())
+      {
+    	  EntityResolver resolver = new EntityResolver(){
 
+			public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException {
+				URIResolver resolver = WSITestToolsEclipseProperties.getURIResolver();
+				String uri = resolver.resolve("", publicId, systemId);
+				String physicalLocation = resolver.resolvePhysicalLocation("", publicId, uri);
+				InputSource is = null;
+				try
+				{
+					URL url = new URL(physicalLocation);
+					is = new InputSource(uri);
+					is.setByteStream(url.openStream());
+				}
+				catch(Exception e)
+				{
+					// Do nothing if opening the stream fails.
+				}
+				return is;
+			}
+    		  
+    	  };
+    	  reader.setEntityResolver(resolver);
+      }
       // Parse profile definition file
       reader.parse(inputSource);
     }
@@ -107,15 +139,24 @@
       //Check to see if the version of test asssertion document is supported
       if (!Utils.isValidProfileTADVersion(profileAssertions))
       {
-        throw new WSIException(
+    	String tadVersion = profileAssertions.getTADVersion();
+    	if(tadVersion != null)
+    	{
+    	  String tadName = profileAssertions.getTADName();
+          throw new WSIException(
           "\nVersion "
-            + profileAssertions.getTADVersion()
+            + tadVersion
             + " of the \""
-            + profileAssertions.getTADName()
+            + tadName
             + "\"\n"
             + "document is not compatible with this version of"
             + "\n"
             + "the test tools.");
+    	}
+    	else
+    	{
+    	  throw new WSIException("WS-I validation was unable to run. Unable to read the test assertion document.");
+    	}
       }
     }
 
diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/HttpHeadersValidator.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/HttpHeadersValidator.java
index f74694f..3c68a88 100644
--- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/HttpHeadersValidator.java
+++ b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/HttpHeadersValidator.java
@@ -15,13 +15,12 @@
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.Locale;
 import java.util.StringTokenizer;
 
 import sun.net.www.MessageHeader;
 
-import com.ibm.icu.text.SimpleDateFormat;
-
 /**
  * This class checks HTTP request headers about RFC 2616.
  *
diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/Utils.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/Utils.java
index 85882d2..4540725 100644
--- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/Utils.java
+++ b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/Utils.java
@@ -25,12 +25,14 @@
 import java.net.InetAddress;
 import java.net.MalformedURLException;
 import java.net.URL;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Date;
 import java.util.Iterator;
 import java.util.ResourceBundle;
 import java.util.StringTokenizer;
+import java.util.TimeZone;
 import java.util.Vector;
 
 import org.eclipse.wst.wsi.internal.core.WSIConstants;
@@ -42,9 +44,6 @@
 import org.eclipse.wst.wsi.internal.core.profile.ProfileAssertions;
 import org.eclipse.wst.wsi.internal.core.xml.XMLUtils;
 
-import com.ibm.icu.text.SimpleDateFormat;
-import com.ibm.icu.util.TimeZone;
-
 /**
  * General set of utilities.
  */
diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/validate/wsdl/WSDLValidator.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/validate/wsdl/WSDLValidator.java
index 997ad20..2c477b7 100644
--- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/validate/wsdl/WSDLValidator.java
+++ b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/validate/wsdl/WSDLValidator.java
@@ -9,11 +9,9 @@
  *   IBM - Initial API and implementation
  *******************************************************************************/
 package org.eclipse.wst.wsi.internal.validate.wsdl;
-import java.text.MessageFormat;
 import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
-import java.util.Locale;
 import java.util.ResourceBundle;
 
 import javax.wsdl.Binding;
@@ -58,7 +56,7 @@
   protected final int ERROR = 2;
   protected final int WARNING = 1;
   
-  protected ResourceBundle resourcebundle = null;
+  protected MessageGenerator messagegenerator = null;
   protected boolean wsiValid = false;
 
   /**
@@ -66,7 +64,6 @@
    */
   public WSDLValidator()
   {
-	resourcebundle = ResourceBundle.getBundle("wsivalidate", Locale.getDefault());
   }
 
   /* (non-Javadoc)
@@ -126,7 +123,7 @@
   	try
   	{
       //WSDLFactory factory = WSDLFactory.newInstance();
- 	  ValidationInfoImpl vali = new ValidationInfoImpl(valInfo.getFileURI(), new MessageGenerator(resourcebundle));
+ 	  ValidationInfoImpl vali = new ValidationInfoImpl(valInfo.getFileURI(), messagegenerator);
   	  vali.setURIResolver((URIResolver)valInfo.getURIResolver());
       WSDLReaderImpl reader = new WSDLReaderImpl(new WSDL11ValidationInfoImpl(vali));
       WSDLDocument[] docs = reader.readWSDL(uri, domModel);
@@ -143,7 +140,7 @@
   	}
   	catch(WSDLException e)
   	{
-  	  throw new ValidateWSDLException(MessageFormat.format(resourcebundle.getString(_EXC_UNABLE_TO_VALIDATE_WSI), new Object[] { uri }));
+  	  throw new ValidateWSDLException(messagegenerator.getString(_EXC_UNABLE_TO_VALIDATE_WSI,uri));
   	}
 	    
     if (definition != null && valInfo != null)
@@ -299,7 +296,7 @@
 	  catch (WSIAnalyzerException e)
 	  {
 		// TODO: Add code to log error 
-		System.out.println("Unable to run WS-I WSDL conformance check.\n" + e);
+		valInfo.addWarning(WSIConstants.WSI_PREFIX + "A problem occured while running the WS-I WSDL conformance check: " + e, 1, 0, valInfo.getFileURI());
 	  }
     }
   }
@@ -366,6 +363,14 @@
   }
 
   /**
+   * @see org.eclipse.wsdl.validate.controller.IWSDLValidator#setResourceBundle(java.util.ResourceBundle)
+   */
+  public void setResourceBundle(ResourceBundle rb)
+  {
+    messagegenerator = new MessageGenerator(rb);
+  }
+
+  /**
    * @see org.eclipse.wsdl.validate.controller.IWSDLValidator#isValid()
    */
   public boolean isValid()
@@ -373,11 +378,4 @@
     return wsiValid;
   }
 
-  public void setResourceBundle(ResourceBundle rb) {
-	// Not used.
-	
-  }
-  
-  
-
 }
diff --git a/features/org.eclipse.wst.ws_core.feature/feature.xml b/features/org.eclipse.wst.ws_core.feature/feature.xml
index 9db2df8..95531f6 100644
--- a/features/org.eclipse.wst.ws_core.feature/feature.xml
+++ b/features/org.eclipse.wst.ws_core.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.wst.ws_core.feature"
       label="WST WS Core Feature"
-      version="1.0.100.qualifier"
+      version="1.0.2.qualifier"
       provider-name="Eclipse.org">
 
    <description>
@@ -18,12 +18,12 @@
       <import feature="org.apache.wsil4j.feature" version="1.0.0" match="greaterOrEqual"/>
       <import feature="org.uddi4j.feature" version="2.0.3" match="greaterOrEqual"/>
       <import feature="org.wsdl4j.feature" version="1.4.0" match="greaterOrEqual"/>
-      <import feature="org.apache.xerces.feature" version="2.8.0" match="greaterOrEqual"/>
-      <import feature="org.eclipse.platform" version="3.2" match="equivalent"/>
-      <import feature="org.eclipse.emf" version="2.2" match="equivalent"/>
-      <import feature="org.eclipse.wst.common_core.feature" version="1.0.0" match="greaterOrEqual"/>
-      <import feature="org.eclipse.wst.server_core.feature" version="1.0.0" match="greaterOrEqual"/>
-      <import feature="org.eclipse.xsd" version="2.2" match="equivalent"/>
+      <import feature="org.apache.xerces.feature" version="2.7.0" match="greaterOrEqual"/>
+      <import feature="org.eclipse.platform" version="3.1.1" match="equivalent"/>
+      <import feature="org.eclipse.emf" version="2.1.1" match="equivalent"/>
+      <import feature="org.eclipse.wst.common_core.feature" version="1.0.2" match="equivalent"/>
+      <import feature="org.eclipse.wst.server_core.feature" version="1.0.2" match="equivalent"/>
+      <import feature="org.eclipse.xsd" version="2.1.1" match="equivalent"/>
    </requires>
 
    <plugin
diff --git a/features/org.eclipse.wst.ws_core.feature/sourceTemplateFeature/feature.xml b/features/org.eclipse.wst.ws_core.feature/sourceTemplateFeature/feature.xml
index 8a1b8c8..b859166 100644
--- a/features/org.eclipse.wst.ws_core.feature/sourceTemplateFeature/feature.xml
+++ b/features/org.eclipse.wst.ws_core.feature/sourceTemplateFeature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.wst.ws_core.feature.source"
       label="%featureName"
-      version="1.0.1.qualifier"
+      version="1.0.2.qualifier"
       provider-name="%providerName">
 
    <description>
diff --git a/features/org.eclipse.wst.ws_sdk.feature/feature.xml b/features/org.eclipse.wst.ws_sdk.feature/feature.xml
index 4cb2290..2b4a1b3 100644
--- a/features/org.eclipse.wst.ws_sdk.feature/feature.xml
+++ b/features/org.eclipse.wst.ws_sdk.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.wst.ws_sdk.feature"
       label="WST WS SDK Feature"
-      version="1.0.100.qualifier"
+      version="1.0.2.qualifier"
       provider-name="Eclipse.org">
 
    <description>
diff --git a/features/org.eclipse.wst.ws_ui.feature/feature.xml b/features/org.eclipse.wst.ws_ui.feature/feature.xml
index 4d4ca25..1ff775a 100644
--- a/features/org.eclipse.wst.ws_ui.feature/feature.xml
+++ b/features/org.eclipse.wst.ws_ui.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.wst.ws_ui.feature"
       label="WST WS UI Feature"
-      version="1.0.100.qualifier"
+      version="1.0.2.qualifier"
       provider-name="Eclipse.org">
 
    <description>
@@ -22,8 +22,8 @@
          version="0.0.0"/>
 
    <requires>
-      <import feature="org.eclipse.gef" version="3.2" match="equivalent"/>
-      <import feature="org.eclipse.wst.ws_core.feature" version="1.0.0" match="greaterOrEqual"/>
+      <import feature="org.eclipse.gef" version="3.1.1" match="equivalent"/>
+      <import feature="org.eclipse.wst.ws_core.feature" version="1.0.2" match="equivalent"/>
    </requires>
 
    <plugin
diff --git a/features/org.eclipse.wst.ws_ui.feature/sourceTemplateFeature/feature.xml b/features/org.eclipse.wst.ws_ui.feature/sourceTemplateFeature/feature.xml
index 14892e6..e2ef151 100644
--- a/features/org.eclipse.wst.ws_ui.feature/sourceTemplateFeature/feature.xml
+++ b/features/org.eclipse.wst.ws_ui.feature/sourceTemplateFeature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.wst.ws_ui.feature.source"
       label="Source for WST WS UI Feature"
-      version="1.0.1.qualifier"
+      version="1.0.2.qualifier"
       provider-name="Eclipse.org">
 
    <description>
diff --git a/features/org.eclipse.wst.ws_userdoc.feature/feature.xml b/features/org.eclipse.wst.ws_userdoc.feature/feature.xml
index 657c962..fc00d92 100644
--- a/features/org.eclipse.wst.ws_userdoc.feature/feature.xml
+++ b/features/org.eclipse.wst.ws_userdoc.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.wst.ws_userdoc.feature"
       label="User Documentation for WST WS Feature"
-      version="1.0.100.qualifier"
+      version="1.0.2.qualifier"
       provider-name="Eclipse.org">
 
    <description>
diff --git a/tests/org.eclipse.jst.ws.axis.consumption.core.tests/.classpath b/tests/org.eclipse.jst.ws.axis.consumption.core.tests/.classpath
deleted file mode 100644
index 9f4b4d1..0000000
--- a/tests/org.eclipse.jst.ws.axis.consumption.core.tests/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="tests"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/tests/org.eclipse.jst.ws.axis.consumption.core.tests/.cvsignore b/tests/org.eclipse.jst.ws.axis.consumption.core.tests/.cvsignore
deleted file mode 100644
index 57763eb..0000000
--- a/tests/org.eclipse.jst.ws.axis.consumption.core.tests/.cvsignore
+++ /dev/null
@@ -1,4 +0,0 @@
-bin
-build.xml
-temp.folder
-tests.jar
diff --git a/tests/org.eclipse.jst.ws.axis.consumption.core.tests/.project b/tests/org.eclipse.jst.ws.axis.consumption.core.tests/.project
deleted file mode 100644
index 202e7cf..0000000
--- a/tests/org.eclipse.jst.ws.axis.consumption.core.tests/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jst.ws.axis.consumption.core.tests</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/tests/org.eclipse.jst.ws.axis.consumption.core.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.jst.ws.axis.consumption.core.tests/META-INF/MANIFEST.MF
deleted file mode 100644
index 40f406b..0000000
--- a/tests/org.eclipse.jst.ws.axis.consumption.core.tests/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,12 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Axis Consumption Core Tests Plug-in
-Bundle-SymbolicName: org.eclipse.jst.ws.axis.consumption.core.tests
-Bundle-Version: 1.0.0
-Bundle-Vendor: Eclipse.org
-Bundle-Localization: plugin
-Require-Bundle: org.junit,
- org.eclipse.core.runtime,
- org.eclipse.core.resources,
- org.eclipse.jdt.core,
- org.eclipse.wst.ws
diff --git a/tests/org.eclipse.jst.ws.axis.consumption.core.tests/build.properties b/tests/org.eclipse.jst.ws.axis.consumption.core.tests/build.properties
deleted file mode 100644
index eec6f92..0000000
--- a/tests/org.eclipse.jst.ws.axis.consumption.core.tests/build.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-source.. = tests/
-output.. = bin/
-bin.includes = META-INF/,\
-               .
diff --git a/tests/org.eclipse.jst.ws.axis.consumption.core.tests/data/axisSource1/org/tempuri/AreaService/AreaServiceProxy.java b/tests/org.eclipse.jst.ws.axis.consumption.core.tests/data/axisSource1/org/tempuri/AreaService/AreaServiceProxy.java
deleted file mode 100644
index 7523659..0000000
--- a/tests/org.eclipse.jst.ws.axis.consumption.core.tests/data/axisSource1/org/tempuri/AreaService/AreaServiceProxy.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package org.tempuri.AreaService;
-
-public class AreaServiceProxy implements org.tempuri.AreaService.AreaService_PortType {
-  private String _endpoint = null;
-  private org.tempuri.AreaService.AreaService_PortType areaService_PortType = null;
-  
-  public AreaServiceProxy() {
-    _initAreaServiceProxy();
-  }
-  
-  private void _initAreaServiceProxy() {
-    try {
-      areaService_PortType = (new org.tempuri.AreaService.AreaService_ServiceLocator()).getAreaServiceSOAP();
-      if (areaService_PortType != null) {
-        if (_endpoint != null)
-          ((javax.xml.rpc.Stub)areaService_PortType)._setProperty("javax.xml.rpc.service.endpoint.address", _endpoint);
-        else
-          _endpoint = (String)((javax.xml.rpc.Stub)areaService_PortType)._getProperty("javax.xml.rpc.service.endpoint.address");
-      }
-      
-    }
-    catch (javax.xml.rpc.ServiceException serviceException) {}
-  }
-  
-  public String getEndpoint() {
-    return _endpoint;
-  }
-  
-  public void setEndpoint(String endpoint) {
-    _endpoint = endpoint;
-    if (areaService_PortType != null)
-      ((javax.xml.rpc.Stub)areaService_PortType)._setProperty("javax.xml.rpc.service.endpoint.address", _endpoint);
-    
-  }
-  
-  public org.tempuri.AreaService.AreaService_PortType getAreaService_PortType() {
-    if (areaService_PortType == null)
-      _initAreaServiceProxy();
-    return areaService_PortType;
-  }
-  
-  public float calculateRectArea(org.tempuri.AreaService.Dimensions parameters) throws java.rmi.RemoteException{
-    if (areaService_PortType == null)
-      _initAreaServiceProxy();
-    return areaService_PortType.calculateRectArea(parameters);
-  }
-  
-  
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.jst.ws.axis.consumption.core.tests/data/axisSource1/org/tempuri/AreaService/AreaServiceSOAPStub.java b/tests/org.eclipse.jst.ws.axis.consumption.core.tests/data/axisSource1/org/tempuri/AreaService/AreaServiceSOAPStub.java
deleted file mode 100644
index 5708a45..0000000
--- a/tests/org.eclipse.jst.ws.axis.consumption.core.tests/data/axisSource1/org/tempuri/AreaService/AreaServiceSOAPStub.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/**
- * AreaServiceSOAPStub.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis 1.2.1 Jun 14, 2005 (09:15:57 EDT) WSDL2Java emitter.
- */
-
-package org.tempuri.AreaService;
-
-public class AreaServiceSOAPStub extends org.apache.axis.client.Stub implements org.tempuri.AreaService.AreaService_PortType {
-    private java.util.Vector cachedSerClasses = new java.util.Vector();
-    private java.util.Vector cachedSerQNames = new java.util.Vector();
-    private java.util.Vector cachedSerFactories = new java.util.Vector();
-    private java.util.Vector cachedDeserFactories = new java.util.Vector();
-
-    static org.apache.axis.description.OperationDesc [] _operations;
-
-    static {
-        _operations = new org.apache.axis.description.OperationDesc[1];
-        _initOperationDesc1();
-    }
-
-    private static void _initOperationDesc1(){
-        org.apache.axis.description.OperationDesc oper;
-        org.apache.axis.description.ParameterDesc param;
-        oper = new org.apache.axis.description.OperationDesc();
-        oper.setName("CalculateRectArea");
-        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://tempuri.org/AreaService/", "parameters"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://tempuri.org/AreaService/", "dimensions"), org.tempuri.AreaService.Dimensions.class, false, false);
-        oper.addParameter(param);
-        oper.setReturnType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "float"));
-        oper.setReturnClass(float.class);
-        oper.setReturnQName(new javax.xml.namespace.QName("http://tempuri.org/AreaService/", "area"));
-        oper.setStyle(org.apache.axis.constants.Style.DOCUMENT);
-        oper.setUse(org.apache.axis.constants.Use.LITERAL);
-        _operations[0] = oper;
-
-    }
-
-    public AreaServiceSOAPStub() throws org.apache.axis.AxisFault {
-         this(null);
-    }
-
-    public AreaServiceSOAPStub(java.net.URL endpointURL, javax.xml.rpc.Service service) throws org.apache.axis.AxisFault {
-         this(service);
-         super.cachedEndpoint = endpointURL;
-    }
-
-    public AreaServiceSOAPStub(javax.xml.rpc.Service service) throws org.apache.axis.AxisFault {
-        if (service == null) {
-            super.service = new org.apache.axis.client.Service();
-        } else {
-            super.service = service;
-        }
-        ((org.apache.axis.client.Service)super.service).setTypeMappingVersion("1.2");
-            java.lang.Class cls;
-            javax.xml.namespace.QName qName;
-            javax.xml.namespace.QName qName2;
-            java.lang.Class beansf = org.apache.axis.encoding.ser.BeanSerializerFactory.class;
-            java.lang.Class beandf = org.apache.axis.encoding.ser.BeanDeserializerFactory.class;
-            java.lang.Class enumsf = org.apache.axis.encoding.ser.EnumSerializerFactory.class;
-            java.lang.Class enumdf = org.apache.axis.encoding.ser.EnumDeserializerFactory.class;
-            java.lang.Class arraysf = org.apache.axis.encoding.ser.ArraySerializerFactory.class;
-            java.lang.Class arraydf = org.apache.axis.encoding.ser.ArrayDeserializerFactory.class;
-            java.lang.Class simplesf = org.apache.axis.encoding.ser.SimpleSerializerFactory.class;
-            java.lang.Class simpledf = org.apache.axis.encoding.ser.SimpleDeserializerFactory.class;
-            java.lang.Class simplelistsf = org.apache.axis.encoding.ser.SimpleListSerializerFactory.class;
-            java.lang.Class simplelistdf = org.apache.axis.encoding.ser.SimpleListDeserializerFactory.class;
-            qName = new javax.xml.namespace.QName("http://tempuri.org/AreaService/", "dimensions");
-            cachedSerQNames.add(qName);
-            cls = org.tempuri.AreaService.Dimensions.class;
-            cachedSerClasses.add(cls);
-            cachedSerFactories.add(beansf);
-            cachedDeserFactories.add(beandf);
-
-    }
-
-    protected org.apache.axis.client.Call createCall() throws java.rmi.RemoteException {
-        try {
-            org.apache.axis.client.Call _call = super._createCall();
-            if (super.maintainSessionSet) {
-                _call.setMaintainSession(super.maintainSession);
-            }
-            if (super.cachedUsername != null) {
-                _call.setUsername(super.cachedUsername);
-            }
-            if (super.cachedPassword != null) {
-                _call.setPassword(super.cachedPassword);
-            }
-            if (super.cachedEndpoint != null) {
-                _call.setTargetEndpointAddress(super.cachedEndpoint);
-            }
-            if (super.cachedTimeout != null) {
-                _call.setTimeout(super.cachedTimeout);
-            }
-            if (super.cachedPortName != null) {
-                _call.setPortName(super.cachedPortName);
-            }
-            java.util.Enumeration keys = super.cachedProperties.keys();
-            while (keys.hasMoreElements()) {
-                java.lang.String key = (java.lang.String) keys.nextElement();
-                _call.setProperty(key, super.cachedProperties.get(key));
-            }
-            // All the type mapping information is registered
-            // when the first call is made.
-            // The type mapping information is actually registered in
-            // the TypeMappingRegistry of the service, which
-            // is the reason why registration is only needed for the first call.
-            synchronized (this) {
-                if (firstCall()) {
-                    // must set encoding style before registering serializers
-                    _call.setEncodingStyle(null);
-                    for (int i = 0; i < cachedSerFactories.size(); ++i) {
-                        java.lang.Class cls = (java.lang.Class) cachedSerClasses.get(i);
-                        javax.xml.namespace.QName qName =
-                                (javax.xml.namespace.QName) cachedSerQNames.get(i);
-                        java.lang.Object x = cachedSerFactories.get(i);
-                        if (x instanceof Class) {
-                            java.lang.Class sf = (java.lang.Class)
-                                 cachedSerFactories.get(i);
-                            java.lang.Class df = (java.lang.Class)
-                                 cachedDeserFactories.get(i);
-                            _call.registerTypeMapping(cls, qName, sf, df, false);
-                        }
-                        else if (x instanceof javax.xml.rpc.encoding.SerializerFactory) {
-                            org.apache.axis.encoding.SerializerFactory sf = (org.apache.axis.encoding.SerializerFactory)
-                                 cachedSerFactories.get(i);
-                            org.apache.axis.encoding.DeserializerFactory df = (org.apache.axis.encoding.DeserializerFactory)
-                                 cachedDeserFactories.get(i);
-                            _call.registerTypeMapping(cls, qName, sf, df, false);
-                        }
-                    }
-                }
-            }
-            return _call;
-        }
-        catch (java.lang.Throwable _t) {
-            throw new org.apache.axis.AxisFault("Failure trying to get the Call object", _t);
-        }
-    }
-
-    public float calculateRectArea(org.tempuri.AreaService.Dimensions parameters) throws java.rmi.RemoteException {
-        if (super.cachedEndpoint == null) {
-            throw new org.apache.axis.NoEndPointException();
-        }
-        org.apache.axis.client.Call _call = createCall();
-        _call.setOperation(_operations[0]);
-        _call.setUseSOAPAction(true);
-        _call.setSOAPActionURI("http://tempuri.org/AreaService/NewOperation");
-        _call.setEncodingStyle(null);
-        _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
-        _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
-        _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
-        _call.setOperationName(new javax.xml.namespace.QName("", "CalculateRectArea"));
-
-        setRequestHeaders(_call);
-        setAttachments(_call);
- try {        java.lang.Object _resp = _call.invoke(new java.lang.Object[] {parameters});
-
-        if (_resp instanceof java.rmi.RemoteException) {
-            throw (java.rmi.RemoteException)_resp;
-        }
-        else {
-            extractAttachments(_call);
-            try {
-                return ((java.lang.Float) _resp).floatValue();
-            } catch (java.lang.Exception _exception) {
-                return ((java.lang.Float) org.apache.axis.utils.JavaUtils.convert(_resp, float.class)).floatValue();
-            }
-        }
-  } catch (org.apache.axis.AxisFault axisFaultException) {
-  throw axisFaultException;
-}
-    }
-
-}
diff --git a/tests/org.eclipse.jst.ws.axis.consumption.core.tests/data/axisSource1/org/tempuri/AreaService/AreaService_PortType.java b/tests/org.eclipse.jst.ws.axis.consumption.core.tests/data/axisSource1/org/tempuri/AreaService/AreaService_PortType.java
deleted file mode 100644
index c8b7dcc..0000000
--- a/tests/org.eclipse.jst.ws.axis.consumption.core.tests/data/axisSource1/org/tempuri/AreaService/AreaService_PortType.java
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * AreaService_PortType.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis 1.2.1 Jun 14, 2005 (09:15:57 EDT) WSDL2Java emitter.
- */
-
-package org.tempuri.AreaService;
-
-public interface AreaService_PortType extends java.rmi.Remote {
-    public float calculateRectArea(org.tempuri.AreaService.Dimensions parameters) throws java.rmi.RemoteException;
-}
diff --git a/tests/org.eclipse.jst.ws.axis.consumption.core.tests/data/axisSource1/org/tempuri/AreaService/AreaService_Service.java b/tests/org.eclipse.jst.ws.axis.consumption.core.tests/data/axisSource1/org/tempuri/AreaService/AreaService_Service.java
deleted file mode 100644
index 981f659..0000000
--- a/tests/org.eclipse.jst.ws.axis.consumption.core.tests/data/axisSource1/org/tempuri/AreaService/AreaService_Service.java
+++ /dev/null
@@ -1,16 +0,0 @@
-/**
- * AreaService_Service.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis 1.2.1 Jun 14, 2005 (09:15:57 EDT) WSDL2Java emitter.
- */
-
-package org.tempuri.AreaService;
-
-public interface AreaService_Service extends javax.xml.rpc.Service {
-    public java.lang.String getAreaServiceSOAPAddress();
-
-    public org.tempuri.AreaService.AreaService_PortType getAreaServiceSOAP() throws javax.xml.rpc.ServiceException;
-
-    public org.tempuri.AreaService.AreaService_PortType getAreaServiceSOAP(java.net.URL portAddress) throws javax.xml.rpc.ServiceException;
-}
diff --git a/tests/org.eclipse.jst.ws.axis.consumption.core.tests/data/axisSource1/org/tempuri/AreaService/AreaService_ServiceLocator.java b/tests/org.eclipse.jst.ws.axis.consumption.core.tests/data/axisSource1/org/tempuri/AreaService/AreaService_ServiceLocator.java
deleted file mode 100644
index 23d22c8..0000000
--- a/tests/org.eclipse.jst.ws.axis.consumption.core.tests/data/axisSource1/org/tempuri/AreaService/AreaService_ServiceLocator.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/**
- * AreaService_ServiceLocator.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis 1.2.1 Jun 14, 2005 (09:15:57 EDT) WSDL2Java emitter.
- */
-
-package org.tempuri.AreaService;
-
-public class AreaService_ServiceLocator extends org.apache.axis.client.Service implements org.tempuri.AreaService.AreaService_Service {
-
-    public AreaService_ServiceLocator() {
-    }
-
-
-    public AreaService_ServiceLocator(org.apache.axis.EngineConfiguration config) {
-        super(config);
-    }
-
-    public AreaService_ServiceLocator(java.lang.String wsdlLoc, javax.xml.namespace.QName sName) throws javax.xml.rpc.ServiceException {
-        super(wsdlLoc, sName);
-    }
-
-    // Use to get a proxy class for AreaServiceSOAP
-    private java.lang.String AreaServiceSOAP_address = "http://localhost:8080/AreaProj/services/AreaServiceSOAP";
-
-    public java.lang.String getAreaServiceSOAPAddress() {
-        return AreaServiceSOAP_address;
-    }
-
-    // The WSDD service name defaults to the port name.
-    private java.lang.String AreaServiceSOAPWSDDServiceName = "AreaServiceSOAP";
-
-    public java.lang.String getAreaServiceSOAPWSDDServiceName() {
-        return AreaServiceSOAPWSDDServiceName;
-    }
-
-    public void setAreaServiceSOAPWSDDServiceName(java.lang.String name) {
-        AreaServiceSOAPWSDDServiceName = name;
-    }
-
-    public org.tempuri.AreaService.AreaService_PortType getAreaServiceSOAP() throws javax.xml.rpc.ServiceException {
-       java.net.URL endpoint;
-        try {
-            endpoint = new java.net.URL(AreaServiceSOAP_address);
-        }
-        catch (java.net.MalformedURLException e) {
-            throw new javax.xml.rpc.ServiceException(e);
-        }
-        return getAreaServiceSOAP(endpoint);
-    }
-
-    public org.tempuri.AreaService.AreaService_PortType getAreaServiceSOAP(java.net.URL portAddress) throws javax.xml.rpc.ServiceException {
-        try {
-            org.tempuri.AreaService.AreaServiceSOAPStub _stub = new org.tempuri.AreaService.AreaServiceSOAPStub(portAddress, this);
-            _stub.setPortName(getAreaServiceSOAPWSDDServiceName());
-            return _stub;
-        }
-        catch (org.apache.axis.AxisFault e) {
-            return null;
-        }
-    }
-
-    public void setAreaServiceSOAPEndpointAddress(java.lang.String address) {
-        AreaServiceSOAP_address = address;
-    }
-
-    /**
-     * For the given interface, get the stub implementation.
-     * If this service has no port for the given interface,
-     * then ServiceException is thrown.
-     */
-    public java.rmi.Remote getPort(Class serviceEndpointInterface) throws javax.xml.rpc.ServiceException {
-        try {
-            if (org.tempuri.AreaService.AreaService_PortType.class.isAssignableFrom(serviceEndpointInterface)) {
-                org.tempuri.AreaService.AreaServiceSOAPStub _stub = new org.tempuri.AreaService.AreaServiceSOAPStub(new java.net.URL(AreaServiceSOAP_address), this);
-                _stub.setPortName(getAreaServiceSOAPWSDDServiceName());
-                return _stub;
-            }
-        }
-        catch (java.lang.Throwable t) {
-            throw new javax.xml.rpc.ServiceException(t);
-        }
-        throw new javax.xml.rpc.ServiceException("There is no stub implementation for the interface:  " + (serviceEndpointInterface == null ? "null" : serviceEndpointInterface.getName()));
-    }
-
-    /**
-     * For the given interface, get the stub implementation.
-     * If this service has no port for the given interface,
-     * then ServiceException is thrown.
-     */
-    public java.rmi.Remote getPort(javax.xml.namespace.QName portName, Class serviceEndpointInterface) throws javax.xml.rpc.ServiceException {
-        if (portName == null) {
-            return getPort(serviceEndpointInterface);
-        }
-        java.lang.String inputPortName = portName.getLocalPart();
-        if ("AreaServiceSOAP".equals(inputPortName)) {
-            return getAreaServiceSOAP();
-        }
-        else  {
-            java.rmi.Remote _stub = getPort(serviceEndpointInterface);
-            ((org.apache.axis.client.Stub) _stub).setPortName(portName);
-            return _stub;
-        }
-    }
-
-    public javax.xml.namespace.QName getServiceName() {
-        return new javax.xml.namespace.QName("http://tempuri.org/AreaService/", "AreaService");
-    }
-
-    private java.util.HashSet ports = null;
-
-    public java.util.Iterator getPorts() {
-        if (ports == null) {
-            ports = new java.util.HashSet();
-            ports.add(new javax.xml.namespace.QName("http://tempuri.org/AreaService/", "AreaServiceSOAP"));
-        }
-        return ports.iterator();
-    }
-
-    /**
-    * Set the endpoint address for the specified port name.
-    */
-    public void setEndpointAddress(java.lang.String portName, java.lang.String address) throws javax.xml.rpc.ServiceException {
-        
-if ("AreaServiceSOAP".equals(portName)) {
-            setAreaServiceSOAPEndpointAddress(address);
-        }
-        else 
-{ // Unknown Port Name
-            throw new javax.xml.rpc.ServiceException(" Cannot set Endpoint Address for Unknown Port" + portName);
-        }
-    }
-
-    /**
-    * Set the endpoint address for the specified port name.
-    */
-    public void setEndpointAddress(javax.xml.namespace.QName portName, java.lang.String address) throws javax.xml.rpc.ServiceException {
-        setEndpointAddress(portName.getLocalPart(), address);
-    }
-
-}
diff --git a/tests/org.eclipse.jst.ws.axis.consumption.core.tests/data/axisSource1/org/tempuri/AreaService/Dimensions.java b/tests/org.eclipse.jst.ws.axis.consumption.core.tests/data/axisSource1/org/tempuri/AreaService/Dimensions.java
deleted file mode 100644
index ea8eb52..0000000
--- a/tests/org.eclipse.jst.ws.axis.consumption.core.tests/data/axisSource1/org/tempuri/AreaService/Dimensions.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/**
- * Dimensions.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis 1.2.1 Jun 14, 2005 (09:15:57 EDT) WSDL2Java emitter.
- */
-
-package org.tempuri.AreaService;
-
-public class Dimensions  implements java.io.Serializable {
-    private float width;
-    private float height;
-
-    public Dimensions() {
-    }
-
-    public Dimensions(
-           float width,
-           float height) {
-           this.width = width;
-           this.height = height;
-    }
-
-
-    /**
-     * Gets the width value for this Dimensions.
-     * 
-     * @return width
-     */
-    public float getWidth() {
-        return width;
-    }
-
-
-    /**
-     * Sets the width value for this Dimensions.
-     * 
-     * @param width
-     */
-    public void setWidth(float width) {
-        this.width = width;
-    }
-
-
-    /**
-     * Gets the height value for this Dimensions.
-     * 
-     * @return height
-     */
-    public float getHeight() {
-        return height;
-    }
-
-
-    /**
-     * Sets the height value for this Dimensions.
-     * 
-     * @param height
-     */
-    public void setHeight(float height) {
-        this.height = height;
-    }
-
-    private java.lang.Object __equalsCalc = null;
-    public synchronized boolean equals(java.lang.Object obj) {
-        if (!(obj instanceof Dimensions)) return false;
-        Dimensions other = (Dimensions) obj;
-        if (obj == null) return false;
-        if (this == obj) return true;
-        if (__equalsCalc != null) {
-            return (__equalsCalc == obj);
-        }
-        __equalsCalc = obj;
-        boolean _equals;
-        _equals = true && 
-            this.width == other.getWidth() &&
-            this.height == other.getHeight();
-        __equalsCalc = null;
-        return _equals;
-    }
-
-    private boolean __hashCodeCalc = false;
-    public synchronized int hashCode() {
-        if (__hashCodeCalc) {
-            return 0;
-        }
-        __hashCodeCalc = true;
-        int _hashCode = 1;
-        _hashCode += new Float(getWidth()).hashCode();
-        _hashCode += new Float(getHeight()).hashCode();
-        __hashCodeCalc = false;
-        return _hashCode;
-    }
-
-    // Type metadata
-    private static org.apache.axis.description.TypeDesc typeDesc =
-        new org.apache.axis.description.TypeDesc(Dimensions.class, true);
-
-    static {
-        typeDesc.setXmlType(new javax.xml.namespace.QName("http://tempuri.org/AreaService/", "dimensions"));
-        org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
-        elemField.setFieldName("width");
-        elemField.setXmlName(new javax.xml.namespace.QName("", "width"));
-        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "float"));
-        elemField.setNillable(false);
-        typeDesc.addFieldDesc(elemField);
-        elemField = new org.apache.axis.description.ElementDesc();
-        elemField.setFieldName("height");
-        elemField.setXmlName(new javax.xml.namespace.QName("", "height"));
-        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "float"));
-        elemField.setNillable(false);
-        typeDesc.addFieldDesc(elemField);
-    }
-
-    /**
-     * Return type metadata object
-     */
-    public static org.apache.axis.description.TypeDesc getTypeDesc() {
-        return typeDesc;
-    }
-
-    /**
-     * Get Custom Serializer
-     */
-    public static org.apache.axis.encoding.Serializer getSerializer(
-           java.lang.String mechType, 
-           java.lang.Class _javaType,  
-           javax.xml.namespace.QName _xmlType) {
-        return 
-          new  org.apache.axis.encoding.ser.BeanSerializer(
-            _javaType, _xmlType, typeDesc);
-    }
-
-    /**
-     * Get Custom Deserializer
-     */
-    public static org.apache.axis.encoding.Deserializer getDeserializer(
-           java.lang.String mechType, 
-           java.lang.Class _javaType,  
-           javax.xml.namespace.QName _xmlType) {
-        return 
-          new  org.apache.axis.encoding.ser.BeanDeserializer(
-            _javaType, _xmlType, typeDesc);
-    }
-
-}
diff --git a/tests/org.eclipse.jst.ws.axis.consumption.core.tests/data/axisSource2/wtp/Converter.java b/tests/org.eclipse.jst.ws.axis.consumption.core.tests/data/axisSource2/wtp/Converter.java
deleted file mode 100644
index e094911..0000000
--- a/tests/org.eclipse.jst.ws.axis.consumption.core.tests/data/axisSource2/wtp/Converter.java
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * Converter.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis 1.2.1 Jun 14, 2005 (09:15:57 EDT) WSDL2Java emitter.
- */
-
-package wtp;
-
-public interface Converter extends java.rmi.Remote {
-    public float celsiusToFarenheit(float celsius) throws java.rmi.RemoteException;
-    public float farenheitToCelsius(float farenheit) throws java.rmi.RemoteException;
-}
diff --git a/tests/org.eclipse.jst.ws.axis.consumption.core.tests/data/axisSource2/wtp/ConverterProxy.java b/tests/org.eclipse.jst.ws.axis.consumption.core.tests/data/axisSource2/wtp/ConverterProxy.java
deleted file mode 100644
index 62f1000..0000000
--- a/tests/org.eclipse.jst.ws.axis.consumption.core.tests/data/axisSource2/wtp/ConverterProxy.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package wtp;
-
-public class ConverterProxy implements wtp.Converter {
-  private String _endpoint = null;
-  private wtp.Converter converter = null;
-  
-  public ConverterProxy() {
-    _initConverterProxy();
-  }
-  
-  private void _initConverterProxy() {
-    try {
-      converter = (new wtp.ConverterServiceLocator()).getConverter();
-      if (converter != null) {
-        if (_endpoint != null)
-          ((javax.xml.rpc.Stub)converter)._setProperty("javax.xml.rpc.service.endpoint.address", _endpoint);
-        else
-          _endpoint = (String)((javax.xml.rpc.Stub)converter)._getProperty("javax.xml.rpc.service.endpoint.address");
-      }
-      
-    }
-    catch (javax.xml.rpc.ServiceException serviceException) {}
-  }
-  
-  public String getEndpoint() {
-    return _endpoint;
-  }
-  
-  public void setEndpoint(String endpoint) {
-    _endpoint = endpoint;
-    if (converter != null)
-      ((javax.xml.rpc.Stub)converter)._setProperty("javax.xml.rpc.service.endpoint.address", _endpoint);
-    
-  }
-  
-  public wtp.Converter getConverter() {
-    if (converter == null)
-      _initConverterProxy();
-    return converter;
-  }
-  
-  public float celsiusToFarenheit(float celsius) throws java.rmi.RemoteException{
-    if (converter == null)
-      _initConverterProxy();
-    return converter.celsiusToFarenheit(celsius);
-  }
-  
-  public float farenheitToCelsius(float farenheit) throws java.rmi.RemoteException{
-    if (converter == null)
-      _initConverterProxy();
-    return converter.farenheitToCelsius(farenheit);
-  }
-  
-  
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.jst.ws.axis.consumption.core.tests/data/axisSource2/wtp/ConverterService.java b/tests/org.eclipse.jst.ws.axis.consumption.core.tests/data/axisSource2/wtp/ConverterService.java
deleted file mode 100644
index 993df7e..0000000
--- a/tests/org.eclipse.jst.ws.axis.consumption.core.tests/data/axisSource2/wtp/ConverterService.java
+++ /dev/null
@@ -1,16 +0,0 @@
-/**
- * ConverterService.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis 1.2.1 Jun 14, 2005 (09:15:57 EDT) WSDL2Java emitter.
- */
-
-package wtp;
-
-public interface ConverterService extends javax.xml.rpc.Service {
-    public java.lang.String getConverterAddress();
-
-    public wtp.Converter getConverter() throws javax.xml.rpc.ServiceException;
-
-    public wtp.Converter getConverter(java.net.URL portAddress) throws javax.xml.rpc.ServiceException;
-}
diff --git a/tests/org.eclipse.jst.ws.axis.consumption.core.tests/data/axisSource2/wtp/ConverterServiceLocator.java b/tests/org.eclipse.jst.ws.axis.consumption.core.tests/data/axisSource2/wtp/ConverterServiceLocator.java
deleted file mode 100644
index 02fbe69..0000000
--- a/tests/org.eclipse.jst.ws.axis.consumption.core.tests/data/axisSource2/wtp/ConverterServiceLocator.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/**
- * ConverterServiceLocator.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis 1.2.1 Jun 14, 2005 (09:15:57 EDT) WSDL2Java emitter.
- */
-
-package wtp;
-
-public class ConverterServiceLocator extends org.apache.axis.client.Service implements wtp.ConverterService {
-
-    public ConverterServiceLocator() {
-    }
-
-
-    public ConverterServiceLocator(org.apache.axis.EngineConfiguration config) {
-        super(config);
-    }
-
-    public ConverterServiceLocator(java.lang.String wsdlLoc, javax.xml.namespace.QName sName) throws javax.xml.rpc.ServiceException {
-        super(wsdlLoc, sName);
-    }
-
-    // Use to get a proxy class for Converter
-    private java.lang.String Converter_address = "http://localhost:8080/ConverterProj/services/Converter";
-
-    public java.lang.String getConverterAddress() {
-        return Converter_address;
-    }
-
-    // The WSDD service name defaults to the port name.
-    private java.lang.String ConverterWSDDServiceName = "Converter";
-
-    public java.lang.String getConverterWSDDServiceName() {
-        return ConverterWSDDServiceName;
-    }
-
-    public void setConverterWSDDServiceName(java.lang.String name) {
-        ConverterWSDDServiceName = name;
-    }
-
-    public wtp.Converter getConverter() throws javax.xml.rpc.ServiceException {
-       java.net.URL endpoint;
-        try {
-            endpoint = new java.net.URL(Converter_address);
-        }
-        catch (java.net.MalformedURLException e) {
-            throw new javax.xml.rpc.ServiceException(e);
-        }
-        return getConverter(endpoint);
-    }
-
-    public wtp.Converter getConverter(java.net.URL portAddress) throws javax.xml.rpc.ServiceException {
-        try {
-            wtp.ConverterSoapBindingStub _stub = new wtp.ConverterSoapBindingStub(portAddress, this);
-            _stub.setPortName(getConverterWSDDServiceName());
-            return _stub;
-        }
-        catch (org.apache.axis.AxisFault e) {
-            return null;
-        }
-    }
-
-    public void setConverterEndpointAddress(java.lang.String address) {
-        Converter_address = address;
-    }
-
-    /**
-     * For the given interface, get the stub implementation.
-     * If this service has no port for the given interface,
-     * then ServiceException is thrown.
-     */
-    public java.rmi.Remote getPort(Class serviceEndpointInterface) throws javax.xml.rpc.ServiceException {
-        try {
-            if (wtp.Converter.class.isAssignableFrom(serviceEndpointInterface)) {
-                wtp.ConverterSoapBindingStub _stub = new wtp.ConverterSoapBindingStub(new java.net.URL(Converter_address), this);
-                _stub.setPortName(getConverterWSDDServiceName());
-                return _stub;
-            }
-        }
-        catch (java.lang.Throwable t) {
-            throw new javax.xml.rpc.ServiceException(t);
-        }
-        throw new javax.xml.rpc.ServiceException("There is no stub implementation for the interface:  " + (serviceEndpointInterface == null ? "null" : serviceEndpointInterface.getName()));
-    }
-
-    /**
-     * For the given interface, get the stub implementation.
-     * If this service has no port for the given interface,
-     * then ServiceException is thrown.
-     */
-    public java.rmi.Remote getPort(javax.xml.namespace.QName portName, Class serviceEndpointInterface) throws javax.xml.rpc.ServiceException {
-        if (portName == null) {
-            return getPort(serviceEndpointInterface);
-        }
-        java.lang.String inputPortName = portName.getLocalPart();
-        if ("Converter".equals(inputPortName)) {
-            return getConverter();
-        }
-        else  {
-            java.rmi.Remote _stub = getPort(serviceEndpointInterface);
-            ((org.apache.axis.client.Stub) _stub).setPortName(portName);
-            return _stub;
-        }
-    }
-
-    public javax.xml.namespace.QName getServiceName() {
-        return new javax.xml.namespace.QName("http://wtp", "ConverterService");
-    }
-
-    private java.util.HashSet ports = null;
-
-    public java.util.Iterator getPorts() {
-        if (ports == null) {
-            ports = new java.util.HashSet();
-            ports.add(new javax.xml.namespace.QName("http://wtp", "Converter"));
-        }
-        return ports.iterator();
-    }
-
-    /**
-    * Set the endpoint address for the specified port name.
-    */
-    public void setEndpointAddress(java.lang.String portName, java.lang.String address) throws javax.xml.rpc.ServiceException {
-        
-if ("Converter".equals(portName)) {
-            setConverterEndpointAddress(address);
-        }
-        else 
-{ // Unknown Port Name
-            throw new javax.xml.rpc.ServiceException(" Cannot set Endpoint Address for Unknown Port" + portName);
-        }
-    }
-
-    /**
-    * Set the endpoint address for the specified port name.
-    */
-    public void setEndpointAddress(javax.xml.namespace.QName portName, java.lang.String address) throws javax.xml.rpc.ServiceException {
-        setEndpointAddress(portName.getLocalPart(), address);
-    }
-
-}
diff --git a/tests/org.eclipse.jst.ws.axis.consumption.core.tests/data/axisSource2/wtp/ConverterSoapBindingStub.java b/tests/org.eclipse.jst.ws.axis.consumption.core.tests/data/axisSource2/wtp/ConverterSoapBindingStub.java
deleted file mode 100644
index f6d2c29..0000000
--- a/tests/org.eclipse.jst.ws.axis.consumption.core.tests/data/axisSource2/wtp/ConverterSoapBindingStub.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/**
- * ConverterSoapBindingStub.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis 1.2.1 Jun 14, 2005 (09:15:57 EDT) WSDL2Java emitter.
- */
-
-package wtp;
-
-public class ConverterSoapBindingStub extends org.apache.axis.client.Stub implements wtp.Converter {
-    private java.util.Vector cachedSerClasses = new java.util.Vector();
-    private java.util.Vector cachedSerQNames = new java.util.Vector();
-    private java.util.Vector cachedSerFactories = new java.util.Vector();
-    private java.util.Vector cachedDeserFactories = new java.util.Vector();
-
-    static org.apache.axis.description.OperationDesc [] _operations;
-
-    static {
-        _operations = new org.apache.axis.description.OperationDesc[2];
-        _initOperationDesc1();
-    }
-
-    private static void _initOperationDesc1(){
-        org.apache.axis.description.OperationDesc oper;
-        org.apache.axis.description.ParameterDesc param;
-        oper = new org.apache.axis.description.OperationDesc();
-        oper.setName("celsiusToFarenheit");
-        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://wtp", "celsius"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "float"), float.class, false, false);
-        oper.addParameter(param);
-        oper.setReturnType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "float"));
-        oper.setReturnClass(float.class);
-        oper.setReturnQName(new javax.xml.namespace.QName("http://wtp", "celsiusToFarenheitReturn"));
-        oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
-        oper.setUse(org.apache.axis.constants.Use.LITERAL);
-        _operations[0] = oper;
-
-        oper = new org.apache.axis.description.OperationDesc();
-        oper.setName("farenheitToCelsius");
-        param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://wtp", "farenheit"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "float"), float.class, false, false);
-        oper.addParameter(param);
-        oper.setReturnType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "float"));
-        oper.setReturnClass(float.class);
-        oper.setReturnQName(new javax.xml.namespace.QName("http://wtp", "farenheitToCelsiusReturn"));
-        oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
-        oper.setUse(org.apache.axis.constants.Use.LITERAL);
-        _operations[1] = oper;
-
-    }
-
-    public ConverterSoapBindingStub() throws org.apache.axis.AxisFault {
-         this(null);
-    }
-
-    public ConverterSoapBindingStub(java.net.URL endpointURL, javax.xml.rpc.Service service) throws org.apache.axis.AxisFault {
-         this(service);
-         super.cachedEndpoint = endpointURL;
-    }
-
-    public ConverterSoapBindingStub(javax.xml.rpc.Service service) throws org.apache.axis.AxisFault {
-        if (service == null) {
-            super.service = new org.apache.axis.client.Service();
-        } else {
-            super.service = service;
-        }
-        ((org.apache.axis.client.Service)super.service).setTypeMappingVersion("1.2");
-    }
-
-    protected org.apache.axis.client.Call createCall() throws java.rmi.RemoteException {
-        try {
-            org.apache.axis.client.Call _call = super._createCall();
-            if (super.maintainSessionSet) {
-                _call.setMaintainSession(super.maintainSession);
-            }
-            if (super.cachedUsername != null) {
-                _call.setUsername(super.cachedUsername);
-            }
-            if (super.cachedPassword != null) {
-                _call.setPassword(super.cachedPassword);
-            }
-            if (super.cachedEndpoint != null) {
-                _call.setTargetEndpointAddress(super.cachedEndpoint);
-            }
-            if (super.cachedTimeout != null) {
-                _call.setTimeout(super.cachedTimeout);
-            }
-            if (super.cachedPortName != null) {
-                _call.setPortName(super.cachedPortName);
-            }
-            java.util.Enumeration keys = super.cachedProperties.keys();
-            while (keys.hasMoreElements()) {
-                java.lang.String key = (java.lang.String) keys.nextElement();
-                _call.setProperty(key, super.cachedProperties.get(key));
-            }
-            return _call;
-        }
-        catch (java.lang.Throwable _t) {
-            throw new org.apache.axis.AxisFault("Failure trying to get the Call object", _t);
-        }
-    }
-
-    public float celsiusToFarenheit(float celsius) throws java.rmi.RemoteException {
-        if (super.cachedEndpoint == null) {
-            throw new org.apache.axis.NoEndPointException();
-        }
-        org.apache.axis.client.Call _call = createCall();
-        _call.setOperation(_operations[0]);
-        _call.setUseSOAPAction(true);
-        _call.setSOAPActionURI("");
-        _call.setEncodingStyle(null);
-        _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
-        _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
-        _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
-        _call.setOperationName(new javax.xml.namespace.QName("http://wtp", "celsiusToFarenheit"));
-
-        setRequestHeaders(_call);
-        setAttachments(_call);
- try {        java.lang.Object _resp = _call.invoke(new java.lang.Object[] {new java.lang.Float(celsius)});
-
-        if (_resp instanceof java.rmi.RemoteException) {
-            throw (java.rmi.RemoteException)_resp;
-        }
-        else {
-            extractAttachments(_call);
-            try {
-                return ((java.lang.Float) _resp).floatValue();
-            } catch (java.lang.Exception _exception) {
-                return ((java.lang.Float) org.apache.axis.utils.JavaUtils.convert(_resp, float.class)).floatValue();
-            }
-        }
-  } catch (org.apache.axis.AxisFault axisFaultException) {
-  throw axisFaultException;
-}
-    }
-
-    public float farenheitToCelsius(float farenheit) throws java.rmi.RemoteException {
-        if (super.cachedEndpoint == null) {
-            throw new org.apache.axis.NoEndPointException();
-        }
-        org.apache.axis.client.Call _call = createCall();
-        _call.setOperation(_operations[1]);
-        _call.setUseSOAPAction(true);
-        _call.setSOAPActionURI("");
-        _call.setEncodingStyle(null);
-        _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
-        _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
-        _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
-        _call.setOperationName(new javax.xml.namespace.QName("http://wtp", "farenheitToCelsius"));
-
-        setRequestHeaders(_call);
-        setAttachments(_call);
- try {        java.lang.Object _resp = _call.invoke(new java.lang.Object[] {new java.lang.Float(farenheit)});
-
-        if (_resp instanceof java.rmi.RemoteException) {
-            throw (java.rmi.RemoteException)_resp;
-        }
-        else {
-            extractAttachments(_call);
-            try {
-                return ((java.lang.Float) _resp).floatValue();
-            } catch (java.lang.Exception _exception) {
-                return ((java.lang.Float) org.apache.axis.utils.JavaUtils.convert(_resp, float.class)).floatValue();
-            }
-        }
-  } catch (org.apache.axis.AxisFault axisFaultException) {
-  throw axisFaultException;
-}
-    }
-
-}
diff --git a/tests/org.eclipse.jst.ws.axis.consumption.core.tests/tests/org/eclipse/jst/ws/axis/consumption/core/tests/unittest/LocatorTests.java b/tests/org.eclipse.jst.ws.axis.consumption.core.tests/tests/org/eclipse/jst/ws/axis/consumption/core/tests/unittest/LocatorTests.java
deleted file mode 100644
index d9c97cd..0000000
--- a/tests/org.eclipse.jst.ws.axis.consumption.core.tests/tests/org/eclipse/jst/ws/axis/consumption/core/tests/unittest/LocatorTests.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060317   127456 cbrealey@ca.ibm.com - Chris Brealey
- *******************************************************************************/
-
-package org.eclipse.jst.ws.axis.consumption.core.tests.unittest;
-
-import java.util.Iterator;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jst.ws.axis.consumption.core.tests.util.StdoutProgressMonitor;
-import org.eclipse.jst.ws.axis.consumption.core.tests.util.Util;
-import org.eclipse.wst.ws.internal.wsfinder.WebServiceFinder;
-import org.eclipse.wst.ws.internal.wsrt.WebServiceClientInfo;
-
-public class LocatorTests extends TestCase
-{
-	public static Test suite ()
-	{
-		return new TestSuite(LocatorTests.class);
-	}
-
-	public void test_AxisClientLocator ()
-	{
-		System.out.println("BEGIN test_AxisClientLocator");
-		try
-		{
-			Util.init();
-			try
-			{
-				String[] projects = new String[] {"Java1","Java2","Java3"};
-				for (int i=0; i<projects.length; i++)
-				{
-					IJavaProject javaProject = Util.createJavaProject(projects[i]);
-					Util.addRequiredJarsToJavaProject(javaProject);
-					Util.copyExamplesToJavaProject(javaProject);
-				}
-			}
-			catch (Throwable t)
-			{
-				t.printStackTrace();
-				fail("Failed to access or create prerequisite projects");
-			}
-			WebServiceFinder finder = WebServiceFinder.instance();
-			String[] categoryIds = finder.getWebServiceCategoryIds();
-			int n = -1;
-			int p = 0;
-			IProgressMonitor monitor = new StdoutProgressMonitor();
-			for (int i=0; i<categoryIds.length; i++)
-			{
-				System.out.println("Category ID = ["+categoryIds[i]+"]");
-				if (categoryIds[i].equals("org.eclipse.jst.ws.internal.axis.consumption.core.locator.category.axis"))
-				{
-					n = i;
-					Iterator iter = finder.getWebServiceClientsByCategoryId(categoryIds[i],monitor);
-					while (iter.hasNext())
-					{
-						Object obj = iter.next();
-						assertTrue("Finder returned a "+obj.getClass().getName()+" instead of a WebServiceClientInfo.",obj instanceof WebServiceClientInfo);
-						p++;
-						WebServiceClientInfo wscInfo = (WebServiceClientInfo)obj;
-						String proxyClassURL = wscInfo.getImplURL();
-						System.out.println("Axis client proxy class = ["+proxyClassURL+"]");
-					}
-				}
-			}
-			assertTrue("Axis locator extension missing.",n >= 0);
-			assertTrue("Did not find the expected six proxies.",p == 6);
-		}
-		finally
-		{
-			System.out.println("ENDED test_AxisClientLocator");
-		}
-	}
-}
diff --git a/tests/org.eclipse.jst.ws.axis.consumption.core.tests/tests/org/eclipse/jst/ws/axis/consumption/core/tests/util/StdoutProgressMonitor.java b/tests/org.eclipse.jst.ws.axis.consumption.core.tests/tests/org/eclipse/jst/ws/axis/consumption/core/tests/util/StdoutProgressMonitor.java
deleted file mode 100644
index b188b17..0000000
--- a/tests/org.eclipse.jst.ws.axis.consumption.core.tests/tests/org/eclipse/jst/ws/axis/consumption/core/tests/util/StdoutProgressMonitor.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060317   127456 cbrealey@ca.ibm.com - Chris Brealey
- *******************************************************************************/
-
-package org.eclipse.jst.ws.axis.consumption.core.tests.util;
-
-import org.eclipse.core.runtime.NullProgressMonitor;
-
-public class StdoutProgressMonitor extends NullProgressMonitor
-{
-
-	public void beginTask(String name, int totalWork)
-	{
-		System.out.println("[Progress] "+name+", "+totalWork+" unit(s) remaining).");
-	}
-
-	public void done()
-	{
-		System.out.println("[Progress] Done.");
-	}
-
-	public void setTaskName(String name)
-	{
-		System.out.println("[Progress] "+name);
-	}
-
-	public void subTask(String name)
-	{
-		System.out.println("[Progress] "+name);
-	}
-
-	public void worked(int work)
-	{
-		System.out.println("[Progress] "+work+" unit(s) completed.");
-	}
-	
-}
diff --git a/tests/org.eclipse.jst.ws.axis.consumption.core.tests/tests/org/eclipse/jst/ws/axis/consumption/core/tests/util/Util.java b/tests/org.eclipse.jst.ws.axis.consumption.core.tests/tests/org/eclipse/jst/ws/axis/consumption/core/tests/util/Util.java
deleted file mode 100644
index 92c906a..0000000
--- a/tests/org.eclipse.jst.ws.axis.consumption.core.tests/tests/org/eclipse/jst/ws/axis/consumption/core/tests/util/Util.java
+++ /dev/null
@@ -1,244 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060317   127456 cbrealey@ca.ibm.com - Chris Brealey
- *******************************************************************************/
-
-package org.eclipse.jst.ws.axis.consumption.core.tests.util;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.util.Enumeration;
-import java.util.LinkedList;
-import java.util.List;
-
-import org.eclipse.core.resources.ICommand;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.core.JavaModelException;
-import org.osgi.framework.Bundle;
-
-public class Util
-{
-	/**
-	 * Initializes this testsuite.
-	 */
-	public static void init ()
-	{
-		String workspaceOSPath = ResourcesPlugin.getWorkspace().getRoot().getLocation().toString();
-		System.out.println("Workspace = ["+workspaceOSPath+"]");
-	}
-	
-	/**
-	 * Create a Java project if it doesn't already exist.
-	 * @param name The name of the project to create.
-	 * @throws CoreException If the project could not be created.
-	 */
-	public static IJavaProject createJavaProject ( String name )
-	throws CoreException
-	{
-		IWorkspace workspace = ResourcesPlugin.getWorkspace();
-		IWorkspaceRoot root = workspace.getRoot();
-		IProject project = root.getProject(name);
-		if (!project.exists())
-		{
-			System.out.println("Creating project ["+name+"]");
-			project.create(null);
-			project.open(null);
-	        IProjectDescription desc = project.getDescription();
-	        desc.setNatureIds(new String[] {JavaCore.NATURE_ID});
-	        ICommand cmd = desc.newCommand();
-	        cmd.setBuilderName(JavaCore.BUILDER_ID);
-	        desc.setBuildSpec(new ICommand[] {cmd});
-	        project.setDescription(desc,null);
-		}
-		System.out.println("Creating Java project ["+name+"]");
-		IJavaProject javaProject = JavaCore.create(project);
-		javaProject.open(null);
-		return javaProject;
-	}
-	
-	/**
-	 * Adds Axis jars and the JRE to the classpath of the given project.
-	 * @param javaProject The project to add axis.jar to.
-	 * @throws JavaModelException If the jar could not be added.
-	 */
-	public static void addRequiredJarsToJavaProject ( IJavaProject javaProject )
-	throws CoreException
-	{
-		// Get the current classpath as a list.
-		IClasspathEntry[] classpath = javaProject.getRawClasspath();
-		List list = new LinkedList(java.util.Arrays.asList(classpath));
-		
-		// Add the JRE to the list.
-		IClasspathEntry con = JavaCore.newContainerEntry(new Path("org.eclipse.jdt.launching.JRE_CONTAINER"));
-		list.add(con);
-		
-		// Add the Axis jars to the list.
-		String[] jars = new String[] {
-				"axis.jar",
-				"commons-discovery-0.2.jar",
-				"commons-logging-1.0.4.jar",
-				"jaxrpc.jar",
-				"log4j-1.2.8.jar",
-				"saaj.jar",
-				"wsdl4j-1.5.1.jar"
-		};
-		for (int i=0; i<jars.length; i++)
-		{
-			IPath jar = getAxisPluginJarPath(jars[i]);
-			System.out.println("Adding jar ["+jar.toString()+"]");
-			IClasspathEntry jarEntry = JavaCore.newLibraryEntry(jar,null,null);
-			list.add(jarEntry);
-		}
-		
-		// Update the current classpath from the list.
-		IClasspathEntry[] newClasspath = (IClasspathEntry[])list.toArray(new IClasspathEntry[0]);
-		javaProject.setRawClasspath(newClasspath,null);
-	}
-	
-	/**
-	 * Returns the filesystem path to the named jar in the Axis plugin.
-	 * @return The filesystem path to the named jar in the Axis plugin.
-	 * @throws CoreException If the path could not be computed.
-	 */
-	public static IPath getAxisPluginJarPath ( String jarName )
-	throws CoreException
-	{
-		Bundle bundle = Platform.getBundle("org.apache.axis");
-		if (bundle == null)
-		{
-			throw new CoreException(new Status(IStatus.ERROR,"",0,"Unable to locate plugin org.apache.axis",null));
-		}
-		URL axisURL = Platform.find(bundle,new Path("lib/"+jarName));
-		try
-		{
-			URL localAxisURL = Platform.asLocalURL(axisURL);
-			File file = new File(new URI(localAxisURL.toString()));
-			return new Path(file.toString());
-		}
-		catch (IOException ioe)
-		{
-			throw new CoreException(new Status(IStatus.ERROR,"",0,"Unable to locate plugin org.apache.axis",ioe));
-		}
-		catch (URISyntaxException use)
-		{
-			throw new CoreException(new Status(IStatus.ERROR,"",0,"Unable to locate plugin org.apache.axis",use));
-		}
-	}
-	
-	/**
-	 * Copies examples to the given Java project.
-	 * @param javaProject The project to copy the examples to.
-	 */
-	public static void copyExamplesToJavaProject ( IJavaProject javaProject )
-	throws CoreException
-	{
-		IProject project = javaProject.getProject();
-		String sourcePath = project.getName();
-		copyExample("org.eclipse.jst.ws.axis.consumption.core.tests","data/axisSource1","*.java",sourcePath);
-		copyExample("org.eclipse.jst.ws.axis.consumption.core.tests","data/axisSource2","*.java",sourcePath);
-		project.build(IncrementalProjectBuilder.FULL_BUILD,null);
-		try
-		{
-			System.out.println("Waiting for build to complete");
-			Platform.getJobManager().join(ResourcesPlugin.FAMILY_AUTO_BUILD,null);
-		}
-		catch (Throwable t)
-		{
-			//Do nothing.
-		}
-	}
-	
-	/**
-	 * Recursively copies files from a plugin to the workspace.
-	 * @param sourcePlugin The plugin to copy from.
-	 * @param sourceRoot The plugin-related path to copy from.
-	 * @param targetWorkspacePath The workspace path to copy to.
-	 */
-	public static void copyExample ( String sourcePlugin, String sourceRoot, String pattern, String targetWorkspacePath )
-	throws CoreException
-	{
-		Bundle bundle = Platform.getBundle(sourcePlugin);
-		if (bundle == null)
-		{
-			throw new CoreException(new Status(IStatus.ERROR,"",0,"Unable to locate plugin "+sourcePlugin,null));
-		}
-		Enumeration e = bundle.getEntryPaths(sourceRoot);
-		while (e.hasMoreElements())
-		{
-			String path = e.nextElement().toString();
-			copyExampleFile(bundle,path,new Path(sourceRoot).segmentCount(),targetWorkspacePath);
-		}
-	}
-	
-	public static void copyExampleFile ( Bundle bundle, String path, int offset, String targetWorkspacePath )
-	throws CoreException
-	{
-		IPath reducedPath = new Path(path).removeFirstSegments(offset);
-		IPath targetPath = new Path(targetWorkspacePath).append(reducedPath);
-		if (path.endsWith("/"))
-		{
-			System.out.println("Folder = ["+path+"] Target = ["+targetPath+"]");
-			IFolder folder = ResourcesPlugin.getWorkspace().getRoot().getFolder(targetPath);
-			if (!folder.exists())
-			{
-				folder.create(true,true,null);
-			}
-			Enumeration e = bundle.getEntryPaths(path);
-			while (e.hasMoreElements())
-			{
-				String subpath = e.nextElement().toString();
-				copyExampleFile(bundle,subpath,offset,targetWorkspacePath);
-			}
-		}
-		else
-		{
-			System.out.println("File = ["+path+"] Target = ["+targetPath+"]");
-			URL url = bundle.getEntry(path);
-			copyFile(url,targetPath);
-		}
-	}
-	
-	public static void copyFile ( URL url, IPath targetPath )
-	throws CoreException
-	{
-		IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(targetPath);
-		try
-		{
-			InputStream stream = url.openStream();
-			file.create(stream,true,null);
-		}
-		catch (IOException ioe)
-		{
-			throw new CoreException(new Status(IStatus.ERROR,"",0,"IOException copying file",ioe));
-		}
-	}
-}
diff --git a/tests/org.eclipse.jst.ws.tests.performance/META-INF/MANIFEST.MF b/tests/org.eclipse.jst.ws.tests.performance/META-INF/MANIFEST.MF
index 2ceabf2..276b0db 100644
--- a/tests/org.eclipse.jst.ws.tests.performance/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.jst.ws.tests.performance/META-INF/MANIFEST.MF
@@ -9,8 +9,7 @@
 Bundle-Localization: plugin
 Export-Package: org.eclipse.jst.ws.tests.axis.tomcat.v50.perfmsr,
  org.eclipse.jst.ws.tests.performance,
- org.eclipse.jst.ws.tests.performance.plugin,
- org.eclipse.jst.ws.tests.performance.util
+ org.eclipse.jst.ws.tests.performance.plugin
 Require-Bundle: org.eclipse.jst.ws,
  org.eclipse.jst.j2ee.core,
  org.eclipse.core.runtime,
diff --git a/tests/org.eclipse.jst.ws.tests.performance/build.properties b/tests/org.eclipse.jst.ws.tests.performance/build.properties
index 99ea6b5..bf17c58 100644
--- a/tests/org.eclipse.jst.ws.tests.performance/build.properties
+++ b/tests/org.eclipse.jst.ws.tests.performance/build.properties
@@ -1,4 +1,5 @@
-bin.includes = plugin.xml,\
+bin.includes = build.xml,\
+               plugin.xml,\
                test.xml,\
                axisPerfmsr.jar,\
                META-INF/,\
diff --git a/tests/org.eclipse.jst.ws.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.jst.ws.tests/META-INF/MANIFEST.MF
index 6d9687d..e4701f2 100644
--- a/tests/org.eclipse.jst.ws.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.jst.ws.tests/META-INF/MANIFEST.MF
@@ -33,4 +33,4 @@
  org.eclipse.wst.ws,
  org.eclipse.wst.common.environment,
  org.eclipse.wst.common.tests
-Eclipse-LazyStart: true
+Eclipse-AutoStart: true
diff --git a/tests/org.eclipse.jst.ws.tests/build.properties b/tests/org.eclipse.jst.ws.tests/build.properties
index f64a07b..f40af6d 100644
--- a/tests/org.eclipse.jst.ws.tests/build.properties
+++ b/tests/org.eclipse.jst.ws.tests/build.properties
@@ -1,4 +1,5 @@
-bin.includes = data/,\
+bin.includes = build.xml,\
+               data/,\
                plugin.xml,\
                readme.txt,\
                tests.jar,\
diff --git a/tests/org.eclipse.wst.ws.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.wst.ws.tests/META-INF/MANIFEST.MF
index 2dcd0f4..1202009 100644
--- a/tests/org.eclipse.wst.ws.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.wst.ws.tests/META-INF/MANIFEST.MF
@@ -22,9 +22,8 @@
  org.eclipse.wst.common.environment,
  org.eclipse.emf.ecore,
  org.eclipse.emf.ecore.xmi
-Eclipse-LazyStart: true
-Export-Package: org.eclipse.wst.ws.tests.data,
- org.eclipse.wst.ws.tests.plugin,
+Eclipse-AutoStart: true
+Export-Package: org.eclipse.wst.ws.tests.plugin,
  org.eclipse.wst.ws.tests.unittest,
  org.eclipse.wst.ws.tests.util
 Bundle-ClassPath: tests.jar
diff --git a/tests/org.eclipse.wst.ws.tests/build.properties b/tests/org.eclipse.wst.ws.tests/build.properties
index f64a07b..f40af6d 100644
--- a/tests/org.eclipse.wst.ws.tests/build.properties
+++ b/tests/org.eclipse.wst.ws.tests/build.properties
@@ -1,4 +1,5 @@
-bin.includes = data/,\
+bin.includes = build.xml,\
+               data/,\
                plugin.xml,\
                readme.txt,\
                tests.jar,\
diff --git a/tests/org.eclipse.wst.ws.tests/tests/org/eclipse/wst/ws/tests/unittest/WebServiceFinderTests.java b/tests/org.eclipse.wst.ws.tests/tests/org/eclipse/wst/ws/tests/unittest/WebServiceFinderTests.java
index c01f197..86f9c5c 100644
--- a/tests/org.eclipse.wst.ws.tests/tests/org/eclipse/wst/ws/tests/unittest/WebServiceFinderTests.java
+++ b/tests/org.eclipse.wst.ws.tests/tests/org/eclipse/wst/ws/tests/unittest/WebServiceFinderTests.java
@@ -1,28 +1,14 @@
-/*******************************************************************************
- * Copyright (c) 2006 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
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060317   127456 cbrealey@ca.ibm.com - Chris Brealey
- *******************************************************************************/
-
 package org.eclipse.wst.ws.tests.unittest;
 
 import java.util.Iterator;
 
+import org.eclipse.wst.ws.internal.wsfinder.WebServiceFinder;
+import org.eclipse.wst.ws.internal.wsrt.WebServiceInfo;
+
 import junit.framework.Test;
 import junit.framework.TestCase;
 import junit.framework.TestSuite;
 
-import org.eclipse.wst.ws.internal.wsfinder.WebServiceFinder;
-import org.eclipse.wst.ws.internal.wsrt.WebServiceInfo;
-
 /**
  * @author joan
  *
@@ -39,7 +25,7 @@
 		WebServiceFinder wsf = WebServiceFinder.instance();
 		
 		System.out.println("attempting to locate all web services in workspace");
-		Iterator wsIterator = wsf.getWebServices(null);
+		Iterator wsIterator = wsf.getWebServices();
 		while (wsIterator.hasNext()) {
 			WebServiceInfo wsInfo = (WebServiceInfo) wsIterator.next();
 			System.out.println("webService URL: " + wsInfo.getWsdlURL());
diff --git a/tests/org.eclipse.wst.wsdl.tests/samples/BugFixes/TypeAndElementResolution/Test.wsdl b/tests/org.eclipse.wst.wsdl.tests/samples/BugFixes/TypeAndElementResolution/Test.wsdl
deleted file mode 100644
index 8dde88d..0000000
--- a/tests/org.eclipse.wst.wsdl.tests/samples/BugFixes/TypeAndElementResolution/Test.wsdl
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<definitions name="TestService"

-	targetNamespace="http://test.org/Service/"

-	xmlns="http://schemas.xmlsoap.org/wsdl/"

-	xmlns:tns="http://test.org/Service/"

-	xmlns:xsd="http://www.w3.org/2001/XMLSchema"

-	xmlns:test="http://test.org/">

-	<types>

-		<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

-			<xs:import namespace="http://test.org/"

-				schemaLocation="Test1.xsd" />

-		</xs:schema>

-		<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

-			<xs:import namespace="http://test.org/"

-				schemaLocation="Test2.xsd" />

-		</xs:schema>

-	</types>

-	<message name="testRequest">

-		<part name="requestPart" type="test:MyType" />

-	</message>

-	<message name="testResponse">

-		<part name="responsePart" element="test:MyElement" />

-	</message>

-	<portType name="TestPort">

-		<operation name="testOperation">

-			<input message="tns:testRequest" name="testRequest" />

-			<output message="tns:testResponse" name="testResponse" />

-		</operation>

-

-	</portType>

-</definitions>

diff --git a/tests/org.eclipse.wst.wsdl.tests/samples/BugFixes/TypeAndElementResolution/Test1.xsd b/tests/org.eclipse.wst.wsdl.tests/samples/BugFixes/TypeAndElementResolution/Test1.xsd
deleted file mode 100644
index 82c36aa..0000000
--- a/tests/org.eclipse.wst.wsdl.tests/samples/BugFixes/TypeAndElementResolution/Test1.xsd
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<schema xmlns="http://www.w3.org/2001/XMLSchema"

-	targetNamespace="http://test.org/"

-	xmlns:tns="http://test.org/">

-</schema>

diff --git a/tests/org.eclipse.wst.wsdl.tests/samples/BugFixes/TypeAndElementResolution/Test2.xsd b/tests/org.eclipse.wst.wsdl.tests/samples/BugFixes/TypeAndElementResolution/Test2.xsd
deleted file mode 100644
index e281a19..0000000
--- a/tests/org.eclipse.wst.wsdl.tests/samples/BugFixes/TypeAndElementResolution/Test2.xsd
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<schema xmlns="http://www.w3.org/2001/XMLSchema"

-	targetNamespace="http://test.org/"

-	xmlns:tns="http://test.org/">

-	

-	<element name="MyElement" type="string"></element>

-

-	<simpleType name="MyType">

-		<restriction base="string"></restriction>

-	</simpleType>

-

-</schema>

diff --git a/tests/org.eclipse.wst.wsdl.tests/src/org/eclipse/wst/wsdl/tests/AllTestCases.java b/tests/org.eclipse.wst.wsdl.tests/src/org/eclipse/wst/wsdl/tests/AllTestCases.java
index 0851bb2..eadd168 100644
--- a/tests/org.eclipse.wst.wsdl.tests/src/org/eclipse/wst/wsdl/tests/AllTestCases.java
+++ b/tests/org.eclipse.wst.wsdl.tests/src/org/eclipse/wst/wsdl/tests/AllTestCases.java
@@ -33,16 +33,13 @@
   {
     TestSuite suite = new TestSuite();
     
-    // Bug 123547 - comment out this test for now.
-    // suite.addTest(InlineSchemaTest.suite());  
+    suite.addTest(InlineSchemaTest.suite());  
     suite.addTest(LoadAndSerializationTest.suite());
     suite.addTest(SemanticTest.suite());
     suite.addTest(WSDLGenerationTest.suite());
     suite.addTest(WSDL4JAPITest.suite());
     suite.addTest(WSDLEMFAPITest.suite());
-    suite.addTest(UtilTest.suite());
-    suite.addTest(BugFixesTest.suite());
-    suite.addTest(LocationTrackingTest.suite());
+	suite.addTest(UtilTest.suite());
     
     return suite;
   }
diff --git a/tests/org.eclipse.wst.wsdl.tests/src/org/eclipse/wst/wsdl/tests/BugFixesTest.java b/tests/org.eclipse.wst.wsdl.tests/src/org/eclipse/wst/wsdl/tests/BugFixesTest.java
deleted file mode 100644
index e87ad71..0000000
--- a/tests/org.eclipse.wst.wsdl.tests/src/org/eclipse/wst/wsdl/tests/BugFixesTest.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 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.tests;
-
-import java.util.Iterator;
-
-import junit.framework.Assert;
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.wst.wsdl.Definition;
-import org.eclipse.wst.wsdl.Message;
-import org.eclipse.wst.wsdl.Part;
-import org.eclipse.wst.wsdl.WSDLPackage;
-import org.eclipse.wst.wsdl.internal.util.WSDLResourceFactoryImpl;
-import org.eclipse.wst.wsdl.tests.util.DefinitionLoader;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDImport;
-import org.eclipse.xsd.XSDPackage;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.util.XSDResourceFactoryImpl;
-
-/**
- * Contains unit tests for reported bugs.
- */
-public class BugFixesTest extends TestCase
-{
-  private String PLUGIN_ABSOLUTE_PATH = WSDLTestsPlugin.getInstallURL();
-
-  public BugFixesTest(String name)
-  {
-    super(name);
-  }
-
-  public static void main(String[] args)
-  {
-    junit.textui.TestRunner.run(suite());
-  }
-
-  public static Test suite()
-  {
-    TestSuite suite = new TestSuite();
-
-    suite.addTest(new BugFixesTest("TypeAndElementResolution")
-    {
-      protected void runTest()
-      {
-        testTypeAndElementResolution();
-      }
-    });
-
-    return suite;
-  }
-
-  protected void setUp() throws Exception
-  {
-    super.setUp();
-
-    Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("wsdl", new WSDLResourceFactoryImpl());
-    WSDLPackage pkg = WSDLPackage.eINSTANCE;
-
-    // We need this for XSD <import>.
-    Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("xsd", new XSDResourceFactoryImpl());
-    XSDPackage xsdpkg = XSDPackage.eINSTANCE;
-  }
-
-  protected void tearDown() throws Exception
-  {
-    super.tearDown();
-  }
-
-  /**
-   * See https://bugs.eclipse.org/bugs/show_bug.cgi?id=133310
-   */
-  public void testTypeAndElementResolution()
-  {
-    try
-    {
-      Definition definition = DefinitionLoader.load(PLUGIN_ABSOLUTE_PATH + "samples/BugFixes/TypeAndElementResolution/Test.wsdl"); //$NON-NLS-1$
-
-      // There are two inline schemas, each importing an external schema.
-      // The first schema is empty and used just to show the type resolution
-      // mechanism's fault.
-      // The schema containing the type and element declaration we're interested
-      // in is the second schema in the collection.
-
-      XSDSchema inlineSchema = (XSDSchema) definition.getETypes().getSchemas().get(1);
-
-      // The first and only component in this schema is an import.
-
-      XSDImport xsdImport = (XSDImport) inlineSchema.getContents().get(0);
-
-      // The imported schema was resolved when the resource was loaded.
-      // This is the schema containing our type/element.
-
-      XSDSchema schema = xsdImport.getResolvedSchema();
-
-      // Now check to make sure the resolved type/element for the messages in
-      // the WSDL document
-      // are the ones in the schema and not some bogus ones.
-
-      Iterator messagesIterator = definition.getEMessages().iterator();
-
-      while (messagesIterator.hasNext())
-      {
-        Message message = (Message) messagesIterator.next();
-        String name = message.getQName().getLocalPart();
-        if (name.equals("testRequest")) //$NON-NLS-1$
-        {
-          // We know there is only one part in the message and it refers to a
-          // type. Make sure the type can be resolved.
-
-          Part part = (Part) message.getEParts().get(0);
-          XSDTypeDefinition myType = part.getTypeDefinition();
-          assertEquals(schema, myType.getContainer());
-        }
-        else if (name.equals("testResponse")) //$NON-NLS-1$
-        {
-          // We know there is only one part in the message and it refers to an
-          // element.
-
-          Part part = (Part) message.getEParts().get(0);
-          XSDElementDeclaration myElement = part.getElementDeclaration();
-          assertEquals(schema, myElement.getContainer());
-        }
-      }
-
-    }
-    catch (Exception e)
-    {
-      Assert.fail("Test failed due to an exception: " + e.getLocalizedMessage());
-    }
-  }
-
-}
diff --git a/tests/org.eclipse.wst.wsdl.tests/src/org/eclipse/wst/wsdl/tests/LocationTrackingTest.java b/tests/org.eclipse.wst.wsdl.tests/src/org/eclipse/wst/wsdl/tests/LocationTrackingTest.java
deleted file mode 100644
index 9c861a3..0000000
--- a/tests/org.eclipse.wst.wsdl.tests/src/org/eclipse/wst/wsdl/tests/LocationTrackingTest.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 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.tests;
-
-import java.util.List;
-
-import junit.framework.Assert;
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.wst.wsdl.Definition;
-import org.eclipse.wst.wsdl.Service;
-import org.eclipse.wst.wsdl.Types;
-import org.eclipse.wst.wsdl.XSDSchemaExtensibilityElement;
-import org.eclipse.wst.wsdl.tests.util.DefinitionLoader;
-import org.eclipse.wst.wsdl.util.WSDLParser;
-import org.eclipse.wst.wsdl.util.WSDLResourceImpl;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDParser;
-import org.w3c.dom.Element;
-
-/**
- * Test class used to validate the WSDL model source location tracking
- * mechanism.
- */
-public class LocationTrackingTest extends TestCase
-{
-
-  public static Test suite()
-  {
-    TestSuite suite = new TestSuite();
-    suite.addTest(new LocationTrackingTest()
-    {
-      protected void runTest()
-      {
-        testTracksLocation();
-      }
-    });
-    return suite;
-  }
-
-  /**
-   * Tests the location tracking mechanism provided by the WSDL model resource
-   * loader.
-   * 
-   * @see WSDLResourceImpl
-   * @see WSDLParser
-   */
-  public void testTracksLocation()
-  {
-    try
-    {
-      String fileName = WSDLTestsPlugin.getInstallURL() + "/samples/LoadAndPrintTest.wsdl"; //$NON-NLS-1$
-      Definition definition = DefinitionLoader.load(fileName, true, true);
-      Assert.assertNotNull(definition);
-      Assert.assertTrue(definition.eResource() instanceof WSDLResourceImpl);
-
-      Element definitionElement = definition.getElement();
-      assertEquals(1, WSDLParser.getStartLine(definitionElement));
-
-      Types types = definition.getETypes();
-      Element typesElement = types.getElement();
-      assertEquals(4, WSDLParser.getStartLine(typesElement));
-
-      List typesExtensibilityElements = types.getEExtensibilityElements();
-
-      assertEquals(1, typesExtensibilityElements.size());
-
-      XSDSchemaExtensibilityElement schemaExtension = (XSDSchemaExtensibilityElement) typesExtensibilityElements.get(0);
-
-      XSDSchema schema = schemaExtension.getSchema();
-
-      Element schemaElement = schema.getElement();
-
-      assertEquals(5, XSDParser.getStartLine(schemaElement));
-
-      XSDElementDeclaration requestElementDeclaration = schema.resolveElementDeclaration("NewOperationRequest"); //$NON-NLS-1$
-
-      Element requestElement = requestElementDeclaration.getElement();
-
-      assertEquals(7, XSDParser.getStartLine(requestElement));
-
-      List services = definition.getEServices();
-      assertEquals(1, services.size());
-      Service service = (Service) services.get(0);
-
-      Element serviceElement = service.getElement();
-      assertEquals(42, WSDLParser.getStartLine(serviceElement));
-    }
-    catch (Exception e)
-    {
-      Assert.fail("Test failed due to an exception: " + e.getLocalizedMessage());
-    }
-  }
-}
diff --git a/tests/org.eclipse.wst.wsdl.tests/src/org/eclipse/wst/wsdl/tests/WSDLEMFAPITest.java b/tests/org.eclipse.wst.wsdl.tests/src/org/eclipse/wst/wsdl/tests/WSDLEMFAPITest.java
index ed994b2..1ddb8c4 100644
--- a/tests/org.eclipse.wst.wsdl.tests/src/org/eclipse/wst/wsdl/tests/WSDLEMFAPITest.java
+++ b/tests/org.eclipse.wst.wsdl.tests/src/org/eclipse/wst/wsdl/tests/WSDLEMFAPITest.java
@@ -66,6 +66,7 @@
 import org.eclipse.wst.wsdl.tests.util.DefinitionVisitor;
 import org.eclipse.wst.wsdl.util.WSDLResourceImpl;
 import org.eclipse.xsd.XSDPackage;
+import org.eclipse.xsd.XSDSchema;
 import org.eclipse.xsd.util.XSDResourceFactoryImpl;
 import org.w3c.dom.Element;
 
diff --git a/tests/org.eclipse.wst.wsdl.tests/src/org/eclipse/wst/wsdl/tests/util/DefinitionLoader.java b/tests/org.eclipse.wst.wsdl.tests/src/org/eclipse/wst/wsdl/tests/util/DefinitionLoader.java
index 6abed77..674386b 100644
--- a/tests/org.eclipse.wst.wsdl.tests/src/org/eclipse/wst/wsdl/tests/util/DefinitionLoader.java
+++ b/tests/org.eclipse.wst.wsdl.tests/src/org/eclipse/wst/wsdl/tests/util/DefinitionLoader.java
@@ -57,12 +57,7 @@
     return load(filename,false);
   }
 
-  static public Definition load(String filename, boolean useExtensionFactories)  throws IOException
-  {
-    return load(filename, useExtensionFactories, false);
-  }
-      
-  static public Definition load(String filename, boolean useExtensionFactories, boolean trackLocation) throws IOException
+  static public Definition load(String filename, boolean useExtensionFactories) throws IOException
   {
     // filename is an absolute path
 
@@ -78,7 +73,6 @@
     java.util.Map map = new Hashtable();
     map.put(WSDLResourceImpl.CONTINUE_ON_LOAD_ERROR,Boolean.valueOf(true));
     map.put(WSDLResourceImpl.USE_EXTENSION_FACTORIES,Boolean.valueOf(useExtensionFactories));
-    map.put(WSDLResourceImpl.TRACK_LOCATION,Boolean.valueOf(trackLocation));
     wsdlMainResource.load(map);
   
     Definition definition = null;
diff --git a/tests/org.eclipse.wst.wsdl.validation.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.wst.wsdl.validation.tests/META-INF/MANIFEST.MF
index dcb9970..68f7912 100644
--- a/tests/org.eclipse.wst.wsdl.validation.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.wst.wsdl.validation.tests/META-INF/MANIFEST.MF
@@ -16,12 +16,9 @@
  org.eclipse.wst.command.env.core,
  org.eclipse.wst.command.env,
  org.apache.ant,
- org.wsdl4j,
- org.apache.xerces,
- org.eclipse.wst.validation,
- org.eclipse.wst.xml.core,
- org.eclipse.wst.common.uriresolver
-Eclipse-LazyStart: true
+ org.wsdl4j, 
+ org.apache.xerces
+Eclipse-AutoStart: true
 Export-Package: org.eclipse.wst.wsdl.validation.internal.resolver;x-internal:=true,
  org.eclipse.wst.wsdl.validation.internal.ui.ant;x-internal:=true,
  org.eclipse.wst.wsdl.validation.internal.wsdl11.xsd;x-internal:=true,
diff --git a/tests/org.eclipse.wst.wsdl.validation.tests/src/org/eclipse/wst/wsdl/validation/internal/eclipse/ValidatorTest.java b/tests/org.eclipse.wst.wsdl.validation.tests/src/org/eclipse/wst/wsdl/validation/internal/eclipse/ValidatorTest.java
deleted file mode 100644
index 678486c..0000000
--- a/tests/org.eclipse.wst.wsdl.validation.tests/src/org/eclipse/wst/wsdl/validation/internal/eclipse/ValidatorTest.java
+++ /dev/null
@@ -1,252 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 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.validation.internal.eclipse;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.ResourceBundle;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.apache.xerces.util.XMLGrammarPoolImpl;
-import org.eclipse.wst.wsdl.validation.internal.IValidationMessage;
-import org.eclipse.wst.wsdl.validation.internal.ValidationInfoImpl;
-import org.eclipse.wst.wsdl.validation.internal.ValidationMessageImpl;
-import org.eclipse.wst.wsdl.validation.internal.util.MessageGenerator;
-import org.eclipse.wst.wsdl.validation.tests.internal.WSDLValidatorTestsPlugin;
-import org.eclipse.wst.xml.core.internal.validation.core.NestedValidatorContext;
-import org.eclipse.wst.xml.core.internal.validation.core.ValidationInfo;
-import org.eclipse.wst.xml.core.internal.validation.core.ValidationMessage;
-import org.eclipse.wst.xml.core.internal.validation.core.ValidationReport;
-
-/**
- * Test the WSDL validation framework Validator.
- */
-public class ValidatorTest extends TestCase 
-{
-  ValidatorWrapper validator = new ValidatorWrapper();
-  
-  /**
-   * Create a tests suite from this test class.
-   * 
-   * @return A test suite containing this test class.
-   */
-  public static Test suite()
-  {
-    return new TestSuite(ValidatorTest.class);
-  }
-  
-  /**
-   * Test the validate method. Tests to be performed:<br/>
-   * 1. Test that validating a valid file from a URI or an input stream produces the same result.<br/>
-   * 2. Test that validating an invalid file from a URI or an input stream produces the same result.
-   */
-  public void testValidate()
-  {
-	try
-	{
-	  // Test that validating a valid file from a URI and an input stream produces the same result.
-	  NestedValidatorContext context = new NestedValidatorContext();
-	  validator.setupValidation(context);
-	  String PLUGIN_ABSOLUTE_PATH = WSDLValidatorTestsPlugin.getInstallURL();
-	  String uri = "file:///" + PLUGIN_ABSOLUTE_PATH + "testresources/samples/Paths/Dash-InPath/DashInPathValid.wsdl";
-	  ValidationReport report1 = validator.validate(uri, null, context);
-	  validator.teardownValidation(context);
-	  validator.setupValidation(context);
-	  ValidationReport report2 = null;
-	  InputStream is = null;
-	  try
-	  {
-	    is = new URL(uri).openStream();
-	    report2 = validator.validate(uri, is, context);
-	  }
-	  catch(Exception e)
-	  {
-		fail("A problem occurred while validating a valid file with an inputstream: " + e);
-	  }
-	  finally
-	  {
-		if(is != null)
-		{
-		  try
-		  {
-		    is.close();
-		  }
-		  catch(IOException e)
-		  {
-			// Do nothing.
-		  }
-		}
-	  }
-	  validator.teardownValidation(context);
-	  assertTrue("Validation using a URI did not product a valid validation result.", report1.isValid());
-	  assertEquals("Validation using URI and using inputstream of the same file produces different numbers of errors.", report1.getValidationMessages().length, report2.getValidationMessages().length);
-	  
-      // Test that validating an invalid file from a URI and an input stream produces the same result.
-	  NestedValidatorContext context2 = new NestedValidatorContext();
-	  validator.setupValidation(context2);
-	  uri = "file:///" + PLUGIN_ABSOLUTE_PATH + "testresources/samples/Paths/Dash-InPath/DashInPathInvalid.wsdl";
-	  report1 = validator.validate(uri, null, context2);
-	  validator.teardownValidation(context2);
-	  validator.setupValidation(context2);
-	  report2 = null;
-	  is = null;
-	  try
-	  {
-	    is = new URL(uri).openStream();
-	    report2 = validator.validate(uri, is, context2);
-	  }
-	  catch(Exception e)
-	  {
-		fail("A problem occurred while validating an invalid file with an inputstream: " + e);
-	  }
-	  finally
-	  {
-		if(is != null)
-		{
-		  try
-		  {
-		    is.close();
-		  }
-		  catch(IOException e)
-		  {
-			// Do nothing.
-		  }
-		}
-	  }
-	  validator.teardownValidation(context2);
-	  assertFalse("Validation using a URI did not product an invalid validation result.", report1.isValid());
-	  assertEquals("Validation using URI and using inputstream of the same file produces different numbers of errors.", report1.getValidationMessages().length, report2.getValidationMessages().length);
-	}
-	catch(Exception e)
-	{
-	  fail("Unable to locate plug-in location: " + e);
-	}
-  }
-  
-  /**
-   * Test the setupValidation method.
-   * 1. Test that after run for a context XML and XSD grammar pools exist for the context.
-   */
-  public void testSetupValidation()
-  {
-	validator.getXMLGrammarPoolsMap().clear();
-	validator.getXSDGrammarPoolsMap().clear();
-	
-	NestedValidatorContext context = new NestedValidatorContext();
-	assertNull("An XML grammar pool already exists for the context.", validator.getXMLGrammarPoolForContext(context));
-	assertNull("An XSD grammar pool already exists for the context.", validator.getXSDGrammarPoolForContext(context));
-	
-	validator.setupValidation(context);
-	
-	assertNotNull("An XML grammar pool does not exist after the setupValidation method is run.", validator.getXMLGrammarPoolForContext(context));
-	assertNotNull("An XSD grammar pool does not exist after the setupValidation method is run.", validator.getXSDGrammarPoolForContext(context));
-	
-	validator.getXMLGrammarPoolsMap().clear();
-	validator.getXSDGrammarPoolsMap().clear();
-  }
-  
-  /**
-   * Test the teardownValidation method.
-   * 1. Test that after run for a context XML and XSD grammar pools do not exist for the context.
-   */
-  public void testTeardownValidation()
-  {
-	validator.getXMLGrammarPoolsMap().clear();
-	validator.getXSDGrammarPoolsMap().clear();
-	
-	NestedValidatorContext context = new NestedValidatorContext();
-	validator.getXMLGrammarPoolsMap().put(context, new XMLGrammarPoolImpl());
-	validator.getXSDGrammarPoolsMap().put(context, new InlineSchemaModelGrammarPoolImpl());
-	
-	validator.teardownValidation(context);
-	
-	assertNull("An XML grammar pool exists after the teardownValidation method is run.", validator.getXMLGrammarPoolForContext(context));
-	assertNull("An XSD grammar pool exists after the teardownValidation method is run.", validator.getXSDGrammarPoolForContext(context));
-	
-	validator.getXMLGrammarPoolsMap().clear();
-	validator.getXSDGrammarPoolsMap().clear();
-  }
-  
-  /**
-   * Test converting a message. The contents of the message should be included in the 
-   * new report.
-   * 1. Test that a regular message is added as is.
-   * 2. Test that a nested message is added as a nested message.
-   */
-  public void testConvertMessage()
-  {
-	// 1. Test that a regular message is added as is.
-	ValidationMessageImpl message = new ValidationMessageImpl("message", 1, 2, IValidationMessage.SEV_ERROR, "file:/someuri");
-	ValidationInfo report = new ValidationInfo("file:/someuri");
-	validator.convertMessage(message, report);
-	assertEquals("The report does not have 1 message.", 1, report.getValidationMessages().length);
-	assertEquals("The message string is incorrect.", "message", report.getValidationMessages()[0].getMessage());
-	assertEquals("The message line number is incorrect.", 1, report.getValidationMessages()[0].getLineNumber());
-	assertEquals("The message column number is incorrect.", 2, report.getValidationMessages()[0].getColumnNumber());
-	assertEquals("The message severity is incorrect.", ValidationMessage.SEV_NORMAL, report.getValidationMessages()[0].getSeverity());
-	assertEquals("The message URI is incorrect.", "file:/someuri", report.getValidationMessages()[0].getUri());
-	assertEquals("The message has an incorrectly registred nested message.", 0, report.getNestedMessages().size());
-	
-	// 2. Test that a nested message is added as a nested message.
-	ValidationMessageImpl message2 = new ValidationMessageImpl("message", 1, 2, IValidationMessage.SEV_ERROR, "file:/someuri2");
-	ValidationInfo report2 = new ValidationInfo("file:/someuri");
-	validator.convertMessage(message2, report2);
-	assertEquals("The report with the nested message does not have 1 message.", 1, report2.getValidationMessages().length);
-	assertEquals("The container message URI is incorrect.", "file:/someuri2", report2.getValidationMessages()[0].getUri());
-	assertEquals("The container message does not have 1 nested message.", 1, report2.getValidationMessages()[0].getNestedMessages().size());
-	assertEquals("The nested message URI is incorrect.", "file:/someuri2", ((ValidationMessage)report2.getValidationMessages()[0].getNestedMessages().get(0)).getUri());
-	assertEquals("The nested message string is incorrect.", "message", ((ValidationMessage)report2.getValidationMessages()[0].getNestedMessages().get(0)).getMessage());
-	assertEquals("The nested message line number is incorrect.", 1, ((ValidationMessage)report2.getValidationMessages()[0].getNestedMessages().get(0)).getLineNumber());
-	assertEquals("The nested message column number is incorrect.", 2, ((ValidationMessage)report2.getValidationMessages()[0].getNestedMessages().get(0)).getColumnNumber());
-	assertEquals("The nested message severity is incorrect.", ValidationMessage.SEV_NORMAL, ((ValidationMessage)report2.getValidationMessages()[0].getNestedMessages().get(0)).getSeverity());
-	assertEquals("The message does not have a nested message.", 1, report2.getNestedMessages().size());
-  }
-  
-  /**
-   * Test converting a WSDL validation report to a XML validation report.
-   * The contents of the messages should be included in the new report.
-   * 1. Test that a regular message is added as is.
-   * 2. Test that a nested message is added as a nested message.
-   */
-  public void testConvertReportToXMLReport()
-  {
-	// 1. Test that a regular message is added as is.
-	ValidationInfoImpl wsdlreport = new ValidationInfoImpl("file:/someuri", new MessageGenerator(ResourceBundle.getBundle("org.eclipse.wst.wsdl.validation.internal.eclipse.validatewsdl")));
-	wsdlreport.addError("message", 1, 2, "file:/someuri");
-	ValidationReport report = validator.convertReportToXMLReport(wsdlreport);
-	assertEquals("The report does not have 1 message.", 1, report.getValidationMessages().length);
-	assertEquals("The message string is incorrect.", "message", report.getValidationMessages()[0].getMessage());
-	assertEquals("The message line number is incorrect.", 1, report.getValidationMessages()[0].getLineNumber());
-	assertEquals("The message column number is incorrect.", 2, report.getValidationMessages()[0].getColumnNumber());
-	assertEquals("The message severity is incorrect.", ValidationMessage.SEV_NORMAL, report.getValidationMessages()[0].getSeverity());
-	assertEquals("The message URI is incorrect.", "file:/someuri", report.getValidationMessages()[0].getUri());
-	assertEquals("The message has an incorrectly registred nested message.", 0, report.getNestedMessages().size());
-	
-	// 2. Test that a nested message is added as a nested message.
-	ValidationInfoImpl wsdlreport2 = new ValidationInfoImpl("file:/someuri", new MessageGenerator(ResourceBundle.getBundle("org.eclipse.wst.wsdl.validation.internal.eclipse.validatewsdl")));
-	wsdlreport2.addError("message", 1, 2, "file:/someuri2");
-	ValidationReport report2 = validator.convertReportToXMLReport(wsdlreport2);
-	assertEquals("The report does not have 1 message.", 1, report2.getValidationMessages().length);
-	assertEquals("The message URI is incorrect.", "file:/someuri2", report2.getValidationMessages()[0].getUri());
-	assertEquals("The message does not have 1 nested message.", 1, report2.getValidationMessages()[0].getNestedMessages().size());
-	assertEquals("The message URI is incorrect.", "file:/someuri2", ((ValidationMessage)report2.getValidationMessages()[0].getNestedMessages().get(0)).getUri());
-	assertEquals("The message string is incorrect.", "message", ((ValidationMessage)report2.getValidationMessages()[0].getNestedMessages().get(0)).getMessage());
-	assertEquals("The message line number is incorrect.", 1, ((ValidationMessage)report2.getValidationMessages()[0].getNestedMessages().get(0)).getLineNumber());
-	assertEquals("The message column number is incorrect.", 2, ((ValidationMessage)report2.getValidationMessages()[0].getNestedMessages().get(0)).getColumnNumber());
-	assertEquals("The message severity is incorrect.", ValidationMessage.SEV_NORMAL, ((ValidationMessage)report2.getValidationMessages()[0].getNestedMessages().get(0)).getSeverity());
-	assertEquals("The message does not have a nested message.", 1, report2.getNestedMessages().size());
-  }
-
-}
diff --git a/tests/org.eclipse.wst.wsdl.validation.tests/src/org/eclipse/wst/wsdl/validation/internal/eclipse/ValidatorWrapper.java b/tests/org.eclipse.wst.wsdl.validation.tests/src/org/eclipse/wst/wsdl/validation/internal/eclipse/ValidatorWrapper.java
deleted file mode 100644
index 2cad382..0000000
--- a/tests/org.eclipse.wst.wsdl.validation.tests/src/org/eclipse/wst/wsdl/validation/internal/eclipse/ValidatorWrapper.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 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.validation.internal.eclipse;
-
-import java.util.HashMap;
-
-import org.apache.xerces.xni.grammars.XMLGrammarPool;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.wsdl.validation.internal.IValidationMessage;
-import org.eclipse.wst.wsdl.validation.internal.IValidationReport;
-import org.eclipse.wst.xml.core.internal.validation.core.NestedValidatorContext;
-import org.eclipse.wst.xml.core.internal.validation.core.ValidationInfo;
-import org.eclipse.wst.xml.core.internal.validation.core.ValidationMessage;
-import org.eclipse.wst.xml.core.internal.validation.core.ValidationReport;
-
-/**
- * This class extends validator to expose the protected methods
- * for testing.
- */
-public class ValidatorWrapper extends Validator 
-{
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.xml.core.internal.validation.eclipse.Validator#addInfoToMessage(org.eclipse.wst.xml.core.internal.validation.core.ValidationMessage, org.eclipse.wst.validation.internal.provisional.core.IMessage)
-   */
-  public void addInfoToMessage(ValidationMessage validationMessage, IMessage message) 
-  {
-	super.addInfoToMessage(validationMessage, message);
-  }
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.xml.core.internal.validation.eclipse.Validator#setupValidation(org.eclipse.wst.xml.core.internal.validation.core.NestedValidatorContext)
-   */
-  public void setupValidation(NestedValidatorContext context) 
-  {
-	super.setupValidation(context);
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.wsdl.validation.internal.eclipse.Validator#teardownValidation(org.eclipse.wst.xml.core.internal.validation.core.NestedValidatorContext)
-   */
-  public void teardownValidation(NestedValidatorContext context) 
-  {
-	super.teardownValidation(context);
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.wsdl.validation.internal.eclipse.Validator#convertMessage(org.eclipse.wst.wsdl.validation.internal.IValidationMessage, org.eclipse.wst.xml.core.internal.validation.core.ValidationInfo)
-   */
-  public void convertMessage(IValidationMessage message, ValidationInfo convertedReport) 
-  {
-	super.convertMessage(message, convertedReport);
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.wsdl.validation.internal.eclipse.Validator#convertReportToXMLReport(org.eclipse.wst.wsdl.validation.internal.IValidationReport)
-   */
-  public ValidationReport convertReportToXMLReport(IValidationReport report) 
-  {
-	return super.convertReportToXMLReport(report);
-  }
-  
-  /**
-   * Get the XML grammar pool defined for the given context.
-   * 
-   * @param context
-   * 		The context to use to retrieve the XML grammar pool.
-   * @return
-   * 		The XML grammar pool associated with the context or null if none is associated.
-   */
-  public XMLGrammarPool getXMLGrammarPoolForContext(NestedValidatorContext context)
-  {
-	return (XMLGrammarPool)xmlGrammarPools.get(context);
-  }
-  
-  /**
-   * Get the XSD grammar pool defined for the given context.
-   * 
-   * @param context
-   * 		The context to use to retrieve the XSD grammar pool.
-   * @return
-   * 		The XSD grammar pool associated with the context or null if none is associated.
-   */
-  public XMLGrammarPool getXSDGrammarPoolForContext(NestedValidatorContext context)
-  {
-	return (XMLGrammarPool)xsdGrammarPools.get(context);
-  }
-  
-  /**
-   * Expose the XML grammar pools HashMap for testing.
-   * 
-   * @return
-   * 		The XML grammar pools HashMap.
-   */
-  public HashMap getXMLGrammarPoolsMap()
-  {
-	return xmlGrammarPools;
-  }
-  
-  /**
-   * Expose the XSD grammar pools HashMap for testing.
-   * 
-   * @return
-   * 		The XSD grammar pools HashMap.
-   */
-  public HashMap getXSDGrammarPoolsMap()
-  {
-	return xsdGrammarPools;
-  }
-}
diff --git a/tests/org.eclipse.wst.wsdl.validation.tests/src/org/eclipse/wst/wsdl/validation/internal/eclipse/WSDLValidatorTest.java b/tests/org.eclipse.wst.wsdl.validation.tests/src/org/eclipse/wst/wsdl/validation/internal/eclipse/WSDLValidatorTest.java
deleted file mode 100644
index cd7b83a..0000000
--- a/tests/org.eclipse.wst.wsdl.validation.tests/src/org/eclipse/wst/wsdl/validation/internal/eclipse/WSDLValidatorTest.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 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.validation.internal.eclipse;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-/**
- * Test the Eclipse specific WSDL validator.
- */
-public class WSDLValidatorTest extends TestCase 
-{
-  /**
-   * Create a tests suite from this test class.
-   * 
-   * @return A test suite containing this test class.
-   */
-  public static Test suite()
-  {
-    return new TestSuite(WSDLValidatorTest.class);
-  }
-  
-  /**
-   * Test to ensure the URI resolver is not null in the Eclipse
-   * specific XML validator.
-   */
-  public void testURIResolverIsRegistered()
-  {
-	WSDLValidatorWrapper validator = new WSDLValidatorWrapper();
-	assertNotNull("The URI resolver is null.", validator.getURIResolver());
-  }
-
-}
diff --git a/tests/org.eclipse.wst.wsdl.validation.tests/src/org/eclipse/wst/wsdl/validation/internal/eclipse/WSDLValidatorWrapper.java b/tests/org.eclipse.wst.wsdl.validation.tests/src/org/eclipse/wst/wsdl/validation/internal/eclipse/WSDLValidatorWrapper.java
deleted file mode 100644
index f242340..0000000
--- a/tests/org.eclipse.wst.wsdl.validation.tests/src/org/eclipse/wst/wsdl/validation/internal/eclipse/WSDLValidatorWrapper.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 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.validation.internal.eclipse;
-
-import org.eclipse.wst.wsdl.validation.internal.resolver.URIResolver;
-
-/**
- * Wrapper for the Eclipse WSDL validator class to allow for testing.
- */
-public class WSDLValidatorWrapper extends WSDLValidator 
-{
-  /**
-   * Constructor.
-   */
-  public WSDLValidatorWrapper()
-  {
-	super();
-  }
-  
-  /**
-   * Get the URI resolver registered on the WSDL validator.
-   * 
-   * @return The URI resolver registered on the WSDL validator.
-   */
-  public URIResolver getURIResolver()
-  {
-	return uriResolver;
-  }
-}
diff --git a/tests/org.eclipse.wst.wsdl.validation.tests/src/org/eclipse/wst/wsdl/validation/internal/eclipse/validatewsdl.properties b/tests/org.eclipse.wst.wsdl.validation.tests/src/org/eclipse/wst/wsdl/validation/internal/eclipse/validatewsdl.properties
deleted file mode 100644
index 395651b..0000000
--- a/tests/org.eclipse.wst.wsdl.validation.tests/src/org/eclipse/wst/wsdl/validation/internal/eclipse/validatewsdl.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-# Duplicate error message for testing
-_REF_FILE_ERROR_MESSAGE          = Referenced file contains errors ({0}). 
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.wsdl.validation.tests/src/org/eclipse/wst/wsdl/validation/tests/internal/AllWSDLTests.java b/tests/org.eclipse.wst.wsdl.validation.tests/src/org/eclipse/wst/wsdl/validation/tests/internal/AllWSDLTests.java
index cee87ae..36739c4 100644
--- a/tests/org.eclipse.wst.wsdl.validation.tests/src/org/eclipse/wst/wsdl/validation/tests/internal/AllWSDLTests.java
+++ b/tests/org.eclipse.wst.wsdl.validation.tests/src/org/eclipse/wst/wsdl/validation/tests/internal/AllWSDLTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
@@ -11,7 +11,6 @@
 package org.eclipse.wst.wsdl.validation.tests.internal;
 import junit.framework.Test;
 
-import org.eclipse.wst.wsdl.validation.internal.eclipse.ValidatorTest;
 import org.eclipse.wst.wsdl.validation.internal.resolver.URIResolverTest;
 import org.eclipse.wst.wsdl.validation.internal.ui.ant.WSDLValidateTest;
 import org.eclipse.wst.wsdl.validation.internal.wsdl11.xsd.InlineSchemaGeneratorTest;
@@ -37,8 +36,6 @@
   public AllWSDLTests()
   {
     super("AllWSDLTests");
-    addTest(ValidatorTest.suite());
-    //addTest(WSDLValidatorTest.suite());
     addTest(XSDTest.suite());
     addTest(WSDLTest.suite());
     addTest(PathsTest.suite());
diff --git a/tests/org.eclipse.wst.wsdl.validation.tests/src/org/eclipse/wst/wsdl/validation/tests/internal/WSDLValidatorTestsPlugin.java b/tests/org.eclipse.wst.wsdl.validation.tests/src/org/eclipse/wst/wsdl/validation/tests/internal/WSDLValidatorTestsPlugin.java
index 251eaed..6ce707a 100644
--- a/tests/org.eclipse.wst.wsdl.validation.tests/src/org/eclipse/wst/wsdl/validation/tests/internal/WSDLValidatorTestsPlugin.java
+++ b/tests/org.eclipse.wst.wsdl.validation.tests/src/org/eclipse/wst/wsdl/validation/tests/internal/WSDLValidatorTestsPlugin.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2004 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
@@ -12,7 +12,7 @@
 
 import java.io.IOException;
 
-import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.Platform;
 import org.eclipse.ui.plugin.AbstractUIPlugin;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
@@ -69,7 +69,7 @@
   {
     try
     {
-      return FileLocator.resolve(pluginBundle.getEntry("/")).getFile();
+      return Platform.resolve(pluginBundle.getEntry("/")).getFile();
     }
     catch (IOException e)
     {
diff --git a/tests/org.eclipse.wst.wsi.tests/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.wst.wsi.tests/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 0808317..0000000
--- a/tests/org.eclipse.wst.wsi.tests/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-#Wed Mar 29 04:08:48 EST 2006
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.source=1.3
diff --git a/tests/org.eclipse.wst.wsi.tests/.settings/org.eclipse.jdt.ui.prefs b/tests/org.eclipse.wst.wsi.tests/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 9caa76d..0000000
--- a/tests/org.eclipse.wst.wsi.tests/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Wed Mar 29 04:08:48 EST 2006
-eclipse.preferences.version=1
-internal.default.compliance=default
diff --git a/tests/org.eclipse.wst.wsi.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.wst.wsi.tests/META-INF/MANIFEST.MF
index 267ff27..99997d5 100644
--- a/tests/org.eclipse.wst.wsi.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.wst.wsi.tests/META-INF/MANIFEST.MF
@@ -16,4 +16,4 @@
  org.eclipse.wst.command.env,
  org.eclipse.wst.command.env.core
 Eclipse-AutoStart: true
-Export-Package: org.eclipse.wst.wsi.tests.internal;x-internal:=true
+Export-Package: org.eclipse.wst.wsi.tests.internal