帆软报表设计器源代码。
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

49 lines
1.2 KiB

package com.fr.design.worker;
import java.util.HashMap;
import java.util.Map;
import javax.swing.SwingWorker;
import org.jetbrains.annotations.Nullable;
/**
* @author hades
* @version 10.0
* Created by hades on 2021/4/2
*/
public class WorkerManager {
private static final WorkerManager INSTANCE = new WorkerManager();
private Map<String, SwingWorker> workerMap = new HashMap<>();
public static WorkerManager getInstance() {
return INSTANCE;
}
@Nullable
public SwingWorker getWorker(String taskName) {
return workerMap.get(taskName);
}
public boolean isCompleted(String taskName) {
SwingWorker worker = getWorker(taskName);
return worker == null || worker.isDone();
}
public void registerWorker(String taskName, SwingWorker worker) {
workerMap.put(taskName, worker);
}
public void removeWorker(String taskName) {
workerMap.remove(taskName);
}
public void cancelWorker(String taskName) {
SwingWorker worker = getWorker(taskName);
if (worker != null && !worker.isDone()) {
worker.cancel(true);
removeWorker(taskName);
}
}
}