You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by ab...@apache.org on 2019/07/19 08:42:17 UTC

[cayenne] branch master updated: Modeler: add table types filter to refresh db schema.

This is an automated email from the ASF dual-hosted git repository.

abulatski pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cayenne.git


The following commit(s) were added to refs/heads/master by this push:
     new bdc5e93  Modeler: add table types filter to refresh db schema.
bdc5e93 is described below

commit bdc5e935b9e0b2c76bdd38e0ec92b75f46e20c9a
Author: Arseni Bulatski <an...@gmail.com>
AuthorDate: Fri Jul 19 11:30:07 2019 +0300

    Modeler: add table types filter to refresh db schema.
---
 .../cayenne/modeler/action/LoadDbSchemaAction.java  | 18 ++++++++++--------
 .../editor/dbimport/DatabaseSchemaLoader.java       | 21 +++++++++++++--------
 .../modeler/editor/dbimport/DbImportView.java       |  6 ++++++
 .../dbimport/ReverseEngineeringConfigPanel.java     |  2 +-
 4 files changed, 30 insertions(+), 17 deletions(-)

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 9ec270c..cb65691 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
@@ -19,6 +19,11 @@
 
 package org.apache.cayenne.modeler.action;
 
+import javax.swing.JOptionPane;
+import javax.swing.tree.TreePath;
+import java.awt.event.ActionEvent;
+import java.sql.SQLException;
+
 import org.apache.cayenne.dbsync.reverse.dbimport.ReverseEngineering;
 import org.apache.cayenne.modeler.Application;
 import org.apache.cayenne.modeler.dialog.db.DataSourceWizard;
@@ -30,16 +35,11 @@ import org.apache.cayenne.modeler.pref.DBConnectionInfo;
 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;
-
 import static org.apache.cayenne.modeler.pref.DBConnectionInfo.DB_ADAPTER_PROPERTY;
+import static org.apache.cayenne.modeler.pref.DBConnectionInfo.JDBC_DRIVER_PROPERTY;
+import static org.apache.cayenne.modeler.pref.DBConnectionInfo.PASSWORD_PROPERTY;
 import static org.apache.cayenne.modeler.pref.DBConnectionInfo.URL_PROPERTY;
 import static org.apache.cayenne.modeler.pref.DBConnectionInfo.USER_NAME_PROPERTY;
-import static org.apache.cayenne.modeler.pref.DBConnectionInfo.PASSWORD_PROPERTY;
-import static org.apache.cayenne.modeler.pref.DBConnectionInfo.JDBC_DRIVER_PROPERTY;
 
 /**
  * @since 4.1
@@ -91,7 +91,9 @@ public class LoadDbSchemaAction extends CayenneAction {
                     draggableTreePanel.getSourceTree().updateTableColumns(databaseReverseEngineering);
                 } else {
                     ReverseEngineering databaseReverseEngineering = new DatabaseSchemaLoader()
-                            .load(connectionInfo, getApplication().getClassLoadingService());
+                            .load(connectionInfo,
+                                    getApplication().getClassLoadingService(),
+                                    rootParent.getTableTypes());
                     draggableTreePanel.getSourceTree()
                             .setEnabled(true);
                     draggableTreePanel.getSourceTree()
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 b34d5e8..c904843 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,6 +19,12 @@
 
 package org.apache.cayenne.modeler.editor.dbimport;
 
+import javax.swing.tree.TreePath;
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.Collection;
+
 import org.apache.cayenne.dbsync.reverse.dbimport.Catalog;
 import org.apache.cayenne.dbsync.reverse.dbimport.IncludeColumn;
 import org.apache.cayenne.dbsync.reverse.dbimport.IncludeProcedure;
@@ -28,12 +34,6 @@ import org.apache.cayenne.dbsync.reverse.dbimport.Schema;
 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;
-import java.util.Collection;
-
 public class DatabaseSchemaLoader {
 
     private static final String INCLUDE_ALL_PATTERN = "%";
@@ -48,9 +48,14 @@ public class DatabaseSchemaLoader {
         databaseReverseEngineering = new ReverseEngineering();
     }
 
-    public ReverseEngineering load(DBConnectionInfo connectionInfo, ClassLoadingService loadingService) throws SQLException {
+    public ReverseEngineering load(DBConnectionInfo connectionInfo,
+                                   ClassLoadingService loadingService,
+                                   String[] tableTypesFromConfig) throws SQLException {
         try (Connection connection = connectionInfo.makeDataSource(loadingService).getConnection()) {
-            String[] types = {"TABLE", "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY", "LOCAL TEMPORARY", "ALIAS", "SYNONYM"};
+            String[] types = tableTypesFromConfig != null && tableTypesFromConfig.length != 0 ?
+                    tableTypesFromConfig :
+                    new String[]{"TABLE", "VIEW", "SYSTEM TABLE",
+                            "GLOBAL TEMPORARY", "LOCAL TEMPORARY", "ALIAS", "SYNONYM"};
             try (ResultSet rs = connection.getMetaData().getCatalogs()) {
                 String defaultCatalog = connection.getCatalog();
                 while (rs.next()) {
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 a07da72..ac51d65 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
@@ -284,4 +284,10 @@ public class DbImportView extends JPanel {
     public boolean isInitFromModel() {
         return initFromModel;
     }
+
+    public String[] getTableTypes() {
+        return configPanel
+                .getReverseEngineeringBySelectedMap()
+                .getTableTypes();
+    }
 }
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/ReverseEngineeringConfigPanel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/ReverseEngineeringConfigPanel.java
index e0fa225..c9ce342 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/ReverseEngineeringConfigPanel.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/ReverseEngineeringConfigPanel.java
@@ -102,7 +102,7 @@ public class ReverseEngineeringConfigPanel extends JPanel {
         stripFromTableNames.setText(reverseEngineering.getStripFromTableNames());
     }
 
-    private ReverseEngineering getReverseEngineeringBySelectedMap() {
+    ReverseEngineering getReverseEngineeringBySelectedMap() {
         DataMap dataMap = projectController.getCurrentDataMap();
         return projectController.getApplication().getMetaData().get(dataMap, ReverseEngineering.class);
     }