<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<?eclipse version="3.0"?>
<plugin>
  <extension-point id="templates" name="Entry Templates" schema="src/main/resources/org.apache.directory.studio.templateeditor.templates.exsd"/>
  <extension point="org.apache.directory.studio.templateeditor.templates">
    <template file="resources/templates/domain-view.xml"/>
    <template file="resources/templates/domain-edit.xml"/>
    <template file="resources/templates/groupOfNames-view.xml"/>
    <template file="resources/templates/groupOfNames-edit.xml"/>
    <template file="resources/templates/groupOfUniqueNames-view.xml"/>
    <template file="resources/templates/groupOfUniqueNames-edit.xml"/>
    <template file="resources/templates/inetOrgPerson-view.xml"/>
    <template file="resources/templates/inetOrgPerson-edit.xml"/>
    <template file="resources/templates/metaAttributeType-view.xml"/>
    <template file="resources/templates/metaAttributeType-edit.xml"/>
    <template file="resources/templates/metaComparator-view.xml"/>
    <template file="resources/templates/metaComparator-edit.xml"/>
    <template file="resources/templates/metaMatchingRule-view.xml"/>
    <template file="resources/templates/metaMatchingRule-edit.xml"/>
    <template file="resources/templates/metaNormalizer-view.xml"/>
    <template file="resources/templates/metaNormalizer-edit.xml"/>
    <template file="resources/templates/metaObjectClass-view.xml"/>
    <template file="resources/templates/metaObjectClass-edit.xml"/>
    <template file="resources/templates/metaSchema-view.xml"/>
    <template file="resources/templates/metaSchema-edit.xml"/>
    <template file="resources/templates/metaSyntax-view.xml"/>
    <template file="resources/templates/metaSyntax-edit.xml"/>
    <template file="resources/templates/metaSyntaxChecker-view.xml"/>
    <template file="resources/templates/metaSyntaxChecker-edit.xml"/>
    <template file="resources/templates/organization-view.xml"/>
    <template file="resources/templates/organization-edit.xml"/>
    <template file="resources/templates/organizationalUnit-view.xml"/>
    <template file="resources/templates/organizationalUnit-edit.xml"/>
  </extension>

  <extension point="org.eclipse.ui.preferencePages">
    <page
        class="org.apache.directory.studio.templateeditor.view.preferences.TemplateEntryEditorPreferencePage"
        id="org.apache.directory.studio.templateeditor.view.preferences.TemplateEntryEditorPreferencePage"
        category="org.apache.directory.studio.ldapbrowser.preferences.EntryEditorsPreferencePage"
        name="%PrefPage_TemplateEntryEditorPreferencePage_name">
    </page>
  </extension>

  <extension point="org.eclipse.equinox.preferences.preferences">
    <initializer class="org.apache.directory.studio.templateeditor.PreferenceInitializer"/>
  </extension>

  <extension point="org.eclipse.ui.editors">
    <editor
        class="org.apache.directory.studio.templateeditor.editor.SingleTabTemplateEntryEditor"
        default="false"
        icon="resources/icons/editor_single_tab.gif"
        id="%Editor_SingleTabTemplateEntryEditor_id"
        matchingStrategy="org.apache.directory.studio.entryeditors.SingleTabEntryEditorMatchingStrategy"
        name="%Editor_SingleTabTemplateEntryEditor_shortname">
    </editor>

    <editor
        class="org.apache.directory.studio.templateeditor.editor.MultiTabTemplateEntryEditor"
        default="false"
        icon="resources/icons/editor_multi_tab.gif"
        id="%Editor_MultiTabTemplateEntryEditor_id"
        matchingStrategy="org.apache.directory.studio.entryeditors.MultiTabEntryEditorMatchingStrategy"
        name="%Editor_MultiTabTemplateEntryEditor_shortname">
    </editor>
  </extension>
   
  <extension point="org.apache.directory.studio.entryeditors">
    <entryEditor
        class="org.apache.directory.studio.templateeditor.editor.SingleTabTemplateEntryEditor"
        description="%Editor_SingleTabTemplateEntryEditor_description"
        editorId="%Editor_SingleTabTemplateEntryEditor_id"
        icon="resources/icons/editor_single_tab.gif"
        id="%Editor_SingleTabTemplateEntryEditor_id"
        name="%Editor_SingleTabTemplateEntryEditor_fullname"
        priority="32"
        multiWindow="false">
    </entryEditor>

    <entryEditor
        class="org.apache.directory.studio.templateeditor.editor.MultiTabTemplateEntryEditor"
        description="%Editor_MultiTabTemplateEntryEditor_description"
        editorId="%Editor_MultiTabTemplateEntryEditor_id"
        icon="resources/icons/editor_multi_tab.gif"
        id="%Editor_MultiTabTemplateEntryEditor_id"
        name="%Editor_MultiTabTemplateEntryEditor_fullname"
        priority="31"
        multiWindow="true">
    </entryEditor>
  </extension>
</plugin>
