예제 #1
0
 /**
  * Update the shown job list
  *
  * @warning called only by ReadJobListOnSwingThread
  */
 private void updateJobList() {
   while (!jobAdded.isEmpty()) {
     Job job = jobAdded.remove(0);
     // Added
     JobListItem addedJobItem = new JobListItem(job).listenToJob(false);
     addedJobItem.addPropertyChangeListener(
         ContainerItemProperties.PROP_LABEL, labelUpdateListener);
     shownJobs.add(addedJobItem);
     fireIntervalAdded(addedJobItem, shownJobs.size() - 1, shownJobs.size() - 1);
     LOGGER.debug("JobListModel:jobAdded");
   }
   // Removed
   while (!jobRemoved.isEmpty()) {
     Job job = jobRemoved.remove(0);
     JobListItem jobId = new JobListItem(job);
     int jobIndex = shownJobs.indexOf(jobId);
     if (jobIndex != -1) {
       shownJobs.get(jobIndex).dispose();
       shownJobs.remove(jobId);
       fireIntervalRemoved(jobId, jobIndex, jobIndex);
       LOGGER.debug("JobListModel:jobRemoved");
     } else {
       LOGGER.debug("JobListModel:jobRemoved fail to found the job");
     }
   }
   // Updated
   while (!jobUpdated.isEmpty()) {
     Job job = jobUpdated.remove(0);
     JobListItem changedJobItem = new JobListItem(job).listenToJob(false);
     fireContentsChanged(changedJobItem, 0, 0);
     LOGGER.debug("JobListModel:jobReplaced");
   }
 }