From 1fa39ce1c8832851375116c7d104dfbb93abeadf Mon Sep 17 00:00:00 2001 From: Julian Weinelt Date: Tue, 17 Feb 2026 10:41:03 +0100 Subject: [PATCH 1/3] api: add api for managing trees, visuals and context menus --- .../dbx/api/ui/tree/ProjectTree.java | 30 ++++++++++++++ .../databench/dbx/api/ui/tree/TColumn.java | 15 +++++++ .../databench/dbx/api/ui/tree/TDataType.java | 5 +++ .../databench/dbx/api/ui/tree/TDatabase.java | 40 +++++++++++++++++++ .../databench/dbx/api/ui/tree/TTable.java | 24 +++++++++++ .../databench/dbx/api/ui/tree/TView.java | 4 ++ .../dbx/api/ui/tree/TableRelation.java | 5 +++ .../databench/dbx/api/ui/tree/TreeBase.java | 19 +++++++++ .../dbx/api/ui/tree/TreeCallback.java | 5 +++ .../databench/dbx/api/ui/tree/TreeObject.java | 40 +++++++++++++++++++ 10 files changed, 187 insertions(+) create mode 100644 dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/ProjectTree.java create mode 100644 dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TColumn.java create mode 100644 dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TDataType.java create mode 100644 dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TDatabase.java create mode 100644 dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TTable.java create mode 100644 dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TView.java create mode 100644 dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TableRelation.java create mode 100644 dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeBase.java create mode 100644 dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeCallback.java create mode 100644 dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeObject.java diff --git a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/ProjectTree.java b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/ProjectTree.java new file mode 100644 index 00000000..384695fd --- /dev/null +++ b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/ProjectTree.java @@ -0,0 +1,30 @@ +package de.julianweinelt.databench.dbx.api.ui.tree; + +import lombok.Getter; + +import javax.swing.tree.DefaultMutableTreeNode; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +@Getter +public class ProjectTree { + private final UUID project; + private final List databases = new ArrayList<>(); + + public ProjectTree(UUID project) { + this.project = project; + } + + public void addDatabase(TDatabase db) { + databases.add(db); + } + + public DefaultMutableTreeNode render() { + DefaultMutableTreeNode root = new DefaultMutableTreeNode("Project"); + for (TDatabase db : databases) { + root.add(db.createTreeObject().getNode()); + } + return root; + } +} \ No newline at end of file diff --git a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TColumn.java b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TColumn.java new file mode 100644 index 00000000..ab397f33 --- /dev/null +++ b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TColumn.java @@ -0,0 +1,15 @@ +package de.julianweinelt.databench.dbx.api.ui.tree; + + +public class TColumn { + private String name; + private TDataType dataType; + private boolean notNull; + private Object defaultValue; + private boolean primaryKey; + private boolean unique; + //TODO: CHECK + private boolean autoIncrement; + private boolean unsigned; + private String comment; +} diff --git a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TDataType.java b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TDataType.java new file mode 100644 index 00000000..c1ea2ef7 --- /dev/null +++ b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TDataType.java @@ -0,0 +1,5 @@ +package de.julianweinelt.databench.dbx.api.ui.tree; + +public class TDataType { + +} diff --git a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TDatabase.java b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TDatabase.java new file mode 100644 index 00000000..d97b104a --- /dev/null +++ b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TDatabase.java @@ -0,0 +1,40 @@ +package de.julianweinelt.databench.dbx.api.ui.tree; + +import lombok.Getter; +import lombok.Setter; + +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +@Getter @Setter +public class TDatabase extends TreeBase implements TreeCallback { + private boolean offline; + + private final List tables = new ArrayList<>(); + private final List views = new ArrayList<>(); + + public TDatabase(UUID uniqueID, String name, boolean offline) { + super(uniqueID, name); + this.offline = offline; + } + public TDatabase (String name) { + super(UUID.randomUUID(), name); + offline = false; + } + + @Override + public TreeObject createTreeObject() { + return new TreeObject(TreeObject.Type.DATABASE, getUniqueID(), getName()) { + @Override + public String icon() { + return (offline ? "/icons/editor/database-offline.png" : "/icons/editor/database.png"); + } + }; + } + + @Override + public TDatabase call() { + return this; + } +} \ No newline at end of file diff --git a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TTable.java b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TTable.java new file mode 100644 index 00000000..c47f1ab5 --- /dev/null +++ b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TTable.java @@ -0,0 +1,24 @@ +package de.julianweinelt.databench.dbx.api.ui.tree; + +import lombok.Getter; +import lombok.Setter; + +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +@Getter @Setter +public class TTable { + private final UUID uniqueID; + private final String database; + private String name; + + private final List columns = new ArrayList<>(); + private final List relations = new ArrayList<>(); + + public TTable(UUID uniqueID, String database, String name) { + this.uniqueID = uniqueID; + this.database = database; + this.name = name; + } +} \ No newline at end of file diff --git a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TView.java b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TView.java new file mode 100644 index 00000000..a10c09ac --- /dev/null +++ b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TView.java @@ -0,0 +1,4 @@ +package de.julianweinelt.databench.dbx.api.ui.tree; + +public class TView { +} diff --git a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TableRelation.java b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TableRelation.java new file mode 100644 index 00000000..f5c9a53b --- /dev/null +++ b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TableRelation.java @@ -0,0 +1,5 @@ +package de.julianweinelt.databench.dbx.api.ui.tree; + +import java.util.UUID; + +public record TableRelation(String name, UUID table1, UUID table2, String table1Column, String table2Column) {} \ No newline at end of file diff --git a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeBase.java b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeBase.java new file mode 100644 index 00000000..c2d44598 --- /dev/null +++ b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeBase.java @@ -0,0 +1,19 @@ +package de.julianweinelt.databench.dbx.api.ui.tree; + +import lombok.Getter; +import lombok.Setter; + +import java.util.UUID; + +@Getter @Setter +public abstract class TreeBase { + private final UUID uniqueID; + private String name; + + public TreeBase(UUID uniqueID, String name) { + this.uniqueID = uniqueID; + this.name = name; + } + + public abstract TreeObject createTreeObject(); +} diff --git a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeCallback.java b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeCallback.java new file mode 100644 index 00000000..cdbd4189 --- /dev/null +++ b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeCallback.java @@ -0,0 +1,5 @@ +package de.julianweinelt.databench.dbx.api.ui.tree; + +public interface TreeCallback { + T call(); +} diff --git a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeObject.java b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeObject.java new file mode 100644 index 00000000..d0581170 --- /dev/null +++ b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeObject.java @@ -0,0 +1,40 @@ +package de.julianweinelt.databench.dbx.api.ui.tree; + +import lombok.Getter; +import lombok.Setter; + +import javax.swing.tree.DefaultMutableTreeNode; +import java.util.UUID; + +@Getter @Setter +public abstract class TreeObject { + private final UUID uniqueID; + private final Type type; + private String name; + + public abstract String icon(); + + public DefaultMutableTreeNode getNode() { + return new DefaultMutableTreeNode(this); + } + + public TreeObject(Type type, UUID uniqueID, String name) { + this.uniqueID = uniqueID; + this.type = type; + this.name = name; + } + + public enum Type { + PROJECT, + DATABASE, + FOLDER_TABLES, + FOLDER_VIEWS, + FOLDER_PROCEDURES, + FOLDER_FUNCTIONS, + TABLE, + VIEW, + PROCEDURE, + FUNCTION, + JOB // SQL Server only + } +} From 285da3bcaaf368feffb83b66a490d176c98454ca Mon Sep 17 00:00:00 2001 From: Julian Weinelt Date: Thu, 26 Feb 2026 11:31:26 +0100 Subject: [PATCH 2/3] api: rework api for project tree --- .../api/ui/tree/ContextMenuContributor.java | 12 ++ .../dbx/api/ui/tree/ContextMenuRegistry.java | 20 ++++ .../dbx/api/ui/tree/DefaultNodeTypes.java | 21 ++++ .../dbx/api/ui/tree/ExplorerEventBus.java | 21 ++++ .../dbx/api/ui/tree/IconProvider.java | 7 ++ .../dbx/api/ui/tree/NodeChildrenProvider.java | 10 ++ .../api/ui/tree/NodeStructureRegistry.java | 32 +++++ .../dbx/api/ui/tree/ProjectTree.java | 30 ----- .../dbx/api/ui/tree/ProjectTreeBuilder.java | 66 +++++++++++ .../dbx/api/ui/tree/SwingTreeAdapter.java | 16 +++ .../databench/dbx/api/ui/tree/TColumn.java | 15 --- .../databench/dbx/api/ui/tree/TDataType.java | 5 - .../databench/dbx/api/ui/tree/TDatabase.java | 40 ------- .../databench/dbx/api/ui/tree/TTable.java | 24 ---- .../dbx/api/ui/tree/TableRelation.java | 5 - .../databench/dbx/api/ui/tree/TreeBase.java | 19 --- .../dbx/api/ui/tree/TreeCallback.java | 5 - .../dbx/api/ui/tree/TreeContextAction.java | 12 ++ .../dbx/api/ui/tree/TreeListener.java | 8 ++ .../databench/dbx/api/ui/tree/TreeNode.java | 25 ++++ .../ui/tree/{TView.java => TreeNodeType.java} | 5 +- .../databench/dbx/api/ui/tree/TreeObject.java | 40 ------- .../dbx/api/ui/tree/TreeUIRegistry.java | 18 +++ .../databench/api/DConnection.java | 109 +++--------------- 24 files changed, 289 insertions(+), 276 deletions(-) create mode 100644 dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/ContextMenuContributor.java create mode 100644 dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/ContextMenuRegistry.java create mode 100644 dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/DefaultNodeTypes.java create mode 100644 dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/ExplorerEventBus.java create mode 100644 dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/IconProvider.java create mode 100644 dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/NodeChildrenProvider.java create mode 100644 dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/NodeStructureRegistry.java delete mode 100644 dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/ProjectTree.java create mode 100644 dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/ProjectTreeBuilder.java create mode 100644 dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/SwingTreeAdapter.java delete mode 100644 dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TColumn.java delete mode 100644 dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TDataType.java delete mode 100644 dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TDatabase.java delete mode 100644 dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TTable.java delete mode 100644 dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TableRelation.java delete mode 100644 dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeBase.java delete mode 100644 dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeCallback.java create mode 100644 dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeContextAction.java create mode 100644 dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeListener.java create mode 100644 dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeNode.java rename dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/{TView.java => TreeNodeType.java} (50%) delete mode 100644 dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeObject.java create mode 100644 dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeUIRegistry.java diff --git a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/ContextMenuContributor.java b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/ContextMenuContributor.java new file mode 100644 index 00000000..663f9b96 --- /dev/null +++ b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/ContextMenuContributor.java @@ -0,0 +1,12 @@ +package de.julianweinelt.databench.dbx.api.ui.tree; + +import java.util.List; + +public interface ContextMenuContributor { + + boolean supports(TreeNode node); + + void contribute(TreeNode node); + + List getActions(TreeNode node); +} \ No newline at end of file diff --git a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/ContextMenuRegistry.java b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/ContextMenuRegistry.java new file mode 100644 index 00000000..770dca5f --- /dev/null +++ b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/ContextMenuRegistry.java @@ -0,0 +1,20 @@ +package de.julianweinelt.databench.dbx.api.ui.tree; + +import java.util.ArrayList; +import java.util.List; + +public class ContextMenuRegistry { + + private final List contributors = new ArrayList<>(); + + public void register(ContextMenuContributor contributor) { + contributors.add(contributor); + } + + public List getActions(TreeNode node) { + return contributors.stream() + .filter(c -> c.supports(node)) + .flatMap(c -> c.getActions(node).stream()) + .toList(); + } +} \ No newline at end of file diff --git a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/DefaultNodeTypes.java b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/DefaultNodeTypes.java new file mode 100644 index 00000000..95210fc9 --- /dev/null +++ b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/DefaultNodeTypes.java @@ -0,0 +1,21 @@ +package de.julianweinelt.databench.dbx.api.ui.tree; + +public enum DefaultNodeTypes implements TreeNodeType { + PROJECT, + DATABASES, + DATABASE, + TABLES, + TABLE, + COLUMNS, + COLUMN, + INDICES, + INDEX, + VIEWS, + VIEW, + JOB_AGENT; + + @Override + public String getId() { + return this.name(); + } +} \ No newline at end of file diff --git a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/ExplorerEventBus.java b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/ExplorerEventBus.java new file mode 100644 index 00000000..c02a9be6 --- /dev/null +++ b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/ExplorerEventBus.java @@ -0,0 +1,21 @@ +package de.julianweinelt.databench.dbx.api.ui.tree; + +import java.util.ArrayList; +import java.util.List; + +public class ExplorerEventBus { + + private final List listeners = new ArrayList<>(); + + public void register(TreeListener listener) { + listeners.add(listener); + } + + public void fireSelected(TreeNode node) { + listeners.forEach(l -> l.onNodeSelected(node)); + } + + public void fireDoubleClick(TreeNode node) { + listeners.forEach(l -> l.onNodeDoubleClicked(node)); + } +} \ No newline at end of file diff --git a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/IconProvider.java b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/IconProvider.java new file mode 100644 index 00000000..826876c1 --- /dev/null +++ b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/IconProvider.java @@ -0,0 +1,7 @@ +package de.julianweinelt.databench.dbx.api.ui.tree; + +import javax.swing.*; + +public interface IconProvider { + Icon getIcon(TreeNode node); +} \ No newline at end of file diff --git a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/NodeChildrenProvider.java b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/NodeChildrenProvider.java new file mode 100644 index 00000000..65d9869e --- /dev/null +++ b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/NodeChildrenProvider.java @@ -0,0 +1,10 @@ +package de.julianweinelt.databench.dbx.api.ui.tree; + +import java.util.List; + +public interface NodeChildrenProvider { + + boolean supports(TreeNode node); + + List loadChildren(TreeNode node); +} \ No newline at end of file diff --git a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/NodeStructureRegistry.java b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/NodeStructureRegistry.java new file mode 100644 index 00000000..5ab0d883 --- /dev/null +++ b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/NodeStructureRegistry.java @@ -0,0 +1,32 @@ +package de.julianweinelt.databench.dbx.api.ui.tree; + +import java.util.ArrayList; +import java.util.List; + +public class NodeStructureRegistry { + + private final List providers = new ArrayList<>(); + + private final List contributors = new ArrayList<>(); + + public void register(NodeChildrenProvider provider) { + providers.add(provider); + } + + public List loadChildren(TreeNode node) { + return providers.stream() + .filter(p -> p.supports(node)) + .flatMap(p -> p.loadChildren(node).stream()) + .toList(); + } + + + public void loadAdditionalChildren(TreeNode node) { + for (ContextMenuContributor c : contributors) { + if (c.supports(node)) { + c.contribute(node); + } + + } + } + } \ No newline at end of file diff --git a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/ProjectTree.java b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/ProjectTree.java deleted file mode 100644 index 384695fd..00000000 --- a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/ProjectTree.java +++ /dev/null @@ -1,30 +0,0 @@ -package de.julianweinelt.databench.dbx.api.ui.tree; - -import lombok.Getter; - -import javax.swing.tree.DefaultMutableTreeNode; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; - -@Getter -public class ProjectTree { - private final UUID project; - private final List databases = new ArrayList<>(); - - public ProjectTree(UUID project) { - this.project = project; - } - - public void addDatabase(TDatabase db) { - databases.add(db); - } - - public DefaultMutableTreeNode render() { - DefaultMutableTreeNode root = new DefaultMutableTreeNode("Project"); - for (TDatabase db : databases) { - root.add(db.createTreeObject().getNode()); - } - return root; - } -} \ No newline at end of file diff --git a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/ProjectTreeBuilder.java b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/ProjectTreeBuilder.java new file mode 100644 index 00000000..d5452736 --- /dev/null +++ b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/ProjectTreeBuilder.java @@ -0,0 +1,66 @@ +package de.julianweinelt.databench.dbx.api.ui.tree; + +import de.julianweinelt.databench.dbx.database.ADatabase; + +public class ProjectTreeBuilder { + + private final ADatabase database; + private final NodeStructureRegistry structureRegistry; + + public ProjectTreeBuilder(ADatabase database, + NodeStructureRegistry structureRegistry) { + this.database = database; + this.structureRegistry = structureRegistry; + } + + public TreeNode build() { + + TreeNode root = new TreeNode( + DefaultNodeTypes.PROJECT, + "Project", + null + ); + + TreeNode dbRoot = new TreeNode( + DefaultNodeTypes.DATABASES, + "Databases", + null + ); + + root.addChild(dbRoot); + + for (String dbName : database.getDatabases()) { + + TreeNode dbNode = new TreeNode( + DefaultNodeTypes.DATABASE, + dbName, + dbName + ); + + dbRoot.addChild(dbNode); + + loadDatabaseChildren(dbNode, dbName); + } + + return root; + } + + private void loadDatabaseChildren(TreeNode dbNode, String dbName) { + + TreeNode tablesFolder = new TreeNode( + DefaultNodeTypes.TABLES, + "Tables", + null + ); + + dbNode.addChild(tablesFolder); + + for (String table : database.getTables(dbName)) { + tablesFolder.addChild( + new TreeNode(DefaultNodeTypes.TABLE, table, table) + ); + } + + structureRegistry.loadAdditionalChildren(dbNode); + } +} \ No newline at end of file diff --git a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/SwingTreeAdapter.java b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/SwingTreeAdapter.java new file mode 100644 index 00000000..a77d8962 --- /dev/null +++ b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/SwingTreeAdapter.java @@ -0,0 +1,16 @@ +package de.julianweinelt.databench.dbx.api.ui.tree; + +import javax.swing.tree.DefaultMutableTreeNode; + +public class SwingTreeAdapter { + public DefaultMutableTreeNode toSwingNode(TreeNode node) { + DefaultMutableTreeNode swing = + new DefaultMutableTreeNode(node); + + for (TreeNode child : node.getChildren()) { + swing.add(toSwingNode(child)); + } + + return swing; + } +} \ No newline at end of file diff --git a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TColumn.java b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TColumn.java deleted file mode 100644 index ab397f33..00000000 --- a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TColumn.java +++ /dev/null @@ -1,15 +0,0 @@ -package de.julianweinelt.databench.dbx.api.ui.tree; - - -public class TColumn { - private String name; - private TDataType dataType; - private boolean notNull; - private Object defaultValue; - private boolean primaryKey; - private boolean unique; - //TODO: CHECK - private boolean autoIncrement; - private boolean unsigned; - private String comment; -} diff --git a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TDataType.java b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TDataType.java deleted file mode 100644 index c1ea2ef7..00000000 --- a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TDataType.java +++ /dev/null @@ -1,5 +0,0 @@ -package de.julianweinelt.databench.dbx.api.ui.tree; - -public class TDataType { - -} diff --git a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TDatabase.java b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TDatabase.java deleted file mode 100644 index d97b104a..00000000 --- a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TDatabase.java +++ /dev/null @@ -1,40 +0,0 @@ -package de.julianweinelt.databench.dbx.api.ui.tree; - -import lombok.Getter; -import lombok.Setter; - -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; - -@Getter @Setter -public class TDatabase extends TreeBase implements TreeCallback { - private boolean offline; - - private final List tables = new ArrayList<>(); - private final List views = new ArrayList<>(); - - public TDatabase(UUID uniqueID, String name, boolean offline) { - super(uniqueID, name); - this.offline = offline; - } - public TDatabase (String name) { - super(UUID.randomUUID(), name); - offline = false; - } - - @Override - public TreeObject createTreeObject() { - return new TreeObject(TreeObject.Type.DATABASE, getUniqueID(), getName()) { - @Override - public String icon() { - return (offline ? "/icons/editor/database-offline.png" : "/icons/editor/database.png"); - } - }; - } - - @Override - public TDatabase call() { - return this; - } -} \ No newline at end of file diff --git a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TTable.java b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TTable.java deleted file mode 100644 index c47f1ab5..00000000 --- a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TTable.java +++ /dev/null @@ -1,24 +0,0 @@ -package de.julianweinelt.databench.dbx.api.ui.tree; - -import lombok.Getter; -import lombok.Setter; - -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; - -@Getter @Setter -public class TTable { - private final UUID uniqueID; - private final String database; - private String name; - - private final List columns = new ArrayList<>(); - private final List relations = new ArrayList<>(); - - public TTable(UUID uniqueID, String database, String name) { - this.uniqueID = uniqueID; - this.database = database; - this.name = name; - } -} \ No newline at end of file diff --git a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TableRelation.java b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TableRelation.java deleted file mode 100644 index f5c9a53b..00000000 --- a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TableRelation.java +++ /dev/null @@ -1,5 +0,0 @@ -package de.julianweinelt.databench.dbx.api.ui.tree; - -import java.util.UUID; - -public record TableRelation(String name, UUID table1, UUID table2, String table1Column, String table2Column) {} \ No newline at end of file diff --git a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeBase.java b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeBase.java deleted file mode 100644 index c2d44598..00000000 --- a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeBase.java +++ /dev/null @@ -1,19 +0,0 @@ -package de.julianweinelt.databench.dbx.api.ui.tree; - -import lombok.Getter; -import lombok.Setter; - -import java.util.UUID; - -@Getter @Setter -public abstract class TreeBase { - private final UUID uniqueID; - private String name; - - public TreeBase(UUID uniqueID, String name) { - this.uniqueID = uniqueID; - this.name = name; - } - - public abstract TreeObject createTreeObject(); -} diff --git a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeCallback.java b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeCallback.java deleted file mode 100644 index cdbd4189..00000000 --- a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeCallback.java +++ /dev/null @@ -1,5 +0,0 @@ -package de.julianweinelt.databench.dbx.api.ui.tree; - -public interface TreeCallback { - T call(); -} diff --git a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeContextAction.java b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeContextAction.java new file mode 100644 index 00000000..fb12279e --- /dev/null +++ b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeContextAction.java @@ -0,0 +1,12 @@ +package de.julianweinelt.databench.dbx.api.ui.tree; + +import javax.swing.*; + +public interface TreeContextAction { + + String getName(); + + Icon getIcon(); + + void execute(TreeNode node); +} \ No newline at end of file diff --git a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeListener.java b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeListener.java new file mode 100644 index 00000000..345a8e07 --- /dev/null +++ b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeListener.java @@ -0,0 +1,8 @@ +package de.julianweinelt.databench.dbx.api.ui.tree; + +public interface TreeListener { + + void onNodeSelected(TreeNode node); + + void onNodeDoubleClicked(TreeNode node); +} \ No newline at end of file diff --git a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeNode.java b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeNode.java new file mode 100644 index 00000000..50660420 --- /dev/null +++ b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeNode.java @@ -0,0 +1,25 @@ +package de.julianweinelt.databench.dbx.api.ui.tree; + +import lombok.Getter; + +import java.util.ArrayList; +import java.util.List; + +@Getter +public class TreeNode { + + private final TreeNodeType type; + private final String label; + private final Object value; + private final List children = new ArrayList<>(); + + public TreeNode(TreeNodeType type, String label, Object value) { + this.type = type; + this.label = label; + this.value = value; + } + + public void addChild(TreeNode node) { + children.add(node); + } +} \ No newline at end of file diff --git a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TView.java b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeNodeType.java similarity index 50% rename from dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TView.java rename to dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeNodeType.java index a10c09ac..44e383bf 100644 --- a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TView.java +++ b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeNodeType.java @@ -1,4 +1,5 @@ package de.julianweinelt.databench.dbx.api.ui.tree; -public class TView { -} +public interface TreeNodeType { + String getId(); +} \ No newline at end of file diff --git a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeObject.java b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeObject.java deleted file mode 100644 index d0581170..00000000 --- a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeObject.java +++ /dev/null @@ -1,40 +0,0 @@ -package de.julianweinelt.databench.dbx.api.ui.tree; - -import lombok.Getter; -import lombok.Setter; - -import javax.swing.tree.DefaultMutableTreeNode; -import java.util.UUID; - -@Getter @Setter -public abstract class TreeObject { - private final UUID uniqueID; - private final Type type; - private String name; - - public abstract String icon(); - - public DefaultMutableTreeNode getNode() { - return new DefaultMutableTreeNode(this); - } - - public TreeObject(Type type, UUID uniqueID, String name) { - this.uniqueID = uniqueID; - this.type = type; - this.name = name; - } - - public enum Type { - PROJECT, - DATABASE, - FOLDER_TABLES, - FOLDER_VIEWS, - FOLDER_PROCEDURES, - FOLDER_FUNCTIONS, - TABLE, - VIEW, - PROCEDURE, - FUNCTION, - JOB // SQL Server only - } -} diff --git a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeUIRegistry.java b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeUIRegistry.java new file mode 100644 index 00000000..67d7108c --- /dev/null +++ b/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeUIRegistry.java @@ -0,0 +1,18 @@ +package de.julianweinelt.databench.dbx.api.ui.tree; + +import javax.swing.*; +import java.util.HashMap; +import java.util.Map; + +public class TreeUIRegistry { + + private final Map iconProviders = new HashMap<>(); + + public void registerIcon(TreeNodeType type, IconProvider provider) { + iconProviders.put(type, provider); + } + + public Icon resolveIcon(TreeNode node) { + return iconProviders.getOrDefault(node.getType(), n -> null).getIcon(node); + } +} \ No newline at end of file diff --git a/ui/src/main/java/de/julianweinelt/databench/api/DConnection.java b/ui/src/main/java/de/julianweinelt/databench/api/DConnection.java index d38dd024..59ae6e76 100644 --- a/ui/src/main/java/de/julianweinelt/databench/api/DConnection.java +++ b/ui/src/main/java/de/julianweinelt/databench/api/DConnection.java @@ -2,6 +2,10 @@ import de.julianweinelt.databench.data.Project; import de.julianweinelt.databench.dbx.api.drivers.DriverManagerService; +import de.julianweinelt.databench.dbx.api.ui.tree.NodeStructureRegistry; +import de.julianweinelt.databench.dbx.api.ui.tree.ProjectTreeBuilder; +import de.julianweinelt.databench.dbx.api.ui.tree.SwingTreeAdapter; +import de.julianweinelt.databench.dbx.api.ui.tree.TreeNode; import de.julianweinelt.databench.dbx.database.DatabaseMetaData; import de.julianweinelt.databench.dbx.database.DatabaseRegistry; import de.julianweinelt.databench.ui.BenchUI; @@ -114,12 +118,12 @@ public void mouseClicked(MouseEvent e) { setTreeRoot(root); setTree(new JTree(root)); if (!lightEdit) { - getProjectTree(); + refreshProjectTree(); JButton refreshBtn = new JButton(translate("connection.button.refresh")); refreshBtn.addActionListener(e -> { log.info("Refreshing project tree for {}", getProject().getName()); - getProjectTree(); + refreshProjectTree(); }); toolBar.add(refreshBtn); tree.addMouseListener(new MouseAdapter() { @@ -629,99 +633,22 @@ private List getSQLJobs() { return jobs; } - public void getProjectTree() { - benchUI.getFrame().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); - log.debug("Refreshing project tree for {}", getProject().getName()); - treeRoot.removeAllChildren(); - DefaultMutableTreeNode databases = new DefaultMutableTreeNode(translate("connection.tree.node.database.title")); - treeRoot.add(databases); - if (!checkConnection()) return; - for (DBObject s : getDatabases()) { - log.debug("Adding database {}", s.name); - DefaultMutableTreeNode db = new DefaultMutableTreeNode(s.name + (s.offline ? " (offline)" : "")); - databases.add(db); - if (s.offline) continue; - - DefaultMutableTreeNode tb = new DefaultMutableTreeNode(translate("connection.tree.node.tables.title")); - DefaultMutableTreeNode views = new DefaultMutableTreeNode(translate("connection.tree.node.views.title")); - DefaultMutableTreeNode procedures = new DefaultMutableTreeNode(translate("connection.tree.node.procedures.title")); - db.add(tb); - for (String t : getTables(s.name)) { - DefaultMutableTreeNode table = new DefaultMutableTreeNode(t); - tb.add(table); - } - for (String v : getViews(s.name)) { - DefaultMutableTreeNode view = new DefaultMutableTreeNode(v); - views.add(view); - } - db.add(views); - db.add(procedures); - } + public void refreshProjectTree() { + NodeStructureRegistry structureRegistry = new NodeStructureRegistry(); + //pluginManager.loadStructureExtensions(structureRegistry); - DefaultMutableTreeNode jobAgent = new DefaultMutableTreeNode("SQL Agent"); - DefaultMutableTreeNode jobs = new DefaultMutableTreeNode("Jobs"); + ProjectTreeBuilder builder = + new ProjectTreeBuilder(, structureRegistry); - for (JobObject job : getSQLJobs()) { - DefaultMutableTreeNode jobNode = new DefaultMutableTreeNode(job.name); - jobs.add(jobNode); - } + TreeNode rootNode = builder.build(); - DefaultMutableTreeNode protocols = new DefaultMutableTreeNode("Protocol"); - DefaultMutableTreeNode errors = new DefaultMutableTreeNode("Errors"); - jobAgent.add(jobs); - jobAgent.add(protocols); - jobAgent.add(errors); - //treeRoot.add(jobAgent); + SwingTreeAdapter adapter = new SwingTreeAdapter(); - tree.setCellRenderer(new DefaultTreeCellRenderer() { - @Override - public Component getTreeCellRendererComponent(JTree tree, Object value, - boolean selected, boolean expanded, - boolean leaf, int row, boolean hasFocus) { - super.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus); + DefaultMutableTreeNode swingRoot = + adapter.toSwingNode(rootNode); - if (value instanceof DefaultMutableTreeNode node) { - Object userObject = node.getUserObject(); - if ("SQL Agent".equals(userObject)) { - setIcon(new ImageIcon(getClassURL("/icons/app/agent.png"))); - } else if (translate("connection.tree.node.tables.title").equals(userObject)) { - setIcon(loadIcon("/icons/editor/files/folder.png", 16)); - } else if (translate("connection.tree.node.views.title").equals(userObject)) { - setIcon(loadIcon("/icons/editor/files/folder.png", 16)); - } else if (translate("connection.tree.node.procedures.title").equals(userObject)) { - setIcon(loadIcon("/icons/editor/files/folder.png", 16)); - } else if (translate("connection.tree.node.database.title").equals(userObject)) { - setIcon(loadIcon("/icons/editor/files/folder.png", 16)); - } - DefaultMutableTreeNode parent = (DefaultMutableTreeNode) node.getParent(); - if (parent != null) { - Object parentObject = parent.getUserObject(); - if (translate("connection.tree.node.database.title").equals(parentObject.toString())) { - if (userObject.toString().endsWith("(offline)")) { - setIcon(loadIcon("/icons/editor/database-offline.png", 16)); - } else - setIcon(loadIcon("/icons/editor/database.png", 16)); - } else if (translate("connection.tree.node.tables.title").equals(parentObject.toString())) { - setIcon(loadIcon("/icons/app/table.png", 16)); - } else if (translate("connection.tree.node.views.title").equals(parentObject.toString())) { - setIcon(loadIcon("/icons/app/view.png", 16)); - } else if ("SQL Agent".equals(parentObject.toString())) { - setIcon(new ImageIcon(getClassURL("/icons/app/folder.png"))); - } else if ("Jobs".equals(parentObject.toString())) { - setIcon(new ImageIcon(getClassURL("/icons/app/job.png"))); - } - } - } - - return this; - } - }); - - DefaultTreeModel model = (DefaultTreeModel) tree.getModel(); - model.reload(); - tree.expandPath(new TreePath(databases.getPath())); - benchUI.getFrame().setCursor(Cursor.getDefaultCursor()); + tree.setModel(new DefaultTreeModel(swingRoot)); } private Icon loadIcon(String path, int size) { @@ -742,7 +669,7 @@ public JPopupMenu createContextMenu(DefaultMutableTreeNode node, BenchUI ui) { if (name.equals(translate("connection.tree.node.database.title"))) { JMenuItem refresh = new JMenuItem(translate("connection.button.refresh")); - refresh.addActionListener(e -> getProjectTree()); + refresh.addActionListener(e -> refreshProjectTree()); JMenuItem newDB = new JMenuItem(translate("connection.tree.node.database.create")); newDB.addActionListener(e -> addEditorTab("CREATE DATABASE ${name};")); menu.add(refresh); @@ -811,7 +738,7 @@ else if (name.equals(translate("connection.tree.node.tables.title"))) { create.addActionListener(e -> addCreateTableTab(((DefaultMutableTreeNode) node.getParent()).getUserObject().toString())); menu.add(create); JMenuItem refresh = new JMenuItem(translate("connection.button.refresh")); - refresh.addActionListener(e -> getProjectTree()); + refresh.addActionListener(e -> refreshProjectTree()); menu.add(refresh); } From f6f64e344c97d0a9a0e40a9c1702a508124d0728 Mon Sep 17 00:00:00 2001 From: Julian Weinelt Date: Wed, 1 Jul 2026 12:14:21 +0200 Subject: [PATCH 3/3] refactor: move old databench packages to datacat --- .../dbx/api/ui/tree/ContextMenuContributor.java | 2 +- .../dbx/api/ui/tree/ContextMenuRegistry.java | 2 +- .../dbx/api/ui/tree/DefaultNodeTypes.java | 2 +- .../dbx/api/ui/tree/ExplorerEventBus.java | 2 +- .../{databench => datacat}/dbx/api/ui/tree/IconProvider.java | 2 +- .../dbx/api/ui/tree/NodeChildrenProvider.java | 2 +- .../dbx/api/ui/tree/NodeStructureRegistry.java | 2 +- .../dbx/api/ui/tree/ProjectTreeBuilder.java | 2 +- .../dbx/api/ui/tree/SwingTreeAdapter.java | 2 +- .../dbx/api/ui/tree/TreeContextAction.java | 2 +- .../{databench => datacat}/dbx/api/ui/tree/TreeListener.java | 2 +- .../{databench => datacat}/dbx/api/ui/tree/TreeNode.java | 2 +- .../{databench => datacat}/dbx/api/ui/tree/TreeNodeType.java | 2 +- .../{databench => datacat}/dbx/api/ui/tree/TreeUIRegistry.java | 2 +- 14 files changed, 14 insertions(+), 14 deletions(-) rename dbx/src/main/java/de/julianweinelt/{databench => datacat}/dbx/api/ui/tree/ContextMenuContributor.java (79%) rename dbx/src/main/java/de/julianweinelt/{databench => datacat}/dbx/api/ui/tree/ContextMenuRegistry.java (90%) rename dbx/src/main/java/de/julianweinelt/{databench => datacat}/dbx/api/ui/tree/DefaultNodeTypes.java (84%) rename dbx/src/main/java/de/julianweinelt/{databench => datacat}/dbx/api/ui/tree/ExplorerEventBus.java (90%) rename dbx/src/main/java/de/julianweinelt/{databench => datacat}/dbx/api/ui/tree/IconProvider.java (63%) rename dbx/src/main/java/de/julianweinelt/{databench => datacat}/dbx/api/ui/tree/NodeChildrenProvider.java (74%) rename dbx/src/main/java/de/julianweinelt/{databench => datacat}/dbx/api/ui/tree/NodeStructureRegistry.java (93%) rename dbx/src/main/java/de/julianweinelt/{databench => datacat}/dbx/api/ui/tree/ProjectTreeBuilder.java (96%) rename dbx/src/main/java/de/julianweinelt/{databench => datacat}/dbx/api/ui/tree/SwingTreeAdapter.java (87%) rename dbx/src/main/java/de/julianweinelt/{databench => datacat}/dbx/api/ui/tree/TreeContextAction.java (72%) rename dbx/src/main/java/de/julianweinelt/{databench => datacat}/dbx/api/ui/tree/TreeListener.java (69%) rename dbx/src/main/java/de/julianweinelt/{databench => datacat}/dbx/api/ui/tree/TreeNode.java (90%) rename dbx/src/main/java/de/julianweinelt/{databench => datacat}/dbx/api/ui/tree/TreeNodeType.java (50%) rename dbx/src/main/java/de/julianweinelt/{databench => datacat}/dbx/api/ui/tree/TreeUIRegistry.java (89%) diff --git a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/ContextMenuContributor.java b/dbx/src/main/java/de/julianweinelt/datacat/dbx/api/ui/tree/ContextMenuContributor.java similarity index 79% rename from dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/ContextMenuContributor.java rename to dbx/src/main/java/de/julianweinelt/datacat/dbx/api/ui/tree/ContextMenuContributor.java index 663f9b96..54f7c73c 100644 --- a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/ContextMenuContributor.java +++ b/dbx/src/main/java/de/julianweinelt/datacat/dbx/api/ui/tree/ContextMenuContributor.java @@ -1,4 +1,4 @@ -package de.julianweinelt.databench.dbx.api.ui.tree; +package de.julianweinelt.datacat.dbx.api.ui.tree; import java.util.List; diff --git a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/ContextMenuRegistry.java b/dbx/src/main/java/de/julianweinelt/datacat/dbx/api/ui/tree/ContextMenuRegistry.java similarity index 90% rename from dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/ContextMenuRegistry.java rename to dbx/src/main/java/de/julianweinelt/datacat/dbx/api/ui/tree/ContextMenuRegistry.java index 770dca5f..7175f346 100644 --- a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/ContextMenuRegistry.java +++ b/dbx/src/main/java/de/julianweinelt/datacat/dbx/api/ui/tree/ContextMenuRegistry.java @@ -1,4 +1,4 @@ -package de.julianweinelt.databench.dbx.api.ui.tree; +package de.julianweinelt.datacat.dbx.api.ui.tree; import java.util.ArrayList; import java.util.List; diff --git a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/DefaultNodeTypes.java b/dbx/src/main/java/de/julianweinelt/datacat/dbx/api/ui/tree/DefaultNodeTypes.java similarity index 84% rename from dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/DefaultNodeTypes.java rename to dbx/src/main/java/de/julianweinelt/datacat/dbx/api/ui/tree/DefaultNodeTypes.java index 95210fc9..68fd15d8 100644 --- a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/DefaultNodeTypes.java +++ b/dbx/src/main/java/de/julianweinelt/datacat/dbx/api/ui/tree/DefaultNodeTypes.java @@ -1,4 +1,4 @@ -package de.julianweinelt.databench.dbx.api.ui.tree; +package de.julianweinelt.datacat.dbx.api.ui.tree; public enum DefaultNodeTypes implements TreeNodeType { PROJECT, diff --git a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/ExplorerEventBus.java b/dbx/src/main/java/de/julianweinelt/datacat/dbx/api/ui/tree/ExplorerEventBus.java similarity index 90% rename from dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/ExplorerEventBus.java rename to dbx/src/main/java/de/julianweinelt/datacat/dbx/api/ui/tree/ExplorerEventBus.java index c02a9be6..1fac2537 100644 --- a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/ExplorerEventBus.java +++ b/dbx/src/main/java/de/julianweinelt/datacat/dbx/api/ui/tree/ExplorerEventBus.java @@ -1,4 +1,4 @@ -package de.julianweinelt.databench.dbx.api.ui.tree; +package de.julianweinelt.datacat.dbx.api.ui.tree; import java.util.ArrayList; import java.util.List; diff --git a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/IconProvider.java b/dbx/src/main/java/de/julianweinelt/datacat/dbx/api/ui/tree/IconProvider.java similarity index 63% rename from dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/IconProvider.java rename to dbx/src/main/java/de/julianweinelt/datacat/dbx/api/ui/tree/IconProvider.java index 826876c1..0638efbc 100644 --- a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/IconProvider.java +++ b/dbx/src/main/java/de/julianweinelt/datacat/dbx/api/ui/tree/IconProvider.java @@ -1,4 +1,4 @@ -package de.julianweinelt.databench.dbx.api.ui.tree; +package de.julianweinelt.datacat.dbx.api.ui.tree; import javax.swing.*; diff --git a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/NodeChildrenProvider.java b/dbx/src/main/java/de/julianweinelt/datacat/dbx/api/ui/tree/NodeChildrenProvider.java similarity index 74% rename from dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/NodeChildrenProvider.java rename to dbx/src/main/java/de/julianweinelt/datacat/dbx/api/ui/tree/NodeChildrenProvider.java index 65d9869e..449dd172 100644 --- a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/NodeChildrenProvider.java +++ b/dbx/src/main/java/de/julianweinelt/datacat/dbx/api/ui/tree/NodeChildrenProvider.java @@ -1,4 +1,4 @@ -package de.julianweinelt.databench.dbx.api.ui.tree; +package de.julianweinelt.datacat.dbx.api.ui.tree; import java.util.List; diff --git a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/NodeStructureRegistry.java b/dbx/src/main/java/de/julianweinelt/datacat/dbx/api/ui/tree/NodeStructureRegistry.java similarity index 93% rename from dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/NodeStructureRegistry.java rename to dbx/src/main/java/de/julianweinelt/datacat/dbx/api/ui/tree/NodeStructureRegistry.java index 5ab0d883..9a038c98 100644 --- a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/NodeStructureRegistry.java +++ b/dbx/src/main/java/de/julianweinelt/datacat/dbx/api/ui/tree/NodeStructureRegistry.java @@ -1,4 +1,4 @@ -package de.julianweinelt.databench.dbx.api.ui.tree; +package de.julianweinelt.datacat.dbx.api.ui.tree; import java.util.ArrayList; import java.util.List; diff --git a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/ProjectTreeBuilder.java b/dbx/src/main/java/de/julianweinelt/datacat/dbx/api/ui/tree/ProjectTreeBuilder.java similarity index 96% rename from dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/ProjectTreeBuilder.java rename to dbx/src/main/java/de/julianweinelt/datacat/dbx/api/ui/tree/ProjectTreeBuilder.java index d5452736..828114c4 100644 --- a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/ProjectTreeBuilder.java +++ b/dbx/src/main/java/de/julianweinelt/datacat/dbx/api/ui/tree/ProjectTreeBuilder.java @@ -1,4 +1,4 @@ -package de.julianweinelt.databench.dbx.api.ui.tree; +package de.julianweinelt.datacat.dbx.api.ui.tree; import de.julianweinelt.databench.dbx.database.ADatabase; diff --git a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/SwingTreeAdapter.java b/dbx/src/main/java/de/julianweinelt/datacat/dbx/api/ui/tree/SwingTreeAdapter.java similarity index 87% rename from dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/SwingTreeAdapter.java rename to dbx/src/main/java/de/julianweinelt/datacat/dbx/api/ui/tree/SwingTreeAdapter.java index a77d8962..94fc01ce 100644 --- a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/SwingTreeAdapter.java +++ b/dbx/src/main/java/de/julianweinelt/datacat/dbx/api/ui/tree/SwingTreeAdapter.java @@ -1,4 +1,4 @@ -package de.julianweinelt.databench.dbx.api.ui.tree; +package de.julianweinelt.datacat.dbx.api.ui.tree; import javax.swing.tree.DefaultMutableTreeNode; diff --git a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeContextAction.java b/dbx/src/main/java/de/julianweinelt/datacat/dbx/api/ui/tree/TreeContextAction.java similarity index 72% rename from dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeContextAction.java rename to dbx/src/main/java/de/julianweinelt/datacat/dbx/api/ui/tree/TreeContextAction.java index fb12279e..a30d5423 100644 --- a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeContextAction.java +++ b/dbx/src/main/java/de/julianweinelt/datacat/dbx/api/ui/tree/TreeContextAction.java @@ -1,4 +1,4 @@ -package de.julianweinelt.databench.dbx.api.ui.tree; +package de.julianweinelt.datacat.dbx.api.ui.tree; import javax.swing.*; diff --git a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeListener.java b/dbx/src/main/java/de/julianweinelt/datacat/dbx/api/ui/tree/TreeListener.java similarity index 69% rename from dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeListener.java rename to dbx/src/main/java/de/julianweinelt/datacat/dbx/api/ui/tree/TreeListener.java index 345a8e07..8f2df47f 100644 --- a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeListener.java +++ b/dbx/src/main/java/de/julianweinelt/datacat/dbx/api/ui/tree/TreeListener.java @@ -1,4 +1,4 @@ -package de.julianweinelt.databench.dbx.api.ui.tree; +package de.julianweinelt.datacat.dbx.api.ui.tree; public interface TreeListener { diff --git a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeNode.java b/dbx/src/main/java/de/julianweinelt/datacat/dbx/api/ui/tree/TreeNode.java similarity index 90% rename from dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeNode.java rename to dbx/src/main/java/de/julianweinelt/datacat/dbx/api/ui/tree/TreeNode.java index 50660420..99aac3d2 100644 --- a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeNode.java +++ b/dbx/src/main/java/de/julianweinelt/datacat/dbx/api/ui/tree/TreeNode.java @@ -1,4 +1,4 @@ -package de.julianweinelt.databench.dbx.api.ui.tree; +package de.julianweinelt.datacat.dbx.api.ui.tree; import lombok.Getter; diff --git a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeNodeType.java b/dbx/src/main/java/de/julianweinelt/datacat/dbx/api/ui/tree/TreeNodeType.java similarity index 50% rename from dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeNodeType.java rename to dbx/src/main/java/de/julianweinelt/datacat/dbx/api/ui/tree/TreeNodeType.java index 44e383bf..d965e184 100644 --- a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeNodeType.java +++ b/dbx/src/main/java/de/julianweinelt/datacat/dbx/api/ui/tree/TreeNodeType.java @@ -1,4 +1,4 @@ -package de.julianweinelt.databench.dbx.api.ui.tree; +package de.julianweinelt.datacat.dbx.api.ui.tree; public interface TreeNodeType { String getId(); diff --git a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeUIRegistry.java b/dbx/src/main/java/de/julianweinelt/datacat/dbx/api/ui/tree/TreeUIRegistry.java similarity index 89% rename from dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeUIRegistry.java rename to dbx/src/main/java/de/julianweinelt/datacat/dbx/api/ui/tree/TreeUIRegistry.java index 67d7108c..d8159edd 100644 --- a/dbx/src/main/java/de/julianweinelt/databench/dbx/api/ui/tree/TreeUIRegistry.java +++ b/dbx/src/main/java/de/julianweinelt/datacat/dbx/api/ui/tree/TreeUIRegistry.java @@ -1,4 +1,4 @@ -package de.julianweinelt.databench.dbx.api.ui.tree; +package de.julianweinelt.datacat.dbx.api.ui.tree; import javax.swing.*; import java.util.HashMap;