<?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.eclipse.ui.actionSets">
      <actionSet
            id="org.apache.directory.ldapstudio.apacheds.configuration.actionset"
            label="Apache DS"
            visible="true">
         <menu
               id="org.apache.directory.ldapstudio.apacheds.configuration.actionset.menu"
               label="Apache DS"/>
         <action
               class="org.apache.directory.ldapstudio.apacheds.configuration.actions.OpenServerConfigurationAction"
               id="org.apache.directory.ldapstudio.apacheds.configuration.openServerConfiguration"
               label="Open Configuration File..."
               menubarPath="org.apache.directory.ldapstudio.apacheds.configuration.actionset.menu/open"
               style="push"/>
         <action
               class="org.apache.directory.ldapstudio.apacheds.configuration.actions.NewServerConfigurationAction"
               id="org.apache.directory.ldapstudio.apacheds.configuration.newServerConfiguration"
               label="New Configuration File"
               menubarPath="org.apache.directory.ldapstudio.apacheds.configuration.actionset.menu/new"
               style="push"/>
      </actionSet>
   </extension>
   <extension
         point="org.eclipse.ui.editors">
      <editor
            class="org.apache.directory.ldapstudio.apacheds.configuration.editor.ServerConfigurationEditor"
            default="true"
            icon="icons/editor.gif"
            id="org.apache.directory.ldapstudio.apacheds.configuration.editor"
            name="Server Configuration Editor">
      </editor>
   </extension>
</plugin>
