docs: private void loadJobs() {
  
          List<CmsPublishJobFinished> publishJobs;
          if (OpenCms.getRoleManager().hasRole(A_CmsUI.getCmsObject(), CmsRole.ROOT_ADMIN)) {
              publishJobs = OpenCms.getPublishManager().getPublishHistory();
          } else {
              publishJobs = OpenCms.getPublishManager().getPublishHistory(
                  A_CmsUI.getCmsObject().getRequestContext().getCurrentUser());
          }
          for (CmsPublishJobFinished job : publishJobs) {
              String state = getState(job);
              Item item = m_container.addItem(job);
              item.getItemProperty(PROP_PROJECT).setValue(job.getProjectName().replace("&#47;", "/")); //TODO better way for unescaping..
              try {
                  item.getItemProperty(PROP_RESOURCES).setValue(
                      A_CmsUI.getCmsObject().readPublishedResources(job.getPublishHistoryId()));
              } catch (com.vaadin.v7.data.Property.ReadOnlyException | CmsException e) {
                  LOG.error("Error while read published Resources", e);
              }
              item.getItemProperty(PROP_STATUS).setValue(state);
              item.getItemProperty(PROP_STATUS_LOCALE).setValue(
                  CmsVaadinUtils.getMessageText(STATUS_MESSAGES.get(state)));
              item.getItemProperty(PROP_START).setValue(new Date(job.getStartTime()));
              item.getItemProperty(PROP_STOP).setValue(new Date(job.getFinishTime()));
              item.getItemProperty(PROP_USER).setValue(job.getUserName(A_CmsUI.getCmsObject()));
              item.getItemProperty(PROP_FILESCOUNT).setValue(Integer.valueOf(job.getSize()));
  
          }
          //Sort table according to start time of jobs
          m_container.sort(new String[] {PROP_START}, new boolean[] {false});
  
          List<CmsPublishJobBase> jobs = new ArrayList<CmsPublishJobBase>();
  
          //a) running jobs
          if (OpenCms.getPublishManager().isRunning()) {
              jobs.add(OpenCms.getPublishManager().getCurrentPublishJob());
          }
  
          //b) queued jobs
          jobs.addAll(OpenCms.getPublishManager().getPublishQueue());
          for (CmsPublishJobBase job : jobs) {
              Item item = m_container.addItemAt(0, job);
              item.getItemProperty(PROP_PROJECT).setValue(job.getProjectName().replace("&#47;", "/")); //TODO better way for unescaping..
  
              //distinguish between running and enqueued jobs
              if (job instanceof CmsPublishJobRunning) {
                  item.getItemProperty(PROP_RESOURCES).setValue(
                      ((CmsPublishJobRunning)job).getPublishList().getAllResources());
                  item.getItemProperty(PROP_START).setValue(new Date(((CmsPublishJobRunning)job).getStartTime()));
                  item.getItemProperty(PROP_STATUS).setValue(STATE_RUNNING);
                  item.getItemProperty(PROP_STATUS_LOCALE).setValue(
                      CmsVaadinUtils.getMessageText(STATUS_MESSAGES.get(STATE_RUNNING)));
  
              } else {
                  item.getItemProperty(PROP_RESOURCES).setValue(
                      ((CmsPublishJobEnqueued)job).getPublishList().getAllResources());
                  item.getItemProperty(PROP_STATUS).setValue(STATE_ENQUEUE);
                  item.getItemProperty(PROP_STATUS_LOCALE).setValue(
                      CmsVaadinUtils.getMessageText(STATUS_MESSAGES.get(STATE_ENQUEUE)));
  
              }
              item.getItemProperty(PROP_USER).setValue(job.getUserName(A_CmsUI.getCmsObject()));
              item.getItemProperty(PROP_FILESCOUNT).setValue(Integer.valueOf(job.getSize()));
          }
      }