For example, in the performance environment, it took 65 seconds for the data to load when there were 1500 NEW Resources (300 platforms and 1200 top-level servers). It appears the reason for this is that the datasource is configured to not do paging (the PageControl page size is set to -1 == unlimited). Instead, we should be initializing the PageControl the same way it is done by RPCDataSource.getPageControl(), i.e.:
Note, once we switch over to paging the data on this view, the recently added Select All and Deselect All buttons may no longer work, because I don't think SmartGWT supports selecting grid records that have not been loaded yet. If this ends up being the case, we'll probably need to replace those buttons with Import All, Ignore All, and Unignore All buttons.
TreeGrids do not support paging of results as ListGrids do. This is documented in the Javadoc for TreeGrid.setDataFetchMode(). As stated there, the alternative is to load child nodes on demand (see the Javadoc for TreeGrid.setLoadDataOnDemand()). So in our case, when the user expands a platform node, the child server nodes would be loaded at that time. I do not think we should pursue switching to on demand loading, since I think it would complicate node selection, where nodes must be loaded before they can be selected, and it would also make expanding platform nodes less snappy.
We can load 250 NEW platforms/servers in around 10s, which isn't terrible, and I don't think most users will have more NEW Resources than that at one time.