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

abulatski 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 587a53e  CAY-2591 Modeler: project becomes dirty after click on 
dbImport or cgen tab
587a53e is described below

commit 587a53ea6cfa260e55dca47c6114ecdcb777d08b
Author: Arseni Bulatski <ancars...@gmail.com>
AuthorDate: Mon Jul 8 11:24:57 2019 +0300

    CAY-2591 Modeler: project becomes dirty after click on dbImport or cgen tab
    
    (cherry picked from commit df3f1dbb7471e465edfde404fb5af8c8d6a4ff4b)
---
 RELEASE-NOTES.txt                                  |  1 +
 .../modeler/editor/dbimport/DbImportView.java      | 11 +++++-
 .../dbimport/ReverseEngineeringConfigPanel.java    | 41 ++++++++++++++++------
 3 files changed, 42 insertions(+), 11 deletions(-)

diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index ecdaba7..a71fbe4 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -21,6 +21,7 @@ CAY-2580 Cgen: Can't use custom templates for client mode
 CAY-2582 Double insert of manyToMany relationship mapped to Set
 CAY-2584 Crypto: can't use ColumnSelect with encrypted columns
 CAY-2586 Char can't be materialized to EnumType in some cases
+CAY-2591 Modeler: project becomes dirty after click on dbImport or cgen tab
 CAY-2594 DbImport: AutoAdapter resolving inside an import operation hangs up 
the op on Hana DB
 CAY-2595 ObjAttributes are not sorted in alphabetical ordering on save
 
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 f0fc44e..995816b 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
@@ -64,8 +64,11 @@ public class DbImportView extends JPanel {
 
     private ProjectController projectController;
 
+    private boolean initFromModel;
+
     public DbImportView(ProjectController projectController) {
         this.projectController = projectController;
+        this.initFromModel = false;
         initFormElements();
         buildForm();
         draggableTreePanel.getSourceTree().repaint();
@@ -183,7 +186,7 @@ public class DbImportView extends JPanel {
         ((ColorTreeRenderer) 
draggableTreePanel.getSourceTree().getCellRenderer()).
                 setReverseEngineeringTree(reverseEngineeringTree);
 
-        configPanel = new ReverseEngineeringConfigPanel(projectController);
+        configPanel = new ReverseEngineeringConfigPanel(projectController, 
this);
         configPanel.setLayout(new FlowLayout(FlowLayout.LEFT));
         configPanel.setVisible(false);
     }
@@ -192,6 +195,7 @@ public class DbImportView extends JPanel {
         DataMap map = projectController.getCurrentDataMap();
         treePanel.getReverseEngineeringTree().stopEditing();
         if (map != null) {
+            initFromModel = true;
             treeToolbar.unlockButtons();
             ReverseEngineering reverseEngineering = 
DbImportView.this.projectController.getApplication()
                     .getMetaData().get(map, ReverseEngineering.class);
@@ -210,6 +214,7 @@ public class DbImportView extends JPanel {
             draggableTreePanel.getMoveButton().setEnabled(false);
             draggableTreePanel.getMoveInvertButton().setEnabled(false);
         }
+        initFromModel = false;
     }
 
     public boolean isSkipRelationshipsLoading() {
@@ -268,4 +273,8 @@ public class DbImportView extends JPanel {
     public JButton getLoadDbSchemaButton() {
         return loadDbSchemaButton;
     }
+
+    public boolean isInitFromModel() {
+        return initFromModel;
+    }
 }
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 dc40cff..e148c0e 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
@@ -56,8 +56,11 @@ public class ReverseEngineeringConfigPanel extends JPanel {
 
     private ProjectController projectController;
 
-    ReverseEngineeringConfigPanel(ProjectController projectController) {
+    private DbImportView dbImportView;
+
+    ReverseEngineeringConfigPanel(ProjectController projectController, 
DbImportView dbImportView) {
         this.projectController = projectController;
+        this.dbImportView = dbImportView;
         initFormElements();
         initListeners();
         buildView();
@@ -120,7 +123,9 @@ public class ReverseEngineeringConfigPanel extends JPanel {
         meaningfulPk = new TextAdapter(meaningfulPkField) {
             protected void updateModel(String text) {
                 
getReverseEngineeringBySelectedMap().setMeaningfulPkTables(text);
-                projectController.setDirty(true);
+                if(!dbImportView.isInitFromModel()) {
+                    projectController.setDirty(true);
+                }
             }
         };
 
@@ -130,7 +135,9 @@ public class ReverseEngineeringConfigPanel extends JPanel {
         stripFromTableNames = new TextAdapter(stripFromTableNamesField) {
             protected void updateModel(String text) {
                 
getReverseEngineeringBySelectedMap().setStripFromTableNames(text);
-                projectController.setDirty(true);
+                if(!dbImportView.isInitFromModel()) {
+                    projectController.setDirty(true);
+                }
             }
         };
 
@@ -156,34 +163,48 @@ public class ReverseEngineeringConfigPanel extends JPanel 
{
     private void initListeners() {
         skipRelationshipsLoading.addActionListener(e -> {
             
getReverseEngineeringBySelectedMap().setSkipRelationshipsLoading(skipRelationshipsLoading.isSelected());
-            projectController.setDirty(true);
+            if(!dbImportView.isInitFromModel()) {
+                projectController.setDirty(true);
+            }
         });
         skipPrimaryKeyLoading.addActionListener(e -> {
             
getReverseEngineeringBySelectedMap().setSkipPrimaryKeyLoading(skipPrimaryKeyLoading.isSelected());
-            projectController.setDirty(true);
+            if(!dbImportView.isInitFromModel()) {
+                projectController.setDirty(true);
+            }
         });
         forceDataMapCatalog.addActionListener(e -> {
             
getReverseEngineeringBySelectedMap().setForceDataMapCatalog(forceDataMapCatalog.isSelected());
-            projectController.setDirty(true);
+            if(!dbImportView.isInitFromModel()) {
+                projectController.setDirty(true);
+            }
         });
         forceDataMapSchema.addActionListener(e -> {
             
getReverseEngineeringBySelectedMap().setForceDataMapSchema(forceDataMapSchema.isSelected());
-            projectController.setDirty(true);
+            if(!dbImportView.isInitFromModel()) {
+                projectController.setDirty(true);
+            }
         });
         usePrimitives.addActionListener(e -> {
             
getReverseEngineeringBySelectedMap().setUsePrimitives(usePrimitives.isSelected());
-            projectController.setDirty(true);
+            if(!dbImportView.isInitFromModel()) {
+                projectController.setDirty(true);
+            }
         });
         useJava7Types.addActionListener(e -> {
             
getReverseEngineeringBySelectedMap().setUseJava7Types(useJava7Types.isSelected());
-            projectController.setDirty(true);
+            if(!dbImportView.isInitFromModel()) {
+                projectController.setDirty(true);
+            }
         });
         strategyCombo.addActionListener(e -> {
             String strategy = (String) 
ReverseEngineeringConfigPanel.this.getStrategyCombo().getSelectedItem();
             checkStrategy(strategy);
             getReverseEngineeringBySelectedMap().setNamingStrategy(strategy);
             
NameGeneratorPreferences.getInstance().addToLastUsedStrategies(strategy);
-            projectController.setDirty(true);
+            if(!dbImportView.isInitFromModel()) {
+                projectController.setDirty(true);
+            }
         });
     }
 

Reply via email to