catching AttributeError hides underlying errors that are not related to version
so use an explicit hasattr check for testing version
drop filesize check; listNodes is sufficient
fall back to pytables 2.x API
pep8
share instance of survey_task with SurveyLinePane and delegate survey to the survey_task