<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.2"?>
<!--
  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.
-->
<plugin>
  <!-- Define two editors :       -->
  <!-- o One for the ACIItem      -->
  <!-- o Pne for the SubtreeValue -->
  <extension
      point="org.apache.directory.studio.valueeditors">
    <valueEditor
        class="org.apache.directory.studio.aciitemeditor.ACIItemValueEditor"
        icon="resources/icons/aciitemeditor.gif"
        name="%ValueEditor_AciItemValueEditor_name">
      <syntax syntaxOID="1.3.6.1.4.1.1466.115.121.1.1"/>
    </valueEditor>
    
    <valueEditor
        class="org.apache.directory.studio.aciitemeditor.valueeditors.SubtreeValueEditor"
        icon="resources/icons/subtreeeditor.png"
        name="%ValueEditor_SubtreeValueEditor_name">
      <syntax syntaxOID="1.3.6.1.4.1.1466.115.121.1.45"/>
    </valueEditor>
  </extension>
  
  <extension
      point="org.eclipse.ui.editors.templates">
    <include file="resources/templates/templates.xml"/>
    <contextType
        class="org.eclipse.jface.text.templates.TemplateContextType"
        id="org.apache.directory.studio.aciitemeditor.templates"
        name="%CtxType_AciItem_Template_name"/>
  </extension>
</plugin>
