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

ntimofeev 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 2416fc8  CAY-2709 Modeler: Cgen fails to generate code for a new 
unsaved project with all settings set to default
2416fc8 is described below

commit 2416fc81cedae2e8fed947c48af574ede7b9b0aa
Author: Nikita Timofeev <[email protected]>
AuthorDate: Mon Apr 26 11:14:43 2021 +0300

    CAY-2709 Modeler: Cgen fails to generate code for a new unsaved project 
with all settings set to default
---
 .../org/apache/cayenne/gen/CgenConfiguration.java  |  8 ++--
 .../modeler/editor/cgen/CustomModePanel.java       | 48 ++++++++--------------
 .../editor/cgen/GeneratorControllerPanel.java      | 22 ++++++----
 3 files changed, 33 insertions(+), 45 deletions(-)

diff --git 
a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/CgenConfiguration.java 
b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/CgenConfiguration.java
index 9aab326..06cd354 100644
--- a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/CgenConfiguration.java
+++ b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/CgenConfiguration.java
@@ -359,8 +359,8 @@ public class CgenConfiguration implements Serializable, 
XMLSerializable {
     private String getExcludeEntites() {
         Collection<String> excludeEntities = dataMap.getObjEntities()
                 .stream()
-                .filter(entity -> !entityArtifacts.contains(entity.getName()))
                 .map(ObjEntity::getName)
+                .filter(name -> !entityArtifacts.contains(name))
                 .collect(Collectors.toList());
         return String.join(",", excludeEntities);
     }
@@ -372,8 +372,8 @@ public class CgenConfiguration implements Serializable, 
XMLSerializable {
     private String getExcludeEmbeddables() {
         Collection<String> excludeEmbeddable = dataMap.getEmbeddables()
                 .stream()
-                .filter(embeddable -> 
!embeddableArtifacts.contains(embeddable.getClassName()))
                 .map(Embeddable::getClassName)
+                .filter(className -> !embeddableArtifacts.contains(className))
                 .collect(Collectors.toList());
         return String.join(",", excludeEmbeddable);
     }
@@ -381,16 +381,16 @@ public class CgenConfiguration implements Serializable, 
XMLSerializable {
        public void resolveExcludeEntities() {
                entityArtifacts = dataMap.getObjEntities()
                                .stream()
-                               .filter(entity -> 
!excludeEntityArtifacts.contains(entity.getName()))
                                .map(ObjEntity::getName)
+                               .filter(name -> 
!excludeEntityArtifacts.contains(name))
                                .collect(Collectors.toSet());
        }
 
        public void resolveExcludeEmbeddables() {
        embeddableArtifacts = dataMap.getEmbeddables()
                                .stream()
-                               .filter(embeddable -> 
!excludeEmbeddableArtifacts.contains(embeddable.getClassName()))
                                .map(Embeddable::getClassName)
+                               .filter(className -> 
!excludeEmbeddableArtifacts.contains(className))
                                .collect(Collectors.toSet());
        }
 
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CustomModePanel.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CustomModePanel.java
index 8773561..8b44b89 100644
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CustomModePanel.java
+++ 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CustomModePanel.java
@@ -66,12 +66,10 @@ public class CustomModePanel extends 
GeneratorControllerPanel {
         this.superclassTemplate = new ComboBoxAdapter<String>(superclassField) 
{
             @Override
             protected void updateModel(String item) throws ValidationException 
{
-                CgenConfiguration cgenConfiguration = getCgenByDataMap();
+                CgenConfiguration cgenConfiguration = getCgenConfig();
                 
cgenConfiguration.setSuperTemplate(Application.getInstance().getCodeTemplateManager().getTemplatePath(item,
                         
cgenConfiguration.getDataMap().getConfigurationSource()));
-                if(!codeGeneratorControllerBase.isInitFromModel()) {
-                    projectController.setDirty(true);
-                }
+                checkConfigDirty();
             }
         };
 
@@ -79,12 +77,10 @@ public class CustomModePanel extends 
GeneratorControllerPanel {
         this.subclassTemplate = new ComboBoxAdapter<String>(subclassField) {
             @Override
             protected void updateModel(String item) throws ValidationException 
{
-                CgenConfiguration cgenConfiguration = getCgenByDataMap();
+                CgenConfiguration cgenConfiguration = getCgenConfig();
                 
cgenConfiguration.setTemplate(Application.getInstance().getCodeTemplateManager().getTemplatePath(item,
                         
cgenConfiguration.getDataMap().getConfigurationSource()));
-                if(!codeGeneratorControllerBase.isInitFromModel()) {
-                    projectController.setDirty(true);
-                }
+                checkConfigDirty();
             }
         };
         
@@ -92,12 +88,10 @@ public class CustomModePanel extends 
GeneratorControllerPanel {
         this.embeddableTemplate = new ComboBoxAdapter<String>(embeddableField) 
{
                @Override
                protected void updateModel(String item) throws 
ValidationException {
-                       CgenConfiguration cgenConfiguration = 
getCgenByDataMap();
+                       CgenConfiguration cgenConfiguration = getCgenConfig();
                        
cgenConfiguration.setEmbeddableTemplate(Application.getInstance().getCodeTemplateManager().getTemplatePath(item,
                                        
cgenConfiguration.getDataMap().getConfigurationSource()));
-                       if(!codeGeneratorControllerBase.isInitFromModel()) {
-                               projectController.setDirty(true);
-                       }
+                checkConfigDirty();
                }
         };
         
@@ -105,12 +99,10 @@ public class CustomModePanel extends 
GeneratorControllerPanel {
         this.embeddableSuperTemplate = new 
ComboBoxAdapter<String>(embeddableSuperField) {
                @Override
                protected void updateModel(String item) throws 
ValidationException {
-                       CgenConfiguration cgenConfiguration = 
getCgenByDataMap();
+                       CgenConfiguration cgenConfiguration = getCgenConfig();
                        
cgenConfiguration.setEmbeddableSuperTemplate(Application.getInstance().getCodeTemplateManager().getTemplatePath(item,
                                        
cgenConfiguration.getDataMap().getConfigurationSource()));
-                       if(!codeGeneratorControllerBase.isInitFromModel()) {
-                               projectController.setDirty(true);
-                       }
+                checkConfigDirty();
                }
         };
         
@@ -118,12 +110,10 @@ public class CustomModePanel extends 
GeneratorControllerPanel {
         this.queryTemplate = new ComboBoxAdapter<String>(queryField) {
                @Override
                protected void updateModel(String item) throws 
ValidationException {
-                       CgenConfiguration cgenConfiguration = 
getCgenByDataMap();
+                       CgenConfiguration cgenConfiguration = getCgenConfig();
                        
cgenConfiguration.setQueryTemplate(Application.getInstance().getCodeTemplateManager().getTemplatePath(item,
                                        
cgenConfiguration.getDataMap().getConfigurationSource()));
-                       if(!codeGeneratorControllerBase.isInitFromModel()) {
-                               projectController.setDirty(true);
-                       }
+                checkConfigDirty();
                }
         };
         
@@ -131,12 +121,10 @@ public class CustomModePanel extends 
GeneratorControllerPanel {
         this.querySuperTemplate = new ComboBoxAdapter<String>(querySuperField) 
{
                @Override
                protected void updateModel(String item) throws 
ValidationException {
-                       CgenConfiguration cgenConfiguration = 
getCgenByDataMap();
+                       CgenConfiguration cgenConfiguration = getCgenConfig();
                        
cgenConfiguration.setQuerySuperTemplate(Application.getInstance().getCodeTemplateManager().getTemplatePath(item,
                                        
cgenConfiguration.getDataMap().getConfigurationSource()));
-                       if(!codeGeneratorControllerBase.isInitFromModel()) {
-                               projectController.setDirty(true);
-                       }
+                checkConfigDirty();
                }
         };
 
@@ -147,10 +135,8 @@ public class CustomModePanel extends 
GeneratorControllerPanel {
         JTextField outputPatternField = new JTextField();
         this.outputPattern = new TextAdapter(outputPatternField) {
             protected void updateModel(String text) {
-                getCgenByDataMap().setOutputPattern(text);
-                if(!codeGeneratorControllerBase.isInitFromModel()) {
-                    projectController.setDirty(true);
-                }
+                getCgenConfig().setOutputPattern(text);
+                checkConfigDirty();
             }
         };
 
@@ -158,10 +144,8 @@ public class CustomModePanel extends 
GeneratorControllerPanel {
         this.superPkg = new TextAdapter(superPkgField) {
             @Override
             protected void updateModel(String text) throws ValidationException 
{
-                getCgenByDataMap().setSuperPkg(text);
-                if(!codeGeneratorControllerBase.isInitFromModel()) {
-                    projectController.setDirty(true);
-                }
+                getCgenConfig().setSuperPkg(text);
+                checkConfigDirty();
             }
         };
 
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/GeneratorControllerPanel.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/GeneratorControllerPanel.java
index 8b424fb..22e5c37 100644
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/GeneratorControllerPanel.java
+++ 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/GeneratorControllerPanel.java
@@ -20,7 +20,6 @@
 package org.apache.cayenne.modeler.editor.cgen;
 
 import org.apache.cayenne.gen.CgenConfiguration;
-import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.modeler.ProjectController;
 import org.apache.cayenne.modeler.util.TextAdapter;
 import org.apache.cayenne.validation.ValidationException;
@@ -38,18 +37,18 @@ public class GeneratorControllerPanel extends JPanel {
     protected TextAdapter outputFolder;
     protected JButton selectOutputFolder;
     protected ProjectController projectController;
+    protected CodeGeneratorController codeGeneratorController;
 
-    public GeneratorControllerPanel(ProjectController projectController, 
CodeGeneratorController codeGeneratorControllerBase) {
+    public GeneratorControllerPanel(ProjectController projectController, 
CodeGeneratorController codeGeneratorController) {
         this.projectController = projectController;
+        this.codeGeneratorController = codeGeneratorController;
         this.outputFolder = new TextAdapter(new JTextField()) {
             @Override
             protected void updateModel(String text) throws ValidationException 
{
-                CgenConfiguration cgenByDataMap = getCgenByDataMap();
+                CgenConfiguration cgenByDataMap = getCgenConfig();
                 if(cgenByDataMap != null) {
                     cgenByDataMap.setRelPath(text);
-                    if (!codeGeneratorControllerBase.isInitFromModel()) {
-                        projectController.setDirty(true);
-                    }
+                    checkConfigDirty();
                 }
             }
         };
@@ -64,8 +63,13 @@ public class GeneratorControllerPanel extends JPanel {
         return selectOutputFolder;
     }
 
-    public CgenConfiguration getCgenByDataMap() {
-        DataMap dataMap = projectController.getCurrentDataMap();
-        return projectController.getApplication().getMetaData().get(dataMap, 
CgenConfiguration.class);
+    protected void checkConfigDirty() {
+        if (!codeGeneratorController.isInitFromModel()) {
+            codeGeneratorController.checkCgenConfigDirty();
+        }
+    }
+
+    protected CgenConfiguration getCgenConfig() {
+        return codeGeneratorController.getCgenConfiguration();
     }
 }

Reply via email to