Login
Introduction
Developer guide
Resource
Version

Resource views

This documentation is under construction. Please give us your feedbacks by contacting us at hub@gencovery.com.
The Resource Views are ways to visualize Resources. Resource views are decorated methods of the view class that return a View object.

How to create a Resource View?

To create a valid resource view, you will need to create a method in the Resource class that:

  • Is decorated with the @view_decorator
    • In the decorator, it is a good practice to declare the correct view type that is returned so that the user will know what to expect when using your view.
  • Returns a View object

Once these conditions are met, the view will be available in the interface when the user opens the resource.
Here is an example of a view of the Robot. This view return the latitude or longitude position of the Robot as json (JSONView). It takes a configuration to choose whether to return the latitude or longitude.

    @view(view_type=JSONView, human_name="View position",

                      specs={"position": StrParam(default_value="latitude", allowed_values=['latitude', 'longitude'])})

    def view_only_position(self, params: ConfigParams) -> JSONView:

        position: str = params.get_value('position')

        position_value = self.position[1] if position == 'latitude' else self.position[0]

        return JSONView({"position": position, "value": position_value})


View object

View object are classes that are used to format data so that the interface can show the correct view with correct data. The interface only supports a specific list of views:

  • JsonView
  • TableView
  • TextVIew
  • TableView
  • NetworkView
  • ImageView
  • ScatterPlot2dView
  • Line2dView
  • BarPLotView
  • StackedBarPLotView
  • HistogramView
  • BoxPlotView
  • VennDiagramView
  • HeatMapView
  • ResourceListView
  • MultiView

You will need to check the code of these classes to see how to provide the data in the correct format for the view

Configuration

The same you define config specs for your task, you can define specs for your view. The specs must be defined in the specs parameter of the @view decorator.
In the example we defined 1 spec called position for the view.

@view(view_type=JSONView, human_name="View position",

                   specs={"position": StrParam(default_value="latitude", allowed_values=['latitude', 'longitude'])})


The default view

A resource can have only one default view and all parameters of the default view must be optional. The default view is the recommended view for the resource. The default view of children classes overrides the default view of parent classes.
The default view must have only optional parameters because the user should be able to open it quickly without providing a configuration.

Technical information

You can add specific technical information on a view by calling add_technical_info. Please check the Technical Information section in the Resource documentation.

Create a new view type (for expert)


ViewSpecs

You can also provide spec at the view type level. It means that all the view methods that use this view type (in the @view decorator) will inherit thoses specs. This is only to be used when you want to create a re-usable view type that always need config.