public GUICyJobMonitor( CyServiceRegistrar registrar, CyJobManagerImpl jobManager, JobStatusBar statusBar) { this.serviceRegistrar = registrar; this.jobManager = jobManager; this.statusBar = statusBar; jobManager.setJobMonitor(this); logger = Logger.getLogger(CyUserLog.NAME); statusMap = new ConcurrentHashMap<>(); CySwingApplication swingApp = registrar.getService(CySwingApplication.class); dialog = new GUIJobDialog(serviceRegistrar, swingApp, statusMap, jobManager, this); statusBar.setDialog(dialog); }
public void jobStatusChanged(CyJob job, CyJobStatus status) { String jobId = job.getJobId(); Status stat = status.getStatus(); if (statusMap.containsKey(job) && statusMap.get(job).getStatus().equals(stat)) return; statusMap.put(job, status); dialog.mapChanged(); statusBar.updateIcon(statusMap.values()); // Temporary - for debugging purposes switch (stat) { case FAILED: logger.error("JobManager: Job " + jobId + " has failed!"); break; case ERROR: logger.error("JobManager: Job " + jobId + " has experienced an error!"); break; case CANCELED: logger.warn("JobManager: Job " + jobId + " has been canceled!"); break; case PURGED: logger.warn("JobManager: Job " + jobId + " has been purged!"); break; case TERMINATED: logger.warn("JobManager: Job " + jobId + " was terminated"); break; case FINISHED: logger.info("JobManager: Job " + jobId + " has finished"); break; case SUBMITTED: logger.info("JobManager: Job " + jobId + " was submitted"); break; case QUEUED: logger.info("JobManager: Job " + jobId + " has been queued"); break; case RUNNING: logger.info("JobManager: Job " + jobId + " is running"); break; } }
public void updateIcon() { statusBar.updateIcon(statusMap.values()); }