提交 cc693bc3 编写于 作者: L LonwoLonwo

dbeaver/dbeaver#11015 unused interface removed, task creation in empty folder fixed

上级 099e304c
......@@ -25,7 +25,10 @@ import org.jkiss.dbeaver.model.DBPImage;
*
* Task type groups similar tasks. Tasks of the same type have the same configurator and are shown in the same category in UI.
*/
public interface DBTTaskCategory extends DBTTaskDescriptor {
public interface DBTTaskCategory {
@NotNull
String getId();
@Nullable
DBTTaskCategory getParent();
......@@ -33,6 +36,15 @@ public interface DBTTaskCategory extends DBTTaskDescriptor {
@NotNull
DBTTaskCategory[] getChildren();
@NotNull
String getName();
@Nullable
String getDescription();
@Nullable
DBPImage getIcon();
@NotNull
DBTTaskType[] getTaskTypes();
......
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2021 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jkiss.dbeaver.model.task;
import org.jkiss.code.NotNull;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.model.DBPImage;
/**
* Main task type descriptor.
*/
public interface DBTTaskDescriptor {
@NotNull
String getId();
@NotNull
String getName();
@Nullable
String getDescription();
@Nullable
DBPImage getIcon();
}
......@@ -26,7 +26,19 @@ import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor;
/**
* Task handler
*/
public interface DBTTaskType extends DBTTaskDescriptor {
public interface DBTTaskType {
@NotNull
String getId();
@NotNull
String getName();
@Nullable
String getDescription();
@Nullable
DBPImage getIcon();
@NotNull
DBTTaskCategory getCategory();
......
......@@ -334,7 +334,7 @@ public class TaskManagerImpl implements DBTTaskManager {
private TaskFolderImpl searchTaskFolderByName(String taskFolderName) {
TaskFolderImpl taskFolder = null;
if (CommonUtils.isNotEmpty(taskFolderName) && !taskFolderName.equals(" ")) { // Space is special name for empty folder
if (CommonUtils.isNotEmpty(taskFolderName)) {
taskFolder = DBUtils.findObject(tasksFolders, taskFolderName);
if (taskFolder == null) {
taskFolder = new TaskFolderImpl(taskFolderName, projectMetadata, new ArrayList<>());
......
......@@ -595,10 +595,10 @@ public class DatabaseTasksTree {
}
// Sort all tasks into list by task category
private List<DBTTask> getSortedByCategoryTasks(TaskCategoryNode descriptor) {
private List<DBTTask> getSortedByCategoryTasks(TaskCategoryNode taskCategory) {
List<DBTTask> sortedByDescriptorList = new ArrayList<>();
for (DBTTask task : allTasks) {
if ((descriptor.project == null || task.getProject() == descriptor.project) && (task.getType().getCategory() == descriptor.taskDescriptor)) {
if ((taskCategory.project == null || task.getProject() == taskCategory.project) && (task.getType().getCategory() == taskCategory.category)) {
sortedByDescriptorList.add(task);
}
}
......@@ -644,31 +644,15 @@ public class DatabaseTasksTree {
}
}
private static abstract class AbstractTaskNode {
private static class TaskCategoryNode {
final DBPProject project;
final TaskCategoryNode parent;
final DBTTaskDescriptor taskDescriptor;
final DBTTaskCategory category;
@Nullable final DBTTaskFolder taskFolder;
AbstractTaskNode(DBPProject project, TaskCategoryNode parent, DBTTaskDescriptor taskDescriptor, @Nullable DBTTaskFolder taskFolder) {
TaskCategoryNode(DBPProject project, TaskCategoryNode parent, DBTTaskCategory category, @Nullable DBTTaskFolder taskFolder) {
this.project = project;
this.parent = parent;
this.taskDescriptor = taskDescriptor;
this.taskFolder = taskFolder;
}
@Override
public int hashCode() {
return Objects.hash(project, parent, taskDescriptor, taskFolder);
}
}
private static class TaskCategoryNode extends AbstractTaskNode {
final DBTTaskCategory category;
final DBTTaskFolder taskFolder;
TaskCategoryNode(DBPProject project, TaskCategoryNode parent, DBTTaskCategory category, DBTTaskFolder taskFolder) {
super(project, parent, category, taskFolder);
this.category = category;
this.taskFolder = taskFolder;
}
......@@ -691,16 +675,21 @@ public class DatabaseTasksTree {
@Override
public int hashCode() {
return Objects.hash(super.hashCode(), category, taskFolder);
return Objects.hash(project, parent, category, taskFolder);
}
}
private static class TaskTypeNode extends AbstractTaskNode {
private static class TaskTypeNode {
final DBPProject project;
final TaskCategoryNode parent;
final DBTTaskType type;
@Nullable final DBTTaskFolder taskFolder;
TaskTypeNode(DBPProject project, TaskCategoryNode parent, DBTTaskType type, DBTTaskFolder taskFolder) {
super(project, parent, type, taskFolder);
TaskTypeNode(DBPProject project, TaskCategoryNode parent, DBTTaskType type, @Nullable DBTTaskFolder taskFolder) {
this.project = project;
this.parent = parent;
this.type = type;
this.taskFolder = taskFolder;
}
@Override
......@@ -721,7 +710,7 @@ public class DatabaseTasksTree {
@Override
public int hashCode() {
return Objects.hash(super.hashCode(), type);
return Objects.hash(project, parent, type, taskFolder);
}
}
......@@ -866,8 +855,10 @@ public class DatabaseTasksTree {
if (curObject instanceof DBTTask || curObject instanceof DBTTaskFolder) {
return true;
} else if (curObject instanceof AbstractTaskNode) {
return ((AbstractTaskNode) curObject).taskFolder != null;
} else if (curObject instanceof TaskCategoryNode) {
return ((TaskCategoryNode) curObject).taskFolder != null;
} else if (curObject instanceof TaskTypeNode) {
return ((TaskTypeNode) curObject).taskFolder != null;
}
}
return false;
......@@ -882,12 +873,14 @@ public class DatabaseTasksTree {
return;
}
if (curObject instanceof DBTTask || curObject instanceof DBTTaskFolder || curObject instanceof AbstractTaskNode) {
if (curObject instanceof DBTTask || curObject instanceof DBTTaskFolder || curObject instanceof TaskCategoryNode || curObject instanceof TaskTypeNode) {
DBTTaskFolder taskFolder;
if (curObject instanceof DBTTask) {
taskFolder = ((DBTTask) curObject).getTaskFolder();
} else if (curObject instanceof AbstractTaskNode) {
taskFolder = ((AbstractTaskNode) curObject).taskFolder;
} else if (curObject instanceof TaskCategoryNode) {
taskFolder = ((TaskCategoryNode) curObject).taskFolder;
} else if (curObject instanceof TaskTypeNode) {
taskFolder = ((TaskTypeNode) curObject).taskFolder;
} else {
taskFolder = (DBTTaskFolder) curObject;
}
......
......@@ -81,7 +81,7 @@ class TaskConfigurationWizardPageTask extends ActiveWizardPage<TaskConfiguration
if (this.task != null) {
this.taskName = this.task.getName();
this.taskDescription = this.task.getDescription();
this.selectedTaskFolderName = this.task.getTaskFolder() != null ? this.task.getTaskFolder().getName() : "";
this.selectedTaskFolderName = this.task.getTaskFolder() != null ? this.task.getTaskFolder().getName() : null;
this.selectedTaskType = this.task.getType();
this.selectedCategory = selectedTaskType.getCategory();
}
......@@ -161,7 +161,7 @@ class TaskConfigurationWizardPageTask extends ActiveWizardPage<TaskConfiguration
DBTTaskManager taskManager = selectedProject.getTaskManager();
DBTTaskFolder[] tasksFolders = taskManager.getTasksFolders();
if (!ArrayUtils.isEmpty(tasksFolders)) {
taskFoldersCombo.add(" "); // Empty row as ability to remove task folder from task
taskFoldersCombo.add(""); // Empty row as ability to remove task folder from task
for (DBTTaskFolder taskFolder : tasksFolders) {
taskFoldersCombo.add(taskFolder.getName());
}
......@@ -401,7 +401,7 @@ class TaskConfigurationWizardPageTask extends ActiveWizardPage<TaskConfiguration
task.setDescription(taskDescriptionText.getText());
task.setType(selectedTaskType);
// Change task folder in edit task case
if (CommonUtils.isNotEmpty(selectedTaskFolderName)) {
if (selectedTaskFolderName != null) {
DBTTaskFolder[] tasksFolders = selectedProject.getTaskManager().getTasksFolders();
List<DBTTaskFolder> taskFoldersList = Arrays.asList(tasksFolders != null ? tasksFolders : new DBTTaskFolder[0]);
DBTTaskFolder folder = DBUtils.findObject(taskFoldersList, selectedTaskFolderName);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册