You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by nt...@apache.org on 2018/11/05 13:28:58 UTC
[01/10] cayenne git commit: First implementation of table columns
lazy loading.
Repository: cayenne
Updated Branches:
refs/heads/master fb7f004a8 -> c18c0e31f
First implementation of table columns lazy loading.
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/65d76d90
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/65d76d90
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/65d76d90
Branch: refs/heads/master
Commit: 65d76d90b1b0c517a3518d9e56fe8fbe7820a611
Parents: 831442c
Author: kkomyak <co...@gmail.com>
Authored: Thu Oct 25 14:55:55 2018 +0300
Committer: kkomyak <co...@gmail.com>
Committed: Mon Oct 29 09:37:34 2018 +0300
----------------------------------------------------------------------
.../modeler/action/LoadDbSchemaAction.java | 31 +++--
.../dialog/db/load/DbImportTreeNode.java | 19 +++
.../editor/dbimport/ColorTreeRenderer.java | 15 ++-
.../editor/dbimport/DatabaseSchemaLoader.java | 97 ++++++++++----
.../editor/dbimport/DbImportNodeHandler.java | 25 ++--
.../modeler/editor/dbimport/DbImportTree.java | 128 ++++++++++++++++++-
.../dbimport/DbImportTreeCellRenderer.java | 1 +
.../editor/dbimport/DraggableTreePanel.java | 6 +
.../cayenne/modeler/images/icon-dbi-column.png | Bin 0 -> 203 bytes
9 files changed, 269 insertions(+), 53 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/65d76d90/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/LoadDbSchemaAction.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/LoadDbSchemaAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/LoadDbSchemaAction.java
index 840ec40..406dc64 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/LoadDbSchemaAction.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/LoadDbSchemaAction.java
@@ -22,6 +22,7 @@ package org.apache.cayenne.modeler.action;
import org.apache.cayenne.dbsync.reverse.dbimport.ReverseEngineering;
import org.apache.cayenne.modeler.Application;
import org.apache.cayenne.modeler.dialog.db.DataSourceWizard;
+import org.apache.cayenne.modeler.dialog.db.load.TransferableNode;
import org.apache.cayenne.modeler.editor.dbimport.DatabaseSchemaLoader;
import org.apache.cayenne.modeler.editor.dbimport.DbImportModel;
import org.apache.cayenne.modeler.editor.dbimport.DbImportView;
@@ -31,6 +32,7 @@ import org.apache.cayenne.modeler.pref.DataMapDefaults;
import org.apache.cayenne.modeler.util.CayenneAction;
import javax.swing.JOptionPane;
+import javax.swing.tree.TreePath;
import java.awt.event.ActionEvent;
import java.sql.SQLException;
@@ -47,6 +49,7 @@ public class LoadDbSchemaAction extends CayenneAction {
private static final String ICON_NAME = "icon-dbi-refresh.png";
private static final String ACTION_NAME = "Refresh Db Schema";
+ public static final String LOAD_COLUMN_COMMAND = "load-columns";
private DraggableTreePanel draggableTreePanel;
LoadDbSchemaAction(Application application) {
@@ -80,15 +83,25 @@ public class LoadDbSchemaAction extends CayenneAction {
connectionInfo = getConnectionInfoFromPreferences();
}
- ReverseEngineering databaseReverseEngineering = new DatabaseSchemaLoader()
- .load(connectionInfo, getApplication().getClassLoadingService());
- draggableTreePanel.getSourceTree()
- .setEnabled(true);
- draggableTreePanel.getSourceTree()
- .translateReverseEngineeringToTree(databaseReverseEngineering, true);
- draggableTreePanel
- .bindReverseEngineeringToDatamap(getProjectController().getCurrentDataMap(), databaseReverseEngineering);
- ((DbImportModel) draggableTreePanel.getSourceTree().getModel()).reload();
+ if (LOAD_COLUMN_COMMAND.equals(e.getActionCommand())) {
+ TreePath source = (TreePath) e.getSource();
+ ReverseEngineering databaseReverseEngineering = new DatabaseSchemaLoader()
+ .loadColumns(connectionInfo, getApplication().getClassLoadingService(), source);
+ draggableTreePanel.getSourceTree().updateTableColumns(databaseReverseEngineering);
+
+ } else {
+ ReverseEngineering databaseReverseEngineering = new DatabaseSchemaLoader()
+ .load(connectionInfo, getApplication().getClassLoadingService());
+ draggableTreePanel.getSourceTree()
+ .setEnabled(true);
+ draggableTreePanel.getSourceTree()
+ .translateReverseEngineeringToTree(databaseReverseEngineering, true);
+ draggableTreePanel
+ .bindReverseEngineeringToDatamap(getProjectController().getCurrentDataMap(), databaseReverseEngineering);
+ ((DbImportModel) draggableTreePanel.getSourceTree().getModel()).reload();
+ }
+
+
} catch (SQLException exception) {
JOptionPane.showMessageDialog(
Application.getFrame(),
http://git-wip-us.apache.org/repos/asf/cayenne/blob/65d76d90/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/DbImportTreeNode.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/DbImportTreeNode.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/DbImportTreeNode.java
index 20b46bc..98cc338 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/DbImportTreeNode.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/DbImportTreeNode.java
@@ -20,9 +20,11 @@
package org.apache.cayenne.modeler.dialog.db.load;
import org.apache.cayenne.dbsync.reverse.dbimport.Catalog;
+import org.apache.cayenne.dbsync.reverse.dbimport.ExcludeColumn;
import org.apache.cayenne.dbsync.reverse.dbimport.ExcludeProcedure;
import org.apache.cayenne.dbsync.reverse.dbimport.ExcludeTable;
import org.apache.cayenne.dbsync.reverse.dbimport.FilterContainer;
+import org.apache.cayenne.dbsync.reverse.dbimport.IncludeColumn;
import org.apache.cayenne.dbsync.reverse.dbimport.IncludeProcedure;
import org.apache.cayenne.dbsync.reverse.dbimport.IncludeTable;
import org.apache.cayenne.dbsync.reverse.dbimport.PatternParam;
@@ -39,6 +41,7 @@ import java.util.ArrayList;
public class DbImportTreeNode extends DefaultMutableTreeNode {
private boolean isColorized;
+ private boolean isLoaded;
public DbImportTreeNode() {
this(null);
@@ -59,6 +62,14 @@ public class DbImportTreeNode extends DefaultMutableTreeNode {
return (getUserObject().getClass() == ExcludeTable.class);
}
+ public boolean isIncludeColumn() {
+ return (getUserObject().getClass() == IncludeColumn.class);
+ }
+
+ public boolean isExcludeColumn() {
+ return (getUserObject().getClass() == ExcludeColumn.class);
+ }
+
public boolean isExcludeProcedure() {
return (getUserObject().getClass() == ExcludeProcedure.class);
}
@@ -191,4 +202,12 @@ public class DbImportTreeNode extends DefaultMutableTreeNode {
public void setColorized(boolean colorized) {
isColorized = colorized;
}
+
+ public boolean isLoaded() {
+ return isLoaded;
+ }
+
+ public void setLoaded(boolean loaded) {
+ isLoaded = loaded;
+ }
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/65d76d90/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/ColorTreeRenderer.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/ColorTreeRenderer.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/ColorTreeRenderer.java
index 2f58ea4..95d2861 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/ColorTreeRenderer.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/ColorTreeRenderer.java
@@ -19,6 +19,7 @@
package org.apache.cayenne.modeler.editor.dbimport;
+import org.apache.cayenne.dbsync.reverse.dbimport.IncludeColumn;
import org.apache.cayenne.dbsync.reverse.dbimport.IncludeProcedure;
import org.apache.cayenne.modeler.dialog.db.load.DbImportTreeNode;
@@ -81,6 +82,18 @@ public class ColorTreeRenderer extends DbImportTreeCellRenderer {
int traverseResult = handler.traverseTree(root);
if (traverseResult > 0) {
+
+ if (root.getUserObject().getClass() == IncludeColumn.class) {
+ if (handler.nodesIsEqual(root)) {
+ setForeground(handler.getColorByNodeType(root));
+ node.setColorized(true);
+ return this;
+ } else {
+ setForeground(NON_INCLUDE_COLOR);
+ node.setColorized(false);
+ return this;
+ }
+ }
// Case on IncludeProcedure on zero level is selected
if (root.getUserObject().getClass() == IncludeProcedure.class) {
if (handler.nodesIsEqual(root)) {
@@ -95,7 +108,7 @@ public class ColorTreeRenderer extends DbImportTreeCellRenderer {
}
// If ReverseEngineering doesn't have catalogs or schemas on zero level
if (!handler.isExistCatalogsOrSchemas()) {
- if ((root.isExcludeTable()) || (root.isExcludeProcedure())) {
+ if ((root.isExcludeTable()) || (root.isExcludeProcedure() || root.isExcludeColumn())) {
if (handler.nodesIsEqual(root)) {
setForeground(handler.getColorByNodeType(root));
node.setColorized(true);
http://git-wip-us.apache.org/repos/asf/cayenne/blob/65d76d90/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DatabaseSchemaLoader.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DatabaseSchemaLoader.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DatabaseSchemaLoader.java
index ddb085f..6c2ee45 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DatabaseSchemaLoader.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DatabaseSchemaLoader.java
@@ -19,14 +19,11 @@
package org.apache.cayenne.modeler.editor.dbimport;
-import org.apache.cayenne.dbsync.reverse.dbimport.Catalog;
-import org.apache.cayenne.dbsync.reverse.dbimport.IncludeProcedure;
-import org.apache.cayenne.dbsync.reverse.dbimport.IncludeTable;
-import org.apache.cayenne.dbsync.reverse.dbimport.ReverseEngineering;
-import org.apache.cayenne.dbsync.reverse.dbimport.Schema;
+import org.apache.cayenne.dbsync.reverse.dbimport.*;
import org.apache.cayenne.modeler.ClassLoadingService;
import org.apache.cayenne.modeler.pref.DBConnectionInfo;
+import javax.swing.tree.TreePath;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
@@ -47,6 +44,7 @@ public class DatabaseSchemaLoader {
}
public ReverseEngineering load(DBConnectionInfo connectionInfo, ClassLoadingService loadingService) throws SQLException {
+ String columnName = "Loading...";
try (Connection connection = connectionInfo.makeDataSource(loadingService).getConnection()) {
String[] types = {"TABLE", "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY", "LOCAL TEMPORARY", "ALIAS", "SYNONYM"};
try (ResultSet rs = connection.getMetaData().getCatalogs()) {
@@ -67,15 +65,37 @@ public class DatabaseSchemaLoader {
tableName = resultSet.getString(TABLE_INDEX);
schemaName = resultSet.getString(SCHEMA_INDEX);
catalogName = resultSet.getString(CATALOG_INDEX);
- packTable(tableName, catalogName, schemaName);
+ packTable(tableName, catalogName, schemaName, columnName);
}
packFunctions(connection);
+ columnName = null;
}
}
}
return databaseReverseEngineering;
}
+ public ReverseEngineering loadColumns(DBConnectionInfo connectionInfo, ClassLoadingService loadingService, TreePath path) throws SQLException {
+ String catalogName = path.getPathComponent(1).toString();
+ String schemaName = null;
+ String tableName = path.getPathComponent(2).toString();
+
+ try (Connection connection = connectionInfo.makeDataSource(loadingService).getConnection()) {
+ String[] types = {"TABLE", "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY", "LOCAL TEMPORARY", "ALIAS", "SYNONYM"};
+ try (ResultSet rs = connection.getMetaData().getColumns(catalogName, schemaName, tableName, "");) {
+ String defaultCatalog = connection.getCatalog();
+
+ while (rs.next()) {
+ String column = rs.getString(4);
+ packTable(tableName, catalogName, schemaName, column);
+ }
+
+ }
+ }
+ return databaseReverseEngineering;
+ }
+
+
private void packFunctions(Connection connection) throws SQLException {
Collection<Catalog> catalogs = databaseReverseEngineering.getCatalogs();
for (Catalog catalog : catalogs) {
@@ -116,57 +136,77 @@ public class DatabaseSchemaLoader {
}
private void packTable(String tableName, String catalogName, String schemaName) {
- IncludeTable newTable = new IncludeTable();
- newTable.setPattern(tableName);
+ packTable(tableName,catalogName, schemaName, null);
+ }
+
+ private void packTable(String tableName, String catalogName, String schemaName, String columnName) {
+ IncludeTable table = new IncludeTable();
+ table.setPattern(tableName);
+
if ((catalogName == null) && (schemaName == null)) {
- if (!databaseReverseEngineering.getIncludeTables().contains(newTable)) {
- databaseReverseEngineering.addIncludeTable(newTable);
+ if (!databaseReverseEngineering.getIncludeTables().contains(table)) {
+ databaseReverseEngineering.addIncludeTable(table);
}
}
+
if ((catalogName != null) && (schemaName == null)) {
Catalog parentCatalog = getCatalogByName(databaseReverseEngineering.getCatalogs(), catalogName);
+
if (parentCatalog != null) {
- if (!parentCatalog.getIncludeTables().contains(newTable)) {
- parentCatalog.addIncludeTable(newTable);
+
+
+ if (!parentCatalog.getIncludeTables().contains(table)) {
+ parentCatalog.addIncludeTable(table);
}
} else {
parentCatalog = new Catalog();
parentCatalog.setName(catalogName);
- if (!parentCatalog.getIncludeTables().contains(newTable)) {
- parentCatalog.addIncludeTable(newTable);
+ if (!parentCatalog.getIncludeTables().contains(table)) {
+ parentCatalog.addIncludeTable(table);
}
databaseReverseEngineering.addCatalog(parentCatalog);
}
+
+ IncludeTable foundTable = getTableByName(parentCatalog.getIncludeTables(), tableName);
+ table = foundTable != null ? foundTable : table;
+ if (columnName != null ) {
+ IncludeColumn includeColumn = new IncludeColumn(columnName);
+ table.addIncludeColumn(includeColumn);
+ }
}
if ((catalogName == null) && (schemaName != null)) {
Schema parentSchema = getSchemaByName(databaseReverseEngineering.getSchemas(), schemaName);
if (parentSchema != null) {
- if (!parentSchema.getIncludeTables().contains(newTable)) {
- parentSchema.addIncludeTable(newTable);
+ if (!parentSchema.getIncludeTables().contains(table)) {
+ parentSchema.addIncludeTable(table);
}
} else {
parentSchema = new Schema();
parentSchema.setName(schemaName);
- if (!parentSchema.getIncludeTables().contains(newTable)) {
- parentSchema.addIncludeTable(newTable);
+ if (!parentSchema.getIncludeTables().contains(table)) {
+ parentSchema.addIncludeTable(table);
}
databaseReverseEngineering.addSchema(parentSchema);
}
}
if ((catalogName != null) && (schemaName != null)) {
Catalog parentCatalog = getCatalogByName(databaseReverseEngineering.getCatalogs(), catalogName);
+
+
+
Schema parentSchema;
if (parentCatalog != null) {
+
parentSchema = getSchemaByName(parentCatalog.getSchemas(), schemaName);
if (parentSchema != null) {
- if (!parentSchema.getIncludeTables().contains(newTable)) {
- parentSchema.addIncludeTable(newTable);
+ if (!parentSchema.getIncludeTables().contains(table)) {
+ parentSchema.addIncludeTable(table);
}
} else {
parentSchema = new Schema();
parentSchema.setName(schemaName);
- if (!parentSchema.getIncludeTables().contains(newTable)) {
- parentSchema.addIncludeTable(newTable);
+ if (!parentSchema.getIncludeTables().contains(table)) {
+ parentSchema.addIncludeTable(table);
}
parentCatalog.addSchema(parentSchema);
}
@@ -175,8 +215,8 @@ public class DatabaseSchemaLoader {
parentCatalog.setName(catalogName);
parentSchema = new Schema();
parentSchema.setName(schemaName);
- if (!parentSchema.getIncludeTables().contains(newTable)) {
- parentSchema.addIncludeTable(newTable);
+ if (!parentSchema.getIncludeTables().contains(table)) {
+ parentSchema.addIncludeTable(table);
}
databaseReverseEngineering.addCatalog(parentCatalog);
}
@@ -192,6 +232,15 @@ public class DatabaseSchemaLoader {
return null;
}
+ private IncludeTable getTableByName(Collection<IncludeTable> tables, String catalogName) {
+ for (IncludeTable table : tables) {
+ if (table.getPattern().equals(catalogName)) {
+ return table;
+ }
+ }
+ return null;
+ }
+
private Schema getSchemaByName(Collection<Schema> schemas, String schemaName) {
for (Schema schema : schemas) {
if (schema.getName().equals(schemaName)) {
http://git-wip-us.apache.org/repos/asf/cayenne/blob/65d76d90/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportNodeHandler.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportNodeHandler.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportNodeHandler.java
index ee30a9c..0b26c62 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportNodeHandler.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportNodeHandler.java
@@ -19,13 +19,7 @@
package org.apache.cayenne.modeler.editor.dbimport;
-import org.apache.cayenne.dbsync.reverse.dbimport.Catalog;
-import org.apache.cayenne.dbsync.reverse.dbimport.ExcludeProcedure;
-import org.apache.cayenne.dbsync.reverse.dbimport.ExcludeTable;
-import org.apache.cayenne.dbsync.reverse.dbimport.IncludeProcedure;
-import org.apache.cayenne.dbsync.reverse.dbimport.IncludeTable;
-import org.apache.cayenne.dbsync.reverse.dbimport.ReverseEngineering;
-import org.apache.cayenne.dbsync.reverse.dbimport.Schema;
+import org.apache.cayenne.dbsync.reverse.dbimport.*;
import org.apache.cayenne.modeler.dialog.db.load.DbImportTreeNode;
import javax.swing.tree.TreePath;
@@ -98,7 +92,7 @@ class DbImportNodeHandler {
for (int i = 0; i < childCount; i++) {
if (((DbImportTreeNode) reverseEngineeringTree.getRootNode().getChildAt(i)).
getUserObject().getClass() == Catalog.class) {
- if (dbNode.getUserObject().getClass() == Catalog.class) {
+ if (dbNode.getUserObject().getClass() == Catalog.class || dbNode.getUserObject().getClass() == IncludeTable.class) {
return true;
} else {
return false;
@@ -167,6 +161,7 @@ class DbImportNodeHandler {
* Return 0, if rendered node not found.
*/
int traverseTree(DbImportTreeNode rootNode) {
+ hasEntitiesInEmptyContainer = false;
int traverseResult = 0;
int childCount = rootNode.getChildCount();
boolean hasProcedures = false;
@@ -217,7 +212,7 @@ class DbImportNodeHandler {
}
}
if ((!rootNode.isExcludeTable()) && (!nodesIsEqual(rootNode))
- && (!dbSchemaNode.isIncludeProcedure())) {
+ && (!dbSchemaNode.isIncludeProcedure()) &&(!dbSchemaNode.isIncludeColumn())) {
traverseResult++;
} else {
if ((!hasProcedures) && (!dbSchemaNode.isIncludeProcedure())) {
@@ -255,7 +250,7 @@ class DbImportNodeHandler {
for (TreePath path : reverseEngineeringTree.getSelectionPaths()) {
DbImportTreeNode pathNode = (DbImportTreeNode) path.getLastPathComponent();
if (pathNode.getSimpleNodeName().equals(dbSchemaNode.getSimpleNodeName())) {
- if (pathNode.isExcludeTable() || pathNode.isExcludeProcedure()) {
+ if (pathNode.isExcludeTable() || pathNode.isExcludeProcedure() || node.isExcludeColumn()) {
return EXCLUDE_COLOR;
} else {
return ACCEPT_COLOR;
@@ -263,7 +258,7 @@ class DbImportNodeHandler {
}
}
}
- if (node.isExcludeTable() || node.isExcludeProcedure()) {
+ if (node.isExcludeTable() || node.isExcludeProcedure() || node.isExcludeColumn()) {
return EXCLUDE_COLOR;
} else {
return ACCEPT_COLOR;
@@ -316,6 +311,12 @@ class DbImportNodeHandler {
if ((firstClass.equals(ExcludeProcedure.class)) && (secondClass.equals(IncludeProcedure.class))) {
return true;
}
+ if ((firstClass.equals(ExcludeColumn.class)) && (secondClass.equals(IncludeColumn.class))) {
+ return true;
+ }
+ if ((firstClass.equals(IncludeColumn.class)) && (secondClass.equals(ExcludeColumn.class))) {
+ return true;
+ }
return false;
}
@@ -324,7 +325,7 @@ class DbImportNodeHandler {
}
public boolean getHasEntitiesInEmptyContainer() {
- return hasEntitiesInEmptyContainer;
+ return true;
}
public void setHasEntitiesInEmptyContainer(boolean newFlag) {
http://git-wip-us.apache.org/repos/asf/cayenne/blob/65d76d90/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportTree.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportTree.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportTree.java
index c7a0aed..b4a3ec6 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportTree.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportTree.java
@@ -19,20 +19,24 @@
package org.apache.cayenne.modeler.editor.dbimport;
-import org.apache.cayenne.dbsync.reverse.dbimport.Catalog;
-import org.apache.cayenne.dbsync.reverse.dbimport.FilterContainer;
-import org.apache.cayenne.dbsync.reverse.dbimport.IncludeTable;
-import org.apache.cayenne.dbsync.reverse.dbimport.PatternParam;
-import org.apache.cayenne.dbsync.reverse.dbimport.ReverseEngineering;
-import org.apache.cayenne.dbsync.reverse.dbimport.Schema;
+import org.apache.cayenne.dbsync.reverse.dbimport.*;
+import org.apache.cayenne.modeler.Application;
+import org.apache.cayenne.modeler.action.LoadDbSchemaAction;
import org.apache.cayenne.modeler.dialog.db.load.DbImportTreeNode;
import org.apache.cayenne.modeler.dialog.db.load.TransferableNode;
import javax.swing.JTree;
+import javax.swing.event.TreeExpansionEvent;
+import javax.swing.event.TreeExpansionListener;
import javax.swing.tree.TreeNode;
import javax.swing.tree.TreePath;
+import java.awt.*;
+import java.awt.event.ActionEvent;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Iterator;
+
+import static org.apache.cayenne.modeler.action.LoadDbSchemaAction.LOAD_COLUMN_COMMAND;
/**
* @since 4.1
@@ -61,14 +65,92 @@ public class DbImportTree extends JTree {
printParams(reverseEngineering.getExcludeColumns(), root);
printParams(reverseEngineering.getIncludeProcedures(), root);
printParams(reverseEngineering.getExcludeProcedures(), root);
+ createTreeExpandListener();
model.reload();
}
+ public void updateTableColumns(ReverseEngineering reverseEngineering) {
+ DbImportModel model = (DbImportModel) this.getModel();
+
+ DbImportTreeNode root = (DbImportTreeNode) model.getRoot();
+ Iterator<Catalog> catalogs = reverseEngineering.getCatalogs().iterator();
+ while (catalogs.hasNext()) {
+ Catalog newCatalog = catalogs.next();
+ DbImportTreeNode catalog = findNodeInParent(root, newCatalog);
+
+ if (catalog == null) {
+ continue;
+ }
+
+ Iterator<IncludeTable> includeTables = newCatalog.getIncludeTables().iterator();
+ while (includeTables.hasNext()) {
+ IncludeTable newTable = includeTables.next();
+ DbImportTreeNode table = findNodeInParent(catalog, newTable);
+ if (table == null) {
+ continue;
+ }
+ table.removeAllChildren();
+ newTable.getIncludeColumns().forEach(column ->
+ table.add(new DbImportTreeNode(column)));
+ table.setLoaded(true);
+ model.reload(table);
+ }
+ }
+
+ }
+
+
+
+ private DbImportTreeNode findNodeInParent(DbImportTreeNode parent, Object object) {
+ for(int i = 0; i<= parent.getChildCount(); i++) {
+ DbImportTreeNode node = (DbImportTreeNode) parent.getChildAt(i);
+ Object userObject = node.getUserObject();
+
+ if (object instanceof Catalog) {
+ Catalog catalog = (Catalog) object;
+ if (!(userObject instanceof Catalog)) {
+ continue;
+ }
+
+ Catalog currentCatalog = (Catalog) userObject;
+ if(currentCatalog.getName().equals(catalog.getName()) ) {
+ return node;
+ }
+ }
+
+ if (object instanceof IncludeTable) {
+ IncludeTable table = (IncludeTable) object;
+ if (!(userObject instanceof IncludeTable)) {
+ continue;
+ }
+
+ IncludeTable currentTable = (IncludeTable) userObject;
+ if (currentTable.getPattern().equals(table.getPattern())) {
+ return node;
+ }
+ }
+
+ if (object instanceof ExcludeTable) {
+ ExcludeTable table = (ExcludeTable) object;
+ if (!(userObject instanceof ExcludeTable)) {
+ continue;
+ }
+
+ ExcludeTable currentTable = (ExcludeTable) userObject;
+ if (currentTable.getPattern().equals(table.getPattern())) {
+ return node;
+ }
+ }
+ }
+
+ return null;
+ }
+
public DbImportTreeNode findNodeByParentsChain(DbImportTreeNode rootNode, DbImportTreeNode movedNode, int depth) {
String parentName = ((DbImportTreeNode) movedNode.getParent()).getSimpleNodeName();
if ((rootNode.parentsIsEqual(((DbImportTreeNode) movedNode.getParent())))
&& (rootNode.getSimpleNodeName().equals(parentName))
- && ((rootNode.isCatalog()) || (rootNode.isSchema()))) {
+ && ((rootNode.isCatalog()) || (rootNode.isSchema()) || (rootNode.isIncludeTable()))) {
return rootNode;
}
for (int i = 0; i < rootNode.getChildCount(); i++) {
@@ -185,6 +267,38 @@ public class DbImportTree extends JTree {
}
}
+ private void createTreeExpandListener() {
+ TreeExpansionListener treeExpansionListener = new TreeExpansionListener() {
+
+ @Override
+ public void treeExpanded(TreeExpansionEvent event) {
+ TreePath path = event.getPath();
+ Object lastPathComponent = path.getLastPathComponent();
+ if (!(lastPathComponent instanceof TransferableNode)) {
+ return;
+ }
+
+ DbImportTreeNode node = (DbImportTreeNode) lastPathComponent;
+ Object userObject = node.getUserObject();
+ if (userObject.getClass() == IncludeTable.class && !node.isLoaded()) {
+ //reload columns action.
+
+ LoadDbSchemaAction action = Application.getInstance().getActionManager().getAction(LoadDbSchemaAction.class);
+ action.performAction(new ActionEvent(path, 1000, LOAD_COLUMN_COMMAND ));
+ }
+
+
+ }
+
+ @Override
+ public void treeCollapsed(TreeExpansionEvent event) {
+
+ }
+ };
+ this.addTreeExpansionListener(treeExpansionListener);
+ }
+
+
public DbImportTreeNode getSelectedNode() {
return (DbImportTreeNode) this.getSelectionPath().getLastPathComponent();
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/65d76d90/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportTreeCellRenderer.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportTreeCellRenderer.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportTreeCellRenderer.java
index 9d9e505..5e1dce3 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportTreeCellRenderer.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportTreeCellRenderer.java
@@ -58,6 +58,7 @@ public class DbImportTreeCellRenderer extends DefaultTreeCellRenderer {
transferableTreeIcons.put(Schema.class, "icon-dbi-schema.png");
transferableTreeIcons.put(IncludeTable.class, "icon-dbentity.png");
transferableTreeIcons.put(IncludeProcedure.class, "icon-stored-procedure.png");
+ transferableTreeIcons.put(IncludeColumn.class, "icon-dbi-column.png");
}
private void initIcons() {
http://git-wip-us.apache.org/repos/asf/cayenne/blob/65d76d90/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DraggableTreePanel.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DraggableTreePanel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DraggableTreePanel.java
index 9605e54..c53190c 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DraggableTreePanel.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DraggableTreePanel.java
@@ -238,6 +238,12 @@ public class DraggableTreePanel extends JScrollPane {
if (selectedElement == null) {
return false;
}
+ if (selectedElement.isIncludeColumn() || selectedElement.isExcludeColumn()) {
+ DbImportTreeNode node = targetTree.findNode(targetTree.getRootNode(), (DbImportTreeNode) selectedElement.getParent(), 0);
+ if(node != null && node.isExcludeTable()) {
+ return false;
+ }
+ }
Class draggableElementClass = selectedElement.getUserObject().getClass();
Class reverseEngineeringElementClass;
if (targetTree.getSelectionPath() != null) {
http://git-wip-us.apache.org/repos/asf/cayenne/blob/65d76d90/modeler/cayenne-modeler/src/main/resources/org/apache/cayenne/modeler/images/icon-dbi-column.png
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/resources/org/apache/cayenne/modeler/images/icon-dbi-column.png b/modeler/cayenne-modeler/src/main/resources/org/apache/cayenne/modeler/images/icon-dbi-column.png
new file mode 100644
index 0000000..207b1f1
Binary files /dev/null and b/modeler/cayenne-modeler/src/main/resources/org/apache/cayenne/modeler/images/icon-dbi-column.png differ
[02/10] cayenne git commit: Refactoring.
Posted by nt...@apache.org.
Refactoring.
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/98541384
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/98541384
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/98541384
Branch: refs/heads/master
Commit: 98541384b35f5a70d9eaf8e8d50d312cb9d77098
Parents: 65d76d9
Author: kkomyak <co...@gmail.com>
Authored: Mon Oct 29 10:16:36 2018 +0300
Committer: kkomyak <co...@gmail.com>
Committed: Mon Oct 29 10:50:33 2018 +0300
----------------------------------------------------------------------
.../modeler/action/LoadDbSchemaAction.java | 12 +-
.../editor/dbimport/DatabaseSchemaLoader.java | 21 ++--
.../editor/dbimport/DbImportNodeHandler.java | 12 +-
.../modeler/editor/dbimport/DbImportTree.java | 124 +++++++++----------
4 files changed, 86 insertions(+), 83 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/98541384/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/LoadDbSchemaAction.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/LoadDbSchemaAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/LoadDbSchemaAction.java
index 406dc64..da0c659 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/LoadDbSchemaAction.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/LoadDbSchemaAction.java
@@ -22,7 +22,6 @@ package org.apache.cayenne.modeler.action;
import org.apache.cayenne.dbsync.reverse.dbimport.ReverseEngineering;
import org.apache.cayenne.modeler.Application;
import org.apache.cayenne.modeler.dialog.db.DataSourceWizard;
-import org.apache.cayenne.modeler.dialog.db.load.TransferableNode;
import org.apache.cayenne.modeler.editor.dbimport.DatabaseSchemaLoader;
import org.apache.cayenne.modeler.editor.dbimport.DbImportModel;
import org.apache.cayenne.modeler.editor.dbimport.DbImportView;
@@ -49,7 +48,6 @@ public class LoadDbSchemaAction extends CayenneAction {
private static final String ICON_NAME = "icon-dbi-refresh.png";
private static final String ACTION_NAME = "Refresh Db Schema";
- public static final String LOAD_COLUMN_COMMAND = "load-columns";
private DraggableTreePanel draggableTreePanel;
LoadDbSchemaAction(Application application) {
@@ -62,6 +60,10 @@ public class LoadDbSchemaAction extends CayenneAction {
@Override
public void performAction(ActionEvent e) {
+ performAction(e, null);
+ }
+
+ public void performAction(ActionEvent e, TreePath tablePath) {
final DbImportView rootParent = ((DbImportView) draggableTreePanel.getParent().getParent());
rootParent.getLoadDbSchemaProgress().setVisible(true);
rootParent.getLoadDbSchemaButton().setEnabled(false);
@@ -83,12 +85,10 @@ public class LoadDbSchemaAction extends CayenneAction {
connectionInfo = getConnectionInfoFromPreferences();
}
- if (LOAD_COLUMN_COMMAND.equals(e.getActionCommand())) {
- TreePath source = (TreePath) e.getSource();
+ if (tablePath != null) {
ReverseEngineering databaseReverseEngineering = new DatabaseSchemaLoader()
- .loadColumns(connectionInfo, getApplication().getClassLoadingService(), source);
+ .loadColumns(connectionInfo, getApplication().getClassLoadingService(), tablePath);
draggableTreePanel.getSourceTree().updateTableColumns(databaseReverseEngineering);
-
} else {
ReverseEngineering databaseReverseEngineering = new DatabaseSchemaLoader()
.load(connectionInfo, getApplication().getClassLoadingService());
http://git-wip-us.apache.org/repos/asf/cayenne/blob/98541384/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DatabaseSchemaLoader.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DatabaseSchemaLoader.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DatabaseSchemaLoader.java
index 6c2ee45..43dc96c 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DatabaseSchemaLoader.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DatabaseSchemaLoader.java
@@ -19,7 +19,12 @@
package org.apache.cayenne.modeler.editor.dbimport;
-import org.apache.cayenne.dbsync.reverse.dbimport.*;
+import org.apache.cayenne.dbsync.reverse.dbimport.Catalog;
+import org.apache.cayenne.dbsync.reverse.dbimport.IncludeColumn;
+import org.apache.cayenne.dbsync.reverse.dbimport.IncludeProcedure;
+import org.apache.cayenne.dbsync.reverse.dbimport.IncludeTable;
+import org.apache.cayenne.dbsync.reverse.dbimport.ReverseEngineering;
+import org.apache.cayenne.dbsync.reverse.dbimport.Schema;
import org.apache.cayenne.modeler.ClassLoadingService;
import org.apache.cayenne.modeler.pref.DBConnectionInfo;
@@ -44,7 +49,6 @@ public class DatabaseSchemaLoader {
}
public ReverseEngineering load(DBConnectionInfo connectionInfo, ClassLoadingService loadingService) throws SQLException {
- String columnName = "Loading...";
try (Connection connection = connectionInfo.makeDataSource(loadingService).getConnection()) {
String[] types = {"TABLE", "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY", "LOCAL TEMPORARY", "ALIAS", "SYNONYM"};
try (ResultSet rs = connection.getMetaData().getCatalogs()) {
@@ -65,10 +69,9 @@ public class DatabaseSchemaLoader {
tableName = resultSet.getString(TABLE_INDEX);
schemaName = resultSet.getString(SCHEMA_INDEX);
catalogName = resultSet.getString(CATALOG_INDEX);
- packTable(tableName, catalogName, schemaName, columnName);
+ packTable(tableName, catalogName, schemaName, null);
}
packFunctions(connection);
- columnName = null;
}
}
}
@@ -81,10 +84,7 @@ public class DatabaseSchemaLoader {
String tableName = path.getPathComponent(2).toString();
try (Connection connection = connectionInfo.makeDataSource(loadingService).getConnection()) {
- String[] types = {"TABLE", "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY", "LOCAL TEMPORARY", "ALIAS", "SYNONYM"};
- try (ResultSet rs = connection.getMetaData().getColumns(catalogName, schemaName, tableName, "");) {
- String defaultCatalog = connection.getCatalog();
-
+ try (ResultSet rs = connection.getMetaData().getColumns(catalogName, schemaName, tableName, "")) {
while (rs.next()) {
String column = rs.getString(4);
packTable(tableName, catalogName, schemaName, column);
@@ -95,7 +95,6 @@ public class DatabaseSchemaLoader {
return databaseReverseEngineering;
}
-
private void packFunctions(Connection connection) throws SQLException {
Collection<Catalog> catalogs = databaseReverseEngineering.getCatalogs();
for (Catalog catalog : catalogs) {
@@ -135,10 +134,6 @@ public class DatabaseSchemaLoader {
}
}
- private void packTable(String tableName, String catalogName, String schemaName) {
- packTable(tableName,catalogName, schemaName, null);
- }
-
private void packTable(String tableName, String catalogName, String schemaName, String columnName) {
IncludeTable table = new IncludeTable();
table.setPattern(tableName);
http://git-wip-us.apache.org/repos/asf/cayenne/blob/98541384/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportNodeHandler.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportNodeHandler.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportNodeHandler.java
index 0b26c62..df25634 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportNodeHandler.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportNodeHandler.java
@@ -19,7 +19,15 @@
package org.apache.cayenne.modeler.editor.dbimport;
-import org.apache.cayenne.dbsync.reverse.dbimport.*;
+import org.apache.cayenne.dbsync.reverse.dbimport.Catalog;
+import org.apache.cayenne.dbsync.reverse.dbimport.ExcludeColumn;
+import org.apache.cayenne.dbsync.reverse.dbimport.ExcludeProcedure;
+import org.apache.cayenne.dbsync.reverse.dbimport.ExcludeTable;
+import org.apache.cayenne.dbsync.reverse.dbimport.IncludeColumn;
+import org.apache.cayenne.dbsync.reverse.dbimport.IncludeProcedure;
+import org.apache.cayenne.dbsync.reverse.dbimport.IncludeTable;
+import org.apache.cayenne.dbsync.reverse.dbimport.ReverseEngineering;
+import org.apache.cayenne.dbsync.reverse.dbimport.Schema;
import org.apache.cayenne.modeler.dialog.db.load.DbImportTreeNode;
import javax.swing.tree.TreePath;
@@ -325,7 +333,7 @@ class DbImportNodeHandler {
}
public boolean getHasEntitiesInEmptyContainer() {
- return true;
+ return hasEntitiesInEmptyContainer;
}
public void setHasEntitiesInEmptyContainer(boolean newFlag) {
http://git-wip-us.apache.org/repos/asf/cayenne/blob/98541384/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportTree.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportTree.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportTree.java
index b4a3ec6..6019968 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportTree.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportTree.java
@@ -19,7 +19,14 @@
package org.apache.cayenne.modeler.editor.dbimport;
-import org.apache.cayenne.dbsync.reverse.dbimport.*;
+import org.apache.cayenne.dbsync.reverse.dbimport.Catalog;
+import org.apache.cayenne.dbsync.reverse.dbimport.ExcludeTable;
+import org.apache.cayenne.dbsync.reverse.dbimport.FilterContainer;
+import org.apache.cayenne.dbsync.reverse.dbimport.IncludeColumn;
+import org.apache.cayenne.dbsync.reverse.dbimport.IncludeTable;
+import org.apache.cayenne.dbsync.reverse.dbimport.PatternParam;
+import org.apache.cayenne.dbsync.reverse.dbimport.ReverseEngineering;
+import org.apache.cayenne.dbsync.reverse.dbimport.Schema;
import org.apache.cayenne.modeler.Application;
import org.apache.cayenne.modeler.action.LoadDbSchemaAction;
import org.apache.cayenne.modeler.dialog.db.load.DbImportTreeNode;
@@ -30,13 +37,10 @@ import javax.swing.event.TreeExpansionEvent;
import javax.swing.event.TreeExpansionListener;
import javax.swing.tree.TreeNode;
import javax.swing.tree.TreePath;
-import java.awt.*;
-import java.awt.event.ActionEvent;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.Iterator;
+import java.util.Collections;
-import static org.apache.cayenne.modeler.action.LoadDbSchemaAction.LOAD_COLUMN_COMMAND;
/**
* @since 4.1
@@ -73,77 +77,70 @@ public class DbImportTree extends JTree {
DbImportModel model = (DbImportModel) this.getModel();
DbImportTreeNode root = (DbImportTreeNode) model.getRoot();
- Iterator<Catalog> catalogs = reverseEngineering.getCatalogs().iterator();
- while (catalogs.hasNext()) {
- Catalog newCatalog = catalogs.next();
+ reverseEngineering.getCatalogs().forEach(newCatalog -> {
DbImportTreeNode catalog = findNodeInParent(root, newCatalog);
if (catalog == null) {
- continue;
+ return;
}
- Iterator<IncludeTable> includeTables = newCatalog.getIncludeTables().iterator();
- while (includeTables.hasNext()) {
- IncludeTable newTable = includeTables.next();
+ newCatalog.getIncludeTables().forEach(newTable -> {
DbImportTreeNode table = findNodeInParent(catalog, newTable);
if (table == null) {
- continue;
+ return;
}
table.removeAllChildren();
newTable.getIncludeColumns().forEach(column ->
- table.add(new DbImportTreeNode(column)));
+ table.add(new DbImportTreeNode(column)));
table.setLoaded(true);
model.reload(table);
+ });
+ });
+ }
+
+ private DbImportTreeNode findNodeInParent(DbImportTreeNode parent, Object object) {
+ for (int i = 0; i <= parent.getChildCount(); i++) {
+ DbImportTreeNode node = (DbImportTreeNode) parent.getChildAt(i);
+ Object userObject = node.getUserObject();
+
+ if (object instanceof Catalog) {
+ Catalog catalog = (Catalog) object;
+ if (!(userObject instanceof Catalog)) {
+ continue;
+ }
+
+ Catalog currentCatalog = (Catalog) userObject;
+ if (currentCatalog.getName().equals(catalog.getName())) {
+ return node;
+ }
}
- }
- }
+ if (object instanceof IncludeTable) {
+ IncludeTable table = (IncludeTable) object;
+ if (!(userObject instanceof IncludeTable)) {
+ continue;
+ }
+ IncludeTable currentTable = (IncludeTable) userObject;
+ if (currentTable.getPattern().equals(table.getPattern())) {
+ return node;
+ }
+ }
+ if (object instanceof ExcludeTable) {
+ ExcludeTable table = (ExcludeTable) object;
+ if (!(userObject instanceof ExcludeTable)) {
+ continue;
+ }
- private DbImportTreeNode findNodeInParent(DbImportTreeNode parent, Object object) {
- for(int i = 0; i<= parent.getChildCount(); i++) {
- DbImportTreeNode node = (DbImportTreeNode) parent.getChildAt(i);
- Object userObject = node.getUserObject();
-
- if (object instanceof Catalog) {
- Catalog catalog = (Catalog) object;
- if (!(userObject instanceof Catalog)) {
- continue;
- }
-
- Catalog currentCatalog = (Catalog) userObject;
- if(currentCatalog.getName().equals(catalog.getName()) ) {
- return node;
- }
- }
-
- if (object instanceof IncludeTable) {
- IncludeTable table = (IncludeTable) object;
- if (!(userObject instanceof IncludeTable)) {
- continue;
- }
-
- IncludeTable currentTable = (IncludeTable) userObject;
- if (currentTable.getPattern().equals(table.getPattern())) {
- return node;
- }
- }
-
- if (object instanceof ExcludeTable) {
- ExcludeTable table = (ExcludeTable) object;
- if (!(userObject instanceof ExcludeTable)) {
- continue;
- }
-
- ExcludeTable currentTable = (ExcludeTable) userObject;
- if (currentTable.getPattern().equals(table.getPattern())) {
- return node;
- }
- }
- }
-
- return null;
+ ExcludeTable currentTable = (ExcludeTable) userObject;
+ if (currentTable.getPattern().equals(table.getPattern())) {
+ return node;
+ }
+ }
+ }
+
+ return null;
}
public DbImportTreeNode findNodeByParentsChain(DbImportTreeNode rootNode, DbImportTreeNode movedNode, int depth) {
@@ -230,6 +227,11 @@ public class DbImportTree extends JTree {
for (IncludeTable includeTable : collection) {
DbImportTreeNode node = !isTransferable ? new DbImportTreeNode(includeTable) : new TransferableNode(includeTable);
if (!node.getSimpleNodeName().equals("")) {
+
+ if (includeTable.getIncludeColumns().isEmpty() || includeTable.getExcludeColumns().isEmpty()) {
+ printParams(Collections.singletonList(new IncludeColumn("Loading...")), node);
+ }
+
printParams(includeTable.getIncludeColumns(), node);
printParams(includeTable.getExcludeColumns(), node);
parent.add(node);
@@ -284,10 +286,8 @@ public class DbImportTree extends JTree {
//reload columns action.
LoadDbSchemaAction action = Application.getInstance().getActionManager().getAction(LoadDbSchemaAction.class);
- action.performAction(new ActionEvent(path, 1000, LOAD_COLUMN_COMMAND ));
+ action.performAction(null, path);
}
-
-
}
@Override
[08/10] cayenne git commit: Small refactoring.
Posted by nt...@apache.org.
Small refactoring.
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/34bd8a6c
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/34bd8a6c
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/34bd8a6c
Branch: refs/heads/master
Commit: 34bd8a6c9f7f7736a40a8bdf99b7a1dc15703071
Parents: c5c3d79
Author: kkomyak <co...@gmail.com>
Authored: Mon Nov 5 16:11:36 2018 +0300
Committer: kkomyak <co...@gmail.com>
Committed: Mon Nov 5 16:11:36 2018 +0300
----------------------------------------------------------------------
.../org/apache/cayenne/modeler/editor/dbimport/DbImportTree.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/34bd8a6c/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportTree.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportTree.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportTree.java
index 13c8cb3..e1107fd 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportTree.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportTree.java
@@ -284,7 +284,7 @@ public class DbImportTree extends JTree {
}
DbImportTreeNode node = (DbImportTreeNode) lastPathComponent;
- if (node.isIncludeColumn() && !node.isLoaded()) {
+ if (node.isIncludeTable() && !node.isLoaded()) {
//reload columns action.
LoadDbSchemaAction action = Application.getInstance().getActionManager().getAction(LoadDbSchemaAction.class);
[03/10] cayenne git commit: CAY-2491 Made DB Import View have
flexible design. Moved 'Refresh Db Schema' and 'Run Import' buttons to
toolbar. Added show/hide advanced options functionality. Add space in
DbImport tab label.
Posted by nt...@apache.org.
CAY-2491 Made DB Import View have flexible design. Moved 'Refresh Db Schema' and 'Run Import' buttons to toolbar. Added show/hide advanced options functionality. Add space in DbImport tab label.
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/438eec9b
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/438eec9b
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/438eec9b
Branch: refs/heads/master
Commit: 438eec9b9f3f1738bfff843526474e58e1d284c1
Parents: 9854138
Author: kkomyak <co...@gmail.com>
Authored: Mon Oct 29 15:21:49 2018 +0300
Committer: kkomyak <co...@gmail.com>
Committed: Mon Oct 29 15:21:49 2018 +0300
----------------------------------------------------------------------
RELEASE-NOTES.txt | 1 +
.../modeler/editor/DataMapTabbedView.java | 3 +-
.../modeler/editor/dbimport/DbImportView.java | 60 +++++++++++++++-----
.../dbimport/ReverseEngineeringTreePanel.java | 1 +
4 files changed, 50 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/438eec9b/RELEASE-NOTES.txt
----------------------------------------------------------------------
diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index c0c093c..fd08cdc 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -24,6 +24,7 @@ CAY-2481 Support for Object[] as return type in SQLTemplate and SQLExec
CAY-2485 Compact Slf4j Logger
CAY-2487 Removed usage of CayenneException.
CAY-2489 Add validation to the case of not to PK relationships
+CAY-2491 Remaster Db Import View
Bug Fixes:
http://git-wip-us.apache.org/repos/asf/cayenne/blob/438eec9b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DataMapTabbedView.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DataMapTabbedView.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DataMapTabbedView.java
index ed1b6f1..b89b1c2 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DataMapTabbedView.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DataMapTabbedView.java
@@ -24,7 +24,6 @@ import javax.swing.JTabbedPane;
import org.apache.cayenne.modeler.ProjectController;
import org.apache.cayenne.modeler.editor.dbimport.DbImportView;
-
/**
* Data map editing tabs container
*
@@ -56,7 +55,7 @@ public class DataMapTabbedView extends JTabbedPane {
JScrollPane dataMapView = new JScrollPane(new DataMapView(mediator));
JScrollPane dbImportView = new JScrollPane(new DbImportView(mediator));
addTab("DataMap", dataMapView);
- addTab("DbImport", dbImportView);
+ addTab("DB Import", dbImportView);
}
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/438eec9b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportView.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportView.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportView.java
index 3f0bb3b..38e3d87 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportView.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportView.java
@@ -29,22 +29,29 @@ import org.apache.cayenne.modeler.action.ReverseEngineeringAction;
import org.apache.cayenne.modeler.dialog.db.load.DbImportTreeNode;
import org.apache.cayenne.modeler.dialog.db.load.TransferableNode;
import org.apache.cayenne.modeler.util.CayenneAction;
+import org.apache.cayenne.modeler.util.ModelerUtil;
+import javax.swing.AbstractAction;
+import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import java.awt.BorderLayout;
+import java.awt.FlowLayout;
+import java.awt.event.ActionEvent;
/**
* @since 4.1
*/
public class DbImportView extends JPanel {
- private static final String MAIN_LAYOUT = "fill:160dlu, 5dlu, fill:50dlu, 5dlu, fill:160dlu";
- private static final String HEADER_LAYOUT = "fill:70dlu, 15dlu, fill:75dlu";
+ private static final String MAIN_LAYOUT = "fill:160dlu:grow, 5dlu, fill:50dlu, 5dlu, fill:160dlu:grow";
+ private static final String HEADER_LAYOUT = "fill:80dlu:grow";
private static final String BUTTON_PANEL_LAYOUT = "fill:50dlu";
private static final String PROGRESS_PANEL_LAYOUT = "fill:160dlu, 60dlu, fill:160dlu";
private static final int ALL_LINE_SPAN = 5;
+ private static final ImageIcon rightArrow = ModelerUtil.buildIcon("icon-arrow-closed.png");
+ private static final ImageIcon downArrow = ModelerUtil.buildIcon("icon-arrow-open.png");
private TreeToolbarPanel treeToolbar;
private ReverseEngineeringTreePanel treePanel;
@@ -104,14 +111,6 @@ public class DbImportView extends JPanel {
DefaultFormBuilder reverseEngineeringHeaderBuilder = new DefaultFormBuilder(headerLayout);
reverseEngineeringHeaderBuilder.append("Import Configuration");
- ReverseEngineeringAction reverseEngineeringAction = projectController.getApplication().getActionManager().
- getAction(ReverseEngineeringAction.class);
- reverseEngineeringAction.setView(this);
- CayenneAction.CayenneToolbarButton reverseEngineeringButton = (CayenneAction.CayenneToolbarButton)
- reverseEngineeringAction.buildButton(0);
- reverseEngineeringButton.setShowingText(true);
- reverseEngineeringButton.setText("Run Import");
- reverseEngineeringHeaderBuilder.append(reverseEngineeringButton);
builder.append(reverseEngineeringHeaderBuilder.getPanel());
DefaultFormBuilder databaseHeaderBuilder = new DefaultFormBuilder(headerLayout);
@@ -120,12 +119,26 @@ public class DbImportView extends JPanel {
getAction(LoadDbSchemaAction.class);
loadDbSchemaAction.setDraggableTreePanel(draggableTreePanel);
loadDbSchemaButton = (CayenneAction.CayenneToolbarButton) loadDbSchemaAction.buildButton(0);
- loadDbSchemaButton.setShowingText(true);
+ loadDbSchemaButton.setShowingText(false);
loadDbSchemaButton.setText("Refresh DB Schema");
- databaseHeaderBuilder.append(loadDbSchemaButton);
+ treeToolbar.add(loadDbSchemaButton);
+
+ ReverseEngineeringAction reverseEngineeringAction = projectController.getApplication().getActionManager().
+ getAction(ReverseEngineeringAction.class);
+ reverseEngineeringAction.setView(this);
+ CayenneAction.CayenneToolbarButton reverseEngineeringButton = (CayenneAction.CayenneToolbarButton)
+ reverseEngineeringAction.buildButton(0);
+ reverseEngineeringButton.setShowingText(true);
+ reverseEngineeringButton.setText("Run Import");
+ JPanel reverseEngineeringButtonPanel = new JPanel();
+ reverseEngineeringButtonPanel.setLayout(new FlowLayout(FlowLayout.RIGHT));
+ reverseEngineeringButtonPanel.add(reverseEngineeringButton);
+ treeToolbar.addSeparator();
+ treeToolbar.add(reverseEngineeringButtonPanel);
builder.append("");
builder.append(databaseHeaderBuilder.getPanel());
+
builder.append(treePanel);
builder.append(buttonBuilder.getPanel());
builder.append(draggableTreePanel);
@@ -142,11 +155,31 @@ public class DbImportView extends JPanel {
progressBarBuilder.append(loadDbSchemaProgress);
builder.append(progressBarBuilder.getPanel(), ALL_LINE_SPAN);
+ createAdvancedOptionsHiderPanel(builder);
+
builder.append(configPanel, ALL_LINE_SPAN);
this.setLayout(new BorderLayout());
add(builder.getPanel(), BorderLayout.CENTER);
}
+ private void createAdvancedOptionsHiderPanel(DefaultFormBuilder builder) {
+ JPanel advancedOptionsPanel = new JPanel();
+ advancedOptionsPanel.setLayout(new FlowLayout(FlowLayout.LEFT));
+ JButton hideButton = new JButton("Advanced Options");
+ hideButton.setIcon(configPanel.isVisible() ? downArrow : rightArrow);
+ hideButton.setBorderPainted(false);
+ hideButton.addActionListener(new AbstractAction() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ configPanel.setVisible(!configPanel.isVisible());
+ hideButton.setIcon(configPanel.isVisible() ? downArrow : rightArrow);
+ }
+ });
+ advancedOptionsPanel.add(hideButton);
+
+ builder.append(advancedOptionsPanel, ALL_LINE_SPAN);
+ }
+
private void initFormElements() {
DbImportTreeNode root = new DbImportTreeNode(new ReverseEngineering());
DbImportTreeNode draggableTreeRoot = new DbImportTreeNode(new ReverseEngineering());
@@ -168,13 +201,14 @@ public class DbImportView extends JPanel {
treeToolbar = new TreeToolbarPanel(projectController, reverseEngineeringTree, draggableTreePanel);
treePanel = new ReverseEngineeringTreePanel(projectController, reverseEngineeringTree, draggableTree);
treePanel.setTreeToolbar(treeToolbar);
-
model.setDbSchemaTree(draggableTree);
draggableTreeModel.setDbSchemaTree(draggableTree);
((ColorTreeRenderer) draggableTreePanel.getSourceTree().getCellRenderer()).
setReverseEngineeringTree(reverseEngineeringTree);
configPanel = new ReverseEngineeringConfigPanel(projectController);
+ configPanel.setLayout(new FlowLayout(FlowLayout.LEFT));
+ configPanel.setVisible(false);
}
public boolean isSkipRelationshipsLoading() {
http://git-wip-us.apache.org/repos/asf/cayenne/blob/438eec9b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/ReverseEngineeringTreePanel.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/ReverseEngineeringTreePanel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/ReverseEngineeringTreePanel.java
index 010e6c1..5f4e081 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/ReverseEngineeringTreePanel.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/ReverseEngineeringTreePanel.java
@@ -39,6 +39,7 @@ import org.apache.cayenne.modeler.dialog.db.load.SchemaPopUpMenu;
import javax.swing.JScrollPane;
import javax.swing.JTree;
+import javax.swing.ScrollPaneLayout;
import javax.swing.SwingUtilities;
import javax.swing.tree.DefaultTreeCellRenderer;
import javax.swing.tree.TreePath;
[06/10] cayenne git commit: Fixed ruin tree on expand after tree
refresh.
Posted by nt...@apache.org.
Fixed ruin tree on expand after tree refresh.
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/ea120536
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/ea120536
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/ea120536
Branch: refs/heads/master
Commit: ea120536fccc0e84fdc3f97a84d7a47b7cbadcde
Parents: aa62c10
Author: kkomyak <co...@gmail.com>
Authored: Mon Nov 5 15:52:59 2018 +0300
Committer: kkomyak <co...@gmail.com>
Committed: Mon Nov 5 15:52:59 2018 +0300
----------------------------------------------------------------------
.../modeler/editor/dbimport/DbImportTree.java | 7 +++--
.../dbimport/ReverseEngineeringTreePanel.java | 31 ++++++++++++++++----
2 files changed, 30 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/ea120536/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportTree.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportTree.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportTree.java
index 109049f..68656a4 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportTree.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportTree.java
@@ -52,6 +52,7 @@ public class DbImportTree extends JTree {
public DbImportTree(TreeNode node) {
super(node);
+ createTreeExpandListener();
}
public void translateReverseEngineeringToTree(ReverseEngineering reverseEngineering, boolean isTransferable) {
@@ -69,7 +70,6 @@ public class DbImportTree extends JTree {
printParams(reverseEngineering.getExcludeColumns(), root);
printParams(reverseEngineering.getIncludeProcedures(), root);
printParams(reverseEngineering.getExcludeProcedures(), root);
- createTreeExpandListener();
model.reload();
}
@@ -89,11 +89,14 @@ public class DbImportTree extends JTree {
if (table == null) {
return;
}
- table.removeAllChildren();
+ if (table.getChildCount() != 0) {
+ table.removeAllChildren();
+ }
newTable.getIncludeColumns().forEach(column ->
table.add(new DbImportTreeNode(column)));
table.setLoaded(true);
model.reload(table);
+ System.out.println(table.getChildCount());
});
});
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/ea120536/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/ReverseEngineeringTreePanel.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/ReverseEngineeringTreePanel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/ReverseEngineeringTreePanel.java
index 5f4e081..877bd0f 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/ReverseEngineeringTreePanel.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/ReverseEngineeringTreePanel.java
@@ -127,12 +127,31 @@ class ReverseEngineeringTreePanel extends JScrollPane {
popupMenu.show(e.getComponent(), e.getX(), e.getY());
}
} else if (reverseEngineeringTree.getSelectionPath() != null) {
- DbImportTreeNode findedNode = dbSchemaTree.findNode(
- dbSchemaTree.getRootNode(), reverseEngineeringTree.getSelectedNode(), 0
- );
- if (findedNode != null) {
- dbSchemaTree.expandPath(new TreePath(((DbImportTreeNode) findedNode.getParent()).getPath()));
- scrollToNode(dbSchemaTree, findedNode);
+ DbImportTreeNode selectedNode = reverseEngineeringTree.getSelectedNode();
+
+ if( selectedNode.isExcludeColumn() || selectedNode.isIncludeColumn()) {
+ DbImportTreeNode expandNode = (DbImportTreeNode) selectedNode.getParent();
+
+ DbImportTreeNode parentPath = dbSchemaTree.findNode(
+ dbSchemaTree.getRootNode(), expandNode, 0
+ );
+
+ if (parentPath != null) {
+ dbSchemaTree.expandPath(new TreePath((parentPath).getPath()));
+ scrollToNode(dbSchemaTree, parentPath);
+ }
+
+ } else {
+
+ DbImportTreeNode findNode = dbSchemaTree.findNode(
+ dbSchemaTree.getRootNode(), selectedNode, 0
+ );
+
+
+ if (findNode != null) {
+ dbSchemaTree.expandPath(new TreePath(((DbImportTreeNode) findNode.getParent()).getPath()));
+ scrollToNode(dbSchemaTree, findNode);
+ }
}
}
}
[10/10] cayenne git commit: Merge PR #337
Posted by nt...@apache.org.
Merge PR #337
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/c18c0e31
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/c18c0e31
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/c18c0e31
Branch: refs/heads/master
Commit: c18c0e31fc86ccb9063ebe2f648860a7ef05178a
Parents: fb7f004 2729e89
Author: Nikita Timofeev <st...@gmail.com>
Authored: Mon Nov 5 16:25:35 2018 +0300
Committer: Nikita Timofeev <st...@gmail.com>
Committed: Mon Nov 5 16:25:35 2018 +0300
----------------------------------------------------------------------
RELEASE-NOTES.txt | 1 +
.../modeler/action/LoadDbSchemaAction.java | 31 +++--
.../dialog/db/load/DbImportTreeNode.java | 19 +++
.../modeler/editor/DataMapTabbedView.java | 3 +-
.../editor/dbimport/ColorTreeRenderer.java | 15 ++-
.../editor/dbimport/DatabaseSchemaLoader.java | 84 +++++++++----
.../editor/dbimport/DbImportNodeHandler.java | 17 ++-
.../modeler/editor/dbimport/DbImportTree.java | 117 ++++++++++++++++++-
.../dbimport/DbImportTreeCellRenderer.java | 1 +
.../modeler/editor/dbimport/DbImportView.java | 62 +++++++---
.../editor/dbimport/DraggableTreePanel.java | 6 +
.../dbimport/ReverseEngineeringTreePanel.java | 32 ++++-
.../cayenne/modeler/images/icon-dbi-column.png | Bin 0 -> 203 bytes
13 files changed, 331 insertions(+), 57 deletions(-)
----------------------------------------------------------------------
[04/10] cayenne git commit: Add flexibility to progress panels in
dbImport view.
Posted by nt...@apache.org.
Add flexibility to progress panels in dbImport view.
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/f89836f5
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/f89836f5
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/f89836f5
Branch: refs/heads/master
Commit: f89836f5cd431aaabfc320671903aa28835a916f
Parents: 438eec9
Author: kkomyak <co...@gmail.com>
Authored: Thu Nov 1 16:56:38 2018 +0300
Committer: kkomyak <co...@gmail.com>
Committed: Thu Nov 1 16:56:38 2018 +0300
----------------------------------------------------------------------
.../org/apache/cayenne/modeler/editor/dbimport/DbImportView.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/f89836f5/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportView.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportView.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportView.java
index 38e3d87..aacb1a4 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportView.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportView.java
@@ -48,7 +48,7 @@ public class DbImportView extends JPanel {
private static final String MAIN_LAYOUT = "fill:160dlu:grow, 5dlu, fill:50dlu, 5dlu, fill:160dlu:grow";
private static final String HEADER_LAYOUT = "fill:80dlu:grow";
private static final String BUTTON_PANEL_LAYOUT = "fill:50dlu";
- private static final String PROGRESS_PANEL_LAYOUT = "fill:160dlu, 60dlu, fill:160dlu";
+ private static final String PROGRESS_PANEL_LAYOUT = "fill:160dlu:grow, 60dlu, fill:160dlu:grow";
private static final int ALL_LINE_SPAN = 5;
private static final ImageIcon rightArrow = ModelerUtil.buildIcon("icon-arrow-closed.png");
private static final ImageIcon downArrow = ModelerUtil.buildIcon("icon-arrow-open.png");
[09/10] cayenne git commit: Removed unneeded System.out
Posted by nt...@apache.org.
Removed unneeded System.out
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/2729e895
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/2729e895
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/2729e895
Branch: refs/heads/master
Commit: 2729e895f1b3d53ea85b664248ed2a3378e31400
Parents: 34bd8a6
Author: kkomyak <co...@gmail.com>
Authored: Mon Nov 5 16:18:59 2018 +0300
Committer: kkomyak <co...@gmail.com>
Committed: Mon Nov 5 16:18:59 2018 +0300
----------------------------------------------------------------------
.../org/apache/cayenne/modeler/editor/dbimport/DbImportTree.java | 1 -
1 file changed, 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/2729e895/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportTree.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportTree.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportTree.java
index e1107fd..2bb51b3 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportTree.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportTree.java
@@ -96,7 +96,6 @@ public class DbImportTree extends JTree {
table.add(new DbImportTreeNode(column)));
table.setLoaded(true);
model.reload(table);
- System.out.println(table.getChildCount());
});
});
}
[07/10] cayenne git commit: Small refactoring.
Posted by nt...@apache.org.
Small refactoring.
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/c5c3d79b
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/c5c3d79b
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/c5c3d79b
Branch: refs/heads/master
Commit: c5c3d79b597cb27df7943c912ccdda26bcccbd4e
Parents: ea12053
Author: kkomyak <co...@gmail.com>
Authored: Mon Nov 5 15:55:24 2018 +0300
Committer: kkomyak <co...@gmail.com>
Committed: Mon Nov 5 15:55:24 2018 +0300
----------------------------------------------------------------------
.../org/apache/cayenne/modeler/editor/dbimport/DbImportTree.java | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/c5c3d79b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportTree.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportTree.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportTree.java
index 68656a4..13c8cb3 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportTree.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportTree.java
@@ -284,8 +284,7 @@ public class DbImportTree extends JTree {
}
DbImportTreeNode node = (DbImportTreeNode) lastPathComponent;
- Object userObject = node.getUserObject();
- if (userObject.getClass() == IncludeTable.class && !node.isLoaded()) {
+ if (node.isIncludeColumn() && !node.isLoaded()) {
//reload columns action.
LoadDbSchemaAction action = Application.getInstance().getActionManager().getAction(LoadDbSchemaAction.class);
[05/10] cayenne git commit: Prevent adding 'Loading...' node to
target tree in db import.
Posted by nt...@apache.org.
Prevent adding 'Loading...' node to target tree in db import.
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/aa62c101
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/aa62c101
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/aa62c101
Branch: refs/heads/master
Commit: aa62c101e7748a2fcd5162c7be1f99fc11ab4e35
Parents: f89836f
Author: kkomyak <co...@gmail.com>
Authored: Mon Nov 5 12:17:10 2018 +0300
Committer: kkomyak <co...@gmail.com>
Committed: Mon Nov 5 12:17:10 2018 +0300
----------------------------------------------------------------------
.../org/apache/cayenne/modeler/editor/dbimport/DbImportTree.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/aa62c101/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportTree.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportTree.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportTree.java
index 6019968..109049f 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportTree.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportTree.java
@@ -228,7 +228,7 @@ public class DbImportTree extends JTree {
DbImportTreeNode node = !isTransferable ? new DbImportTreeNode(includeTable) : new TransferableNode(includeTable);
if (!node.getSimpleNodeName().equals("")) {
- if (includeTable.getIncludeColumns().isEmpty() || includeTable.getExcludeColumns().isEmpty()) {
+ if (includeTable.getIncludeColumns().isEmpty() && includeTable.getExcludeColumns().isEmpty()) {
printParams(Collections.singletonList(new IncludeColumn("Loading...")), node);
}