-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Martin Černý edited this page Jun 23, 2016
·
15 revisions
This plugin is still in prototype phase, active development is underway. See API & design page for some design principles and discussions that led to the current state.
- Dependent variables in DSs are identified by an ID and have a (possibly non-unique) string name that is presented to the user. The mapping between entities and DSs through this ID.
- The overall architeture is the one with a common interface (DataSeries) and specific implementations for each data type.
- All functionality is accessible through the Apps->DataSeries menu.
- Time series (TS) are mostly implemented
- There is a nice import dialog for importing TSs in various formats.
- Data series can be mapped to edges/nodes through a column of type int that is a foreign key for the data series. The only user friendly way to set it up (so far) is when the mapping is created - a string column can be used to find appropriate data series entries by their row names.
- TSs of a selected node (not edges so far) is visible in the "Data Series Visual" table panel.
- TSs and mappings are saved and loaded with the session.
- Implement the actual DS class (possibly inherit from from AbstractDataSeries or other helpers in cz.cas.mbu.cydataseries.internal.data, see TimeSeriesImpl for a minimal example)
- Implement and register a DataSeriesStorageProvider service for the class (possibly inherit from AbstractDataSeriesStorageProvider which is suitable for save/load of all tabular data series, see TimeSeriesStorageProviderImpl for a minimal example)
- Optional: To take advantage of the DS import dialog for importing the new DS type, implement and register a DataSeriesImportProvider which hides most of the heavy lifting (you just need to be able to create your DS from an array of string values). See TimeSeriesImportProviderImpl for an example.
- Mapping between DSs and entities is not bound to a network (e.g., it is assumed that all columns of the same name in all node tables will have the same mapping), this simplifies implementation but is a questionable choice.
- It is not clear how different types of data series would feed into DataSeriesVisualPanel (maybe a provider scheme relaying on JFreeChart structures?)
- The response of "data series visual" panel to selection is inefficient