-
Utkarsh Ayachit authored
The primary objective of this refactor is to remove custom display panels for charting views such as line/bar/scatter-plot-matrix/parallel-coordinates views and migrate these panels to the new style as required by the unified Properties panel added in ParaView 4.0. The secondary object is to move logic for setting up defaults etc. to the ServerManager layer rather than in VTK or Qt world, so that the representations behave consistently in pvpython and ParaView-GUI. This is achieved as follows: + New domains are added (vtkSMChartSeriesListDomain and vtkSMChartSeriesSelectionDomain) which can be used on properties pertaining to series in a plot e.g. SeriesVisibility, SeriesColor etc. These domains automatically keep themselves up-to-date when new arrays are added or removed due to other state changes. Like other domains in ParaView, these only depend on the data-information available on the client-side. + vtkChartNamedOptions and vtkXYChartNamedOptions are removed. Instead vtkChartRepresentation subclasses take over the responsibility of managing series parameters. vtkXYChartRepresentation is suitable for vtkChartXY views which accept vtkPlot subclasses. + vtkChartRepresentation is refactored to simplify data-delivery logic. Also added a new REQUEST_RENDER pass to vtkPVContextView which allows chart representations to update the vtk objects properly thus separating data related operations from appearance related operations. + pqChartSeriesSettingsModel represent the table-widget used for presenting user with the available series and changing their properties. Based on properties available on the proxy, pqChartSeriesSettingsModel can adapt its UI to show as few or as many widgets as needed. pqChartSeriesSettingsModel is used for all 2D views, thus we no longer need separate pqChartSeriesSettingsModel and pqPlotSettingsModel which have been removed. + vtkPVPlotMatrixRepresentation now respects order specified by the user on the SeriesVisibility property. The UI no longer hacks the order changes (which were not preserved in state files or undo/redo stacks), instead updates the property appropriately. Same can be done for vtkPVParallelCoordinatesRepresentation, but missing API on vtkPVParallelCoordinatesRepresentation keeps that from actually working, for now. + Refactored logic for dealing with multiblock-of-tables. The mechanism for naming/addressing tables in a multiblock dataset has also changed to make it easier to read. vtkChartRepresentation makes it easier for subclasses to work with multiblock of tables (e.g. vtkXYChartRepresentation) or a single vtkTable (vtkPVParallelCoordinatesRepresentation, vtkPVPlotMatrixRepresentation). A few side effects: + New arrays that become available are no longer shown automatically. The onus falls on the appplication layer to manage their visibility/appearance. Work in progress to update UI when new arrays become available. Change-Id: I6531f85a2167c73d98dbb28edf7aa3cc32031111
1166c794