Search in sources :

Example 11 with DBTTask

use of org.jkiss.dbeaver.model.task.DBTTask in project dbeaver by serge-rider.

the class EditTaskConfigurationDialog method createDialogArea.

@Override
protected Composite createDialogArea(Composite parent) {
    Composite composite = super.createDialogArea(parent);
    composite.setLayoutData(new GridData(GridData.FILL_BOTH));
    Composite formPanel = UIUtils.createComposite(composite, 2);
    formPanel.setLayoutData(new GridData(GridData.FILL_BOTH));
    ModifyListener modifyListener = e -> {
        updateButtons();
    };
    UIUtils.createLabelText(formPanel, TaskUIMessages.edit_task_config_dialog_label_type, taskType.getCategory().getName() + " / " + taskType.getName(), SWT.BORDER | SWT.READ_ONLY);
    boolean taskSaved = task != null && !CommonUtils.isEmpty(task.getId());
    taskLabelCombo = UIUtils.createLabelCombo(formPanel, TaskUIMessages.edit_task_config_dialog_label_name, "", SWT.BORDER | (taskSaved ? SWT.READ_ONLY : SWT.NONE));
    ((GridData) taskLabelCombo.getLayoutData()).widthHint = 300;
    if (task != null) {
        taskLabelCombo.setText(task.getName());
    } else {
        taskLabelCombo.add("");
        DBTTaskManager taskManager = project.getTaskManager();
        allTasks = taskManager.getAllTaskByType(taskType);
        for (DBTTask tc : allTasks) {
            taskLabelCombo.add(tc.getName());
        }
    /*
            taskLabelCombo.addSelectionListener(new SelectionAdapter() {
                @Override
                public void widgetSelected(SelectionEvent e) {
                    int selectionIndex = taskLabelCombo.getSelectionIndex();
                    if (selectionIndex == 0) {
                        task = null;
                        setTitle("Create task " + taskType.getName());
                    } else {
                        task = (TaskImpl) allTasks[selectionIndex - 1];
                        taskDescriptionText.setText(CommonUtils.notEmpty(task.getDescription()));
                        setTitle("Edit task " + task.getName());
                    }
                }
            });
*/
    }
    taskLabelCombo.addModifyListener(modifyListener);
    if (taskSaved) {
        taskLabelCombo.setEnabled(false);
    }
    // if (!CommonUtils.isEmpty(task.getId())) {
    // UIUtils.createLabelText(formPanel, "ID", task.getId(), SWT.BORDER | SWT.READ_ONLY);
    // }
    taskDescriptionText = UIUtils.createLabelText(formPanel, TaskUIMessages.edit_task_config_dialog_label_descr, task == null ? "" : CommonUtils.notEmpty(task.getDescription()), SWT.BORDER | SWT.MULTI | SWT.V_SCROLL);
    ((GridData) taskDescriptionText.getLayoutData()).heightHint = taskDescriptionText.getLineHeight() * 5;
    taskDescriptionText.addModifyListener(modifyListener);
    UIUtils.asyncExec(() -> taskLabelCombo.setFocus());
    return composite;
}
Also used : DBWorkbench(org.jkiss.dbeaver.runtime.DBWorkbench) Date(java.util.Date) DBTTaskType(org.jkiss.dbeaver.model.task.DBTTaskType) IDialogConstants(org.eclipse.jface.dialogs.IDialogConstants) IDialogSettings(org.eclipse.jface.dialogs.IDialogSettings) NotNull(org.jkiss.code.NotNull) BaseDialog(org.jkiss.dbeaver.ui.dialogs.BaseDialog) LinkedHashMap(java.util.LinkedHashMap) Composite(org.eclipse.swt.widgets.Composite) UIUtils(org.jkiss.dbeaver.ui.UIUtils) DBTTaskManager(org.jkiss.dbeaver.model.task.DBTTaskManager) Map(java.util.Map) DBTTask(org.jkiss.dbeaver.model.task.DBTTask) TaskImpl(org.jkiss.dbeaver.registry.task.TaskImpl) GridData(org.eclipse.swt.layout.GridData) DBPProject(org.jkiss.dbeaver.model.app.DBPProject) CommonUtils(org.jkiss.utils.CommonUtils) Text(org.eclipse.swt.widgets.Text) TaskUIMessages(org.jkiss.dbeaver.tasks.ui.internal.TaskUIMessages) Combo(org.eclipse.swt.widgets.Combo) Shell(org.eclipse.swt.widgets.Shell) DBIcon(org.jkiss.dbeaver.model.DBIcon) DBException(org.jkiss.dbeaver.DBException) ModifyListener(org.eclipse.swt.events.ModifyListener) SWT(org.eclipse.swt.SWT) Composite(org.eclipse.swt.widgets.Composite) ModifyListener(org.eclipse.swt.events.ModifyListener) DBTTaskManager(org.jkiss.dbeaver.model.task.DBTTaskManager) DBTTask(org.jkiss.dbeaver.model.task.DBTTask) GridData(org.eclipse.swt.layout.GridData)

Example 12 with DBTTask

use of org.jkiss.dbeaver.model.task.DBTTask in project dbeaver by serge-rider.

the class RecentTasksMenuContributor method fillContributionItems.

@Override
protected void fillContributionItems(final List<IContributionItem> menuItems) {
    DBPProject project = NavigatorUtils.getSelectedProject();
    if (project == null) {
        return;
    }
    DBTTask[] tasks = project.getTaskManager().getAllTasks();
    Arrays.sort(tasks, (o1, o2) -> {
        DBTTaskRun lr1 = o1.getLastRun();
        DBTTaskRun lr2 = o1.getLastRun();
        if (lr1 == lr2)
            return o1.getCreateTime().compareTo(o2.getCreateTime());
        else if (lr1 == null)
            return -1;
        else if (lr2 == null)
            return 1;
        else
            return lr1.getStartTime().compareTo(lr2.getStartTime());
    });
    for (int i = 0; i < tasks.length && i <= MAX_ITEMS; i++) {
        DBTTask task = tasks[i];
        DBPImage taskIcon = task.getType().getIcon();
        if (taskIcon == null)
            taskIcon = DBIcon.TREE_TASK;
        menuItems.add(ActionUtils.makeActionContribution(new Action(task.getName(), DBeaverIcons.getImageDescriptor(taskIcon)) {

            @Override
            public void run() {
                TaskHandlerRun.runTask(task);
            }
        }, false));
    }
}
Also used : DBTTaskRun(org.jkiss.dbeaver.model.task.DBTTaskRun) Action(org.eclipse.jface.action.Action) DBTTask(org.jkiss.dbeaver.model.task.DBTTask) DBPProject(org.jkiss.dbeaver.model.app.DBPProject) DBPImage(org.jkiss.dbeaver.model.DBPImage)

Example 13 with DBTTask

use of org.jkiss.dbeaver.model.task.DBTTask in project dbeaver by serge-rider.

the class DataTransferWizard method performFinish.

@Override
public boolean performFinish() {
    saveDialogSettings();
    if (!super.performFinish()) {
        return false;
    }
    try {
        DBTTask currentTask = getCurrentTask();
        if (currentTask == null) {
            // Execute directly - without task serialize/deserialize
            // We need it because some data producers cannot be serialized properly (e.g. ResultSetDatacontainer - see #7342)
            DataTransferWizardExecutor executor = new DataTransferWizardExecutor(getRunnableContext(), DTMessages.data_transfer_wizard_job_name, getSettings());
            executor.executeTask();
        }
    } catch (DBException e) {
        DBWorkbench.getPlatformUI().showError(e.getMessage(), DTUIMessages.data_transfer_wizard_message_init_data_transfer, e);
        return false;
    }
    return true;
}
Also used : DBException(org.jkiss.dbeaver.DBException) DBTTask(org.jkiss.dbeaver.model.task.DBTTask)

Example 14 with DBTTask

use of org.jkiss.dbeaver.model.task.DBTTask in project dbeaver by serge-rider.

the class TaskConfigurationWizardDialog method openNewTaskDialog.

public static int openNewTaskDialog(IWorkbenchWindow window, DBPProject project, String taskTypeId, IStructuredSelection selection) {
    TaskTypeDescriptor taskType = TaskRegistry.getInstance().getTaskType(taskTypeId);
    if (taskType == null) {
        DBWorkbench.getPlatformUI().showError("Bad task type", "Task type '" + taskTypeId + "' not found");
        return IDialogConstants.CANCEL_ID;
    }
    try {
        DBTTask task = project.getTaskManager().createTemporaryTask(taskType, taskType.getName());
        task.setProperties(new HashMap<>());
        DBTTaskConfigurator configurator = TaskUIRegistry.getInstance().createConfigurator(taskType);
        TaskConfigurationWizard configWizard = configurator.createTaskConfigWizard(task);
        TaskConfigurationWizardDialog dialog = new TaskConfigurationWizardDialog(window, configWizard, selection);
        return dialog.open();
    } catch (DBException e) {
        DBWorkbench.getPlatformUI().showError("Task create error", "Error creating task '" + taskTypeId + "'", e);
        return IDialogConstants.CANCEL_ID;
    }
}
Also used : DBException(org.jkiss.dbeaver.DBException) DBTTaskConfigurator(org.jkiss.dbeaver.tasks.ui.DBTTaskConfigurator) DBTTask(org.jkiss.dbeaver.model.task.DBTTask) TaskTypeDescriptor(org.jkiss.dbeaver.registry.task.TaskTypeDescriptor)

Example 15 with DBTTask

use of org.jkiss.dbeaver.model.task.DBTTask in project dbeaver by serge-rider.

the class AbstractNativeToolWizard method performFinish.

@Override
public boolean performFinish() {
    // Save settings
    settings.saveSettings(getRunnableContext(), getPreferenceStore());
    if (!validateClientFiles()) {
        return false;
    }
    if (getCurrentTask() != null) {
        return super.performFinish();
    }
    showLogPage();
    try {
        // Execute directly - without task serialize/deserialize
        // We need it because some data producers cannot be serialized properly (e.g. ResultSetDatacontainer - see #7342)
        DBTTask temporaryTask = getProject().getTaskManager().createTemporaryTask(getTaskType(), getTaskType().getName());
        saveConfigurationToTask(temporaryTask);
        TaskWizardExecutor executor = new TaskWizardExecutor(getRunnableContext(), temporaryTask, log, logPage.getLogWriter());
        executor.executeTask();
        return false;
    } catch (Exception e) {
        DBWorkbench.getPlatformUI().showError(e.getMessage(), "Error running task", e);
        return false;
    }
}
Also used : DBTTask(org.jkiss.dbeaver.model.task.DBTTask) TaskWizardExecutor(org.jkiss.dbeaver.tasks.ui.wizard.TaskWizardExecutor) InvocationTargetException(java.lang.reflect.InvocationTargetException) DBException(org.jkiss.dbeaver.DBException)

Aggregations

DBTTask (org.jkiss.dbeaver.model.task.DBTTask)26 DBException (org.jkiss.dbeaver.DBException)14 ISelection (org.eclipse.jface.viewers.ISelection)10 IStructuredSelection (org.eclipse.jface.viewers.IStructuredSelection)10 DBTTaskType (org.jkiss.dbeaver.model.task.DBTTaskType)6 InvocationTargetException (java.lang.reflect.InvocationTargetException)4 DBPImage (org.jkiss.dbeaver.model.DBPImage)4 DBPProject (org.jkiss.dbeaver.model.app.DBPProject)4 DBTTaskManager (org.jkiss.dbeaver.model.task.DBTTaskManager)4 TaskWizardExecutor (org.jkiss.dbeaver.tasks.ui.wizard.TaskWizardExecutor)4 ArrayList (java.util.ArrayList)2 Date (java.util.Date)2 LinkedHashMap (java.util.LinkedHashMap)2 Map (java.util.Map)2 Action (org.eclipse.jface.action.Action)2 IDialogConstants (org.eclipse.jface.dialogs.IDialogConstants)2 IDialogSettings (org.eclipse.jface.dialogs.IDialogSettings)2 StructuredSelection (org.eclipse.jface.viewers.StructuredSelection)2 SWT (org.eclipse.swt.SWT)2 ModifyListener (org.eclipse.swt.events.ModifyListener)2