<?xml version="1.0" encoding="UTF-8"?>
<!--
/*******************************************************************************
 * Copyright (c) 2008 Willink Transformations and others.
 * All rights reserved.   This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v2.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v20.html
 *
 * Contributors:
 *   E.D.Willink - Initial API and implementation
 *******************************************************************************/
-->
<?eclipse version="3.0"?>
<plugin>
   <extension point="org.eclipse.ui.newWizards">
      <category id="org.eclipse.qvtd.examples.category"
            name="%QVT_category"
            parentCategory="org.eclipse.ui.Examples"/>
      <!--wizard id="org.eclipse.qvtd.examples.qvtcore.empty"           
            canFinishEarly="true"
            category="org.eclipse.ui.Examples/org.eclipse.qvtd.examples.category"
            class="org.eclipse.emf.common.ui.wizard.ExampleInstallerWizard"
            project="true"
            name="%EmptyQVTc_name"
            icon="$nl$/icons/QVTcModelFile.gif">
         <description>%EmptyQVTc_description</description>
      </wizard-->
      <wizard id="org.eclipse.qvtd.examples.qvtcore.uml2rdbms"           
            canFinishEarly="true"
            category="org.eclipse.ui.Examples/org.eclipse.qvtd.examples.category"
            class="org.eclipse.emf.common.ui.wizard.ExampleInstallerWizard"
            project="true"
            name="%QVTc_UML2RDBMS_name"
            icon="$nl$/icons/QVTcModelFile.gif">
         <description>%QVTc_UML2RDBMS_description</description>
      </wizard>
      <!--wizard id="org.eclipse.qvtd.examples.qvtrelation.empty"           
            canFinishEarly="true"
            category="org.eclipse.ui.Examples/org.eclipse.qvtd.examples.category"
            class="org.eclipse.emf.common.ui.wizard.ExampleInstallerWizard"
            project="true"
            name="%EmptyQVTr_name"
            icon="$nl$/icons/QVTrModelFile.gif">
         <description>%EmptyQVTr_description</description>
      </wizard-->
      <wizard id="org.eclipse.qvtd.examples.qvtrelation.hstm2fstm"           
            canFinishEarly="true"
            category="org.eclipse.ui.Examples/org.eclipse.qvtd.examples.category"
            class="org.eclipse.emf.common.ui.wizard.ExampleInstallerWizard"
            project="true"
            name="%QVTr_HSTM2FSTM_name"
            icon="$nl$/icons/QVTrModelFile.gif">
         <description>%QVTr_HSTM2FSTM_description</description>
      </wizard>
      <wizard id="org.eclipse.qvtd.examples.qvtrelation.modelmorf"           
            canFinishEarly="true"
            category="org.eclipse.ui.Examples/org.eclipse.qvtd.examples.category"
            class="org.eclipse.emf.common.ui.wizard.ExampleInstallerWizard"
            project="true"
            name="%ModelMorf_name"
            icon="$nl$/icons/QVTrModelFile.gif">
         <description>%ModelMorf_description</description>
      </wizard>
      <wizard id="org.eclipse.qvtd.examples.qvtrelation.reltocore"           
            canFinishEarly="true"
            category="org.eclipse.ui.Examples/org.eclipse.qvtd.examples.category"
            class="org.eclipse.emf.common.ui.wizard.ExampleInstallerWizard"
            project="true"
            name="%RelToCore_name"
            icon="$nl$/icons/QVTrModelFile.gif">
         <description>%RelToCore_description</description>
      </wizard>
      <wizard id="org.eclipse.qvtd.examples.umlx.hstm2fstm"           
            canFinishEarly="true"
            category="org.eclipse.ui.Examples/org.eclipse.qvtd.examples.category"
            class="org.eclipse.emf.common.ui.wizard.ExampleInstallerWizard"
            project="true"
            name="%UMLX_HSTM2FSTM_name"
            icon="$nl$/icons/UMLXModelFile.gif">
         <description>%UMLX_HSTM2FSTM_description</description>
      </wizard>
   </extension>
   <extension point="org.eclipse.emf.common.ui.examples">
      <example id="org.eclipse.qvtd.examples.qvtcore.uml2rdbms"
            wizardID="org.eclipse.qvtd.examples.qvtcore.uml2rdbms"
            pageImage="$nl$/icons/QVTcModelFile.gif">
         <projectDescriptor name="org.eclipse.qvtd.examples.qvtcore.uml2rdbms"
               contentURI="zips/qvtc/uml2rdbms.zip"
               description="%QVTc_UML2RDBMS_description"/>
         <fileToOpen location="org.eclipse.qvtd.examples.qvtcore.uml2rdbms/src/org/eclipse/qvtd/examples/qvtcore/uml2rdbms/SimpleUML2RDBMS.qvtc"
               editorID="org.eclipse.qvtd.xtext.qvtcore.QVTcore"/>
      </example>
      <example id="org.eclipse.qvtd.examples.qvtrelation.hstm2fstm"
            wizardID="org.eclipse.qvtd.examples.qvtrelation.hstm2fstm"
            pageImage="$nl$/icons/QVTrModelFile.gif">
         <projectDescriptor name="org.eclipse.qvtd.examples.qvtrelation.hstm2fstm"
               contentURI="zips/qvtr/hstm2fstm.zip"
               description="%QVTr_HSTM2FSTM_description"/>
         <fileToOpen location="org.eclipse.qvtd.examples.qvtrelation.hstm2fstm/src/org/eclipse/qvtd/examples/qvtrelation/hstm2fstm/HierarchicalStateMachine2FlatStateMachine.qvtr"
               editorID="org.eclipse.qvtd.xtext.qvtrelation.QVTrelation"/>
      </example>
      <example id="org.eclipse.qvtd.examples.umlx.hstm2fstm"
            wizardID="org.eclipse.qvtd.examples.umlx.hstm2fstm"
            pageImage="$nl$/icons/UMLXModelFile.gif">
         <projectDescriptor name="org.eclipse.qvtd.examples.umlx.hstm2fstm"
               contentURI="zips/umlx/hstm2fstm.zip"
               description="%UMLX_HSTM2FSTM_description"/>
         <!--fileToOpen location="org.eclipse.qvtd.examples.umlx.hstm2fstm/src/org/eclipse/qvtd/examples/umlx/hstm2fstm/HierarchicalStateMachine2FlatStateMachine.qvtr"
               editorID="org.eclipse.qvtd.xtext.umlx.QVTrelation"/-->
      </example>
   </extension>

   <extension point="org.eclipse.ui.intro.configExtension">
      <configExtension content="intro/sample.xml" configId="org.eclipse.ui.intro.universalConfig"/>
   </extension>
</plugin>
