code: public List<CmsResource> readProjectView(CmsDbContext dbc, CmsUUID projectId, CmsResourceState state)
      throws CmsException {
  
          List<CmsResource> resources;
          if (state.isNew() || state.isChanged() || state.isDeleted()) {
              // get all resources form the database that match the selected state
              resources = getVfsDriver(dbc).readResources(dbc, projectId, state, CmsDriverManager.READMODE_MATCHSTATE);
          } else {
              // get all resources form the database that are somehow changed (i.e. not unchanged)
              resources = getVfsDriver(
                  dbc).readResources(dbc, projectId, CmsResource.STATE_UNCHANGED, CmsDriverManager.READMODE_UNMATCHSTATE);
          }
  
          // filter the permissions
          List<CmsResource> result = filterPermissions(dbc, resources, CmsResourceFilter.ALL);
          // sort the result
          Collections.sort(result);
          // set the full resource names
          return updateContextDates(dbc, result);
      }
docs: Reads all resources of a project that match a given state from the VFS.<p>
  
  Possible values for the <code>state</code> parameter are:<br>
  <ul>
  <li><code>{@link CmsResource#STATE_CHANGED}</code>: Read all "changed" resources in the project</li>
  <li><code>{@link CmsResource#STATE_NEW}</code>: Read all "new" resources in the project</li>
  <li><code>{@link CmsResource#STATE_DELETED}</code>: Read all "deleted" resources in the project</li>
  <li><code>{@link CmsResource#STATE_KEEP}</code>: Read all resources either "changed", "new" or "deleted" in the project</li>
  </ul><p>
  
  @param dbc the current database context
  @param projectId the id of the project to read the file resources for
  @param state the resource state to match
  
  @return a list of <code>{@link CmsResource}</code> objects matching the filter criteria
  
  @throws CmsException if something goes wrong
  
  @see CmsObject#readProjectView(CmsUUID, CmsResourceState)