提交 f89a27b7 编写于 作者: N Nikita Akilov

dbeaver/dbeaver-ee#625 delete tasks from scheduler when deleting from project

上级 f118925f
......@@ -110,6 +110,8 @@ public class TaskUIMessages extends NLS {
public static String task_handler_delete_confirm_question_delete_task;
public static String task_handler_delete_confirm_title_delete_tasks;
public static String task_handler_delete_confirm_question_delete_tasks;
public static String task_handler_delete_error_deleting_task_from_scheduler_title;
public static String task_handler_delete_error_deleting_task_from_scheduler_message;
public static String task_configuration_wizard_page_task_error_message_enter_task_name;
public static String task_configuration_wizard_page_task_already_exists;
......
......@@ -86,6 +86,8 @@ task_handler_delete_confirm_title_delete_task = Delete task
task_handler_delete_confirm_question_delete_task = Are you sure you want to delete task "{0}"?
task_handler_delete_confirm_title_delete_tasks = Delete tasks
task_handler_delete_confirm_question_delete_tasks = Are you sure you want to delete {0} tasks?
task_handler_delete_error_deleting_task_from_scheduler_title = Task deletion error
task_handler_delete_error_deleting_task_from_scheduler_message = Unable to delete task {0} from scheduler. The task won't be deleted from the project.
task_configuration_wizard_page_task_error_message_enter_task_name = Enter task name (unique)
task_configuration_wizard_page_task_already_exists = Task "{0}" already exists in project "{1}"
task_configuration_wizard_page_task_enter_type = Enter task type
......
......@@ -23,7 +23,12 @@ import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.osgi.util.NLS;
import org.eclipse.ui.handlers.HandlerUtil;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.model.task.DBTScheduler;
import org.jkiss.dbeaver.model.task.DBTTask;
import org.jkiss.dbeaver.model.task.DBTTaskScheduleInfo;
import org.jkiss.dbeaver.registry.task.TaskRegistry;
import org.jkiss.dbeaver.runtime.DBWorkbench;
import org.jkiss.dbeaver.tasks.ui.internal.TaskUIMessages;
import org.jkiss.dbeaver.ui.UIUtils;
......@@ -58,7 +63,23 @@ public class TaskHandlerDelete extends AbstractHandler {
return null;
}
}
DBTScheduler scheduler = TaskRegistry.getInstance().getActiveSchedulerInstance();
for (DBTTask task : tasksToDelete) {
if (scheduler != null) {
DBTTaskScheduleInfo taskScheduleInfo = scheduler.getScheduledTaskInfo(task);
if (taskScheduleInfo != null) {
try {
scheduler.removeTaskSchedule(task, taskScheduleInfo);
} catch (DBException e) {
DBWorkbench.getPlatformUI().showError(
TaskUIMessages.task_handler_delete_error_deleting_task_from_scheduler_title,
NLS.bind(TaskUIMessages.task_handler_delete_error_deleting_task_from_scheduler_message, task.getId()),
e
);
continue;
}
}
}
task.getProject().getTaskManager().deleteTaskConfiguration(task);
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册