<?xml version="1.0" encoding="UTF-8"?>
<!--
/*******************************************************************************
 * Copyright (c) 2006,2010 IBM Corporation and others.
 * All rights reserved.   This program and the accompanying materials
 * are made available under the terms of 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
 *   E.D.Willink - Bug 289761
 *******************************************************************************/
-->
<?eclipse version="3.0"?>
<plugin
>
   <extension point="org.eclipse.ui.newWizards">
      <category id="org.eclipse.ocl.examples.category"
            name="%OCL_category"
            parentCategory="org.eclipse.ui.Examples"/>
      <wizard id="org.eclipse.ocl.examples.interpreter"
            category="org.eclipse.ui.Examples/org.eclipse.ocl.examples.category"
            class="org.eclipse.emf.common.ui.wizard.ExampleInstallerWizard"
            project="true"
            name="%OCL_Interpreter_name"
            icon="$nl$/icons/elcl16/oclconsole_co.gif">
         <description>%OCL_Interpreter_description</description>
      </wizard>
     <wizard id="org.eclipse.ocl.examples.completeocltutorial"           
            category="org.eclipse.ui.Examples/org.eclipse.ocl.examples.category"
            class="org.eclipse.emf.common.ui.wizard.ExampleInstallerWizard"
            project="true"
            name="%CompleteOCL_Tutorial_name"
            icon="$nl$/icons/OCLModelFile.gif">
         <description>%CompleteOCL_Tutorial_description</description>
      </wizard>
     <wizard id="org.eclipse.ocl.examples.oclinecoretutorial"           
            category="org.eclipse.ui.Examples/org.eclipse.ocl.examples.category"
            class="org.eclipse.emf.common.ui.wizard.ExampleInstallerWizard"
            project="true"
            name="%OCLinEcore_Tutorial_name"
            icon="$nl$/icons/OCLModelFile.gif">
         <description>%OCLinEcore_Tutorial_description</description>
      </wizard>
     <wizard id="org.eclipse.ocl.examples.royalandloyal"           
            category="org.eclipse.ui.Examples/org.eclipse.ocl.examples.category"
            class="org.eclipse.emf.common.ui.wizard.ExampleInstallerWizard"
            project="true"
            name="%Royal_and_Loyal_name"
            icon="$nl$/icons/OCLModelFile.gif">
         <description>%Royal_and_Loyal_description</description>
      </wizard>
      <wizard id="org.eclipse.ocl.examples.empty"           
            category="org.eclipse.ui.Examples/org.eclipse.ocl.examples.category"
            class="org.eclipse.emf.common.ui.wizard.ExampleInstallerWizard"
            project="true"
            name="%EmptyOCL_name"
            icon="$nl$/icons/OCLModelFile.gif">
         <description>%EmptyOCL_description</description>
      </wizard>
   </extension>
   <extension point="org.eclipse.emf.common.ui.examples">
      <example id="org.eclipse.ocl.examples.project.CompleteOCL"
            wizardID="org.eclipse.ocl.examples.completeocltutorial"
            pageImage="$nl$/icons/OCLModelFile.gif">
         <projectDescriptor name="org.eclipse.ocl.examples.project.completeocltutorial"
               contentURI="zips/completeocltutorial.zip"
               description="%CompleteOCL_Tutorial_description"/>
         <fileToOpen location="org.eclipse.ocl.examples.project.completeocltutorial/model/ExtraEcoreValidation.ocl"
               editorID="org.eclipse.ocl.examples.xtext.completeocl.CompleteOCL"/>
      </example>
      <example id="org.eclipse.ocl.examples.project.Empty"
            wizardID="org.eclipse.ocl.examples.empty"
            pageImage="$nl$/icons/OCLModelFile.gif">
         <projectDescriptor name="org.eclipse.ocl.examples.project.empty"
               contentURI="zips/empty.zip"
               description="%EmptyOCL_description"/>
      </example>
      <example id="org.eclipse.ocl.examples.project.Interpreter"
            wizardID="org.eclipse.ocl.examples.interpreter"
            pageImage="$nl$/icons/elcl16/oclconsole_co.gif">
         <projectDescriptor name="org.eclipse.ocl.examples.project.interpreter"
               contentURI="zips/interpreter.zip"
               description="%OCL_Interpreter_description"/>
         <projectDescriptor name="org.eclipse.emf.examples.library"
               contentURI="zips/library.zip"
               description="%_UI_LibraryModelProject_desc"/>
         <projectDescriptor name="org.eclipse.emf.examples.library.edit"
               contentURI="zips/libraryEdit.zip"
               description="%_UI_LibraryEditProject_desc"/>
         <projectDescriptor name="org.eclipse.emf.examples.library.editor"
               contentURI="zips/libraryEditor.zip"
               description="%_UI_LibraryEditorProjector_desc"/>
      </example>
      <example id="org.eclipse.ocl.examples.project.OCLinEcore"
            wizardID="org.eclipse.ocl.examples.oclinecoretutorial"
            pageImage="$nl$/icons/OCLModelFile.gif">
         <projectDescriptor name="org.eclipse.ocl.examples.project.oclinecoretutorial"
               contentURI="zips/oclinecoretutorial.zip"
               description="%OCLinEcore_Tutorial_description"/>
         <fileToOpen location="org.eclipse.ocl.examples.project.oclinecoretutorial/model/Tutorial.ecore"
               editorID="org.eclipse.ocl.examples.xtext.oclinecore.OCLinEcore"/>
      </example>
      <example id="org.eclipse.ocl.examples.project.RoyalAndLoyal"
            wizardID="org.eclipse.ocl.examples.royalandloyal"
            pageImage="$nl$/icons/OCLModelFile.gif">
         <projectDescriptor name="org.eclipse.ocl.examples.project.royalandloyal"
               contentURI="zips/royalandloyal.zip"
               description="%Royal_and_Loyal_description"/>
         <fileToOpen location="org.eclipse.ocl.examples.project.royalandloyal/oclsrc/RoyalAndLoyal/RoyalAndLoyal.ocl"
               editorID="org.eclipse.ocl.examples.xtext.completeocl.CompleteOCL"/>
      </example>
   </extension>
</plugin>
