package moviescraper.doctord.view;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class ProgressMonitor {
private JLabel progressMessage;
private javax.swing.ProgressMonitor progressMonitor;
public ProgressMonitor(JFrame mainWindow)
{
progressMessage = new JLabel();
progressMonitor = new javax.swing.ProgressMonitor(mainWindow, progressMessage, "", 0, 100);
progressMonitor.setMillisToDecideToPopup(0);
progressMonitor.setMillisToPopup(0);
}
public void start(String progressTitle)
{
progressMessage.setText(progressTitle);
progressMonitor.setNote("Completed 0%");
progressMonitor.setProgress(0);
}
public void update(int percentDone, String progressMessage)
{
if (percentDone < 0)
percentDone = 0;
if (percentDone > 100)
percentDone = 100;
String text = String.format("Completed %d%% - %s", percentDone, progressMessage);
// showing the progress window is constantly stealing focus from other programs on Linux,
// progress will never reach 100% to prevent closing the progress window automatically
// an reuse the same window on multifile operations
if (percentDone == 100)
percentDone = 99;
progressMonitor.setNote(text);
progressMonitor.setProgress(percentDone);
}
public void stop()
{
progressMonitor.close();
}
public boolean isCanceled()
{
return progressMonitor.isCanceled();
}
}