<?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 v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * 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>
