<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>
<!--
/**
 *************************************************************************
 * Copyright (c) 2006, 2008 Actuate Corporation.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License 2.0
 * which accompanies this distribution, and is available at
 * https://www.eclipse.org/legal/epl-2.0/
 *
 * Contributors:
 *  Actuate Corporation - initial API and implementation
 *  
 *************************************************************************
 *
 * $Id: plugin.xml,v 1.20 2007/09/12 18:49:39 lzhu Exp $
 */
-->

<plugin>

   <extension
         point="org.eclipse.datatools.connectivity.connectionProfile">
      <newWizard
            id="%oda.data.source.id"
            name="%newwizard.name"
            class="org.eclipse.datatools.connectivity.oda.design.ui.wizards.NewDataSourceWizard"
            description="%newwizard.description"
            icon="icons/fieldlist.ico"
            profile="%oda.data.source.id"/>
   </extension>
   <extension
         point="org.eclipse.datatools.connectivity.ui.connectionProfileImage">
      <profileImage
            profileID="%oda.data.source.id"
            icon="icons/profile.gif">
      </profileImage>
   </extension>
   <extension
         point="org.eclipse.ui.propertyPages">
      <page
            id="%oda.data.source.id"
            name="%profile.propertypage.name"
            class="org.eclipse.datatools.connectivity.oda.flatfile.ui.wizards.FolderPropertyPage">
         <enabledWhen>
            <instanceof
                  value="org.eclipse.datatools.connectivity.IConnectionProfile">
            </instanceof>
         </enabledWhen>
         <filter
               name="org.eclipse.datatools.profile.property.id"
               value="%oda.data.source.id"/>
      </page>
   </extension>
   
   <extension
         point="org.eclipse.datatools.connectivity.oda.design.ui.dataSource">
      <dataSourceUI id="%oda.data.source.id">
         <newDataSourceWizard
               includesProgressMonitor="false"
               pageClass="org.eclipse.datatools.connectivity.oda.flatfile.ui.wizards.FolderSelectionWizardPage"
               pageTitle="%wizard.data.source.page.title"
               windowTitle="%wizard.window.title"/>
      </dataSourceUI>
      <dataSetUI
            id="org.eclipse.datatools.connectivity.oda.flatfile.dataSet"
            initialPageId="oda.flatfile.ui.tablePage"
            supportsInParameters="false"
            supportsOutParameters="false">
         <dataSetWizard
               class="org.eclipse.datatools.connectivity.oda.design.ui.wizards.DataSetWizard"
               windowTitle="%wizard.data.set.title"/>
         <dataSetPage
               displayName="%wizard.data.set.page.title"
               icon="icons/file.gif"
               id="oda.flatfile.ui.tablePage"
               path="/"
               wizardPageClass="org.eclipse.datatools.connectivity.oda.flatfile.ui.wizards.FileSelectionWizardPage"/>
      </dataSetUI>
   </extension>

</plugin>
