📄 runqueriestask.java
字号:
/*
* Created on 28.10.2005
* OWL-S Matchmaker
*
* COPYRIGHT NOTICE
*
* Copyright (C) 2005 DFKI GmbH, Germany
* Developed by Benedikt Fries, Matthias Klusch
*
* The code is free for non-commercial use only.
* You can redistribute it and/or modify it under the terms
* of the Mozilla Public License version 1.1 as
* published by the Mozilla Foundation at
* http://www.mozilla.org/MPL/MPL-1.1.txt
*/
package owlsmx.gui.util.tasks;
import java.util.Iterator;
import java.util.SortedSet;
import java.util.TreeSet;
import owlsmx.analysis.PassedTimeContainer;
import owlsmx.gui.data.Query;
import owlsmx.gui.data.TestCollection;
import owlsmx.gui.util.GUIState;
import owlsmx.gui.util.SwingWorker;
public class RunQueriesTask {
private int lengthOfTask;
private int current = 1;
private boolean done = false;
private boolean canceled = false;
private SortedSet queries = new TreeSet();
private boolean isRunning = false;
public RunQueriesTask() {
queries = TestCollection.getInstance().getQueries();
lengthOfTask = queries.size();
}
/**
* Called from ProgressBarDemo to start the task.
*/
public void go() {
final SwingWorker worker = new SwingWorker() {
public Object construct() {
current = 1;
done = false;
canceled = false;
return new ActualTask(queries);
}
};
isRunning = true;
worker.start();
}
public boolean isRunning() {
return isRunning;
}
/**
* Called from ProgressBarDemo to find out how much work needs
* to be done.
*/
public int getLengthOfTask() {
return lengthOfTask;
}
/**
* Called from ProgressBarDemo to find out how much has been done.
*/
public int getCurrent() {
return current;
}
public void stop() {
canceled = true;
}
/**
* Called from ProgressBarDemo to find out if the task has completed.
*/
public boolean isDone() {
return done;
}
/**
* Returns the most recent status message, or null
* if there is no current status message.
*/
public String getMessage() {
return "Processing request " + current + "/" + lengthOfTask + ".";
}
/**
* The actual long running task. This runs in a SwingWorker thread.
*/
class ActualTask {
ActualTask(SortedSet queries) {
PassedTimeContainer.getInstance().clear();
PassedTimeContainer.getInstance().setStartTime();
int processed = 0;
Query query;
for(Iterator iter = queries.iterator(); iter.hasNext();current++) {
query = (Query) iter.next();
if (!query.isProcessed()) {
TestCollection.getInstance().runQuery(query);
processed++;
if ( (GUIState.getInstance().getDisplayAQR()))
PassedTimeContainer.getInstance().addState(current);
// query.setProcessed(true);
}
if (canceled)
break;
}
done = true;
current = lengthOfTask;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -