2023-09-17 22:13:42 +03:00
|
|
|
package GlobalData.Tasks.Passes;
|
2024-10-07 22:04:09 +03:00
|
|
|
import Common.Utils.CommonUtils;
|
2024-10-09 22:01:19 +03:00
|
|
|
import _VisualDVM.Current;
|
2023-09-17 22:13:42 +03:00
|
|
|
import GlobalData.Tasks.Supervisor.TaskSupervisor;
|
2023-11-19 02:12:44 +03:00
|
|
|
import Visual_DVM_2021.Passes.ProcessPass;
|
2023-09-17 22:13:42 +03:00
|
|
|
public abstract class TaskLocalPass<S extends TaskSupervisor> extends ProcessPass {
|
|
|
|
|
public S supervisor; //инициализация идет в конструкторе потомка.
|
|
|
|
|
public TaskLocalPass(Class<S> s_class) {
|
|
|
|
|
try {
|
|
|
|
|
supervisor = s_class.newInstance();
|
|
|
|
|
} catch (Exception e) {
|
2024-10-07 22:04:09 +03:00
|
|
|
CommonUtils.MainLog.PrintException(e);
|
2023-09-17 22:13:42 +03:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@Override
|
|
|
|
|
protected boolean needsAnimation() {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
@Override
|
|
|
|
|
protected void body() throws Exception {
|
|
|
|
|
supervisor.PerformTask();
|
|
|
|
|
}
|
|
|
|
|
@Override
|
|
|
|
|
protected void performFinish() throws Exception {
|
|
|
|
|
supervisor.UpdateTask();
|
|
|
|
|
}
|
|
|
|
|
@Override
|
|
|
|
|
public void Interrupt() throws Exception {
|
|
|
|
|
Current.getProject().CreateInterruptFile();
|
|
|
|
|
}
|
|
|
|
|
}
|