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

ntimofeev pushed a commit to branch STABLE-4.1
in repository https://gitbox.apache.org/repos/asf/cayenne.git


The following commit(s) were added to refs/heads/STABLE-4.1 by this push:
     new 3c1883f  CAY-2591 Modeler: project becomes dirty after click on 
dbImport or cgen tab   - fix case without any dbimport config
3c1883f is described below

commit 3c1883f58ac0f66fe133cef8b4d944e569751bb4
Author: Nikita Timofeev <stari...@gmail.com>
AuthorDate: Fri Sep 20 17:51:50 2019 +0300

    CAY-2591 Modeler: project becomes dirty after click on dbImport or cgen tab
      - fix case without any dbimport config
---
 .../editor/cgen/CodeGeneratorController.java       | 12 +++++----
 .../modeler/editor/dbimport/DbImportView.java      | 30 ++++++++++++----------
 .../dbimport/ReverseEngineeringConfigPanel.java    |  7 ++++-
 3 files changed, 29 insertions(+), 20 deletions(-)

diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CodeGeneratorController.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CodeGeneratorController.java
index 9a81cb6..5b792f3 100644
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CodeGeneratorController.java
+++ 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CodeGeneratorController.java
@@ -74,11 +74,13 @@ public class CodeGeneratorController extends 
CodeGeneratorControllerBase impleme
         super.startup(dataMap);
         classesSelectedAction();
         CgenConfiguration cgenConfiguration = createConfiguration();
-        GeneratorController modeController = 
prevGeneratorController.get(dataMap) != null ?
-                prevGeneratorController.get(dataMap) : 
isDefaultConfig(cgenConfiguration) ?
-                cgenConfiguration.isClient() ? 
generatorSelector.getClientGeneratorController() :
-                        generatorSelector.getStandartController() :
-                generatorSelector.getCustomModeController();
+        GeneratorController modeController = 
prevGeneratorController.get(dataMap) != null
+                ? prevGeneratorController.get(dataMap)
+                : isDefaultConfig(cgenConfiguration)
+                    ? cgenConfiguration.isClient()
+                        ? generatorSelector.getClientGeneratorController()
+                        : generatorSelector.getStandartController()
+                    : generatorSelector.getCustomModeController();
 
         prevGeneratorController.put(dataMap, modeController);
         generatorSelector.setSelectedController(modeController);
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 1d4ca2f..289c83a 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
@@ -199,27 +199,29 @@ public class DbImportView extends JPanel {
             treeToolbar.unlockButtons();
             ReverseEngineering reverseEngineering = 
DbImportView.this.projectController.getApplication()
                     .getMetaData().get(map, ReverseEngineering.class);
-            if (reverseEngineering == null) {
-                reverseEngineering = new ReverseEngineering();
-                
DbImportView.this.projectController.getApplication().getMetaData().add(map, 
reverseEngineering);
-                projectController.setDirty(true);
+            if (reverseEngineering != null) {
+                configPanel.fillCheckboxes(reverseEngineering);
+                configPanel.initializeTextFields(reverseEngineering);
+                configPanel.initStrategy(reverseEngineering);
+                String[] tableTypes = reverseEngineering.getTableTypes();
+                if(tableTypes.length != 0) {
+                    configPanel.getTableTypes().setText(String.join(",", 
tableTypes));
+                } else {
+                    configPanel.getTableTypes().setText("TABLE, VIEW");
+                    configPanel.getTableTypes().updateModel();
+                }
+            } else {
+                // default values
+                configPanel.getUsePrimitives().setSelected(true);
+                configPanel.getTableTypes().setText("TABLE, VIEW");
+                configPanel.getTableTypes().updateModel();
             }
-            configPanel.fillCheckboxes(reverseEngineering);
-            configPanel.initializeTextFields(reverseEngineering);
-            configPanel.initStrategy(reverseEngineering);
             treePanel.updateTree();
             DbImportTreeNode root = 
draggableTreePanel.getSourceTree().getRootNode();
             root.removeAllChildren();
             
draggableTreePanel.updateTree(projectController.getCurrentDataMap());
             draggableTreePanel.getMoveButton().setEnabled(false);
             draggableTreePanel.getMoveInvertButton().setEnabled(false);
-            String[] tableTypes = reverseEngineering.getTableTypes();
-            if(tableTypes.length != 0) {
-                configPanel.getTableTypes().setText(String.join(",", 
tableTypes));
-            } else {
-                configPanel.getTableTypes().setText("TABLE, VIEW");
-                configPanel.getTableTypes().updateModel();
-            }
         }
         initFromModel = false;
     }
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 3950729..a007216 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
@@ -104,7 +104,12 @@ public class ReverseEngineeringConfigPanel extends JPanel {
 
     ReverseEngineering getReverseEngineeringBySelectedMap() {
         DataMap dataMap = projectController.getCurrentDataMap();
-        return projectController.getApplication().getMetaData().get(dataMap, 
ReverseEngineering.class);
+        ReverseEngineering reverseEngineering = 
projectController.getApplication().getMetaData().get(dataMap, 
ReverseEngineering.class);
+        if (reverseEngineering == null) {
+            reverseEngineering = new ReverseEngineering();
+            projectController.getApplication().getMetaData().add(dataMap, 
reverseEngineering);
+        }
+        return reverseEngineering;
     }
 
     void initStrategy(ReverseEngineering reverseEngineering) {

Reply via email to