Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -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<TDatabase> 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;
}
}
Original file line number Diff line number Diff line change
@@ -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;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package de.julianweinelt.databench.dbx.api.ui.tree;

public class TDataType {

}
Original file line number Diff line number Diff line change
@@ -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<TDatabase> {
private boolean offline;

private final List<TTable> tables = new ArrayList<>();
private final List<TView> 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;
}
}
Original file line number Diff line number Diff line change
@@ -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<TColumn> columns = new ArrayList<>();
private final List<TableRelation> relations = new ArrayList<>();

public TTable(UUID uniqueID, String database, String name) {
this.uniqueID = uniqueID;
this.database = database;
this.name = name;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package de.julianweinelt.databench.dbx.api.ui.tree;

public class TView {
}
Original file line number Diff line number Diff line change
@@ -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) {}
Original file line number Diff line number Diff line change
@@ -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();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package de.julianweinelt.databench.dbx.api.ui.tree;

public interface TreeCallback<T> {
T call();
}
Original file line number Diff line number Diff line change
@@ -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
}
}
Loading