Repository: cayenne
Updated Branches:
  refs/heads/master 2e3760218 -> adcbf1322


CAY-2476 Modeller: Added update state of Superclass and Subclass Templates 
dropdowns on dialog open. Added disabling Subclass Template dropdown and added 
using singleclass.vm template when 'Make Pairs' checkbox is nod checked.


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/6249a07b
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/6249a07b
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/6249a07b

Branch: refs/heads/master
Commit: 6249a07bb6122f80a595ca8c90d8be604f34de0e
Parents: 6221d5e
Author: kkomyak <[email protected]>
Authored: Mon Sep 17 17:10:16 2018 +0300
Committer: kkomyak <[email protected]>
Committed: Mon Sep 17 17:22:04 2018 +0300

----------------------------------------------------------------------
 .../modeler/dialog/codegen/CustomModeController.java     |  7 ++++---
 .../cayenne/modeler/dialog/codegen/CustomModePanel.java  | 11 +++++++++--
 2 files changed, 13 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/6249a07b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CustomModeController.java
----------------------------------------------------------------------
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CustomModeController.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CustomModeController.java
index 3c5d047..233a10f 100644
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CustomModeController.java
+++ 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CustomModeController.java
@@ -175,19 +175,20 @@ public class CustomModeController extends 
GeneratorController {
        public Collection<ClassGenerationAction> createGenerator() {
 
                Collection<ClassGenerationAction> generators = 
super.createGenerator();
+               boolean selected = view.getPairs().isSelected();
 
                String superKey = 
Objects.requireNonNull(view.getSuperclassTemplate().getSelectedItem()).toString();
-               String superTemplate = 
templateManager.getTemplatePath(superKey);
+               String superTemplate = selected ? 
templateManager.getTemplatePath(superKey) : 
ClassGenerationAction.SINGLE_CLASS_TEMPLATE;
 
                String subKey = 
Objects.requireNonNull(view.getSubclassTemplate().getSelectedItem()).toString();
-               String subTemplate = templateManager.getTemplatePath(subKey);
+               String subTemplate = selected ? 
templateManager.getTemplatePath(subKey) : null;
 
                for (ClassGenerationAction generator : generators) {
                        generator.setSuperTemplate(superTemplate);
                        generator.setTemplate(subTemplate);
                        
generator.setOverwrite(view.getOverwrite().isSelected());
                        
generator.setUsePkgPath(view.getUsePackagePath().isSelected());
-                       generator.setMakePairs(view.getPairs().isSelected());
+                       generator.setMakePairs(selected);
                        
generator.setCreatePropertyNames(view.getCreatePropertyNames().isSelected());
 
                        if 
(!Util.isEmptyString(view.getOutputPattern().getText())) {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/6249a07b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CustomModePanel.java
----------------------------------------------------------------------
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CustomModePanel.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CustomModePanel.java
index 7571de0..c1911c5 100644
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CustomModePanel.java
+++ 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CustomModePanel.java
@@ -54,9 +54,11 @@ public class CustomModePanel extends 
GeneratorControllerPanel {
         this.manageTemplatesLink = new ActionLink("Customize Templates...");
         
manageTemplatesLink.setFont(manageTemplatesLink.getFont().deriveFont(10f));
 
+        updateClassTemplatesSelection();
         pairs.addChangeListener(e -> {
-            superclassTemplate.setEnabled(pairs.isSelected());
-            overwrite.setEnabled(!pairs.isSelected());
+            boolean selected = pairs.isSelected();
+            updateClassTemplatesSelection();
+            overwrite.setEnabled(!selected);
         });
 
         // assemble
@@ -130,4 +132,9 @@ public class CustomModePanel extends 
GeneratorControllerPanel {
     public JCheckBox getCreatePropertyNames() {
         return createPropertyNames;
     }
+
+    private void updateClassTemplatesSelection() {
+        superclassTemplate.setEnabled(pairs.isSelected());
+        subclassTemplate.setEnabled(pairs.isSelected());
+    }
 }

Reply via email to