view: Add tree view and selection handling