<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>
<!--
/**
 * <copyright>
 *
 * Copyright (c) 2005, 2012 IBM Corporation and others.
 * All rights reserved.   This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *   IBM - Initial API and implementation
 *   Kenn Hussey - 332962
 *   E.D.Willink - rework Delegate as Handler - 386701
 *
 * </copyright>
 *
 * $Id: plugin.xml,v 1.3 2010/12/22 12:19:57 asanchez Exp $
 */
-->
<plugin>
	<extension point="org.eclipse.ui.commands">
		<command id="org.eclipse.ocl.examples.interpreter.ShowEcoreConsoleAction"
			description="%_UI_ShowOCLConsole_tooltip"			
			name="%_UI_ShowOCLConsole_label"/>
		<command id="org.eclipse.ocl.examples.interpreter.ShowUMLConsoleAction"
			description="%_UI_ShowOCLConsole_tooltip"			
			name="%_UI_ShowOCLConsole_label"/>
	</extension>

	<extension point="org.eclipse.ui.handlers">
		<handler commandId="org.eclipse.ocl.examples.interpreter.ShowEcoreConsoleAction"
			class="org.eclipse.ocl.examples.interpreter.actions.ShowEcoreConsoleHandler"/>
		<handler commandId="org.eclipse.ocl.examples.interpreter.ShowUMLConsoleAction"
			class="org.eclipse.ocl.examples.interpreter.actions.ShowUMLConsoleHandler"/>
	</extension>

	<extension point="org.eclipse.ui.menus">
		<menuContribution locationURI="popup:org.eclipse.emf.ecore.presentation.EcoreEditorID?after=additions">
			<command commandId="org.eclipse.ocl.examples.interpreter.ShowEcoreConsoleAction"
              	icon="icons/elcl16/oclconsole_co.gif"/>
		</menuContribution>
		<menuContribution locationURI="popup:org.eclipse.emf.ecore.presentation.ReflectiveEditorID?after=additions">
			<command commandId="org.eclipse.ocl.examples.interpreter.ShowEcoreConsoleAction"
              	icon="icons/elcl16/oclconsole_co.gif"/>
		</menuContribution>
		<menuContribution locationURI="popup:org.eclipse.emf.examples.extlibrary.presentation.EXTLibraryEditorID?after=additions">
			<command commandId="org.eclipse.ocl.examples.interpreter.ShowEcoreConsoleAction"
              	icon="icons/elcl16/oclconsole_co.gif"/>
		</menuContribution>
		<menuContribution locationURI="popup:org.eclipse.uml2.uml.editor.presentation.UMLEditorID?after=additions">
			<command commandId="org.eclipse.ocl.examples.interpreter.ShowUMLConsoleAction"
              	icon="icons/elcl16/oclconsole_co.gif"/>
		</menuContribution>
	</extension>
   
   <extension point="org.eclipse.ui.console.consoleFactories">
      <consoleFactory
            label="%_UI_ConsoleFactory_label"
            class="org.eclipse.ocl.examples.interpreter.console.OCLConsoleFactory"
            icon="$nl$/icons/elcl16/oclconsole_co.gif">
      </consoleFactory>
   </extension>

  <extension point = "org.eclipse.emf.edit.ui.queryDelegateTextViewerFactories">
     <factory
           uri = "http://www.eclipse.org/emf/2002/Ecore/OCL"
           class = "org.eclipse.ocl.examples.interpreter.delegate.OCLQueryDelegateTextViewerFactory" />
  </extension>
</plugin>
