private static IFile getPreferenceViewFile(IProject project, IPath viewPath, String action) {
   String[] viewExts = getAvailableViewExts();
   String[] viewFiles = new String[] {Inflector.underscorize(action), Inflector.camelize(action)};
   for (int iExt = 0; iExt < viewExts.length; ++iExt) {
     for (int iFile = 0; iFile < viewFiles.length; ++iFile) {
       IPath viewFilePath = viewPath.append(viewFiles[iFile] + viewExts[iExt]);
       IFile file = project.getFile(viewFilePath);
       if (file.exists()) {
         return file;
       }
       break;
     }
   }
   // never return 'null', use file.exists() to check exists
   IPath viewFilePath = viewPath.append(Inflector.underscorize(action) + getDefaultViewExt());
   return project.getFile(viewFilePath);
 }