You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2026/04/25 22:35:46 UTC

(cayenne) 02/02: Modeler cleanup

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

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

commit 5f0aa7c7367d8178db8b558664e48f5cdf93edca
Author: Andrus Adamchik <an...@objectstyle.com>
AuthorDate: Sat Apr 25 15:36:50 2026 -0400

    Modeler cleanup
---
 ...ImportAction.java => DbSyncDbImportAction.java} | 25 ++++++++----
 .../modeler/dbimport/ModelerDbImportModule.java    | 10 +++--
 .../modeler/dbimport/ModelerDbLoaderContext.java   | 23 +++--------
 .../modeler/service/action/GlobalActions.java      |  2 -
 .../DataDomainGeneratorsViewController.java        |  2 +-
 .../dbimport/DataDomainDbImportController.java     | 11 +++---
 .../editor/datamap/dbimport/DbImportView.java      | 41 ++------------------
 .../datamap/dbimport/action/DbImportActions.java   |  6 +++
 .../dbimport/action/ModelerDbImportAction.java}    | 44 +++++++---------------
 9 files changed, 59 insertions(+), 105 deletions(-)

diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dbimport/ModelerDbImportAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dbimport/DbSyncDbImportAction.java
similarity index 91%
rename from modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dbimport/ModelerDbImportAction.java
rename to modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dbimport/DbSyncDbImportAction.java
index 700fbba1e..f242ffe7b 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dbimport/ModelerDbImportAction.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dbimport/DbSyncDbImportAction.java
@@ -42,19 +42,17 @@ import java.awt.event.ComponentEvent;
 import java.util.Collection;
 import java.util.List;
 
-public class ModelerDbImportAction extends DefaultDbImportAction {
+public class DbSyncDbImportAction extends DefaultDbImportAction {
 
-    @Inject
-    private DataMap targetMap;
+    private final DataMap targetMap;
+    private final DbImportController dbImportController;
 
     private DataMap sourceDataMap;
     private DbImportConfiguration config;
-
     private DbLoadResultDialog resultDialog;
 
-    private final DbImportController dbImportController;
-
-    public ModelerDbImportAction(
+    public DbSyncDbImportAction(
+            @Inject DataMap targetMap,
             @Inject Application application,
             @Inject Logger logger,
             @Inject ProjectSaver projectSaver,
@@ -64,7 +62,18 @@ public class ModelerDbImportAction extends DefaultDbImportAction {
             @Inject MergerTokenFactoryProvider mergerTokenFactoryProvider,
             @Inject DataChannelMetaData metaData,
             @Inject DataChannelDescriptorLoader dataChannelDescriptorLoader) {
-        super(logger, projectSaver, dataSourceFactory, adapterFactory, mapLoader, mergerTokenFactoryProvider, dataChannelDescriptorLoader, metaData);
+
+        super(
+                logger,
+                projectSaver,
+                dataSourceFactory,
+                adapterFactory,
+                mapLoader,
+                mergerTokenFactoryProvider,
+                dataChannelDescriptorLoader,
+                metaData);
+
+        this.targetMap = targetMap;
         this.dbImportController = application.getFrameController().getDbImportController();
     }
 
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dbimport/ModelerDbImportModule.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dbimport/ModelerDbImportModule.java
index 6b48388cb..99c2b2cd8 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dbimport/ModelerDbImportModule.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dbimport/ModelerDbImportModule.java
@@ -22,6 +22,8 @@ package org.apache.cayenne.modeler.dbimport;
 import org.apache.cayenne.di.Binder;
 import org.apache.cayenne.di.Module;
 import org.apache.cayenne.map.DataMap;
+import org.apache.cayenne.modeler.Application;
+import org.apache.cayenne.modeler.service.action.GlobalActions;
 import org.apache.cayenne.modeler.ui.project.ProjectController;
 import org.apache.cayenne.project.ProjectSaver;
 import org.apache.cayenne.dbsync.reverse.dbimport.DbImportAction;
@@ -30,15 +32,17 @@ public class ModelerDbImportModule implements Module {
 
     private final ModelerDbLoaderContext loaderContext;
 
-    public ModelerDbImportModule(ModelerDbLoaderContext dbLoaderHelper) {
-        this.loaderContext = dbLoaderHelper;
+    public ModelerDbImportModule(ModelerDbLoaderContext loaderContext) {
+        this.loaderContext = loaderContext;
     }
 
     @Override
     public void configure(Binder binder) {
+        binder.bind(Application.class).toInstance(loaderContext.getApplication());
         binder.bind(ProjectController.class).toInstance(loaderContext.getProjectController());
+        binder.bind(GlobalActions.class).toInstance(loaderContext.getApplication().getActionManager());
         binder.bind(ProjectSaver.class).to(DbImportProjectSaver.class);
-        binder.bind(DbImportAction.class).to(ModelerDbImportAction.class);
+        binder.bind(DbImportAction.class).to(DbSyncDbImportAction.class);
         binder.bind(DataMap.class).toInstance(loaderContext.getDataMap());
     }
 }
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dbimport/ModelerDbLoaderContext.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dbimport/ModelerDbLoaderContext.java
index 715999d53..52a212405 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dbimport/ModelerDbLoaderContext.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dbimport/ModelerDbLoaderContext.java
@@ -28,7 +28,6 @@ import org.apache.cayenne.modeler.Application;
 import org.apache.cayenne.modeler.pref.DBConnectionInfo;
 import org.apache.cayenne.modeler.service.classloader.ModelerClassLoader;
 import org.apache.cayenne.modeler.ui.project.ProjectController;
-import org.apache.cayenne.modeler.ui.project.editor.datamap.dbimport.DbImportView;
 import org.apache.cayenne.util.Util;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -65,6 +64,10 @@ public class ModelerDbLoaderContext {
         return projectController;
     }
 
+    public Application getApplication() {
+        return application;
+    }
+
     void setConfig(DbImportConfiguration config) {
         this.config = config;
     }
@@ -97,30 +100,14 @@ public class ModelerDbLoaderContext {
         this.loadStatusNote = loadStatusNote;
     }
 
-    private void fillReverseEngineeringFromView(ReverseEngineering reverseEngineering, DbImportView view) {
-        reverseEngineering.setUseJava7Types(view.isUseJava7Typed());
-        reverseEngineering.setForceDataMapCatalog(view.isForceDataMapCatalog());
-        reverseEngineering.setForceDataMapSchema(view.isForceDataMapSchema());
-        reverseEngineering.setSkipRelationshipsLoading(view.isSkipRelationshipsLoading());
-        reverseEngineering.setSkipPrimaryKeyLoading(view.isSkipPrimaryKeyLoading());
-        reverseEngineering.setMeaningfulPkTables(view.getMeaningfulPk());
-        reverseEngineering.setNamingStrategy(view.getNamingStrategy());
-        reverseEngineering.setStripFromTableNames(view.getStripFromTableNames());
-    }
-
-    public boolean buildConfig(DBConnectionInfo connectionInfo, DbImportView view, boolean headless) {
+    public boolean buildConfig(DBConnectionInfo connectionInfo) {
         if (connectionInfo == null) {
             return false;
         }
-        // Build reverse engineering from metadata and dialog values
         ReverseEngineering metaReverseEngineering = application.getMetaData().get(dataMap, ReverseEngineering.class);
         if(metaReverseEngineering == null) {
             return false;
         }
-        // skip this step for batch run from domain tab
-        if(!headless){
-            fillReverseEngineeringFromView(metaReverseEngineering, view);
-        }
         // Create copy of metaReverseEngineering
         ReverseEngineering reverseEngineering = new ReverseEngineering(metaReverseEngineering);
 
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/service/action/GlobalActions.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/service/action/GlobalActions.java
index e646ecdb1..7cb5c6e81 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/service/action/GlobalActions.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/service/action/GlobalActions.java
@@ -83,7 +83,6 @@ public class GlobalActions {
                 ImportDataMapAction.class.getName(),
                 CreateDataMapAction.class.getName(),
                 CreateNodeAction.class.getName(),
-                ReverseEngineeringAction.class.getName(),
                 ImportEOModelAction.class.getName(),
                 GenerateCodeAction.class.getName(),
                 GenerateDBAction.class.getName(),
@@ -184,7 +183,6 @@ public class GlobalActions {
         registerAction(new DbEntityCounterpartAction(application));
         registerAction(new ObjEntityCounterpartAction(application));
         registerAction(new ObjEntityToSuperEntityAction(application));
-        registerAction(new ReverseEngineeringAction(application));
         registerAction(new InferRelationshipsAction(application));
         registerAction(new ImportEOModelAction(application));
         registerAction(new GenerateDBAction(application));
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datadomain/DataDomainGeneratorsViewController.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datadomain/DataDomainGeneratorsViewController.java
index ae09ee21a..180423073 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datadomain/DataDomainGeneratorsViewController.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datadomain/DataDomainGeneratorsViewController.java
@@ -39,7 +39,7 @@ public abstract class DataDomainGeneratorsViewController<T> implements DataMapLi
 
     protected final static Logger LOGGER = LoggerFactory.getLogger(DataDomainGeneratorsViewController.class);
 
-    private final ProjectController projectController;
+    protected final ProjectController projectController;
     private final ConcurrentMap<DataMap, DataDomainGeneratorsPanel> generatorsPanels;
     private final Set<DataMap> selectedDataMaps;
     private final Class<T> type;
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datadomain/dbimport/DataDomainDbImportController.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datadomain/dbimport/DataDomainDbImportController.java
index 1a3203703..9aec6c5cd 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datadomain/dbimport/DataDomainDbImportController.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datadomain/dbimport/DataDomainDbImportController.java
@@ -20,19 +20,21 @@ package org.apache.cayenne.modeler.ui.project.editor.datadomain.dbimport;
 
 import org.apache.cayenne.dbsync.reverse.dbimport.ReverseEngineering;
 import org.apache.cayenne.map.DataMap;
-import org.apache.cayenne.modeler.Application;
 import org.apache.cayenne.modeler.event.display.DataMapDisplayEvent;
-import org.apache.cayenne.modeler.ui.action.ReverseEngineeringAction;
 import org.apache.cayenne.modeler.ui.project.ProjectController;
 import org.apache.cayenne.modeler.ui.project.editor.datadomain.DataDomainGeneratorsViewController;
+import org.apache.cayenne.modeler.ui.project.editor.datamap.dbimport.action.ModelerDbImportAction;
 
 import java.util.Set;
 
 public class DataDomainDbImportController extends DataDomainGeneratorsViewController<ReverseEngineering> {
 
+    private final ModelerDbImportAction dbImportAction;
+
     public DataDomainDbImportController(ProjectController projectController) {
         super(projectController, ReverseEngineering.class, false);
         this.view = new DataDomainDbImportView(projectController, this);
+        this.dbImportAction = new ModelerDbImportAction(projectController.getApplication());
     }
 
     @Override
@@ -41,9 +43,8 @@ public class DataDomainDbImportController extends DataDomainGeneratorsViewContro
             view.showEmptyMessage();
             return;
         }
-        Application.getInstance().getFrameController().getDbImportController().setGlobalImport(true);
-        ReverseEngineeringAction reverseEngineeringAction = Application.getInstance().getActionManager().getAction(ReverseEngineeringAction.class);
-        reverseEngineeringAction.performAction(dataMaps);
+        projectController.getApplication().getFrameController().getDbImportController().setGlobalImport(true);
+        dbImportAction.performAction(dataMaps);
     }
 
     @Override
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/dbimport/DbImportView.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/dbimport/DbImportView.java
index 1bf5fa1aa..7d8a5efa6 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/dbimport/DbImportView.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/dbimport/DbImportView.java
@@ -22,10 +22,10 @@ import com.jgoodies.forms.builder.DefaultFormBuilder;
 import com.jgoodies.forms.layout.FormLayout;
 import org.apache.cayenne.dbsync.reverse.dbimport.ReverseEngineering;
 import org.apache.cayenne.map.DataMap;
-import org.apache.cayenne.modeler.ui.action.ReverseEngineeringAction;
 import org.apache.cayenne.modeler.ui.project.ProjectController;
 import org.apache.cayenne.modeler.ui.project.editor.datamap.dbimport.action.DbImportActions;
 import org.apache.cayenne.modeler.ui.project.editor.datamap.dbimport.action.LoadDbSchemaAction;
+import org.apache.cayenne.modeler.ui.project.editor.datamap.dbimport.action.ModelerDbImportAction;
 import org.apache.cayenne.modeler.ui.project.editor.datamap.dbimport.tree.ColorTreeRenderer;
 import org.apache.cayenne.modeler.ui.project.editor.datamap.dbimport.tree.DbImportTreeNode;
 import org.apache.cayenne.modeler.ui.project.editor.datamap.dbimport.tree.TransferableNode;
@@ -118,11 +118,9 @@ public class DbImportView extends JPanel {
         loadDbSchemaButton.setText("Refresh DB Schema");
         treeToolbar.add(loadDbSchemaButton);
 
-        ReverseEngineeringAction reverseEngineeringAction = controller.getApplication().getActionManager().
-                getAction(ReverseEngineeringAction.class);
-        reverseEngineeringAction.setView(this);
+        ModelerDbImportAction dbImportAction = actions.getReverseEngineeringAction();
         ModelerAbstractAction.CayenneToolbarButton reverseEngineeringButton = (ModelerAbstractAction.CayenneToolbarButton)
-                reverseEngineeringAction.buildButton(0);
+                dbImportAction.buildButton(0);
         reverseEngineeringButton.setShowingText(true);
         reverseEngineeringButton.setText("Run Import");
         JPanel reverseEngineeringButtonPanel = new JPanel();
@@ -215,39 +213,6 @@ public class DbImportView extends JPanel {
         initFromModel = false;
     }
 
-    public boolean isSkipRelationshipsLoading() {
-        return configPanel.getSkipRelationshipsLoading().isSelected();
-    }
-
-    public boolean isSkipPrimaryKeyLoading() {
-        return configPanel.getSkipPrimaryKeyLoading().isSelected();
-    }
-
-    public boolean isForceDataMapCatalog() {
-        return configPanel.getForceDataMapCatalog().isSelected();
-    }
-
-    public boolean isForceDataMapSchema() {
-        return configPanel.getForceDataMapSchema().isSelected();
-    }
-
-    public boolean isUseJava7Typed() {
-        return configPanel.getUseJava7Types().isSelected();
-    }
-
-    public String getMeaningfulPk() {
-        return "".equals(configPanel.getMeaningfulPk().getText())
-                ? null : configPanel.getMeaningfulPk().getText();
-    }
-
-    public String getNamingStrategy() {
-        return (String) configPanel.getStrategyCombo().getSelectedItem();
-    }
-
-    public String getStripFromTableNames() {
-        return configPanel.getStripFromTableNames().getText();
-    }
-
     public JProgressBar getLoadDbSchemaProgress() {
         return loadDbSchemaProgress;
     }
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/dbimport/action/DbImportActions.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/dbimport/action/DbImportActions.java
index 775b65819..b00f92f31 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/dbimport/action/DbImportActions.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/dbimport/action/DbImportActions.java
@@ -58,6 +58,7 @@ public class DbImportActions {
     private final MoveImportNodeAction moveImportNode;
     private final MoveInvertNodeAction moveInvertNode;
     private final DragAndDropNodeAction dragAndDropNode;
+    private final ModelerDbImportAction reverseEngineering;
 
     private final Map<Class<?>, TreeManipulationAction> actionsByNodeType;
 
@@ -81,6 +82,7 @@ public class DbImportActions {
         this.moveImportNode = enabled(new MoveImportNodeAction(application, view, sourceTree, targetTree));
         this.moveInvertNode = enabled(new MoveInvertNodeAction(application, view, sourceTree, targetTree));
         this.dragAndDropNode = enabled(new DragAndDropNodeAction(application, targetTree));
+        this.reverseEngineering = enabled(new ModelerDbImportAction(application));
 
         this.actionsByNodeType = new HashMap<>();
         actionsByNodeType.put(Catalog.class, addCatalog);
@@ -165,4 +167,8 @@ public class DbImportActions {
     public DragAndDropNodeAction getDragAndDropNodeAction() {
         return dragAndDropNode;
     }
+
+    public ModelerDbImportAction getReverseEngineeringAction() {
+        return reverseEngineering;
+    }
 }
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/ReverseEngineeringAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/dbimport/action/ModelerDbImportAction.java
similarity index 88%
rename from modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/ReverseEngineeringAction.java
rename to modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/dbimport/action/ModelerDbImportAction.java
index 785aa4c81..b38dca5f4 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/ReverseEngineeringAction.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/dbimport/action/ModelerDbImportAction.java
@@ -17,7 +17,7 @@
  *  under the License.
  ****************************************************************/
 
-package org.apache.cayenne.modeler.ui.action;
+package org.apache.cayenne.modeler.ui.project.editor.datamap.dbimport.action;
 
 import org.apache.cayenne.CayenneRuntimeException;
 import org.apache.cayenne.dbsync.DbSyncModule;
@@ -32,9 +32,9 @@ import org.apache.cayenne.modeler.dbimport.ModelerDbImportModule;
 import org.apache.cayenne.modeler.dbimport.ModelerDbLoaderContext;
 import org.apache.cayenne.modeler.pref.DBConnectionInfo;
 import org.apache.cayenne.modeler.swing.ProgressDialog;
+import org.apache.cayenne.modeler.ui.action.DBConnectionAwareAction;
 import org.apache.cayenne.modeler.ui.dbloadresult.DbLoadResultDialog;
 import org.apache.cayenne.modeler.ui.project.editor.datamap.dbimport.DbImportController;
-import org.apache.cayenne.modeler.ui.project.editor.datamap.dbimport.DbImportView;
 import org.apache.cayenne.modeler.util.ProjectUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -42,26 +42,21 @@ import org.slf4j.LoggerFactory;
 import javax.swing.*;
 import java.awt.event.ActionEvent;
 import java.sql.SQLException;
-import java.util.HashSet;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicInteger;
 
 /**
  * Action that imports database structure into a DataMap.
  */
-public class ReverseEngineeringAction extends DBConnectionAwareAction {
+public class ModelerDbImportAction extends DBConnectionAwareAction {
 
-    private static final Logger LOGGER = LoggerFactory.getLogger(ReverseEngineeringAction.class);
+    private static final Logger LOGGER = LoggerFactory.getLogger(ModelerDbImportAction.class);
 
     private static final String ACTION_NAME = "Reengineer Database Schema";
     private static final String ICON_NAME = "icon-dbi-runImport.png";
     private static final String DIALOG_TITLE = "Reengineer DB Schema: Connect to Database";
 
-    private DbImportView view;
-    private AtomicInteger dataMapCount;
-    protected Set<DataMap> dataMaps;
-
-    public ReverseEngineeringAction(Application application) {
+    public ModelerDbImportAction(Application application) {
         super(ACTION_NAME, application);
     }
 
@@ -71,13 +66,11 @@ public class ReverseEngineeringAction extends DBConnectionAwareAction {
     }
 
     public void performAction(Set<DataMap> dataMapSet) {
-        resetParams();
-        dataMaps.addAll(dataMapSet);
-        dataMapCount.set(dataMaps.size());
-        dataMapSet.forEach(this::startImport);
+        AtomicInteger dataMapCount = new AtomicInteger(dataMapSet.size());
+        dataMapSet.forEach(dm -> startImport(dm, dataMapCount));
     }
 
-    private void startImport(DataMap dataMap) {
+    private void startImport(DataMap dataMap, AtomicInteger dataMapCount) {
         ModelerDbLoaderContext context = new ModelerDbLoaderContext(
                 getProjectController(),
                 application,
@@ -99,7 +92,7 @@ public class ReverseEngineeringAction extends DBConnectionAwareAction {
             return;
         }
 
-        if (!context.buildConfig(connectionInfo, view, true)) {
+        if (!context.buildConfig(connectionInfo)) {
             try {
                 context.getConnection().close();
             } catch (SQLException ignored) {
@@ -114,6 +107,9 @@ public class ReverseEngineeringAction extends DBConnectionAwareAction {
             application.getUndoManager().discardAllEdits();
             try {
                 context.getConnection().close();
+
+                // TODO: this whole thing with "dataMapCount" seems like a code smell. Loader thread should simply
+                //  return when it does, and then the dialog should be shown
                 if (dataMapCount.decrementAndGet() <= 0 && !context.isInterrupted()) {
                     if (!dbLoadResultDialog.isVisible() && !dbLoadResultDialog.getTableForMap().isEmpty()) {
                         dbImportController.showDialog();
@@ -129,18 +125,10 @@ public class ReverseEngineeringAction extends DBConnectionAwareAction {
      */
     @Override
     public void performAction(ActionEvent event) {
-        resetParams();
-        dataMaps.add(application.getFrameController().getProjectController().getSelectedDataMap());
-        dataMapCount.set(dataMaps.size());
-        startImport(application.getFrameController().getProjectController().getSelectedDataMap());
-    }
-
-    private void resetParams() {
-        dataMapCount = new AtomicInteger();
-        this.dataMaps = new HashSet<>();
+        startImport(application.getFrameController().getProjectController().getSelectedDataMap(), new AtomicInteger(1));
     }
 
-    private void runLoaderInThread(final ModelerDbLoaderContext context, final Runnable callback) {
+    private void runLoaderInThread(ModelerDbLoaderContext context, Runnable callback) {
         Thread th = new Thread(() -> {
             new DbImportTask(application.getFrameController().getView(), "Reengineering DB", context).startAndWait();
             SwingUtilities.invokeLater(callback);
@@ -148,10 +136,6 @@ public class ReverseEngineeringAction extends DBConnectionAwareAction {
         th.start();
     }
 
-    public void setView(DbImportView view) {
-        this.view = view;
-    }
-
     static class DbImportTask {
 
         private static final int DEFAULT_MS_TO_DECIDE_TO_POPUP = 500;