Prepare CatalogComponent to be sub-classed.
1. Make private members protected. 2. Make loadData() and selected() virtual 3. Add a parameter to the constructor that enables / disables the calling of loadData() at construct time. 4. Make loadData() a proxy for a protected method _loadData( bool ) that actually loads the data. 5. Make provisions for having "fake" catalogs, where the catalog name and ID are not official and should not be used as names.