<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<!--
	Copyright (c) 2010-2012, 2015 Eike Stepper (Berlin, Germany) and others.
	All rights reserved. This program and the accompanying materials
	are made available under the terms of the Eclipse Public License v1.0
	which accompanies this distribution, and is available at
	http://www.eclipse.org/legal/epl-v10.html

	Contributors:
	  Martin Fluegge - initial API and implementation
-->
<plugin>
   <extension-point id="org.eclipse.emf.cdo.dawn.listeners" name="DawnListeners" schema="schema/org.eclipse.emf.cdo.dawn.listeners.exsd"/>
   <extension-point id="org.eclipse.emf.cdo.dawn.editpartstylizers" name="Dawn EditPart Stylizers" schema="schema/org.eclipse.emf.cdo.dawn.editpartstylizers.exsd"/>
   <extension-point id="org.eclipse.emf.cdo.dawn.elementstylizerfactory" name="DawnElementStylizerFactory" schema="schema/org.eclipse.emf.cdo.dawn.elementstylizerfactory.exsd"/>
   <extension
         point="org.eclipse.emf.ecore.extension_parser">
      <parser
            class="org.eclipse.emf.cdo.eresource.impl.CDOResourceFactoryImpl"
            type="org.eclipse.emf.cdo.dawn.dawnresourceparser">
      </parser>
   </extension>
   <extension
         point="org.eclipse.emf.ecore.protocol_parser">
      <parser
            class="org.eclipse.emf.cdo.eresource.impl.CDOResourceFactoryImpl"
            protocolName="dawn">
      </parser>
   </extension>
 <extension
          point="org.eclipse.ui.views">
       <category
             id="org.eclipse.emf.cdo.dawn.ui"
             name="Dawn">
       </category>
    </extension>

   <!-- <extension point="org.eclipse.ui.popupMenus">
	      <objectContribution
	            adaptable="false"
	            id="org.eclipse.emf.cdo.dawn.handleConflict"
	            objectClass="org.eclipse.gef.EditPart">
	         <menu
	            id="org.eclipse.emf.cdo.dawn.menu.conflict"
	            label="Conflict"
	            path="additions">
	            <separator name="group1"/>
	         </menu>
	         <action
	               class="org.eclipse.emf.cdo.dawn.actions.HandleConflictsAction"
	                definitionId="org.eclipse.emf.cdo.dawn.handleConflict"
	               enablesFor="1"
	               id="org.eclipse.emf.cdo.dawn.popup.HandleConflictActionID"
	               label="Solve Conflict"
	               menubarPath="org.eclipse.emf.cdo.dawn.menu.conflict/group1">
	         </action>
	      </objectContribution>
       <objectContribution
             adaptable="false"
             id="org.eclipse.emf.cdo.dawn.handleLocking"
             objectClass="org.eclipse.gef.EditPart">
          <menu
                id="org.eclipse.emf.cdo.dawn.menu.locking"
                label="Locking"
                path="additions">
             <separator
                   name="locking">
             </separator>
          </menu>
          <action
                class="org.eclipse.emf.cdo.dawn.actions.LockObjectsAction"
                definitionId="org.eclipse.emf.cdo.dawn.lockObjects"
                id="org.eclipse.emf.cdo.dawn.LockObjectsActionID"
                label="Lock Objects"
                menubarPath="org.eclipse.emf.cdo.dawn.menu.locking/locking">
          </action>
          <action
                class="org.eclipse.emf.cdo.dawn.actions.UnLockObjectsAction"
                definitionId="org.eclipse.emf.cdo.dawn.unlockObjects"
                id="org.eclipse.emf.cdo.dawn.UnlockObjectsActionID"
                label="Unlock Objects"
                menubarPath="org.eclipse.emf.cdo.dawn.menu.locking/locking">
          </action>
       </objectContribution>
	</extension>-->
    <extension
          point="org.eclipse.ui.preferencePages">
       <page
             category="org.eclipse.emf.cdo.ui.CDOPreferencePage"
             class="org.eclipse.emf.cdo.dawn.preferences.DawnRemotePreferencePage"
             id="org.eclipse.emf.cdo.dawn.views.preferences.DawnRemotePreferencePage"
             name="Dawn Remote Preferences">
       </page>
    </extension>
    <extension
          point="org.eclipse.core.runtime.preferences">
       <initializer
             class="org.eclipse.emf.cdo.dawn.preferences.PreferenceInitializer">
       </initializer>
    </extension>
   <!-- <extension
          point="org.eclipse.ui.commands">
       <command
             id="org.eclipse.emf.cdo.dawn.handleConflict"
             name="HandleConflict">
       </command>
       <command
             id="org.eclipse.emf.cdo.dawn.lockObjects"
             name="LockObjects">
       </command>
       <command
             id="org.eclipse.emf.cdo.dawn.unlockObjects"
             name="UnlockObjects">
       </command>
    </extension>-->
</plugin>
