Introduce new classes for the new linked view Histogram representation.

This new view and the according representation allow to directly
plot the histogram of an input dataset without manually applying
the histogram filter on it. The representation manage the histogram
table creation and also manage selection: the user can select one
or more bars in the chart and it automatically selects the
elements in the other views (3D, spreadsheet, etc.) that falls
in the corresponding bins of the histogram. Note that the
reverse operation is not supported: selecting elements in another
view will not select corresponding histogram bars.

As the parallel coordinates, the histogram view supports only one
representation. It automatically switches representations to have
only one visible.

Change-Id: I481c9f8b27e8475175b503748db6686a143bc962
Remove the need for PlotData filter for Histogram View.

Added ability to vtkSMContextViewProxy to specify in XML that the view
can show any dataset that the representation accepts , thus skipping the
"Plotable" hint and table/2D image data checks entirely.

Making Histogram View use this mechanism to avoid the need for using the
"Plot Data" filter.

Also renamed the "Histogram Chart View" to "Histogram View".

Change-Id: I0c2d91833d27ba7478fb08f6634130252c73789e
Fixed leaks in vtkPVHistogramChartRepresentation.

Change-Id: I0fb651e2b51901115946afcaf09accb996722c6f
Make Histogram View work in client-server mode.

vtkPVHistogramChartRepresentation did array name determination in a
routine that would execute only on the server-side (where data was
available). While the array name was needed on the client side to
create selections and for labeling. Fixed that.

Also avoid doing any work that modified MTime in methods that gets
called in RequestData(). That was not needed anyways. Removed that. This
avoid the bug where the selection shown would be cleared if the
histogram color was changed.

Change-Id: I8b3e09aad623dc2eae5072984795edba1bbc95e8
Remove CompositeDataSetIndex from HistogramChartRepresentation.

Doesn't make sense on HistogramChartRepresentation since we apply
histogram to the entire input dataset. We can bring this back if in
future we decide to histogram the data after the block extraction, thus
enabling users to generate histogram from specific blocks.

Change-Id: I377bf6f4dcfcc90a53015e1bc314fb732dbb4585
Remove unnecessary overrides.

Removed empty overrides.

Change-Id: I56ab29b8390a9b4604e5de065e4610a4f40f2517
Added generic mechanism for views to show only 1 repr at a time.

If a view has a hint "ShowOneRepresentationAtATime", then it implies
that the view can only show 1 data-representation at a time.
vtkSMParaViewPipelineControllerWithRendering::Show() ensures that the
such views hide other representations that may be currently visible.
This is a better approach to handling this in Qt subclasses since now it
works as expected from Python as well as the undo/redo stack doesn't get
confused.

Change-Id: I33fd32c2d1e517ad16ff06f1526b852e4f89f12e
Update pqXYHistogramChartView to use ShowOneRepresentationAtATime hint.

Updating pqXYHistogramChartView to use ShowOneRepresentationAtATime hint
in the view xml rather than trying to manage the representation
visibility on its own.

Change-Id: I911d976a6640e4d75cea9b0567fc307f9e7fe891
Update SpreadSheetView to use ShowOneRepresentationAtATime hint.

Using ShowOneRepresentationAtATime instead of handling this in Qt
ensures that the visibility restriction continues to work through Python
API, as well as doesn't confuse the undo/redo stack.

Change-Id: I86a812988b209f85202aa0d2956f13aff27aa393
Remove AnnotationLink from pqView.

Removing obsolete AnnotationLink API fron pqView. We need to clean
AnnotationLink up from ParaView even more, but this is a start.

Change-Id: Ifa1224f82e1ba733647650948bbf23e121759fb0
Refactoring transformation of selection for chart views.

All chart views/representations (not just the histogram view) need to
transform the vtkSelection created by the vtkChart to a type of
selection that qualifies the data going into the chart representations,
not simply that going into the view. For example, if we were plotting
cell data in a line chart view, all selections we were making were
essentially incorrect, since ParaView was thinking the view selecting
point-ids.

This commit fixes that by adding logic to transform selection made in
the view by collaborating with the vtkChartRepresentation before passing
that on to the UI.

This change leaves the current limitation when selecting multiple
representations in the same view unchanged. We will fix that at a later
stage (that, and also selections with composite datasets).

Change-Id: I38ec26416ba7f8c76678f320c24234b049b20410
Cleanup Parallel Coorindates view.

Updating pqParallelCoordinatesChartView class to not have custom logic
to show only 1 representation at a time and instead use the new XML
hints for the same.

Also updating the view xml to allow showing of dataset directly without
having to use the PlotData filter.

Change-Id: I49931bd4fc87b6af020bc0f35a36b29df16abc02
Added ability for selection representations to use original selection.

There are cases (e.g. Histogram View/Representation) where the
selection-representation needs the original input selection (and not the
selection converted to IDs). Added mechanism for that.

vtkPVExtractSelection now has a 3rd output which is simply the same as
its inputs. vtkSMChartRepresentationProxy can pass either the 2nd or 3rd
output from vtkPVExtractSelection to the selection representation proxy
based on how the property was named.

Change-Id: I06ebeef9e9ff8168dacafe520e6c7d1202f2de59
Added support for two selection transformation.

When it comes to chart representations and selections, we need
bi-directional transformation from view to input data and vice-versa.
When a selection is created in the view, the application should get the
selection that's defined on the elements in the input dataset (not the
elements shown in the view). This is done using MapSelectionToInput()
(formerly called TransformSelection) on vtkChartRepresentation.

Then when a selection comes down the input pipelinen to
vtkChartSelectionRepresentation, it needs to convert it to map to the
elements in the view. This is done using the new
vtkChartRepresentation::MapSelectionToView().
vtkChartSelectionRepresentation calls this in RequestData() before
delivering the transformed selection to the rendering processes.

With this changes, BUG #0014947 is addressed.

Change-Id: Ia9a52cc011725b35a54a2ee695b8a3651fa31f67
Fixed selection in histogram view.

For HistogramRepresentation, we now ensure that the original input
selection (rather that the id-based selection) produced by
vtkPVExtractSelection filter is used for marking selections.

vtkPVHistogramChartRepresentation implements MapSelectionToView()
to convert threshold-based selections to a ID-based selection for
selecting bins, if possible.

vtkPVXYHistogramChartView was rendered obsolete by selection conversion
infrastructure added so far, hence removing it.

Change-Id: I038e3a1a324d73e76a717c67e5211763f2d75372
Removed unused pqHistogramTableModel.

This was an ancient class, not used anywhere in ParaView. REmoving it.

Change-Id: I795783bb288ee907b203cfedb80a91a4ae75ae9c
Fix selections in PlotMatrixView/ScatterPlotMatrixView.

Similar to other chart views/representations, this view-representation
pair was missing the conversion of selection from what's shown in the
view to the input dataset and vice-versa. Fixed that code and now
selections work as expected.

This addresses BUG #14948.

Change-Id: I5ada501a8bf39dd2e2d3c6c56927340b32e3ca15
Remove need for PlotData for ScatterPlotMatrix view.

Removing the need for PlotData filter for the PlotMatrix view. Also
making the view only show 1 representation at a time.

Change-Id: Ia232ce35e583bb475a24165cac7e5871e6268740
Add ability to change histogram line style.

When histogram gets dense, we need to hide the lines around the bins
otherwise the histogram color doesnt' show at all. Added a mode to
change linestyle to use.

Updated defaults for LineStyle (to none) and BinCount to 256 (10 is
unrealistic).

Change-Id: I358438f52290e10d02cef2dacfafc24bda7a7f07
Added test to validate histogram view selection linking.

Ensures that histogram view selection linking works along with Render
View.

Change-Id: I29900a3a8aa9d174fea48c781414ad1be4205912