<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>

<!--
 <copyright>
 
 Copyright (c) 2012-2014 SAP SE.
	All rights reserved. This program and the accompanying materials
	are made available under the terms 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 SE - initial API and implementation and/or initial documentation
 
 </copyright>
-->

<plugin>
   <extension
         point="org.eclipse.ui.navigator.viewer">
      <viewerContentBinding
            viewerId="org.eclipse.ui.navigator.ProjectExplorer">
         <includes>
            <contentExtension
                  isRoot="false"
                  pattern="org.eclipse.ogee.navigation.emfModelContent">
            </contentExtension>
         </includes>
      </viewerContentBinding>
   </extension>   
   <extension
         point="org.eclipse.ui.navigator.navigatorContent">
      <navigatorContent
            activeByDefault="true"
            contentProvider="org.eclipse.ogee.navigation.tree.MNViewContentProvider"
            id="org.eclipse.ogee.navigation.emfModelContent"
            labelProvider="org.eclipse.ogee.navigation.tree.MNViewLabelProvider"
            name="%navigatorContent.name"
            priority="highest">
            <triggerPoints> 
    			<or>
        			<and> 
            			<instanceof value="org.eclipse.core.resources.IResource"/> 
            			<test 
                			forcePluginActivation="true" 
                			property="org.eclipse.core.resources.extension" 
                			value="odata"/> 
        			</and> 
    			</or>
			</triggerPoints> 
			<possibleChildren> 
    			<or> 
        			<instanceof value="org.eclipse.ogee.model.odata.EDMXSet"/> 
    			</or> 
			</possibleChildren>  
	      <commonSorter
	      		class="org.eclipse.ogee.navigation.tree.sorters.EntityTypeSorter"
	            id="org.eclipse.ogee.navigation.sorters.entityTypeSorter">
	  		<parentExpression>      
	       		<instanceof 
	           		value="org.eclipse.ogee.model.odata.EntityType" />  	 		
	  		</parentExpression>
	 	</commonSorter>
	    <commonSorter
	      		class="org.eclipse.ogee.navigation.tree.sorters.SchemaSorter"
	            id="org.eclipse.ogee.navigation.sorters.schemaSorter">
	  		<parentExpression>      
	       		<instanceof 
	           		value="org.eclipse.ogee.model.odata.Schema" />  	 		
	  		</parentExpression>
	 	</commonSorter>
	    <commonSorter
	      		class="org.eclipse.ogee.navigation.tree.sorters.EntityContainerSorter"
	            id="org.eclipse.ogee.navigation.sorters.entityContainerSorter">
	  		<parentExpression>      
	       		<instanceof 
	           		value="org.eclipse.ogee.model.odata.EntityContainer" />  	 		
	  		</parentExpression>
	 	</commonSorter>
	    <commonSorter
	      		class="org.eclipse.ogee.navigation.tree.sorters.EDMXSorter"
	            id="org.eclipse.ogee.navigation.sorters.edmxSorter">
	  		<parentExpression>      
	       		<instanceof 
	           		value="org.eclipse.core.resources.IFile" />  	 		
	  		</parentExpression>
	 	</commonSorter>
	 	<actionProvider
	 		class="org.eclipse.ogee.navigation.handler.ActionProvider"
	 		id="org.eclipse.ogee.navigation.handler.ActionProvider"/>
	</navigatorContent>
       
   </extension>
    <extension point="org.eclipse.ui.decorators">
        <decorator
              adaptable="false"
              class="org.eclipse.ogee.navigation.tree.MNViewLabelProvider"
              id="org.eclipse.ogee.model.ModelDecorator"
              label="%decorator.label"
              lightweight="true"
              location="BOTTOM_RIGHT"
              state="true">
            <enablement>
              <objectClass name="org.eclipse.emf.ecore.EObject"/>            
            </enablement>
        </decorator>
    </extension>
    
	<extension point="org.eclipse.core.expressions.definitions">
	  <definition
	        id="org.eclipse.ogee.model.definitions.SchemaSelected">
	     <and>
	        <count
	              value="1">
	        </count>
	        <iterate ifEmpty="false" operator="and">
		        <or>
		           <adapt type="org.eclipse.ogee.model.odata.Schema" />
		        </or>
	        </iterate>
	     </and>
	     
	  </definition> 
	</extension>
   <extension point="org.eclipse.ui.navigator.linkHelper">
          <linkHelper
             id="org.eclipse.ogee.navigation.emfModelContent"
             class="org.eclipse.ogee.navigation.ODataEditorLinkHelper">
                 <editorInputEnablement>
                       <instanceof value="org.eclipse.graphiti.ui.editor.DiagramEditorInput"></instanceof>
                </editorInputEnablement>
                <selectionEnablement>
                        <instanceof value="java.lang.Object"></instanceof>
                 </selectionEnablement>
       </linkHelper>
   </extension>

</plugin>
