/** * 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"); } }