<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<!--
 #=============================================================================#
 # Copyright (c) 2012, 2019 Stephan Wahlbrink and others.
 # 
 # This program and the accompanying materials are made available under the
 # terms of the Eclipse Public License 2.0 which is available at
 # https://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
 # which is available at https://www.apache.org/licenses/LICENSE-2.0.
 # 
 # SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
 # 
 # Contributors:
 #     Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
 #=============================================================================#
-->

<plugin>

   <extension
         point="org.eclipse.ui.editors">
      <editor
            id="org.eclipse.statet.rtm.ftable.editors.FTable"
            icon="icons/obj_16/ftable_task.png"
            name="%editors_FTable_label"
            class="org.eclipse.statet.internal.rtm.ftable.ui.editors.FTableEditor"
            contributorClass="org.eclipse.statet.ecommons.emf.ui.forms.EFEditorActionBarContributor">
         <contentTypeBinding
               contentTypeId="org.eclipse.statet.rtm.contentTypes.FTable">
         </contentTypeBinding>
      </editor>
   </extension>

   <extension
         point="org.eclipse.ui.commands">
      <command
            id="org.eclipse.statet.rtm.ftable.commands.NewFTable"
            categoryId="org.eclipse.statet.rtm.commands.RTasksCategory"
            name="%commands_NewFTable_name"
            description="%commands_NewFTable_description"
            defaultHandler="org.eclipse.statet.rtm.ftable.ui.actions.NewFTableHandler">
      </command>
   </extension>

   <extension point="org.eclipse.ui.newWizards">
      <wizard
            id="org.eclipse.statet.rtm.ftable.newWizards.NewFTableModel"
            category="org.eclipse.statet.r.newWizards.RCategory/org.eclipse.statet.rtm.base.newWizards.RTasksCategory"
            icon="icons/obj_16/ftable_task.png"
            name="%newWizards_NewFTable_name"
            class="org.eclipse.statet.rtm.ftable.ui.actions.NewFTableFileWizard">
         <description>%newWizards_NewFTable_description</description>
         <selection class="org.eclipse.core.resources.IResource"/>
      </wizard>
   </extension>
   <extension
         point="org.eclipse.ui.menus">
      <menuContribution
            allPopups="false"
            locationURI="menu:org.eclipse.statet.r.menus.RMain?after=r_tasks.tables">
         <command
               commandId="org.eclipse.statet.rtm.ftable.commands.NewFTable"
               style="push">
         </command>
      </menuContribution>
   </extension>

</plugin>
