<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>
<!--
    Copyright (c) 2009 by SAP AG, Walldorf. 
    All rights reserved. This program and the accompanying materials
    are made available under the terms of the Eclipse Public License v1.0
    which accompanies this distribution, and is available at
    http://www.eclipse.org/legal/epl-v10.html
   
    Contributors:
        SAP AG - initial API and implementation
 -->

<plugin>
   <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
		<factory 
			uri = "http:///org/eclipse/jst/ws/jaxws/dom/runtime/dom.ecore" 
			class = "org.eclipse.jst.ws.jaxws.dom.integration.navigator.CustomDomItemProviderAdapterFactory" 
			supportedTypes = 
				"org.eclipse.emf.edit.provider.IEditingDomainItemProvider
				org.eclipse.emf.edit.provider.IStructuredItemContentProvider
				org.eclipse.emf.edit.provider.ITreeItemContentProvider
				org.eclipse.emf.edit.provider.IItemLabelProvider
				org.eclipse.emf.edit.provider.IItemPropertySource" />
	</extension>
	
  <!-- {{{ Defines integration for DOM objects to navigation tree -->
	<extension point="org.eclipse.ui.navigator.navigatorContent"> 
		<navigatorContent
			id="org.eclipse.jst.navigator.j2ee.ui.sapWS"
			contentProvider="org.eclipse.jst.ws.jaxws.dom.integration.navigator.DOMAdapterFactoryContentProvider"
			labelProvider="org.eclipse.jst.ws.jaxws.dom.integration.navigator.DOMAdapterFactoryLabelProvider"
			activeByDefault="true"
			name="%navigatorContent.name.0"
			priority="highest">
			<triggerPoints>
				<or>
					<instanceof value="org.eclipse.core.resources.IProject" />
				</or>
			</triggerPoints>
			<possibleChildren>
				<or>
					<instanceof value="org.eclipse.jst.ws.jaxws.dom.runtime.api.IWebService"/>
					<instanceof value="org.eclipse.jst.ws.jaxws.dom.runtime.api.IServiceEndpointInterface"/>
					<instanceof value="org.eclipse.jst.ws.jaxws.dom.runtime.api.IWebMethod"/>
				</or>
			</possibleChildren>
			<actionProvider
				class="org.eclipse.jst.ws.jaxws.dom.integration.navigator.actions.WSActionProvider"
				id="org.eclipse.jst.ws.jaxws.dom.integration.navigator.actions.WSActionProvider">
				<enablement>
					<or>
						<instanceof value="org.eclipse.jst.javaee.ejb.SessionBean"/>
						<instanceof value="org.eclipse.jst.ws.jaxws.dom.runtime.api.IWebService"/>
						<instanceof value="org.eclipse.jst.ws.jaxws.dom.runtime.api.IServiceEndpointInterface"/>
						<instanceof value="org.eclipse.jst.ws.jaxws.dom.runtime.api.IWebMethod"/>
						<instanceof value="org.eclipse.jst.ws.jaxws.dom.runtime.api.IWebParam"/>
					</or>
				</enablement>
			</actionProvider>
		</navigatorContent>
	</extension>
	
	<extension point="org.eclipse.ui.decorators">
		<decorator
			adaptable="true"
            location="BOTTOM_RIGHT"
            lightweight="false"
            label="%decorator.label.0"
            state="true"
            class="org.eclipse.jst.ws.jaxws.dom.integration.navigator.WebServiceProblemsDecorator"
            id="org.eclipse.jst.ws.jaxws.dom.integration.navigator.WebServiceDecorator">
			<enablement>
				<or>
					<objectClass name="org.eclipse.jst.ws.jaxws.dom.integration.navigator.ISEIChildList"/>
					<objectClass name="org.eclipse.jst.ws.jaxws.dom.integration.navigator.IWebServiceChildList"/>
					<objectClass name="org.eclipse.jst.ws.jaxws.dom.runtime.api.IWebServiceProject"/>
					<objectClass name="org.eclipse.jst.ws.jaxws.dom.runtime.api.IWebMethod"/>
					<objectClass name="org.eclipse.jst.ws.jaxws.dom.runtime.api.IWebParam"/>
					<objectClass name="org.eclipse.jst.ws.jaxws.dom.runtime.api.IWebService"/>
					<objectClass name="org.eclipse.jst.ws.jaxws.dom.runtime.api.IServiceEndpointInterface"/>
				</or>
			</enablement>
		</decorator>
   </extension>
  <!-- }}} -->
  <!-- {{{ Defines integration for DOM objects to properties view -->
   <extension point="org.eclipse.core.runtime.adapters">
		<factory
			adaptableType="org.eclipse.jst.ws.jaxws.dom.runtime.api.IWebService"
			class="org.eclipse.jst.ws.jaxws.dom.integration.navigator.DOMPropertyViewAdapterFactory">
			<adapter
				type="org.eclipse.ui.views.properties.IPropertySourceProvider">
			</adapter>
		</factory>
		<factory
			adaptableType="org.eclipse.jst.ws.jaxws.dom.runtime.api.IServiceEndpointInterface"
			class="org.eclipse.jst.ws.jaxws.dom.integration.navigator.DOMPropertyViewAdapterFactory">
			<adapter
				type="org.eclipse.ui.views.properties.IPropertySourceProvider">
			</adapter>
		</factory>
		<factory
			adaptableType="org.eclipse.jst.ws.jaxws.dom.runtime.api.IWebServiceProject"
			class="org.eclipse.jst.ws.jaxws.dom.integration.navigator.DOMPropertyViewAdapterFactory">
			<adapter
				type="org.eclipse.ui.views.properties.IPropertySourceProvider">
			</adapter>
		</factory>
		<factory
			adaptableType="org.eclipse.jst.ws.jaxws.dom.runtime.api.IWebMethod"
			class="org.eclipse.jst.ws.jaxws.dom.integration.navigator.DOMPropertyViewAdapterFactory">
			<adapter
				type="org.eclipse.ui.views.properties.IPropertySourceProvider">
			</adapter>
		</factory>
		<factory
			adaptableType="org.eclipse.jst.ws.jaxws.dom.runtime.api.IWebParam"
			class="org.eclipse.jst.ws.jaxws.dom.integration.navigator.DOMPropertyViewAdapterFactory">
			<adapter
				type="org.eclipse.ui.views.properties.IPropertySourceProvider">
			</adapter>
		</factory>		
		<factory
			adaptableType="org.eclipse.jst.ws.jaxws.dom.ui.IDOMPropertyValue"
			class="org.eclipse.jst.ws.jaxws.dom.integration.navigator.DOMItemValuePropertySourceFactory">
			<adapter
				type="org.eclipse.ui.views.properties.IPropertySource">
			</adapter>
		</factory>		
   </extension>
<!-- }}} -->
<!-- {{{ Defines integration for WST validation framework -->
   <extension
	         id="wsValidator"
	         name="%DomValidator_Name"
	         point="org.eclipse.wst.validation.validator">
	      	<validator>
		         <filter objectClass="org.eclipse.core.resources.IFile" nameFilter="*.java" />
		         <markerId markerIdValue="WsValidatorMarker" />
		         <helper
		               class="org.eclipse.jst.ws.jaxws.dom.integration.validation.DomValidationHelper">
		         </helper>
		         <run
		               class="org.eclipse.jst.ws.jaxws.dom.integration.validation.DomValidationManager">
		         </run>
	      	</validator>	      	
	</extension>
	<extension
         id="WsValidatorMarker"
         name="%DomValidation_MarkerName"
         point="org.eclipse.core.resources.markers">
      <super type="org.eclipse.core.resources.problemmarker"/>
      <super type="org.eclipse.core.resources.textmarker"/>      
      <persistent value="true" />
      <attribute name="implementation"/>
   </extension>
</plugin>
