Skip to content

Latest commit

 

History

History
93 lines (75 loc) · 6 KB

extending-and-customizing.md

File metadata and controls

93 lines (75 loc) · 6 KB

Extending and customizing Datagrok

Datagrok is built highly extensible, composable and customizable. Many parts of the Datagrok platform can be enhanced by plugins using our JavaScript API. The plugins are structured and delivered to the platform using Datagrok packages. Many features of the platform, such as a Timelines or Sunburst viewers, as well as cheminformatics package, are already built as plugins. It is straightforward to create your own ones, using the existing packages as examples, and following our guides, API samples , how-to's, and exercises.

Both the existing extensions and your own-made ones are intended highly customizable. For instance, look at some properties of the grid viewer, where you can set which tooltips to display, which grid lines to present, and even add conditional color coding! Datagrok also provides for introducing your own custom properties specific to your plugins.

What can be extended

With using our JavaScript API, you can create your own:

  • functions, which may be written in any scripting language we support, and later be reused in various contexts, including other functions, or called directly from Datagrok UI or the console
  • visualizations — to visualize data in new ways, in addition to our 30+ core viewers
  • file viewers — to support new data formats in addition to many we already recognize
  • cell renderers — to visualize certain semantic types, such as molecules or nucleotide sequences , in their native-looking renders, inside contexts such as a grid cell, a tooltip, or an axis label in a viewer
  • semantic type detectors — to attach semantic types to columns of particular data types to later re-use this knowledge
  • Web applications focused on specific tasks, such as an interactive dashboard or a data set browser, as the one for Chembl
  • menus, which may be embedded into virtually any context inside the Datagrok UI, such as a top menu or a context menu of a viewer
  • info panels, to augment data with additional information retrieved or calculated on-the-fly
  • connections, to add new public or in-house data sources, such as Chembl or ENA, custom filters , which allow adding a filtering mask to an active dataset; in addition, viewers themselves may act as filters, and filtering through one viewer shall reflect the state in all the other active viewers
  • accordion sections — accordion is an area on the left of the Datagrok UI, useful for additional custom functionality

You could spot other aspects in Datagrok that allow for customization while getting introduced to the platform.

What can be customized

Beside a regular CSS-based customization, here are some of the things which you can customize both programmatically and through the UI:

  • Every viewer exposes a diverse set of properties, accessible on the right side in the Datagrok's Property Panel. Often you need to modify these properties programmatically. The mapping is straightforward: take the property's name, say, "Col Header Height", modify it to the camel case: colHeaderHeight, and apply the property to your viewer via .setOptions. Say, for the grid grid call grid.setOptions({ colHeaderHeight: 50 });. Read more about this here

  • You can control the platform's shell aspects programmatically. Study this sample to learn how to hide the Datagrok's sidebar or the toolbox, which is often useful in the Datagrok applications

  • Use features like conditional color coding for making your views appear indicative to the data they exhibit

  • Use the dock system and custom views to provide for completely custom layouts composed inside the Datagrok platform, tailored to your specific use cases. Learn more about Datagrok's composable UI here

What's next

Learn more about the platform by watching our educational content and hands-on practicing:

See also: