1 /* 2 * JobProgressPresenter.java 3 * 4 * Copyright (C) 2021 by RStudio, PBC 5 * 6 * Unless you have received this program directly from RStudio pursuant 7 * to the terms of a commercial license agreement with RStudio, then 8 * this program is licensed to you under the terms of version 3 of the 9 * GNU Affero General Public License. This program is distributed WITHOUT 10 * ANY EXPRESS OR IMPLIED WARRANTY, INCLUDING THOSE OF NON-INFRINGEMENT, 11 * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Please refer to the 12 * AGPL (http://www.gnu.org/licenses/agpl-3.0.txt) for more details. 13 * 14 */ 15 package org.rstudio.studio.client.workbench.views.jobs; 16 17 import org.rstudio.studio.client.application.events.EventBus; 18 import org.rstudio.studio.client.workbench.views.jobs.events.JobElapsedTickEvent; 19 import org.rstudio.studio.client.workbench.views.jobs.model.Job; 20 import org.rstudio.studio.client.workbench.views.jobs.model.LocalJobProgress; 21 22 import com.google.gwt.user.client.ui.IsWidget; 23 import com.google.gwt.user.client.ui.Widget; 24 import com.google.inject.Inject; 25 26 public class JobProgressPresenter implements JobElapsedTickEvent.Handler, 27 IsWidget 28 { 29 public interface Display extends IsWidget 30 { updateElapsed(int timestamp)31 void updateElapsed(int timestamp); showProgress(LocalJobProgress progress)32 void showProgress(LocalJobProgress progress); showJob(Job job)33 void showJob(Job job); 34 } 35 36 @Inject JobProgressPresenter(Display display, EventBus events)37 public JobProgressPresenter(Display display, 38 EventBus events) 39 { 40 display_ = display; 41 events.addHandler(JobElapsedTickEvent.TYPE, this); 42 } 43 44 @Override onJobElapsedTick(JobElapsedTickEvent event)45 public void onJobElapsedTick(JobElapsedTickEvent event) 46 { 47 display_.updateElapsed(event.timestamp()); 48 } 49 50 @Override asWidget()51 public Widget asWidget() 52 { 53 return display_.asWidget(); 54 } 55 showProgress(LocalJobProgress progress)56 public void showProgress(LocalJobProgress progress) 57 { 58 display_.showProgress(progress); 59 } 60 showJob(Job job)61 public void showJob(Job job) 62 { 63 display_.showJob(job); 64 } 65 66 private final Display display_; 67 } 68