Refactoring SelectionRepresentation for charts.
Charts using the same representation (vtkChartRepresentation) to manage data as well as selection. The problem with this approach is that whenever the selection changes, we have to reexecute the vtkChartRepresentation even if the data didn't change and only the selection changed. The representations in 3D view deal with this my creating a separate SelectionRepresentation and the selection input is fed directly to this representation. That way when the selection changes, only the SelectionRepresentation is modified. We adopt that same approach for chart representations. Added a new vtkChartSelectionRepresentation. vtkChartRepresentation now creates a vtkChartSelectionRepresentation that deals with delivering/showing selections. vtkSIChartRepresentationProxy ensures that the vtkChartSelectionRepresentation is set correctly on the vtkChartRepresentation; while vtkSMChartRepresentationProxy ensures that the selection-input is set correctly on the proxy corresponding to vtkChartSelectionRepresentation. + Also cleaned up AnnotationLink. Now, we consistently create AnnotationLink in the vtkPVContextView (or subclass). In the past the link was created in vtkChartRepresentation or vtkPVPlotMatrixView. + Also cleaned up vtkPVCompositeRepresentation. During the evolution of vtkPVCompositeRepresentation, there was stage when we were thinking of passing selection-input transparently to the SelectionRepresentation held by vtkPVCompositeRepresentation. However, that meant that vtkPVCompositeRepresentation would be marked as modified whenever the selection changed. So to avoid that, we changed the code to setup the selection input directly to the SelectionRepresentation in vtkSMPVRepresentationProxy. The unused code persisted in vtkPVCompositeRepresentation. Removing that. Change-Id: I1c834976c1aeb6343732a3c61fb3bd4876562ff0
Showing with 485 additions and 194 deletions