<?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>

   <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="%CtxType_AciItem_Template_id"
            name="%CtxType_AciItem_Template_name"/>
   </extension>

</plugin>
