Search in sources :

Example 1 with DBTTaskManager

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

the class TaskHandlerCopy method execute.

@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
    final ISelection selection = HandlerUtil.getCurrentSelection(event);
    if (selection instanceof IStructuredSelection) {
        IStructuredSelection structSelection = (IStructuredSelection) selection;
        Object firstElement = structSelection.getFirstElement();
        if (firstElement instanceof DBTTask) {
            DBTTask oldTask = (DBTTask) firstElement;
            for (; ; ) {
                EnterNameDialog taskNameDialog = new EnterNameDialog(HandlerUtil.getActiveShell(event), TaskUIMessages.task_handler_copy_name_dialog_enter_task, oldTask.getName());
                String newTaskName = taskNameDialog.chooseName();
                if (newTaskName == null) {
                    return null;
                }
                DBTTaskManager taskManager = oldTask.getProject().getTaskManager();
                if (taskManager.getTaskByName(newTaskName) != null) {
                    UIUtils.showMessageBox(HandlerUtil.getActiveShell(event), "Duplicate task name", "Task '" + newTaskName + "' already exists", SWT.ICON_ERROR);
                    continue;
                }
                try {
                    DBTTask newTask = taskManager.createTask(oldTask.getType(), newTaskName, oldTask.getDescription(), new LinkedHashMap<>(oldTask.getProperties()));
                    taskManager.updateTaskConfiguration(newTask);
                    IWorkbenchPart activePart = HandlerUtil.getActivePart(event);
                    if (activePart instanceof DatabaseTasksView) {
                        UIUtils.asyncExec(() -> {
                            ((DatabaseTasksView) activePart).getTasksTree().getViewer().setSelection(new StructuredSelection(newTask), true);
                            ActionUtils.runCommand(DatabaseTasksView.EDIT_TASK_CMD_ID, activePart.getSite());
                        });
                    }
                } catch (DBException e) {
                    DBWorkbench.getPlatformUI().showError("Task copy error", "Error copying task '" + oldTask.getName() + "'", e);
                }
                break;
            }
        }
    }
    return null;
}
Also used : DBException(org.jkiss.dbeaver.DBException) EnterNameDialog(org.jkiss.dbeaver.ui.dialogs.EnterNameDialog) DBTTask(org.jkiss.dbeaver.model.task.DBTTask) DBTTaskManager(org.jkiss.dbeaver.model.task.DBTTaskManager) IWorkbenchPart(org.eclipse.ui.IWorkbenchPart) ISelection(org.eclipse.jface.viewers.ISelection) StructuredSelection(org.eclipse.jface.viewers.StructuredSelection) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection)

Example 2 with DBTTaskManager

use of org.jkiss.dbeaver.model.task.DBTTaskManager 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 3 with DBTTaskManager

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

the class EditTaskConfigurationDialog method okPressed.

@Override
protected void okPressed() {
    DBTTaskManager taskManager = project.getTaskManager();
    try {
        if (task == null) {
            task = (TaskImpl) taskManager.createTask(taskType, taskLabelCombo.getText(), taskDescriptionText.getText(), state);
        }
        task.setName(taskLabelCombo.getText());
        task.setDescription(taskDescriptionText.getText());
        task.setUpdateTime(new Date());
        task.setProperties(state);
        taskManager.updateTaskConfiguration(task);
    } catch (DBException e) {
        DBWorkbench.getPlatformUI().showError("Create task", "Error creating data transfer task", e);
        return;
    }
    super.okPressed();
}
Also used : DBException(org.jkiss.dbeaver.DBException) DBTTaskManager(org.jkiss.dbeaver.model.task.DBTTaskManager) Date(java.util.Date)

Example 4 with DBTTaskManager

use of org.jkiss.dbeaver.model.task.DBTTaskManager in project dbeaver by dbeaver.

the class TaskHandlerCreate method execute.

@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
    DBPProject project = NavigatorUtils.getSelectedProject();
    /*
        CreateTaskConfigurationDialog dialog = new CreateTaskConfigurationDialog(
            HandlerUtil.getActiveShell(event),
            project
        );
*/
    TaskConfigurationWizardDialog dialog = new TaskConfigurationWizardDialog(HandlerUtil.getActiveWorkbenchWindow(event));
    if (dialog.open() == IDialogConstants.OK_ID) {
        DBTTaskManager taskManager = project.getTaskManager();
        try {
        /*
                DBTTaskConfigurator configurator = dialog.getSelectedCategory().createConfigurator();
                DBTTask task = taskManager.createTask(
                    dialog.getSelectedTaskType(),
                    dialog.getTaskName(),
                    dialog.getTaskDescription(),
                    dialog.getInitialProperties());
                if (!configurator.createTaskConfigWizard(task)) {
                    taskManager.deleteTaskConfiguration(task);
                }
*/
        } catch (Exception e) {
            DBWorkbench.getPlatformUI().showError("Create task failed", "Error while creating new task", e);
        }
    }
    return null;
}
Also used : DBTTaskManager(org.jkiss.dbeaver.model.task.DBTTaskManager) TaskConfigurationWizardDialog(org.jkiss.dbeaver.tasks.ui.wizard.TaskConfigurationWizardDialog) DBPProject(org.jkiss.dbeaver.model.app.DBPProject) ExecutionException(org.eclipse.core.commands.ExecutionException)

Example 5 with DBTTaskManager

use of org.jkiss.dbeaver.model.task.DBTTaskManager in project dbeaver by dbeaver.

the class TaskHandlerCopy method execute.

@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
    final ISelection selection = HandlerUtil.getCurrentSelection(event);
    if (selection instanceof IStructuredSelection) {
        IStructuredSelection structSelection = (IStructuredSelection) selection;
        Object firstElement = structSelection.getFirstElement();
        if (firstElement instanceof DBTTask) {
            DBTTask oldTask = (DBTTask) firstElement;
            for (; ; ) {
                EnterNameDialog taskNameDialog = new EnterNameDialog(HandlerUtil.getActiveShell(event), TaskUIMessages.task_handler_copy_name_dialog_enter_task, oldTask.getName());
                String newTaskName = taskNameDialog.chooseName();
                if (newTaskName == null) {
                    return null;
                }
                DBTTaskManager taskManager = oldTask.getProject().getTaskManager();
                if (taskManager.getTaskByName(newTaskName) != null) {
                    UIUtils.showMessageBox(HandlerUtil.getActiveShell(event), "Duplicate task name", "Task '" + newTaskName + "' already exists", SWT.ICON_ERROR);
                    continue;
                }
                try {
                    DBTTask newTask = taskManager.createTask(oldTask.getType(), newTaskName, oldTask.getDescription(), new LinkedHashMap<>(oldTask.getProperties()));
                    taskManager.updateTaskConfiguration(newTask);
                    IWorkbenchPart activePart = HandlerUtil.getActivePart(event);
                    if (activePart instanceof DatabaseTasksView) {
                        UIUtils.asyncExec(() -> {
                            ((DatabaseTasksView) activePart).getTasksTree().getViewer().setSelection(new StructuredSelection(newTask), true);
                            ActionUtils.runCommand(DatabaseTasksView.EDIT_TASK_CMD_ID, activePart.getSite());
                        });
                    }
                } catch (DBException e) {
                    DBWorkbench.getPlatformUI().showError("Task copy error", "Error copying task '" + oldTask.getName() + "'", e);
                }
                break;
            }
        }
    }
    return null;
}
Also used : DBException(org.jkiss.dbeaver.DBException) EnterNameDialog(org.jkiss.dbeaver.ui.dialogs.EnterNameDialog) DBTTask(org.jkiss.dbeaver.model.task.DBTTask) DBTTaskManager(org.jkiss.dbeaver.model.task.DBTTaskManager) IWorkbenchPart(org.eclipse.ui.IWorkbenchPart) ISelection(org.eclipse.jface.viewers.ISelection) StructuredSelection(org.eclipse.jface.viewers.StructuredSelection) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection)

Aggregations

DBTTaskManager (org.jkiss.dbeaver.model.task.DBTTaskManager)8 DBException (org.jkiss.dbeaver.DBException)6 Date (java.util.Date)4 DBPProject (org.jkiss.dbeaver.model.app.DBPProject)4 DBTTask (org.jkiss.dbeaver.model.task.DBTTask)4 LinkedHashMap (java.util.LinkedHashMap)2 Map (java.util.Map)2 ExecutionException (org.eclipse.core.commands.ExecutionException)2 IDialogConstants (org.eclipse.jface.dialogs.IDialogConstants)2 IDialogSettings (org.eclipse.jface.dialogs.IDialogSettings)2 ISelection (org.eclipse.jface.viewers.ISelection)2 IStructuredSelection (org.eclipse.jface.viewers.IStructuredSelection)2 StructuredSelection (org.eclipse.jface.viewers.StructuredSelection)2 SWT (org.eclipse.swt.SWT)2 ModifyListener (org.eclipse.swt.events.ModifyListener)2 GridData (org.eclipse.swt.layout.GridData)2 Combo (org.eclipse.swt.widgets.Combo)2 Composite (org.eclipse.swt.widgets.Composite)2 Shell (org.eclipse.swt.widgets.Shell)2 Text (org.eclipse.swt.widgets.Text)2