#
# uPlot Table
#
#   Contains the definitions used by uPlot module to build
#   and manage the plot.
#
#   For each "request", "view" and "visdef" block a service is
#   created in uPlotManager. In order not to create a service
#   add "manager = False" to the block
#

#-----------------------------------------------------------
# Defines the action, builder, decoder and view associated
# with a given request
#-----------------------------------------------------------

request,
	class		= PLOT_SUPERPAGE,
	action		= Create,
	builder        = PlotPageBuilder,
	view           = EmptyView

request,
	class 		= SUPERPAGE,
	action		= Plot,
        view           = None,
        manager        = False

request,
	class		= DROP,
	action		= Drop,
	builder		= DropBuilder,
        view           = None,
        manager        = False

request,
	class		= GRIB,
	action		= Create,
	builder		= DataBuilder,
	decoder		= GribDecoder,
	view        = GeoView

request,
   class    = RETRIEVE,
   action   = Create,
   builder  = DataBuilder,
   view     = GeoView,
   manager        = False

request,
	class		= GEOPOINTS,
	action		= Create,
	builder		= DataBuilder,
	decoder		= GeopointsDecoder,
	view        = GeoView

request,
	class		= BUFR,
	action		= Create,
	builder		= DataBuilder,
	decoder		= BufrDecoder,
	view        = GeoView

request,
   class    = NETCDF_GEO_POINTS,
   action   = Create,
   builder  = DataBuilder,
   decoder  = SimpleDecoder,
   view     = GeoView

request,
   class    = NETCDF_GEO_VECTORS,
   action   = Create,
   builder  = DataBuilder,
   decoder  = SimpleDecoder,
   view     = GeoView

request,
   class    = NETCDF_GEO_MATRIX,
   action   = Create,
   builder  = DataBuilder,
   decoder  = SimpleDecoder,
   view     = GeoView

request,
   class    = NETCDF_GEO_MATRIX_VECTORS,
   action   = Create,
   builder  = DataBuilder,
   decoder  = SimpleDecoder,
   view     = GeoView

request,
   class    = NETCDF_XY_MATRIX,
   action   = Create,
   builder  = DataBuilder,
   decoder  = SimpleDecoder,
   view     = CartesianView

request,
   class    = NETCDF_XY_MATRIX_VECTORS,
   action   = Create,
   builder  = DataBuilder,
   decoder  = SimpleDecoder,
   view     = CartesianView

request,
   class    = NETCDF_XY_VECTORS,
   action   = Create,
   builder  = DataBuilder,
   decoder  = SimpleDecoder,
   view     = CartesianView

request,
   class    = NETCDF_XY_POINTS,
   action   = Create,
   builder  = DataBuilder,
   decoder  = SimpleDecoder,
   view     = CartesianView

request,
   class    = NETCDF,
   action   = Create,
   builder  = DataBuilder,
   decoder  = SimpleDecoder,
   view     = CartesianView

request,
	class		= ODB_DB,
	action		= Create,
	builder		= DataBuilder,
	decoder		= SimpleDecoder,
        view        = GeoView,
        manager        = False

request,
	class		= ODB_VISUALISER,
	action		= Skip,
	builder		= None,
        view        = None,
        manager        = False

request,
	class		= ODB_GEO_POINTS,
	action		= Create,
	builder		= DataBuilder,
	decoder		= SimpleDecoder,
	view        = GeoView

request,
	class		= ODB_GEO_VECTORS,
	action		= Create,
	builder		= DataBuilder,
	decoder		= SimpleDecoder,
	view        = GeoView

request,
	class		= ODB_XY_POINTS,
	action		= Create,
	builder		= DataBuilder,
	decoder		= SimpleDecoder,
	view		= CartesianView

request,
	class		= ODB_XY_VECTORS,
	action		= Create,
	builder		= DataBuilder,
	decoder		= SimpleDecoder,
	view		= CartesianView

request,
	class		= ODB_XY_BINNING,
	action		= Create,
	builder		= DataBuilder,
	decoder		= SimpleDecoder,
	view		= CartesianView

request,
	class		= PRASTERLOOP,
	action		= Create,
	builder		= DataBuilder,
	decoder		= SimpleDecoder,
	view        = GeoView

request,
	class		= PRINTER_MANAGER,
	action		= OutputFormat,
	view		= None

request,
	class		= TABLE_HISTOGRAM,
	action		= Create,
	builder		= DataBuilder,
	decoder		= SimpleDecoder,
	view			= CartesianView

request,
	class		= TABLE_XY_POINTS,
	action		= Create,
	builder		= DataBuilder,
	decoder		= SimpleDecoder,
	view			= CartesianView

request,
	class		= TABLE_GEO_POINTS,
	action		= Create,
	builder		= DataBuilder,
	decoder		= SimpleDecoder,
	view        = GeoView

request,
	class		= TABLE_XY_VECTORS,
	action		= Create,
	builder		= DataBuilder,
	decoder		= SimpleDecoder,
	view			= CartesianView

request,
	class		= TABLE_GEO_VECTORS,
	action		= Create,
	builder		= DataBuilder,
	decoder		= SimpleDecoder,
	view        = GeoView

request,
	class		= TABLE_XY_BINNING,
	action		= Create,
	builder		= DataBuilder,
	decoder		= SimpleDecoder,
	view        = CartesianView

request,
	class		= TABLE_GEO_BINNING,
	action		= Create,
	builder		= DataBuilder,
	decoder		= SimpleDecoder,
	view        = GeoView

request,
	class		= TABLE_XY_BOXES,
	action		= Create,
	builder		= DataBuilder,
	decoder		= SimpleDecoder,
	view        = CartesianView

request,
	class		= TABLE_GEO_BOXES,
	action		= Create,
	builder		= DataBuilder,
	decoder		= SimpleDecoder,
	view        = GeoView

request,
	class		= TABLE_HOR_BAR,
	action		= Create,
	builder		= DataBuilder,
	decoder		= SimpleDecoder,
	view        = CartesianView

request,
	class		= TABLE_VER_BAR,
	action		= Create,
	builder		= DataBuilder,
	decoder		= SimpleDecoder,
	view        = CartesianView

request,
	class		= INPUT_HISTOGRAM,
	action		= Create,
	builder		= DataBuilder,
	decoder		= SimpleDecoder,
	view        = CartesianView

request,
	class		= INPUT_XY_POINTS,
	action		= Create,
	builder		= DataBuilder,
	decoder		= SimpleDecoder,
	view        = CartesianView

request,
	class		= INPUT_GEO_POINTS,
	action		= Create,
	builder		= DataBuilder,
	decoder		= SimpleDecoder,
	view        = GeoView

request,
	class		= INPUT_XY_VECTORS,
	action		= Create,
	builder		= DataBuilder,
	decoder		= SimpleDecoder,
	view        = CartesianView

request,
	class		= INPUT_GEO_VECTORS,
	action		= Create,
	builder		= DataBuilder,
	decoder		= SimpleDecoder,
	view        = GeoView

request,
	class		= INPUT_XY_BINNING,
	action		= Create,
	builder		= DataBuilder,
	decoder		= SimpleDecoder,
	view        = CartesianView

request,
	class		= INPUT_GEO_BINNING,
	action		= Create,
	builder		= DataBuilder,
	decoder		= SimpleDecoder,
	view        = GeoView

request,
    class       = INPUT_XY_BOXPLOT,
    action      = Create,
    builder     = DataBuilder,
    decoder     = SimpleDecoder,
    view        = CartesianView

request,
	class		= CLEAN,
	action		= Skip,
	builder		= None,
        view			= None,
        manager        = False

request,
    class       = REFRESH,
    action      = Skip,
    builder     = None,
    view        = None,
    manager        = False

request,
     class      = NEWPAGE,
     action     = Newpage,
     view       = None,
     manager        = False

request,
   class       = GRIB_VECTORS,
   action      = Create,
   builder     = DataBuilder,
   decoder     = SimpleDecoder,
   view        = GeoView

request,
   class       = ERROR,
   action      = Error,
   manager        = False

request,
   class       = WS_COLLECTION,
   action      = Create,
   builder     = None,
   decoder     = None,
   view        = GeoView

request,
   class       = WS_COLDFRONT,
   action      = Create,
   builder     = None,
   decoder     = None,
   view        = GeoView

request,
   class       = WS_CONVERGENCELINE,
   action      = Create,
   builder     = None,
   decoder     = None,
   view        = GeoView

request,
   class       = WS_HIGH,
   action      = Create,
   builder     = None,
   decoder     = None,
   view        = GeoView

request,
   class       = WS_IMAGE,
   action      = Create,
   builder     = None,
   decoder     = None,
   view        = GeoView

request,
   class       = WS_INSTABILITYLINE,
   action      = Create,
   builder     = None,
   decoder     = None,
   view        = GeoView

request,
   class       = WS_ITCZ,
   action      = Create,
   builder     = None,
   decoder     = None,
   view        = GeoView

request,
   class       = WS_ITTDISCONTINUITY,
   action      = Create,
   builder     = None,
   decoder     = None,
   view        = GeoView

request,
   class       = WS_LOW,
   action      = Create,
   builder     = None,
   decoder     = None,
   view        = GeoView

request,
   class       = WS_OCCLUDED,
   action      = Create,
   builder     = None,
   decoder     = None,
   view        = GeoView

request,
   class       = WS_QUASISTATIONARY,
   action      = Create,
   builder     = None,
   decoder     = None,
   view        = GeoView

request,
   class       = WS_PLACEMARK,
   action      = Create,
   builder     = None,
   decoder     = None,
   view        = GeoView

request,
   class       = WS_RIDGE,
   action      = Create,
   builder     = None,
   decoder     = None,
   view        = GeoView

request,
   class       = WS_MARKER,
   action      = Create,
   builder     = None,
   decoder     = None,
   view        = GeoView

request,
   class       = WS_SHAPE,
   action      = Create,
   builder     = None,
   decoder     = None,
   view        = GeoView

request,
   class       = WS_SHEARLINE,
   action      = Create,
   builder     = None,
   decoder     = None,
   view        = GeoView

request,
   class       = WS_STORM,
   action      = Create,
   builder     = None,
   decoder     = None,
   view        = GeoView

request,
   class       = WS_TEXT,
   action      = Create,
   builder     = None,
   decoder     = None,
   view        = GeoView

request,
   class       = WS_TROPICALWAVE,
   action      = Create,
   builder     = None,
   decoder     = None,
   view        = GeoView

request,
   class       = WS_TROUGH,
   action      = Create,
   builder     = None,
   decoder     = None,
   view        = GeoView

request,
   class       = WS_WARMFRONT,
   action      = Create,
   builder     = None,
   decoder     = None,
   view        = GeoView

request,
   class       = WS_WMOSYMBOL,
   action      = Create,
   builder     = None,
   decoder     = None,
   view        = GeoView

#--------------------------------------
#  View list
#--------------------------------------

view,
   class       = ANNOTATIONVIEW,
   name        = AnnotationView

view,
   class       = MAPVIEW,
   name        = MapView

view,
   class       = GEOVIEW,
   name        = GeoView

view,
   class       = CARTESIANVIEW,
   name        = CartesianView

view,
   class       = MXSECTIONVIEW,
   name        = XSectionView,
   service     = XSection

view,
   class       = MXAVERAGEVIEW,
   name        = AverageView,
   service     = XSection

view,
   class       = MVPROFILEVIEW,
   name        = VProfileView,
   service     = XSection

view,
   class       = MHOVMOELLERVIEW,
   name        = HovmoellerView,
   service     = Hovmoeller

view,
   class       = THERMOVIEW,
   name        = ThermoView,
   service     = Thermo

# Metview 3 Views for backawards compatibility
# They should be deleted in the future
view,
   class       = XSECTVIEW,
   name        = XSectM3View,
   service     = XSection

view,
   class       = AVERAGEVIEW,
   name        = AverageM3View,
   service     = XSection

view,
   class       = VERTPROFVIEW,
   name        = VertProfM3View,
   service     = XSection

view,
   class       = HOVMOELLERVIEW,
   name        = HovmoellerM3View,
   service     = Hovmoeller

#------------------------------------------
#  Data units: assigns the visdefs for a
#  given data type
#-------------------------------------------

dataunit,
   class         = GRIB,
   defaultVisDef = MCONT/MWIND,
   1D_VISDEF     = MCONT/PCONT,
   2D_VISDEF     = MWIND/PWIND,
   listVisDef    = MCONT/MWIND/PWIND/PCONT

dataunit,
   class         = READ,
   defaultVisDef = MCONT/MWIND,
   1D_VISDEF     = MCONT/PCONT,
   2D_VISDEF     = MWIND/PWIND,
   listVisDef    = MCONT/MWIND/PWIND/PCONT

dataunit,
   class         = GEOPOINTS,
   defaultVisDef = MSYMB/MWIND,
   1D_VISDEF     = MSYMB/PSYMB,
   2D_VISDEF     = MWIND,
   listVisDef    = MSYMB/MWIND/MGRAPH/PGRAPH/PSYMB

dataunit,
   class         = BUFR,
   defaultVisDef = MOBS,
   listVisDef    = MOBS

dataunit,
   class         = NETCDF,
   defaultVisDef = MSYMB,
   listVisDef    = MSYMB/MGRAPH/MCONT/MWIND/PSYMB/PGRAPH/PCONT/PWIND

dataunit,
   class         = NETCDF_GEO_POINTS,
   defaultVisDef = MSYMB,
   listVisDef    = MSYMB/MGRAPH/PGRAPH/PSYMB

dataunit,
   class         = NETCDF_GEO_VECTORS,
   defaultVisDef = MWIND,
   listVisDef    = MWIND/PWIND

dataunit,
   class         = NETCDF_GEO_MATRIX,   
   defaultVisDef = MCONT,
   listVisDef    = MCONT/PCONT

dataunit,
   class         = NETCDF_GEO_MATRIX_VECTORS,
   defaultVisDef = MWIND,
   listVisDef    = MWIND

dataunit,
   class         = NETCDF_XY_MATRIX,
   defaultVisDef = MCONT,
   listVisDef    = MCONT/PCONT/MWIND/PWIND

dataunit,
   class         = NETCDF_XY_MATRIX_VECTORS,
   defaultVisDef = MWIND,
   listVisDef    = MWIND

dataunit,
   class         = NETCDF_XY_VECTORS,
   defaultVisDef = MWIND,
   listVisDef    = MWIND/PWIND

dataunit,
   class         = NETCDF_XY_POINTS,
   defaultVisDef = MGRAPH,
   listVisDef    = MSYMB/MGRAPH/MTHERMO/PSYMB/PGRAPH

dataunit,
   class         = ODB_DB,
   defaultVisDef = MSYMB,
   listVisDef    = MSYMB/PSYMB/MGRAPH/PGRAPH/MWIND/PWIND

dataunit,
   class         = ODB_GEO_POINTS,
   defaultVisDef = MSYMB,
   listVisDef    = MSYMB/MGRAPH/PSYMB/PGRAPH

dataunit,
   class         = ODB_GEO_VECTORS,
   defaultVisDef = MWIND,
   listVisDef    = MWIND/PWIND

dataunit,
   class         = ODB_XY_POINTS,
   defaultVisDef = MSYMB,
   listVisDef    = MSYMB/PSYMB/MGRAPH/PGRAPH

dataunit,
   class         = ODB_XY_VECTORS,
   defaultVisDef = MWIND,
   listVisDef    = MWIND/PWIND

dataunit,
   class         = ODB_XY_BINNING,
   defaultVisDef = MCONT,
   listVisDef    = MCONT/PCONT

dataunit,
   class         = STATION,
   defaultVisDef = MSYMB,
   listVisDef    = MSYMB/MGRAPH/PSYMB/PGRAPH

dataunit,
   class         = PRASTERLOOP,
   defaultVisDef = PVOID,
   listVisDef    = PVOID

dataunit,
   class         = TABLE_XY_POINTS,
   defaultVisDef = MSYMB,
   listVisDef    = MSYMB/MGRAPH

dataunit,
   class         = TABLE_GEO_POINTS,
   defaultVisDef = MSYMB,
   listVisDef    = MSYMB/MGRAPH

dataunit,
   class         = TABLE_XY_VECTORS,
   defaultVisDef = MWIND,
   listVisDef    = MWIND

dataunit,
   class         = TABLE_GEO_VECTORS,
   defaultVisDef = MWIND,
   listVisDef    = MWIND

dataunit,
   class         = TABLE_XY_BINNING,
   defaultVisDef = MCONT,
   listVisDef    = MCONT

dataunit,
   class         = TABLE_GEO_BINNING,
   defaultVisDef = MCONT,
   listVisDef    = MCONT

dataunit,
   class          = INPUT_XY_POINTS,
   defaultVisDef  = MSYMB,
   listVisDef     = MSYMB/MGRAPH

dataunit,
   class          = INPUT_GEO_POINTS,
   defaultVisDef  = MSYMB,
   listVisDef     = MSYMB/MGRAPH

dataunit,
   class          = INPUT_XY_VECTORS,
   defaultVisDef  = MWIND,
   listVisDef     = MWIND

dataunit,
   class          = INPUT_GEO_VECTORS,
   defaultVisDef  = MWIND,
   listVisDef     = MWIND

dataunit,
   class          = INPUT_XY_BINNING,
   defaultVisDef  = MCONT,
   listVisDef     = MCONT

dataunit,
   class          = INPUT_GEO_BINNING,
   defaultVisDef  = MCONT,
   listVisDef     = MCONT

dataunit,
   class          = INPUT_XY_BOXPLOT,
   defaultVisDef  = MBOXPLOT,
   listVisDef     = MBOXPLOT

dataunit,
   class          = GRIB_VECTORS,
   defaultVisDef  = MWIND,
   listVisDef     = MWIND

dataunit,
   class         = RETRIEVE,
   defaultVisDef = MCONT,
   listVisDef    = MCONT/MWIND/MOBS/PWIND/PCONT

dataunit,
   class         = LLMATRIX,
   defaultVisDef = MCONT/MWIND,
   1D_VISDEF     = MCONT/PCONT,
   2D_VISDEF     = MWIND/PWIND,
   listVisDef    = MCONT/MWIND/PWIND/PCONT

#-----------------------------------------------------
#  Visual definition list.
#  MCOAST, MTEXT and MLEGEND should not placed here,
#  since they are treated in a special way in uPlot.
#-----------------------------------------------------

visdef,
   class    = PCONT,
   manager  = False

visdef,
   class    = MCONT

visdef,
   class    = MOBS

visdef,
   class    = PWIND,
   manager  = False

visdef,
   class    = MWIND

visdef,
   class    = PGRAPH,
   manager  = False

visdef,
   class    = MGRAPH

visdef,
   class    = PAXIS,
   manager  = False

visdef,
   class    = MTEPHI

visdef,
   class    = PSYMB,
   manager  = False

visdef,
   class    = MSYMB

visdef,
   class    = MVALUE

visdef,
   class    = MBOXPLOT

visdef,
   class    = MTHERMO


#----------------------------------------------
#  Companion list:
#   - define the components of vector fields
#   - define other type of companions
#----------------------------------------------

companion,
   class      = u,
   friend     = v

companion,
   class      = 10u,
   friend     = 10v

companion,
   class      = 100u,
   friend     = 100v

companion,
   class      = 200u,
   friend     = 200v

companion,
   class      = 10ua,
   friend     = 10va

companion,
   class      = ewss,
   friend     = nsss

companion,
   class      = wind,
   friend     = dwi,
   mode       = sd

companion,
   class      = swh,
   friend     = mwd,
   mode       = sd

companion,
   class      = ocu,
   friend     = ocv

companion,
   class      = shww,
   friend     = mdww,
   mode       = sd

companion,
   class      = shts,
   friend     = mdts,
   mode       = sd

companion,
   class      = MGRAPH,
   friend     = MTHERMO

#--------------------------------
#  Graphics Engine list
#--------------------------------

graphics_engine,
   class      = Default,
   choice     = Magics
