<?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 id="org.apache.directory.studio.connectionparameterpages" name="%ExtensionPoint_ConnectionParameterPages_name" schema="src/main/resources/connectionParameterPages.exsd"/>

  <extension 
      point="org.eclipse.ui.propertyPages">
    <page
        class="org.apache.directory.studio.connection.ui.properties.ConnectionPropertyPage"
        id="%Prop_ConnectionPropertyPage_id"
        name="%Prop_ConnectionPropertyPage_name"
        objectClass="org.apache.directory.studio.connection.core.ConnectionPropertyPageProvider"/>
  </extension>

  <extension 
      point="org.eclipse.ui.newWizards">
    <wizard
        category="org.apache.directory.studio.ldapbrowser.newWizards"
        class="org.apache.directory.studio.connection.ui.wizards.NewConnectionWizard"
        hasPages="true"
        icon="resources/icons/connection_add.gif"
        id="%NewWizards_NewConnectionWizard_id"
        name="%NewWizards_NewConnectionWizard_name"
        project="false"/>
  </extension>
   
  <extension
      point="org.apache.directory.studio.connectionparameterpages">
    <connectionParameterPage
        class="org.apache.directory.studio.connection.ui.widgets.NetworkParameterPage"
        dependsOnId="%ConnectionParameterPage_NetworkParameterPage_id"
        description="%ConnectionParameterPage_NetworkParameterPage_description"
        id="%ConnectionParameterPage_NetworkParameterPage_id"
        name="%ConnectionParameterPage_NetworkParameterPage_name"/>
        
    <connectionParameterPage
        class="org.apache.directory.studio.connection.ui.widgets.AuthenticationParameterPage"
        dependsOnId="%ConnectionParameterPage_NetworkParameterPage_id"
        description="%ConnectionParameterPage_AuthenticationParameterPage_description"
        id="org.apache.directory.studio.connection.ui.widgets.AuthenticationParameterPage"
        name="%ConnectionParameterPage_AuthenticationParameterPage_name"/>
   </extension>
   
  <extension
      point="org.eclipse.ui.preferencePages">
    <page
        category="org.apache.directory.studio.StudioPreferencePage"
        class="org.apache.directory.studio.connection.ui.preferences.ConnectionsPreferencePage"
        id="%PrefPage_ConnectionsPreferencePage_id"
        name="%PrefPage_ConnectionsPreferencePage_name"/>

    <page
        category="%PrefPage_ConnectionsPreferencePage_id"
        class="org.apache.directory.studio.connection.ui.preferences.CertificateValidationPreferencePage"
        id="%PrefPage_CertificateValidationPreferencePage_id"
        name="%PrefPage_CertificateValidationPreferencePage_name"/>

    <page
        category="%PrefPage_ConnectionsPreferencePage_id"
        class="org.apache.directory.studio.connection.ui.preferences.PasswordsKeystorePreferencePage"
        id="org.apache.directory.studio.connection.ui.preferences.PasswordsKeystorePreferencePage"
        name="%PrefPage_PasswordsKeystorePreferencePage_name"/>
  </extension>  
</plugin>
