/** * */ package org.korsakow.ide.ui.controller.action.helper; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JDialog; import org.korsakow.domain.task.IWorker; import org.korsakow.ide.Application; public final class CancelProgressDialogWindowAdapter extends WindowAdapter { private final JDialog progressDialog; private final IWorker worker; public CancelProgressDialogWindowAdapter(JDialog progressDialog, IWorker worker) { this.progressDialog = progressDialog; this.worker = worker; } @Override public void windowClosing(WindowEvent windowEvent) { if (!Application.getInstance().showOKCancelDialog(progressDialog, "Are you sure?", "Do you really want to cancel the operation?")) { return; } windowEvent.getWindow().dispose(); } @Override public void windowClosed(WindowEvent e) { if (!worker.isDone() && !worker.isCancelled()) worker.cancel(true); } }