/*
* SoapUI, Copyright (C) 2004-2016 SmartBear Software
*
* Licensed under the EUPL, Version 1.1 or - as soon as they will be approved by the European Commission - subsequent
* versions of the EUPL (the "Licence");
* You may not use this work except in compliance with the Licence.
* You may obtain a copy of the Licence at:
*
* http://ec.europa.eu/idabc/eupl
*
* Unless required by applicable law or agreed to in writing, software distributed under the Licence is
* distributed on an "AS IS" basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the Licence for the specific language governing permissions and limitations
* under the Licence.
*/
package com.eviware.soapui.support.swing;
import com.eviware.x.dialogs.Worker;
import com.eviware.x.dialogs.XProgressDialog;
import com.eviware.x.dialogs.XProgressMonitor;
/**
* @author Lars Höidahl
*/
public class SwingWorkerDelegator extends SwingWorker {
private XProgressMonitor monitor;
private Worker delegate;
private XProgressDialog dialog;
/**
* Start a thread that will call <code>delegate.construct</code> and then
* exit.
*/
public SwingWorkerDelegator(XProgressMonitor monitor, XProgressDialog dialog, Worker delegate) {
this.monitor = monitor;
this.dialog = dialog;
this.delegate = delegate;
}
/**
* Compute the value to be returned by the <code>get</code> method.
*/
public Object construct() {
return delegate.construct(monitor);
}
/**
* Called on the event dispatching thread (not on the worker thread) after
* the <code>construct</code> method has returned.
*/
public void finished() {
delegate.finished();
if (dialog != null) {
dialog.setVisible(false);
}
delegate = null;
monitor = null;
dialog = null;
}
}