<!--
  ~ Copyright (C) 2011 Brockmann Consult GmbH (info@brockmann-consult.de)
  ~
  ~ This program is free software; you can redistribute it and/or modify it
  ~ under the terms of the GNU General Public License as published by the Free
  ~ Software Foundation; either version 3 of the License, or (at your option)
  ~ any later version.
  ~ This program is distributed in the hope that it will be useful, but WITHOUT
  ~ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  ~ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
  ~ more details.
  ~
  ~ You should have received a copy of the GNU General Public License along
  ~ with this program; if not, see http://www.gnu.org/licenses/
  -->

<module>
    <manifestVersion>1.0.0</manifestVersion>
    <symbolicName>snap-visat-rcp</symbolicName>
    <version>1.0.0</version>
    <name>VISAT Rich Client Platform</name>

    <description>
        A desktop application used to open, browse, visualise,
        analyse and manipulate data products of a number of EO sensors.
    </description>

    <vendor>Brockmann Consult GmbH</vendor>
    <contactAddress>Max-Planck-Str. 2, 21502 Geesthacht (Germany)</contactAddress>
    <copyright>(C) 2014 by Brockmann Consult GmbH</copyright>
    <url>http://envisat.esa.int/beam</url>
    <licenseUrl>http://www.gnu.org/licenses/gpl.html</licenseUrl>

    <activator>org.esa.beam.visat.VisatActivator</activator>

    <dependency>
        <module>snap-core</module>
    </dependency>
    <dependency>
        <module>snap-ui</module>
    </dependency>
    <dependency>
        <module>snap-gpf</module>
    </dependency>
    <dependency>
        <module>snap-binding</module>
    </dependency>
    <dependency>
        <module>snap-ceres-ui</module>
    </dependency>
    <!-- TODO: replace this dependency! -->
    <dependency>
        <module>snap-statistics-op</module>
    </dependency>

    <categories>System,Application,VISAT</categories>

    <extension point="snap-ui:layerEditors">
        <layerEditor>
            <editorFactory>org.esa.beam.visat.toolviews.layermanager.editors.VectorDataLayerEditorFactory
            </editorFactory>
            <layer>org.esa.beam.framework.ui.product.VectorDataLayer</layer>
        </layerEditor>
        <layerEditor>
            <editor>org.esa.beam.visat.toolviews.layermanager.editors.ImageLayerEditor</editor>
            <layerType>com.bc.ceres.glayer.support.ImageLayer$Type</layerType>
        </layerEditor>
        <layerEditor>
            <editor>org.esa.beam.visat.toolviews.layermanager.editors.NoDataLayerEditor</editor>
            <layerType>org.esa.beam.glayer.NoDataLayerType</layerType>
        </layerEditor>
        <layerEditor>
            <editor>org.esa.beam.visat.toolviews.layermanager.editors.FeatureLayerEditor</editor>
            <layerType>org.esa.beam.visat.toolviews.layermanager.layersrc.shapefile.FeatureLayerType</layerType>
        </layerEditor>
        <layerEditor>
            <editor>org.esa.beam.visat.toolviews.layermanager.editors.GraticuleLayerEditor</editor>
            <layerType>org.esa.beam.glayer.GraticuleLayerType</layerType>
        </layerEditor>
    </extension>

    <extension point="snap-ui:layerSources">
        <layerSource>
            <id>wms-layer-source</id>
            <name>Image from Web Map Server (WMS)</name>
            <description>Retrieves images from a Web Map Server (WMS)</description>
            <class>org.esa.beam.visat.toolviews.layermanager.layersrc.wms.WmsLayerSource</class>
        </layerSource>
        <layerSource>
            <id>shapefile-layer-source</id>
            <name>ESRI Shapefile</name>
            <description>Displays shapes from an ESRI Shapefile</description>
            <class>org.esa.beam.visat.toolviews.layermanager.layersrc.shapefile.ShapefileLayerSource</class>
        </layerSource>
        <layerSource>
            <id>productdata-layer-source</id>
            <name>Image of Band / Tie-Point Grid</name>
            <description>Displays images from a Band or Tie-Point Grid of compatible products</description>
            <class>org.esa.beam.visat.toolviews.layermanager.layersrc.product.ProductLayerSource</class>
        </layerSource>
        <layerSource>
            <id>image-layer-source</id>
            <name>Image from File</name>
            <description>Displays images from a file</description>
            <class>org.esa.beam.visat.toolviews.layermanager.layersrc.image.ImageFileLayerSource</class>
        </layerSource>
        <layerSource>
            <id>group-layer-source</id>
            <name>Layer Group</name>
            <description>Inserts an empty Layer Group</description>
            <class>org.esa.beam.framework.ui.layer.CollectionLayerSource</class>
        </layerSource>

        <layerSource>
            <id>windfield-layer-source</id>
            <name>Wind speed vectors from MERIS ECMWF annotations</name>
            <description>Creates a windfield layer based on MERIS 'zonal_wind' and 'merid_wind' data</description>
            <class>org.esa.beam.visat.toolviews.layermanager.layersrc.windfield.WindFieldLayerSource</class>
        </layerSource>


    </extension>

    <!--
       todo - The VisatPlugIn interface should be deprecated, use an ApplicationLifecycleListener instead
    -->
    <extension point="snap-ceres-core:serviceProviders">
        <serviceProvider>org.esa.beam.visat.VisatPlugIn</serviceProvider>
        <serviceProvider>com.bc.ceres.glayer.LayerType</serviceProvider>
    </extension>

    <extension point="snap-ui:toolViews">

        <toolView>
            <id>org.esa.beam.visat.ProductsToolView</id>
            <class>org.esa.beam.visat.ProductsToolView</class>
            <title>Products View</title>
            <tabTitle>Products</tabTitle>
            <mnemonic>P</mnemonic>
            <accelerator>ctrl alt P</accelerator>
            <smallIcon>/org/esa/beam/resources/images/icons/RsProduct16.gif</smallIcon>
            <largeIcon>/org/esa/beam/resources/images/icons/RsProduct24.gif</largeIcon>
            <helpId>productBrowser</helpId>
            <description>Display all opened data products in a tree view.</description>
            <initState>DOCKED</initState>
            <initSide>WEST</initSide>
            <initIndex>0</initIndex>
        </toolView>

        <toolView>
            <id>org.esa.beam.visat.toolviews.pixelinfo.PixelInfoToolView</id>
            <class>org.esa.beam.visat.toolviews.pixelinfo.PixelInfoToolView</class>
            <title>Pixel Info View</title>
            <tabTitle>Pixel Info</tabTitle>
            <mnemonic>i</mnemonic>
            <accelerator>ctrl alt I</accelerator>
            <description>Display detailed pixel information in a table view.</description>
            <smallIcon>/org/esa/beam/resources/images/icons/PixelInfo16.png</smallIcon>
            <largeIcon>/org/esa/beam/resources/images/icons/PixelInfo24.png</largeIcon>
            <helpId>pixelInfoView</helpId>
            <initState>DOCKED</initState>
            <initSide>WEST</initSide>
            <initIndex>0</initIndex>
        </toolView>

        <toolView>
            <id>org.esa.beam.visat.toolviews.placemark.PlacemarkEditorToolView</id>
            <class>org.esa.beam.visat.toolviews.placemark.PlacemarkEditorToolView</class>
            <!-- Not yet, editor functionality still not implemented! -->
            <!--
            <title>Vector Data Editor</title>
            <description>Edit features of selected vector data.</description>
            -->
            <title>Vector Data Information</title>
            <description>Displays attributes of selected vector data features.</description>
            <smallIcon>/org/esa/beam/resources/images/icons/FeatureInfo16.png</smallIcon>
            <largeIcon>/org/esa/beam/resources/images/icons/FeatureInfo24.png</largeIcon>
            <helpId>showPlacemarkEditorWnd</helpId>
            <initState>HIDDEN</initState>
            <initSide>SOUTH</initSide>
            <initIndex>0</initIndex>
        </toolView>

        <toolView>
            <id>org.esa.beam.visat.toolviews.nav.NavigationToolView</id>
            <class>org.esa.beam.visat.toolviews.nav.NavigationToolView</class>
            <title>Navigation</title>
            <mnemonic>N</mnemonic>
            <accelerator>ctrl alt N</accelerator>
            <description>Zoom and pan a selected image view.</description>
            <smallIcon>/org/esa/beam/resources/images/icons/Navigation16.gif</smallIcon>
            <largeIcon>/org/esa/beam/resources/images/icons/Navigation24.gif</largeIcon>
            <helpId>showNavigationWnd</helpId>
            <initState>DOCKED</initState>
            <initSide>WEST</initSide>
            <initIndex>1</initIndex>
        </toolView>

        <toolView>
            <id>org.esa.beam.visat.toolviews.imageinfo.ColorManipulationToolView</id>
            <class>org.esa.beam.visat.toolviews.imageinfo.ColorManipulationToolView</class>
            <title>Colour Manipulation</title>
            <mnemonic>C</mnemonic>
            <accelerator>ctrl alt C</accelerator>
            <description>Image colour manipulation and enhancements.</description>
            <smallIcon>/org/esa/beam/resources/images/icons/ContrastStretch16.gif</smallIcon>
            <largeIcon>/org/esa/beam/resources/images/icons/ContrastStretch24.gif</largeIcon>
            <helpId>showColorManipulationWnd</helpId>
            <initState>DOCKED</initState>
            <initSide>WEST</initSide>
            <initIndex>1</initIndex>
        </toolView>

        <toolView>
            <id>org.esa.beam.visat.toolviews.imageinfo.UncertaintyVisualisationToolView</id>
            <class>org.esa.beam.visat.toolviews.imageinfo.UncertaintyVisualisationToolView</class>
            <title>Uncertainty Visualisation</title>
            <mnemonic>U</mnemonic>
            <accelerator>ctrl alt U</accelerator>
            <description>Image uncertainty visualisation.</description>
            <smallIcon>/org/esa/beam/resources/images/icons/UncertaintyStretch16.png</smallIcon>
            <largeIcon>/org/esa/beam/resources/images/icons/UncertaintyStretch24.png</largeIcon>
            <helpId>showUncertaintyManipulationWnd</helpId>
            <initState>DOCKED</initState>
            <initSide>WEST</initSide>
            <initIndex>1</initIndex>
        </toolView>

        <toolView>
            <id>org.esa.beam.visat.toolviews.layermanager.LayerManagerToolView</id>
            <class>org.esa.beam.visat.toolviews.layermanager.LayerManagerToolView</class>
            <title>Layer Manager</title>
            <mnemonic>L</mnemonic>
            <accelerator>ctrl alt L</accelerator>
            <description>Manage view layer visibility and transparency.</description>
            <smallIcon>/org/esa/beam/resources/images/icons/LayerManager16.png</smallIcon>
            <largeIcon>/org/esa/beam/resources/images/icons/LayerManager24.png</largeIcon>
            <helpId>showLayerManagerWnd</helpId>
            <!-- todo provide help -->
            <initState>HIDDEN</initState>
            <initSide>SOUTH</initSide>
            <initIndex>0</initIndex>
        </toolView>

        <toolView>
            <id>org.esa.beam.visat.toolviews.layermanager.LayerEditorToolView</id>
            <class>org.esa.beam.visat.toolviews.layermanager.LayerEditorToolView</class>
            <title>Layer Editor</title>
            <mnemonic>E</mnemonic>
            <accelerator>ctrl alt E</accelerator>
            <description>Edit layer properties.</description>
            <smallIcon>/org/esa/beam/resources/images/icons/LayerEditor16.png</smallIcon>
            <largeIcon>/org/esa/beam/resources/images/icons/LayerEditor24.png</largeIcon>
            <helpId>showLayerEditorWnd</helpId>
            <!-- todo provide help -->
            <initState>HIDDEN</initState>
            <initSide>SOUTH</initSide>
            <initIndex>0</initIndex>
        </toolView>
        <!--
                <toolView>
                    <id>org.esa.beam.visat.toolviews.mask.MaskViewerToolView</id>
                    <class>org.esa.beam.visat.toolviews.mask.MaskViewerToolView</class>
                    <title>Mask Overlays</title>
                    <mnemonic>B</mnemonic>
                    <accelerator>ctrl alt B</accelerator>
                    <description>Overlay binary data masks.</description>
                    <smallIcon>/org/esa/beam/resources/images/icons/BitmaskOverlay16.png</smallIcon>
                    <largeIcon>/org/esa/beam/resources/images/icons/BitmaskOverlay24.png</largeIcon>
                    <helpId>showMaskOverlayWnd</helpId>
                    <initState>HIDDEN</initState>
                    <initSide>SOUTH</initSide>
                    <initIndex>0</initIndex>
                </toolView>
        -->
        <toolView>
            <id>org.esa.beam.visat.toolviews.mask.MaskManagerToolView</id>
            <class>org.esa.beam.visat.toolviews.mask.MaskManagerToolView</class>
            <title>Mask Manager</title>
            <mnemonic>M</mnemonic>
            <accelerator>ctrl alt M</accelerator>
            <description>Manage binary data masks and ROIs.</description>
            <smallIcon>/org/esa/beam/resources/images/icons/MaskManager16.png</smallIcon>
            <largeIcon>/org/esa/beam/resources/images/icons/MaskManager24.png</largeIcon>
            <helpId>showMaskManagerWnd</helpId>
            <initState>HIDDEN</initState>
            <initSide>SOUTH</initSide>
            <initIndex>0</initIndex>
        </toolView>

        <toolView>
            <id>org.esa.beam.visat.toolviews.placemark.pin.PinManagerToolView</id>
            <class>org.esa.beam.visat.toolviews.placemark.pin.PinManagerToolView</class>
            <title>Pin Manager</title>
            <mnemonic>a</mnemonic>
            <accelerator>ctrl alt A</accelerator>
            <description>Manage pins of a data product.</description>
            <smallIcon>/org/esa/beam/resources/images/icons/PinManager16.gif</smallIcon>
            <largeIcon>/org/esa/beam/resources/images/icons/PinManager24.gif</largeIcon>
            <helpId>showPinManagerWnd</helpId>
            <initState>HIDDEN</initState>
            <initSide>SOUTH</initSide>
            <initIndex>0</initIndex>
        </toolView>

        <toolView>
            <id>org.esa.beam.visat.toolviews.placemark.gcp.GcpManagerToolView</id>
            <class>org.esa.beam.visat.toolviews.placemark.gcp.GcpManagerToolView</class>
            <title>GCP Manager</title>
            <mnemonic>c</mnemonic>
            <accelerator>ctrl alt G</accelerator>
            <description>Manage ground control points of a data product.</description>
            <smallIcon>/org/esa/beam/resources/images/icons/GcpManager16.gif</smallIcon>
            <largeIcon>/org/esa/beam/resources/images/icons/GcpManager24.gif</largeIcon>
            <helpId>showGcpManagerWnd</helpId>/
            <initState>HIDDEN</initState>
            <initSide>SOUTH</initSide>
            <initIndex>0</initIndex>
        </toolView>

        <toolView>
            <id>org.esa.beam.visat.toolviews.spectrum.SpectrumToolView</id>
            <class>org.esa.beam.visat.toolviews.spectrum.SpectrumToolView</class>
            <title>Spectrum View</title>
            <tabTitle>Spectrum</tabTitle>
            <mnemonic>S</mnemonic>
            <accelerator>ctrl alt S</accelerator>
            <description>Display spectra at the current pixel position and for pins.</description>
            <smallIcon>/org/esa/beam/resources/images/icons/Spectrum16.gif</smallIcon>
            <largeIcon>/org/esa/beam/resources/images/icons/Spectrum24.gif</largeIcon>
            <helpId>showSpectrumWnd</helpId>
            <initState>HIDDEN</initState>
            <initSide>SOUTH</initSide>
            <initIndex>0</initIndex>
        </toolView>

        <toolView>
            <id>org.esa.beam.visat.toolviews.stat.InformationToolView</id>
            <class>org.esa.beam.visat.toolviews.stat.InformationToolView</class>
            <title>Information View</title>
            <tabTitle>Information</tabTitle>
            <description>Display information for a selected band.</description>
            <smallIcon>/org/esa/beam/resources/images/icons/NodeInfo16.png</smallIcon>
            <largeIcon>/org/esa/beam/resources/images/icons/NodeInfo24.png</largeIcon>
            <helpId>informationDialog</helpId>
            <initState>HIDDEN</initState>
            <initSide>SOUTH</initSide>
            <initIndex>0</initIndex>
        </toolView>

        <toolView>
            <id>org.esa.beam.visat.toolviews.stat.GeoCodingToolView</id>
            <class>org.esa.beam.visat.toolviews.stat.GeoCodingToolView</class>
            <title>Geo-Coding View</title>
            <tabTitle>Geo-Coding</tabTitle>
            <description>Display Geo-Coding for a selected band.</description>
            <smallIcon>/org/esa/beam/resources/images/icons/PhiLam16.gif</smallIcon>
            <largeIcon>/org/esa/beam/resources/images/icons/PhiLam24.gif</largeIcon>
            <helpId>geoCodingInfoDialog</helpId>
            <initState>HIDDEN</initState>
            <initSide>SOUTH</initSide>
            <initIndex>0</initIndex>
        </toolView>
        <toolView>
            <id>org.esa.beam.visat.toolviews.stat.StatisticsToolView</id>
            <class>org.esa.beam.visat.toolviews.stat.StatisticsToolView</class>
            <title>Statistics View</title>
            <tabTitle>Statistics</tabTitle>
            <description>Display Statistics for a selected band.</description>
            <smallIcon>/org/esa/beam/resources/images/icons/Statistics16.gif</smallIcon>
            <largeIcon>/org/esa/beam/resources/images/icons/Statistics24.gif</largeIcon>
            <helpId>statisticsDialog</helpId>
            <initState>HIDDEN</initState>
            <initSide>SOUTH</initSide>
            <initIndex>0</initIndex>
        </toolView>
        <toolView>
            <id>org.esa.beam.visat.toolviews.stat.HistogramPlotToolView</id>
            <class>org.esa.beam.visat.toolviews.stat.HistogramPlotToolView</class>
            <title>Histogram View</title>
            <tabTitle>Histogram</tabTitle>
            <description>Display Histogram for a selected band.</description>
            <smallIcon>/org/esa/beam/resources/images/icons/Histogram16.gif</smallIcon>
            <largeIcon>/org/esa/beam/resources/images/icons/Histogram24.gif</largeIcon>
            <helpId>histogramDialog</helpId>
            <initState>HIDDEN</initState>
            <initSide>SOUTH</initSide>
            <initIndex>0</initIndex>
        </toolView>
        <toolView>
            <id>org.esa.beam.visat.toolviews.stat.DensityPlotToolView</id>
            <class>org.esa.beam.visat.toolviews.stat.DensityPlotToolView</class>
            <title>Scatter Plot View</title>
            <tabTitle>Scatter Plot</tabTitle>
            <description>Display Scatter Plot for two selected bands.</description>
            <smallIcon>/org/esa/beam/resources/images/icons/DensityPlot16.gif</smallIcon>
            <largeIcon>/org/esa/beam/resources/images/icons/DensityPlot24.gif</largeIcon>
            <helpId>densityPlotDialog</helpId>
            <initState>HIDDEN</initState>
            <initSide>SOUTH</initSide>
            <initIndex>0</initIndex>
        </toolView>
        <toolView>
            <id>org.esa.beam.visat.toolviews.stat.ScatterPlotToolView</id>
            <class>org.esa.beam.visat.toolviews.stat.ScatterPlotToolView</class>
            <title>Correlative Plot View</title>
            <tabTitle>Correlative Plot</tabTitle>
            <description>Display Correlative Plot for a selected band.</description>
            <smallIcon>/org/esa/beam/resources/images/icons/ScatterPlot16.gif</smallIcon>
            <largeIcon>/org/esa/beam/resources/images/icons/ScatterPlot24.gif</largeIcon>
            <helpId>correlativePlotDialog</helpId>
            <initState>HIDDEN</initState>
            <initSide>SOUTH</initSide>
            <initIndex>0</initIndex>
        </toolView>

        <toolView>
            <id>org.esa.beam.visat.toolviews.stat.ProfilePlotToolView</id>
            <class>org.esa.beam.visat.toolviews.stat.ProfilePlotToolView</class>
            <title>Profile Plot View</title>
            <tabTitle>Profile Plot</tabTitle>
            <description>Display Profile Plot for a selected band.</description>
            <smallIcon>/org/esa/beam/resources/images/icons/ProfilePlot16.gif</smallIcon>
            <largeIcon>/org/esa/beam/resources/images/icons/ProfilePlot24.gif</largeIcon>
            <helpId>profilePlotDialog</helpId>
            <initState>HIDDEN</initState>
            <initSide>SOUTH</initSide>
            <initIndex>0</initIndex>
        </toolView>

        <toolView>
            <id>org.esa.beam.visat.toolviews.worldmap.WorldMapToolView</id>
            <class>org.esa.beam.visat.toolviews.worldmap.WorldMapToolView</class>
            <title>World Map</title>
            <tabTitle>World Map</tabTitle>
            <mnemonic>W</mnemonic>
            <accelerator>ctrl alt W</accelerator>
            <description>Display product boundaries in a world map.</description>
            <smallIcon>/org/esa/beam/resources/images/icons/WorldMap16.gif</smallIcon>
            <largeIcon>/org/esa/beam/resources/images/icons/WorldMap24.gif</largeIcon>
            <helpId>showWorldMapWnd</helpId>
            <initState>HIDDEN</initState>
            <initSide>SOUTH</initSide>
            <initIndex>0</initIndex>
        </toolView>

        <toolView>
            <id>org.esa.beam.visat.toolviews.diag.TileCacheDiagnosisToolView</id>
            <class>org.esa.beam.visat.toolviews.diag.TileCacheDiagnosisToolView</class>
            <title>Tile Cache Diagnosis</title>
            <tabTitle>Tile Cache</tabTitle>
            <mnemonic>D</mnemonic>
            <accelerator>ctrl alt D</accelerator>
            <initState>HIDDEN</initState>
            <initSide>WEST</initSide>
            <initIndex>0</initIndex>
            <smallIcon>/org/esa/beam/resources/images/icons/TileCacheDiagnosis16.png</smallIcon>
            <largeIcon>/org/esa/beam/resources/images/icons/TileCacheDiagnosis24.png</largeIcon>
        </toolView>


    </extension>

    <extension point="snap-ui:actions">

        <!--####################-->
        <!-- File Menu          -->
        <!--####################-->

        <action>
            <parent>file</parent>
            <id>new</id>
            <placeFirst>true</placeFirst>
            <class>org.esa.beam.visat.actions.NewAction</class>
            <text>New Product</text>
            <mnemonic>N</mnemonic>
            <accelerator>control N</accelerator>
            <shortDescr>Create a new data product.</shortDescr>
            <smallIcon>icons/New16.gif</smallIcon>
            <largeIcon>icons/New24.gif</largeIcon>
            <helpId>new</helpId>
            <context>product</context>
        </action>

        <action>
            <parent>file</parent>
            <id>open</id>
            <placeAfter>new</placeAfter>
            <class>org.esa.beam.visat.actions.OpenAction</class>
            <text>Open Product...</text>
            <mnemonic>O</mnemonic>
            <accelerator>control O</accelerator>
            <shortDescr>Open a data product.</shortDescr>
            <smallIcon>icons/Open16.gif</smallIcon>
            <largeIcon>icons/Open24.gif</largeIcon>
            <helpId>open</helpId>
        </action>

        <action>
            <parent>file</parent>
            <id>openSession</id>
            <placeAfter>open</placeAfter>
            <class>org.esa.beam.visat.actions.session.OpenSessionAction</class>
            <text>Open Session...</text>
            <accelerator>shift control O</accelerator>
            <shortDescr>Open a BEAM session.</shortDescr>
            <helpId>openSession</helpId>
        </action>

        <action>
            <parent>file</parent>
            <id>reopen</id>
            <placeAfter>openSession</placeAfter>
            <class>org.esa.beam.visat.actions.ActionGroup</class>
            <text>Reopen</text>
            <mnemonic>R</mnemonic>
            <shortDescr>Re-open a data product.</shortDescr>
            <smallIcon>icons/History16.gif</smallIcon>
            <largeIcon>icons/History24.gif</largeIcon>
            <helpId>reopen</helpId>
        </action>

        <action>
            <parent>file</parent>
            <id>productGrabber</id>
            <placeAfter>reopen</placeAfter>
            <class>org.esa.beam.visat.actions.pgrab.ProductGrabberAction</class>
            <text>Product Grabber</text>
            <accelerator>shift control P</accelerator>
            <shortDescr>Opens the product grabber dialog to preview and open products.</shortDescr>
            <smallIcon>icons/RsProduct16.gif</smallIcon>
            <largeIcon>icons/RsProduct24.gif</largeIcon>
            <helpId>productGrabber</helpId>
        </action>

        <action>
            <parent>file</parent>
            <id>close</id>
            <placeAfter>productGrabber</placeAfter>
            <separatorBefore>true</separatorBefore>
            <class>org.esa.beam.visat.actions.CloseAction</class>
            <text>Close Product</text>
            <mnemonic>C</mnemonic>
            <accelerator>control W</accelerator>
            <shortDescr>Close an open data product.</shortDescr>
            <helpId>close</helpId>
            <context>product</context>
        </action>

        <action>
            <parent>file</parent>
            <id>closeSession</id>
            <placeAfter>close</placeAfter>
            <class>org.esa.beam.visat.actions.session.CloseSessionAction</class>
            <text>Close Session</text>
            <accelerator>shift control W</accelerator>
            <shortDescr>Close the current BEAM session.</shortDescr>
            <helpId>closeSession</helpId>
        </action>

        <action>
            <parent>file</parent>
            <id>save</id>
            <placeAfter>closeSession</placeAfter>
            <class>org.esa.beam.visat.actions.SaveAction</class>
            <text>Save Product</text>
            <mnemonic>S</mnemonic>
            <separatorBefore>true</separatorBefore>
            <shortDescr>Save a BEAM-DIMAP data product.</shortDescr>
            <accelerator>control S</accelerator>
            <smallIcon>icons/Save16.gif</smallIcon>
            <largeIcon>icons/Save24.gif</largeIcon>
            <helpId>save</helpId>
        </action>

        <action>
            <parent>file</parent>
            <id>saveAs</id>
            <placeAfter>save</placeAfter>
            <class>org.esa.beam.visat.actions.SaveAsAction</class>
            <text>Save Product As...</text>
            <mnemonic>A</mnemonic>
            <shortDescr>Save a BEAM-DIMAP data product with a different name.</shortDescr>
            <smallIcon>icons/SaveAs16.gif</smallIcon>
            <largeIcon>icons/SaveAs24.gif</largeIcon>
            <helpId>saveAs</helpId>
            <context>product</context>
        </action>

        <action>
            <parent>file</parent>
            <id>saveSession</id>
            <placeAfter>saveAs</placeAfter>
            <class>org.esa.beam.visat.actions.session.SaveSessionAction</class>
            <text>Save Session</text>
            <accelerator>shift control S</accelerator>
            <shortDescr>Save the current BEAM session.</shortDescr>
            <helpId>saveSession</helpId>
        </action>

        <action>
            <parent>file</parent>
            <id>saveSessionAs</id>
            <placeAfter>saveSession</placeAfter>
            <separatorAfter>true</separatorAfter>
            <class>org.esa.beam.visat.actions.session.SaveSessionAsAction</class>
            <text>Save Session As...</text>
            <shortDescr>Save the current BEAM session using a different name.</shortDescr>
            <helpId>saveSessionAs</helpId>
        </action>

        <action>
            <parent>file</parent>
            <id>importRasterData</id>
            <placeAfter>saveSessionAs</placeAfter>
            <class>org.esa.beam.visat.actions.ActionGroup</class>
            <text>Import Raster Data</text>
            <shortDescr>Import raster data</shortDescr>
            <helpId>importRasterData</helpId>
            <sortChildren>true</sortChildren>
        </action>

        <action>
            <parent>importRasterData</parent>
            <id>importSAR</id>
            <class>org.esa.beam.visat.actions.ActionGroup</class>
            <text>SAR Data</text>
            <shortDescr>Import SAR data</shortDescr>
            <helpId>importSAR</helpId>
            <sortChildren>true</sortChildren>
        </action>

        <action>
            <parent>importRasterData</parent>
            <id>importMultispectral</id>
            <class>org.esa.beam.visat.actions.ActionGroup</class>
            <text>Multispectral Data</text>
            <shortDescr>Import Multispectral data</shortDescr>
            <helpId>importMultispectral</helpId>
            <sortChildren>true</sortChildren>
        </action>

        <action>
            <parent>importRasterData</parent>
            <id>importFileFormats</id>
            <class>org.esa.beam.visat.actions.ActionGroup</class>
            <text>Generic Data</text>
            <shortDescr>Import Generic File Formats</shortDescr>
            <helpId>importFileFormats</helpId>
            <sortChildren>true</sortChildren>
        </action>

        <action>
            <parent>file</parent>
            <id>importVectorData</id>
            <placeAfter>importRasterData</placeAfter>
            <separatorAfter>true</separatorAfter>
            <class>org.esa.beam.visat.actions.ActionGroup</class>
            <text>Import Vector Data</text>
            <shortDescr>Import vector data</shortDescr>
            <helpId>importVectorData</helpId>
            <sortChildren>true</sortChildren>
        </action>

        <action>
            <parent>file</parent>
            <id>exit</id>
            <placeLast>true</placeLast>
            <placeAfter>export</placeAfter>
            <separatorBefore>true</separatorBefore>
            <class>org.esa.beam.visat.actions.ExitAction</class>
            <text>Exit</text>
            <mnemonic>x</mnemonic>
            <shortDescr>Exit the VISAT application.</shortDescr>
            <accelerator>alt F4</accelerator>
            <helpId>exit</helpId>
        </action>

        <!--####################-->
        <!-- Import Menu Group  -->
        <!--####################-->

        <action>
            <id>importShapefile</id>
            <class>org.esa.beam.visat.actions.ImportVectorDataNodeFromShapefileAction</class>
            <parent>importVectorData</parent>
            <text>ESRI Shapefile</text>
            <mnemonic>S</mnemonic>
            <shortDescr>Import geometry from ESRI Shapefile.</shortDescr>
            <helpId>importShapefile</helpId>
        </action>

        <action>
            <id>importSeaDASTrack</id>
            <class>org.esa.beam.visat.actions.ImportTrackAction</class>
            <text>SeaDAS 6.x Track</text>
            <parent>importVectorData</parent>
            <shortDescr>Import aSeaDAS 6.x track file.</shortDescr>
            <helpId>importSeaDASTrack</helpId>
        </action>

        <action>
            <id>importCSV</id>
            <class>org.esa.beam.visat.actions.ImportVectorDataNodeFromCsvAction</class>
            <text>CSV</text>
            <parent>importVectorData</parent>
            <shortDescr>Import geometry from CSV file.</shortDescr>
            <helpId>importCSV</helpId>
        </action>

        <action>
            <id>importMermaid</id>
            <class>org.esa.beam.visat.actions.ImportVectorDataNodeFromMermaidAction</class>
            <text>MERMAID Extraction File</text>
            <parent>importVectorData</parent>
            <shortDescr>Import data from a MERMAID extraction file.</shortDescr>
            <helpId>importMermaid</helpId>
        </action>

        <action>
            <parent>importRasterData</parent>
            <id>importDimapProduct</id>
            <class>org.esa.beam.visat.actions.ProductImportAction</class>
            <formatName>BEAM-DIMAP</formatName>
            <useAllFileFilter>false</useAllFileFilter>
            <mnemonic>D</mnemonic>
            <shortDescr>Import a BEAM-DIMAP data product or product subset.</shortDescr>
            <helpId>importDimapProduct</helpId>
        </action>

        <action>
            <parent>importRasterData</parent>
            <id>importImageProduct</id>
            <class>org.esa.beam.visat.actions.ProductImportAction</class>
            <formatName>IMAGE</formatName>
            <text>RGB-Image</text>
            <useAllFileFilter>false</useAllFileFilter>
            <shortDescr>Import a data product or product subset from an ordinary RGB image.</shortDescr>
            <helpId>importImageProduct</helpId>
        </action>

        <!--####################-->
        <!-- Export Menu Group  -->
        <!--####################-->


        <!--####################-->
        <!-- Export Raster Data Group  -->
        <!--####################-->

        <action>
            <parent>file</parent>
            <placeAfter>importVectorData</placeAfter>
            <id>exportRasterData</id>
            <class>org.esa.beam.visat.actions.ActionGroup</class>
            <text>Export Raster Data</text>
            <mnemonic>I</mnemonic>
            <shortDescr>Export Raster Data</shortDescr>
            <helpId>exportRasterData</helpId>
            <sortChildren>true</sortChildren>
        </action>

        <action>
            <id>exportDimapProduct</id>
            <class>org.esa.beam.visat.actions.ProductExportAction</class>
            <formatName>BEAM-DIMAP</formatName>
            <mnemonic>P</mnemonic>
            <shortDescr>Export the selected product to BEAM-DIMAP format.</shortDescr>
            <helpId>exportDimapProduct</helpId>
        </action>

        <!--####################-->
        <!-- Export Other Group  -->
        <!--####################-->

        <action>
            <parent>file</parent>
            <placeAfter>exportRasterData</placeAfter>
            <id>exportOther</id>
            <class>org.esa.beam.visat.actions.ActionGroup</class>
            <text>Other Exports</text>
            <shortDescr>Other Exports</shortDescr>
            <helpId>exportOther</helpId>
            <sortChildren>true</sortChildren>
        </action>

        <action>
            <parent>exportOther</parent>
            <id>exportImageFile</id>
            <class>org.esa.beam.visat.actions.ExportImageAction</class>
            <text>View as Image</text>
            <mnemonic>I</mnemonic>
            <shortDescr>Export the current view as an image.</shortDescr>
            <context>image</context>
            <popuptext>Export View as Image...</popuptext>
            <helpId>exportImageFile</helpId>
        </action>

        <action>
            <parent>exportOther</parent>
            <id>exportKmzFile</id>
            <class>org.esa.beam.visat.actions.ExportKmzFileAction</class>
            <text>View as Google Earth KMZ</text>
            <mnemonic>K</mnemonic>
            <shortDescr>Export the current view as Google Earth KMZ file.</shortDescr>
            <context>image</context>
            <popuptext>Export View as Google Earth KMZ...</popuptext>
            <helpId>exportKmzFile</helpId>
        </action>

        <action>
            <parent>exportOther</parent>
            <id>exportLegendImageFile</id>
            <class>org.esa.beam.visat.actions.ExportLegendImageAction</class>
            <text>Colour Legend as Image</text>
            <mnemonic>C</mnemonic>
            <shortDescr>Export the colour legend of the current view as an image.</shortDescr>
            <context>image</context>
            <popuptext>Export Colour Legend as Image...</popuptext>
            <helpId>exportLegendImageFile</helpId>
        </action>

        <action>
            <parent>exportOther</parent>
            <id>exportColorPalette</id>
            <class>org.esa.beam.visat.actions.ExportColorPaletteAction</class>
            <text>Colour Palette as File</text>
            <mnemonic>a</mnemonic>
            <shortDescr>Export the colour palette of the current view to a plain text.</shortDescr>
            <context>image</context>
            <popuptext>Export Colour Palette as File...</popuptext>
            <helpId>exportColorPalette</helpId>
        </action>

        <action>
            <parent>exportOther</parent>
            <id>exportMaskPixels</id>
            <class>org.esa.beam.visat.actions.ExportMaskPixelsAction</class>
            <text>Mask Pixels</text>
            <mnemonic>R</mnemonic>
            <shortDescr>Export the pixels of a mask as tab-separated text.</shortDescr>
            <context>image</context>
            <popuptext>Export Mask Pixels...</popuptext>
            <helpId>exportMaskPixels</helpId>
        </action>

        <action>
            <parent>exportOther</parent>
            <id>exportTransectPixels</id>
            <class>org.esa.beam.visat.actions.ExportTransectPixelsAction</class>
            <text>Transect Pixels</text>
            <mnemonic>T</mnemonic>
            <shortDescr>Export transect pixels as tab-separated text.</shortDescr>
            <context>image</context>
            <popuptext>Export Transect Pixels...</popuptext>
            <helpId>exportTransectPixels</helpId>
        </action>

        <action>
            <parent>exportOther</parent>
            <id>exportMetadata</id>
            <class>org.esa.beam.visat.actions.ExportMetadataAction</class>
            <text>Product Metadata</text>
            <mnemonic>M</mnemonic>
            <shortDescr>Export the currently displayed metadata as tab-separated text.</shortDescr>
            <context>metadata</context>
            <popuptext>Export Product Metadata...</popuptext>
            <helpId>exportMetadata</helpId>
        </action>

        <action>
            <parent>exportOther</parent>
            <id>exportGeometry</id>
            <class>org.esa.beam.visat.actions.ExportGeometryAction</class>
            <text>Geometry as Shapefile</text>
            <mnemonic>M</mnemonic>
            <description>Exports the currently selected geometry as ESRI Shapefile.</description>
            <context>vectorDataNode</context>
            <popuptext>Export Geometry as Shapefile...</popuptext>
            <helpId>exportShapefile</helpId>
        </action>

        <action>
            <parent>exportOther</parent>
            <id>exportEnviGcpFile</id>
            <class>org.esa.beam.visat.actions.ExportEnviGcpFileAction</class>
            <text>Geo-Coding as ENVI GCP File</text>
            <mnemonic>G</mnemonic>
            <shortDescr>Export an ENVI GCP (ground control points) file for image registration.</shortDescr>
            <helpId>exportEnviGcpFile</helpId>
        </action>

        <!-- Edit ################################################################################################# -->

        <action>
            <parent>edit</parent>
            <id>properties</id>
            <placeBefore>preferences</placeBefore>
            <text>Properties...</text>
            <class>org.esa.beam.visat.actions.PropertiesAction</class>
            <mnemonic>e</mnemonic>
            <shortDescr>Edit properties of the selected object.</shortDescr>
            <smallIcon>icons/Properties16.gif</smallIcon>
            <largeIcon>icons/Properties24.gif</largeIcon>
            <helpId>showPropertyEditor</helpId>
            <context>product,band,tiepointgrid</context>
            <placeAtContextTop>true</placeAtContextTop>
        </action>

        <action>
            <parent>edit</parent>
            <id>preferences</id>
            <text>Preferences...</text>
            <separatorBefore>true</separatorBefore>
            <placeAfter>properties</placeAfter>
            <class>org.esa.beam.visat.actions.PreferencesAction</class>
            <mnemonic>P</mnemonic>
            <accelerator>alt P</accelerator>
            <shortDescr>Edit user preferences.</shortDescr>
            <smallIcon>icons/Preferences16.gif</smallIcon>
            <largeIcon>icons/Preferences24.gif</largeIcon>
            <helpId>preferences</helpId>
        </action>


        <!-- View ################################################################################################# -->

        <action>
            <parent>view</parent>
            <id>showToolViews</id>
            <placeFirst>true</placeFirst>
            <text>Tool Windows</text>
            <class>org.esa.beam.visat.actions.ActionGroup</class>
            <shortDescr>Toggle visibility of various tool windows</shortDescr>
            <sortChildren>true</sortChildren>
        </action>

        <action>
            <parent>view</parent>
            <id>layoutToolViews</id>
            <placeAfter>showToolViews</placeAfter>
            <text>Tool Window Layout</text>
            <class>org.esa.beam.visat.actions.ActionGroup</class>
            <mnemonic>L</mnemonic>
            <shortDescr>Manage the position, size and docking state of tool windows.</shortDescr>
        </action>

        <action>
            <parent>view</parent>
            <id>toolBars</id>
            <placeAfter>layoutToolViews</placeAfter>
            <text>Tool Bars</text>
            <class>org.esa.beam.visat.actions.ActionGroup</class>
            <mnemonic>T</mnemonic>
            <shortDescr>Toggle tool bars visibility</shortDescr>
            <helpId>toolBars</helpId>
        </action>

        <action>
            <parent>view</parent>
            <id>showStatusBar</id>
            <placeAfter>toolBars</placeAfter>
            <separatorAfter>true</separatorAfter>
            <text>Status Bar</text>
            <class>org.esa.beam.visat.actions.ShowStatusBarAction</class>
            <mnemonic>S</mnemonic>
            <selected>true</selected>
            <toggle>true</toggle>
            <shortDescr>Toggle visibility of the status bar.</shortDescr>
            <helpId>showStatusBar</helpId>
        </action>

        <!-- View / Tool Window Layout / ... ==================================================================== -->

        <action>
            <parent>layoutToolViews</parent>
            <id>loadUserLayout</id>
            <placeFirst>true</placeFirst>
            <text>Load User Layout</text>
            <class>org.esa.beam.visat.actions.layout.LoadUserLayoutAction</class>
            <shortDescr>Load the user layout.</shortDescr>
        </action>

        <action>
            <parent>layoutToolViews</parent>
            <id>saveAsUserLayout</id>
            <placeAfter>loadUserLayout</placeAfter>
            <text>Save as User Layout</text>
            <class>org.esa.beam.visat.actions.layout.SaveAsUserLayoutAction</class>
            <shortDescr>Save the current layout as user layout.</shortDescr>
        </action>

        <action>
            <parent>layoutToolViews</parent>
            <id>resetLayout</id>
            <placeAfter>saveAsUserLayout</placeAfter>
            <text>Reset to Default Layout</text>
            <class>org.esa.beam.visat.actions.layout.ResetLayoutAction</class>
            <shortDescr>Reset to initial layout.</shortDescr>
        </action>

        <!-- View / (Show) ... Tool Bar ========================================================================= -->

        <action>
            <parent>toolBars</parent>
            <id>showStandardToolBar</id>
            <placeFirst>true</placeFirst>
            <text>Standard Tool Bar</text>
            <class>org.esa.beam.visat.actions.ShowToolBarAction</class>
            <context>mainToolBar</context>
            <mnemonic>S</mnemonic>
            <selected>true</selected>
            <toggle>true</toggle>
            <shortDescr>Toggle visibility of the standard tool bar.</shortDescr>
            <helpId>showStandardToolBar</helpId>
        </action>

        <action>
            <parent>toolBars</parent>
            <id>showAnalysisToolBar</id>
            <placeAfter>showStandardToolBar</placeAfter>
            <text>Analysis Tool Bar</text>
            <class>org.esa.beam.visat.actions.ShowToolBarAction</class>
            <context>analysisToolBar</context>
            <mnemonic>A</mnemonic>
            <placeBefore>showLayersToolBar</placeBefore>
            <selected>true</selected>
            <toggle>true</toggle>
            <shortDescr>Toggle visibility of the analysis tool bar.</shortDescr>
            <helpId>showAnalysisToolBar</helpId>
        </action>

        <action>
            <parent>toolBars</parent>
            <id>showLayersToolBar</id>
            <placeAfter>showAnalysisToolBar</placeAfter>
            <text>Layers Tool Bar</text>
            <class>org.esa.beam.visat.actions.ShowToolBarAction</class>
            <context>layersToolBar</context>
            <mnemonic>L</mnemonic>
            <selected>true</selected>
            <toggle>true</toggle>
            <shortDescr>Toggle visibility of the layers tool bar.</shortDescr>
            <helpId>showLayersToolBar</helpId>
        </action>

        <action>
            <parent>toolBars</parent>
            <id>showToolsToolBar</id>
            <placeAfter>showLayersToolBar</placeAfter>
            <text>Tools Tool Bar</text>
            <class>org.esa.beam.visat.actions.ShowToolBarAction</class>
            <context>toolsToolBar</context>
            <mnemonic>T</mnemonic>
            <selected>true</selected>
            <toggle>true</toggle>
            <shortDescr>Toggle visibility of the tools tool bar.</shortDescr>
            <helpId>showToolsToolBar</helpId>
        </action>

        <action>
            <parent>toolBars</parent>
            <id>showViewsToolBar</id>
            <placeAfter>showToolsToolBar</placeAfter>
            <text>Views Tool Bar</text>
            <class>org.esa.beam.visat.actions.ShowToolBarAction</class>
            <context>viewsToolBar</context>
            <mnemonic>V</mnemonic>
            <selected>true</selected>
            <toggle>true</toggle>
            <shortDescr>Toggle visibility of the views tool bar.</shortDescr>
            <helpId>showViewsToolBar</helpId>
        </action>

        <!-- View / Open ... View ================================================================================ -->

        <action>
            <parent>view</parent>
            <id>showImageView</id>
            <placeAfter>showStatusBar</placeAfter>
            <separatorBefore>true</separatorBefore>
            <text>Open Image View</text>
            <class>org.esa.beam.visat.actions.ShowImageViewAction</class>
            <mnemonic>I</mnemonic>
            <accellerator>control alt I</accellerator>
            <shortDescr>Open an image view for the selected band or tie-point grid.</shortDescr>
            <context>band,tiePointGrid</context>
            <smallIcon>icons/ImageView16.gif</smallIcon>
            <largeIcon>icons/ImageView24.gif</largeIcon>
            <helpId>imageView</helpId>
        </action>

        <action>
            <parent>view</parent>
            <id>showImageViewRGB</id>
            <placeAfter>showImageView</placeAfter>
            <text>Open RGB Image View...</text>
            <class>org.esa.beam.visat.actions.ShowImageViewRGBAction</class>
            <mnemonic>R</mnemonic>
            <accellerator>control alt G</accellerator>
            <shortDescr>Open an RGB image view for the selected product.</shortDescr>
            <context>product</context>
            <smallIcon>icons/ImageView16.gif</smallIcon>
            <largeIcon>icons/ImageView24.gif</largeIcon>
            <helpId>rgbImageProfile</helpId>
        </action>

        <action>
            <parent>view</parent>
            <id>showMetadataView</id>
            <placeAfter>showImageViewRGB</placeAfter>
            <text>Open Metadata View</text>
            <class>org.esa.beam.visat.actions.ShowMetadataViewAction</class>
            <mnemonic>M</mnemonic>
            <accellerator>control alt M</accellerator>
            <shortDescr>Open a metadata view for the selected metadata node.</shortDescr>
            <context>metadataNode</context>
            <smallIcon>icons/ImageView16.gif</smallIcon>
            <largeIcon>icons/ImageView24.gif</largeIcon>
        </action>

        <action>
            <parent>view</parent>
            <id>showPlacemarkView</id>
            <placeAfter>showMetadataView</placeAfter>
            <text>Open Placemark View</text>
            <class>org.esa.beam.visat.actions.ShowPlacemarkViewAction</class>
            <mnemonic>P</mnemonic>
            <accellerator>control alt P</accellerator>
            <shortDescr>Open a placemark view for the selected metadata node.</shortDescr>
            <context>vectorDataNode</context>
            <smallIcon>icons/RsVectorData16.gif</smallIcon>
        </action>

        <!-- View / Show ... Overlay ============================================================================== -->

        <action>
            <parent>view</parent>
            <id>showNoDataOverlay</id>
            <placeAfter>showPlacemarkView</placeAfter>
            <separatorBefore>true</separatorBefore>
            <text>Show No-Data Overlay</text>
            <class>org.esa.beam.visat.actions.ShowNoDataOverlayAction</class>
            <toggle>true</toggle>
            <shortDescr>Show/hide no-data overlay for the selected image</shortDescr>
            <context>image</context>
            <smallIcon>icons/NoDataOverlay16.gif</smallIcon>
            <largeIcon>icons/NoDataOverlay24.gif</largeIcon>
            <helpId>noDataOverlay</helpId>
        </action>

        <action>
            <parent>view</parent>
            <id>showShapeOverlay</id>
            <placeAfter>showNoDataOverlay</placeAfter>
            <text>Show Geometry Overlay</text>
            <class>org.esa.beam.visat.actions.ShowGeometryOverlayAction</class>
            <toggle>true</toggle>
            <mnemonic>O</mnemonic>
            <shortDescr>Show/hide geometry overlay for the selected image</shortDescr>
            <context>image</context>
            <smallIcon>icons/ShapeOverlay16.gif</smallIcon>
            <largeIcon>icons/ShapeOverlay24.gif</largeIcon>
            <helpId>showShapeOverlay</helpId>
        </action>

        <action>
            <parent>view</parent>
            <id>showGraticuleOverlay</id>
            <placeAfter>showShapeOverlay</placeAfter>
            <text>Show Graticule Overlay</text>
            <class>org.esa.beam.visat.actions.ShowGraticuleOverlayAction</class>
            <toggle>true</toggle>
            <mnemonic>G</mnemonic>
            <shortDescr>Show/hide graticule overlay for the selected image</shortDescr>
            <context>image</context>
            <smallIcon>icons/GraticuleOverlay16.gif</smallIcon>
            <largeIcon>icons/GraticuleOverlay24.gif</largeIcon>
            <helpId>showGraticuleOverlay</helpId>
        </action>

        <action>
            <parent>view</parent>
            <id>showPinOverlay</id>
            <placeAfter>showGraticuleOverlay</placeAfter>
            <text>Show Pin Overlay</text>
            <class>org.esa.beam.visat.actions.ShowPinOverlayAction</class>
            <toggle>true</toggle>
            <shortDescr>Show/hide pin overlay for the selected image</shortDescr>
            <smallIcon>icons/PinOverlay16.gif</smallIcon>
            <largeIcon>icons/PinOverlay24.gif</largeIcon>
            <context>image</context>
            <helpId>showPinOverlay</helpId>
        </action>

        <action>
            <parent>view</parent>
            <id>showGcpOverlay</id>
            <placeAfter>showPinOverlay</placeAfter>
            <text>Show GCP Overlay</text>
            <class>org.esa.beam.visat.actions.ShowGcpOverlayAction</class>
            <toggle>true</toggle>
            <shortDescr>Show/hide GCP overlay for the selected image</shortDescr>
            <smallIcon>icons/GcpOverlay16.gif</smallIcon>
            <largeIcon>icons/GcpOverlay24.gif</largeIcon>
            <context>image</context>
            <helpId>showGcpOverlay</helpId>
        </action>

        <action>
            <parent>view</parent>
            <id>showWorldMapOverlay</id>
            <placeAfter>showGcpOverlay</placeAfter>
            <text>Show World Map Overlay</text>
            <class>org.esa.beam.visat.actions.ShowWorldMapOverlayAction</class>
            <toggle>true</toggle>
            <shortDescr>Show/hide World Map overlay for the selected image</shortDescr>
            <smallIcon>icons/WorldMapOverlay16.png</smallIcon>
            <largeIcon>icons/WorldMapOverlay24.png</largeIcon>
            <context>image</context>
            <helpId>showWorldMapOverlay</helpId>
        </action>

        <!-- Analysis ################################################################################################ -->

        <!--
            The Analysis menu is filled programmatically by the VisatApp class
        -->

        <!-- Tools ################################################################################################ -->

        <action>
            <parent>tools</parent>
            <id>bandArithmetic</id>
            <placeFirst>true</placeFirst>
            <text>Create Band from Math Expression...</text>
            <class>org.esa.beam.visat.actions.BandMathsAction</class>
            <shortDescr>Create a new band using an arbitrary mathematical expression</shortDescr>
            <context>image,band,tiePointGrid</context>
            <smallIcon>icons/BAritmethic16.gif</smallIcon>
            <largeIcon>icons/BAritmethic24.gif</largeIcon>
            <helpId>bandArithmetic</helpId>
        </action>

        <action>
            <parent>tools</parent>
            <id>createFilteredBand</id>
            <placeAfter>bandArithmetic</placeAfter>
            <text>Create Filtered Band...</text>
            <class>org.esa.beam.visat.actions.imgfilter.CreateFilteredBandAction</class>
            <shortDescr>Applies a filter to the currently selected band and adds it as a new band.</shortDescr>
            <context>band</context>
            <helpId>createFilteredBand</helpId>
        </action>

        <action>
            <parent>tools</parent>
            <id>convertComputedBand2Band</id>
            <placeAfter>createFilteredBand</placeAfter>
            <text>Convert Computed Band</text>
            <class>org.esa.beam.visat.actions.ConvertComputedBandIntoBandAction</class>
            <shortDescr>Computes a "real" band from a virtual band or filtered band</shortDescr>
            <context>virtualBand</context>
            <helpId>convertComputedBand2Band</helpId>
        </action>

        <action>
            <parent>tools</parent>
            <id>createDemRelatedBands</id>
            <text>Create Elevation Bands from DEM...</text>
            <placeAfter>convertComputedBand2Band</placeAfter>
            <class>org.esa.beam.visat.actions.CreateDemRelatedBandsAction</class>
            <shortDescr>Creates DEM elevation and optionally DEM-corrected lat/lon bands from a selected DEM
            </shortDescr>
            <context>product</context>
            <helpId>createDemRelatedBands</helpId>
        </action>

        <action>
            <parent>tools</parent>
            <id>createXYDisplacementBandsAction</id>
            <placeAfter>createDemRelatedBands</placeAfter>
            <text>Create Geo-Coding Displacement Bands...</text>
            <class>org.esa.beam.visat.actions.CreateGeoCodingDisplacementBandsAction</class>
            <shortDescr>&lt;html&gt;Computes actual pixel position minus pixel position computed from inverse
                geo-coding&lt;br/&gt;
                and adds displacements as new bands (test for geo-coding accuracy).
            </shortDescr>
            <context>createXYDisplacementBandsAction</context>
            <helpId>createXYDisplacementBandsAction</helpId>
        </action>

        <action>
            <parent>tools</parent>
            <id>createAsarNrcsBands</id>
            <placeAfter>createXYDisplacementBandsAction</placeAfter>
            <text>Create NRCS Bands (ASAR)...</text>
            <class>org.esa.beam.visat.actions.CreateAsarNrcsBandsAction</class>
            <mnemonic>N</mnemonic>
            <shortDescr>Computes ASAR Normalised Radar Cross Section bands.</shortDescr>
            <helpId>createAsarNrcsBands</helpId>
        </action>

        <!-- Tools / ... Pixel Geo-Coding... ===================================================================== -->

        <action>
            <parent>tools</parent>
            <id>attachPixelGeoCoding</id>
            <placeAfter>createAsarNrcsBands</placeAfter>
            <placeBefore>detachPixelGeoCoding</placeBefore>
            <separatorBefore>true</separatorBefore>
            <text>Attach Pixel Geo-Coding...</text>
            <class>org.esa.beam.visat.actions.AttachPixelGeoCodingAction</class>
            <shortDescr>Attach a pixel based geo-coding to the selected product</shortDescr>
            <context>attachPixelGeoCoding</context>
            <helpId>attachPixelGeoCoding</helpId>
        </action>

        <action>
            <parent>tools</parent>
            <id>detachPixelGeoCoding</id>
            <placeAfter>attachPixelGeoCoding</placeAfter>
            <separatorAfter>true</separatorAfter>
            <text>Detach Pixel Geo-Coding...</text>
            <class>org.esa.beam.visat.actions.DetachPixelGeoCodingAction</class>
            <shortDescr>Detach a pixel based geo-coding from the selected product</shortDescr>
            <context>detachPixelGeoCoding</context>
            <helpId>detachPixelGeoCoding</helpId>
        </action>

        <!-- ==================================================================================================== -->

        <action>
            <parent>tools</parent>
            <id>createVectorDataNode</id>
            <placeAfter>detachPixelGeoCoding</placeAfter>
            <text>Create Vector Data Container...</text>
            <class>org.esa.beam.visat.actions.CreateVectorDataNodeAction</class>
            <shortDescr>Create a new vector data container for drawing line and polygons.</shortDescr>
            <smallIcon>icons/NewVectorDataNode16.gif</smallIcon>
            <largeIcon>icons/NewVectorDataNode24.gif</largeIcon>
            <helpId>createVectorDataNode</helpId>
            <context>product</context>
        </action>

        <action>
            <parent>tools</parent>
            <id>showGeometryAsWkt</id>
            <placeAfter>createVectorDataNode</placeAfter>
            <text>WKT from Geometry...</text>
            <class>org.esa.beam.visat.actions.ShowGeometryWktAction</class>
            <popuptext>WKT from Geometry...</popuptext>
            <shortDescr>Get the well-known-text (WKT) representation of a selected geometry.</shortDescr>
            <context>image</context>
            <helpId>showGeometryAsWkt</helpId>
        </action>

        <action>
            <parent>tools</parent>
            <id>insertWktAsGeometry</id>
            <placeAfter>showGeometryAsWkt</placeAfter>
            <text>Geometry from WKT...</text>
            <class>org.esa.beam.visat.actions.InsertWktGeometryAction</class>
            <popuptext>Geometry from WKT...</popuptext>
            <shortDescr>Creates a geomtry from well-known-text (WKT) representation.</shortDescr>
            <context>image</context>
            <helpId>insertWktAsGeometry</helpId>
        </action>

        <action>
            <parent>tools</parent>
            <id>computeMaskArea</id>
            <placeAfter>insertWktAsGeometry</placeAfter>
            <text>Compute Mask Area...</text>
            <class>org.esa.beam.visat.actions.ComputeMaskAreaAction</class>
            <shortDescr>Displays information about the spatial area of the mask.</shortDescr>
            <helpId>computeMaskArea</helpId>
        </action>

        <!-- Processing ########################################################################################## -->

        <action>
            <parent>processing</parent>
            <id>processing.preProcessing</id>
            <placeFirst>true</placeFirst>
            <text>Pre-Processing</text>
            <shortDescr>Group of Pre-Processing Steps</shortDescr>
            <class>org.esa.beam.visat.actions.ActionGroup</class>
            <mnemonic>C</mnemonic>
        </action>

        <action>
            <parent>processing</parent>
            <id>processing.thematicWater</id>
            <placeAfter>processing.preProcessing</placeAfter>
            <text>Thematic Water Processing</text>
            <shortDescr>Group of Thematic Water Processing Steps</shortDescr>
            <class>org.esa.beam.visat.actions.ActionGroup</class>
            <mnemonic>W</mnemonic>
        </action>

        <action>
            <parent>processing</parent>
            <id>processing.thematicLand</id>
            <placeAfter>processing.thematicWater</placeAfter>
            <text>Thematic Land Processing</text>
            <shortDescr>Group of Thematic Land Processing Steps</shortDescr>
            <class>org.esa.beam.visat.actions.ActionGroup</class>
            <mnemonic>L</mnemonic>
        </action>

        <action>
            <parent>processing</parent>
            <id>processing.imageAnalysis</id>
            <placeAfter>processing.thematicLand</placeAfter>
            <text>Image Analysis</text>
            <shortDescr>Group of Image Analysis Processing Steps</shortDescr>
            <class>org.esa.beam.visat.actions.ActionGroup</class>
            <mnemonic>A</mnemonic>
        </action>

        <action>
            <parent>processing</parent>
            <id>processing.geomOperations</id>
            <placeAfter>processing.imageAnalysis</placeAfter>
            <separatorAfter>true</separatorAfter>
            <text>Geometric Operations</text>
            <shortDescr>Group of Geometric Processing Steps</shortDescr>
            <class>org.esa.beam.visat.actions.ActionGroup</class>
            <mnemonic>G</mnemonic>
        </action>

        <!-- Processing / Geometric Operations  ======================================================= -->

        <action>
            <parent>processing.geomOperations</parent>
            <id>reprojectionAction</id>
            <placeFirst>true</placeFirst>
            <class>org.esa.beam.gpf.operators.reproject.ReprojectionAction</class>
            <text>Reprojection...</text>
            <shortDescr>Apply a reprojection.</shortDescr>
            <helpId>reprojectionAction</helpId>
        </action>

        <action>
            <parent>processing.geomOperations</parent>
            <id>orthorectificationAction</id>
            <placeAfter>reprojectionAction</placeAfter>
            <text>Orthorectification...</text>
            <class>org.esa.beam.gpf.operators.reproject.OrthorectificationAction</class>
            <shortDescr>Apply an orthorectification.</shortDescr>
            <helpId>orthorectificationAction</helpId>
        </action>

        <action>
            <parent>processing.geomOperations</parent>
            <id>mosaicAction</id>
            <placeAfter>orthorectificationAction</placeAfter>
            <text>Mosaicing...</text>
            <class>org.esa.beam.gpf.operators.mosaic.MosaicAction</class>
            <shortDescr>Create a mosaic of multiple products.</shortDescr>
            <helpId>mosaicAction</helpId>
        </action>

        <action>
            <parent>processing.geomOperations</parent>
            <id>createSubsetFromView</id>
            <placeAfter>mosaicAction</placeAfter>
            <text>Spatial Subset from View...</text>
            <class>org.esa.beam.visat.actions.CreateSubsetFromViewAction</class>
            <shortDescr>Creates a product subset from the selected view.</shortDescr>
            <context>image</context>
            <helpId>subsetFromView</helpId>
        </action>

        <action>
            <parent>processing.geomOperations</parent>
            <id>flipping</id>
            <placeAfter>createSubsetFromView</placeAfter>
            <text>Flipping...</text>
            <class>org.esa.beam.visat.actions.FlippingAction</class>
            <shortDescr>Apply Data Flip</shortDescr>
            <helpId>flipDialog</helpId>
        </action>

        <!-- Help ########################################################################################## -->

        <action>
            <parent>help</parent>
            <id>helpTopics</id>
            <placeFirst>true</placeFirst>
            <text>Help Topics</text>
            <class>org.esa.beam.visat.actions.HelpTopicsAction</class>
            <mnemonic>T</mnemonic>
            <accelerator>F1</accelerator>
            <separatorBefore>false</separatorBefore>
            <description>Opens the VISAT help browser.</description>
            <smallIcon>icons/Help16.png</smallIcon>
            <largeIcon>icons/Help22.png</largeIcon>
            <helpId>visat</helpId>
        </action>

        <action>
            <parent>help</parent>
            <id>showHomePage</id>
            <placeAfter>helpTopics</placeAfter>
            <text>Sentinel Home Page</text>
            <class>org.esa.beam.visat.actions.ShowHomePageAction</class>
            <mnemonic>B</mnemonic>
            <shortDescr>Opens the Sentinel home page with the default web browser.</shortDescr>
        </action>

        <action>
            <parent>help</parent>
            <id>showDataSources</id>
            <placeAfter>showHomePage</placeAfter>
            <text>Access to Data Products</text>
            <class>org.esa.beam.visat.actions.ShowDataSourcesAction</class>
            <mnemonic>D</mnemonic>
            <shortDescr>Provides information how different data products are accessed.</shortDescr>
            <helpId>showDataSources</helpId>
        </action>

        <action>
            <parent>help</parent>
            <id>showUpdateDialog</id>
            <placeAfter>showDataSources</placeAfter>
            <separatorBefore>true</separatorBefore>
            <text>Module Manager...</text>
            <class>org.esa.beam.visat.actions.ShowModuleManagerAction</class>
            <mnemonic>M</mnemonic>
            <shortDescr>Opens the module manager.</shortDescr>
            <helpId>moduleManager</helpId>
            <smallIcon>icons/ModuleManager16.png</smallIcon>
            <largeIcon>icons/ModuleManager22.png</largeIcon>
        </action>

        <action>
            <parent>help</parent>
            <id>about</id>
            <placeLast>true</placeLast>
            <separatorBefore>true</separatorBefore>
            <text>About SNAP</text>
            <class>org.esa.beam.visat.actions.AboutAction</class>
            <mnemonic>A</mnemonic>
            <accelerator>ctrl alt A</accelerator>
            <shortDescr>Displays information about SNAP.</shortDescr>
            <smallIcon>icons/About16.gif</smallIcon>
            <largeIcon>icons/About24.gif</largeIcon>
            <helpId>about</helpId>
        </action>

        <!-- Interactor Tools ##################################################################################### -->

        <action>
            <parent>tools</parent>
            <id>selectTool</id>
            <class>org.esa.beam.visat.actions.ToolAction</class>
            <interactor>com.bc.ceres.swing.figure.interactions.SelectionInteractor</interactor>
            <interactorListener>org.esa.beam.visat.actions.SelectionInteractorInterceptor</interactorListener>
            <text>Select</text>
            <shortDescr>Selection Tool</shortDescr>
            <largeIcon>icons/SelectTool24.gif</largeIcon>
            <selected>true</selected>
            <helpId>selectTool</helpId>
        </action>

        <action>
            <parent>tools</parent>
            <id>zoomTool</id>
            <class>org.esa.beam.visat.actions.ToolAction</class>
            <interactor>com.bc.ceres.swing.figure.interactions.ZoomInteractor</interactor>
            <placeAfter>selectTool</placeAfter>
            <text>Zoom</text>
            <shortDescr>Zooming Tool</shortDescr>
            <largeIcon>icons/ZoomTool24.gif</largeIcon>
            <selected>false</selected>
            <context>image</context>
            <helpId>zoomTool</helpId>
        </action>

        <action>
            <parent>tools</parent>
            <id>pannerTool</id>
            <class>org.esa.beam.visat.actions.ToolAction</class>
            <interactor>com.bc.ceres.swing.figure.interactions.PanInteractor</interactor>
            <placeAfter>zoomTool</placeAfter>
            <text>Pan</text>
            <shortDescr>Pan Tool</shortDescr>
            <largeIcon>icons/PannerTool24.gif</largeIcon>
            <selected>false</selected>
            <context>image</context>
            <helpId>panTool</helpId>
        </action>

        <action>
            <parent>tools</parent>
            <id>pinTool</id>
            <class>org.esa.beam.visat.actions.PlacemarkToolAction</class>
            <interactor>org.esa.beam.visat.toolviews.placemark.pin.InsertPinInteractor</interactor>
            <placeAfter>pannerTool</placeAfter>
            <text>Pin Tool</text>
            <shortDescr>Pin placing tool</shortDescr>
            <description>Sets, edits or deletes pins</description>
            <largeIcon>icons/PinTool24.gif</largeIcon>
            <selected>false</selected>
            <helpId>pinTool</helpId>
        </action>

        <action>
            <parent>tools</parent>
            <id>gcpTool</id>
            <class>org.esa.beam.visat.actions.PlacemarkToolAction</class>
            <interactor>org.esa.beam.visat.toolviews.placemark.gcp.InsertGcpInteractor</interactor>
            <placeAfter>pinTool</placeAfter>
            <placeBefore>drawLineTool</placeBefore>
            <text>GCP Tool</text>
            <shortDescr>Sets, edits or deletes ground control points</shortDescr>
            <largeIcon>icons/GcpTool24.gif</largeIcon>
            <selected>false</selected>
            <helpId>gcpTool</helpId>
        </action>

        <action>
            <parent>tools</parent>
            <id>drawLineTool</id>
            <class>org.esa.beam.visat.actions.ToolAction</class>
            <interactor>com.bc.ceres.swing.figure.interactions.InsertLineFigureInteractor</interactor>
            <interactorListener>org.esa.beam.visat.actions.InsertFigureInteractorInterceptor</interactorListener>
            <placeAfter>pinTool</placeAfter>
            <text>Draw Line</text>
            <shortDescr>Line drawing tool</shortDescr>
            <largeIcon>icons/DrawLineTool24.gif</largeIcon>
            <selected>false</selected>
            <context>image</context>
            <helpId>drawLineTool</helpId>
        </action>

        <action>
            <parent>tools</parent>
            <id>drawRectangleTool</id>
            <class>org.esa.beam.visat.actions.ToolAction</class>
            <interactor>com.bc.ceres.swing.figure.interactions.InsertRectangleFigureInteractor</interactor>
            <interactorListener>org.esa.beam.visat.actions.InsertFigureInteractorInterceptor</interactorListener>
            <placeAfter>drawLineTool</placeAfter>
            <text>Draw Rectangle</text>
            <shortDescr>Rectangle drawing tool</shortDescr>
            <largeIcon>icons/DrawRectangleTool24.gif</largeIcon>
            <context>image</context>
            <selected>false</selected>
            <helpId>drawRectangleTool</helpId>
        </action>

        <action>
            <parent>tools</parent>
            <id>drawEllipseTool</id>
            <class>org.esa.beam.visat.actions.ToolAction</class>
            <interactor>com.bc.ceres.swing.figure.interactions.InsertEllipseFigureInteractor</interactor>
            <interactorListener>org.esa.beam.visat.actions.InsertFigureInteractorInterceptor</interactorListener>
            <placeAfter>drawRectangleTool</placeAfter>
            <text>Draw Ellipse</text>
            <shortDescr>Ellipse drawing tool</shortDescr>
            <largeIcon>icons/DrawEllipseTool24.gif</largeIcon>
            <selected>false</selected>
            <context>image</context>
            <helpId>drawEllipseTool</helpId>
        </action>

        <action>
            <parent>tools</parent>
            <id>drawPolylineTool</id>
            <class>org.esa.beam.visat.actions.ToolAction</class>
            <interactor>com.bc.ceres.swing.figure.interactions.InsertPolylineFigureInteractor</interactor>
            <interactorListener>org.esa.beam.visat.actions.InsertFigureInteractorInterceptor</interactorListener>
            <placeAfter>drawEllipseTool</placeAfter>
            <text>Draw Polyline</text>
            <shortDescr>Polyline drawing tool</shortDescr>
            <largeIcon>icons/DrawPolylineTool24.gif</largeIcon>
            <selected>false</selected>
            <context>image</context>
            <helpId>drawPolylineTool</helpId>
        </action>

        <action>
            <parent>tools</parent>
            <id>drawPolygonTool</id>
            <class>org.esa.beam.visat.actions.ToolAction</class>
            <interactor>com.bc.ceres.swing.figure.interactions.InsertPolygonFigureInteractor</interactor>
            <interactorListener>org.esa.beam.visat.actions.InsertFigureInteractorInterceptor</interactorListener>
            <placeAfter>drawPolylineTool</placeAfter>
            <text>Draw Polygon</text>
            <shortDescr>Polygon drawing tool</shortDescr>
            <largeIcon>icons/DrawPolygonTool24.gif</largeIcon>
            <selected>false</selected>
            <context>image</context>
            <helpId>drawPolygonTool</helpId>
        </action>

        <action>
            <parent>tools</parent>
            <id>rangeFinder</id>
            <class>org.esa.beam.visat.actions.ToolAction</class>
            <interactor>org.esa.beam.visat.actions.rangefinder.RangeFinderInteractor</interactor>
            <placeAfter>selectTool</placeAfter>
            <text>Range Finder</text>
            <shortDescr>Determine the distance between two points</shortDescr>
            <largeIcon>icons/RangeFinder24.gif</largeIcon>
            <selected>false</selected>
            <context>image</context>
            <helpId>rangeFinder</helpId>
        </action>

        <action>
            <parent>tools</parent>
            <id>magicWandTool</id>
            <class>org.esa.beam.visat.actions.ToolAction</class>
            <interactor>org.esa.beam.visat.actions.masktools.MagicWandInteractor</interactor>
            <placeAfter>rangeFinder</placeAfter>
            <text>Magic Wand</text>
            <shortDescr>Creates a ROI mask using a magic wand</shortDescr>
            <largeIcon>/org/esa/beam/visat/actions/masktools/MagicWand22.png</largeIcon>
            <selected>false</selected>
            <context>image</context>
            <helpId>magicWandTool</helpId>
        </action>

    </extension>

    <!-- Test for the new actionGroups extension point introduced in BEAM 5 -->
    <extension point="snap-ui:actionGroups">
        <actionGroup>
            <id>__file__</id>
            <text>File</text>
            <mnemonic>F</mnemonic>
            <description>File menu</description>
            <items>
                <action>new</action>
                <separator/>
                <action>open</action>
                <action>save</action>
                <separator/>
                <action>exit</action>
            </items>
        </actionGroup>
    </extension>
</module>
