@Override public Component getListCellRendererComponent( JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { JobListItem item = (JobListItem) value; item.updateJob(); return item.getItemPanel(); }
/** * 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"); } }
/** * Return true if the position provided is on the * * @param position * @return */ public boolean isPositionOnCancelImage(JobListItem jobItem, Point position) { JLabel jobCancelLabel = jobItem.getItemPanel().getJobCancelLabel(); if (jobCancelLabel != null) { return jobCancelLabel.getBounds().contains(position); } else { return false; } }