package org.arong.egdownloader.ui.work;
import java.util.List;
import javax.swing.SwingWorker;
import org.arong.egdownloader.model.ScriptParser;
import org.arong.egdownloader.model.Setting;
import org.arong.egdownloader.model.Task;
import org.arong.egdownloader.ui.table.TaskingTable;
import org.arong.egdownloader.ui.window.EgDownloaderWindow;
import org.arong.util.Tracker;
/**
* 重建所有任务。(采集缺失的任务信息,用于低版本数据库文件升级)
* @author dipoo
* @since 2015-01-02
*/
public class ReBuildAllTaskWorker extends SwingWorker<Void, Void> {
public EgDownloaderWindow window;
public ReBuildAllTaskWorker(EgDownloaderWindow window) {
this.window = window;
}
protected Void doInBackground() throws Exception {
TaskingTable table = (TaskingTable) window.runningTable;
List<Task> tasks = table.getTasks();
Setting setting = window.setting;
//设置重建状态
table.setRebuild(true);
int i = 0;
for(Task task : tasks){
i ++;
ScriptParser.rebuildTask(task, setting);
Tracker.println(ReBuildAllTaskWorker.class, "重建任务-" + i + "/" + tasks.size());
}
window.taskDbTemplate.update(tasks);
table.setRebuild(false);
Tracker.println(ReBuildAllTaskWorker.class, "重建任务完成!");
return null;
}
}