From c5c38234e37b4dfcd642f3a106f563138be64cc6 Mon Sep 17 00:00:00 2001 From: evan-miller-jumpmind <70151986+evan-miller-jumpmind@users.noreply.github.com> Date: Tue, 12 Jan 2021 08:16:43 -0500 Subject: [PATCH] 0004753: Added server-side lazy loading to SQL Explorer tree (#133) --- .../org/jumpmind/vaadin/ui/sqlexplorer/DbTree.java | 10 +++++----- .../org/jumpmind/vaadin/ui/sqlexplorer/DbTreeNode.java | 1 + 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/symmetric-sqlexplorer/src/main/java/org/jumpmind/vaadin/ui/sqlexplorer/DbTree.java b/symmetric-sqlexplorer/src/main/java/org/jumpmind/vaadin/ui/sqlexplorer/DbTree.java index 4354df49af..159e869484 100644 --- a/symmetric-sqlexplorer/src/main/java/org/jumpmind/vaadin/ui/sqlexplorer/DbTree.java +++ b/symmetric-sqlexplorer/src/main/java/org/jumpmind/vaadin/ui/sqlexplorer/DbTree.java @@ -88,12 +88,16 @@ public DbTree(IDbProvider databaseProvider, ISettingsProvider settingsProvider) expandedNodes.add(node); + if (!node.getType().equals(NODE_TYPE_TRIGGER) && !node.hasChildren()) { + loadChildren(node); + } + DbTreeNode firstChild = treeData.getChildren(node).get(0); if (node.hasChildren() && firstChild.getType().equals(NODE_TYPE_PLACEHOLDER)) { treeData.removeItem(firstChild); for (DbTreeNode child : node.getChildren()) { treeData.addItem(node, child); - if (child.hasChildren()) { + if (!child.getType().equals(NODE_TYPE_TRIGGER)) { treeData.addItem(child, new DbTreeNode(this, NODE_TYPE_PLACEHOLDER, child)); } } @@ -139,7 +143,6 @@ public void refresh(boolean fullRefresh) { rootNodes = new LinkedHashSet(); for (IDb database : databases) { DbTreeNode databaseNode = new DbTreeNode(this, database.getName(), NODE_TYPE_DATABASE, VaadinIcons.DATABASE, null); - loadChildren(databaseNode); treeData.addItem(null, databaseNode); treeData.addItem(databaseNode, new DbTreeNode(this, NODE_TYPE_PLACEHOLDER, databaseNode)); rootNodes.add(databaseNode); @@ -302,7 +305,6 @@ protected void addTableNodes(IDdlReader reader, DbTreeNode parent, List nodes = getTableTreeNodes(reader, parent, catalogName, schemaName); for (DbTreeNode treeNode : nodes) { parent.getChildren().add(treeNode); - loadChildren(treeNode); } } @@ -343,7 +345,6 @@ protected void addCatalogNodes(IDdlReader reader, DbTreeNode parent, IDatabasePl for (String catalog : catalogs) { DbTreeNode catalogNode = new DbTreeNode(this, catalog, NODE_TYPE_CATALOG, VaadinIcons.BOOK, parent); parent.getChildren().add(catalogNode); - loadChildren(catalogNode); } } @@ -355,7 +356,6 @@ protected void addSchemaNodes(IDdlReader reader, DbTreeNode parent, IDatabasePla for (String schema : schemas) { DbTreeNode schemaNode = new DbTreeNode(this, schema, NODE_TYPE_SCHEMA, VaadinIcons.BOOK, parent); parent.getChildren().add(schemaNode); - loadChildren(schemaNode); } } diff --git a/symmetric-sqlexplorer/src/main/java/org/jumpmind/vaadin/ui/sqlexplorer/DbTreeNode.java b/symmetric-sqlexplorer/src/main/java/org/jumpmind/vaadin/ui/sqlexplorer/DbTreeNode.java index 601dcb90e1..d716466397 100644 --- a/symmetric-sqlexplorer/src/main/java/org/jumpmind/vaadin/ui/sqlexplorer/DbTreeNode.java +++ b/symmetric-sqlexplorer/src/main/java/org/jumpmind/vaadin/ui/sqlexplorer/DbTreeNode.java @@ -61,6 +61,7 @@ public DbTreeNode(DbTree dbTree, String name, String type, Resource icon, } public DbTreeNode(DbTree dbTree, String type, DbTreeNode parent) { + this.name = ""; this.type = type; this.parent = parent; this.dbTree = dbTree;