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 08b62e0  CAY-2592 Modeler: make all datamaps selected in global cgen 
tab
08b62e0 is described below

commit 08b62e04e8030637544be089e8240f616c5f6e0d
Author: Arseni Bulatski <ancars...@gmail.com>
AuthorDate: Mon Jul 8 13:57:58 2019 +0300

    CAY-2592 Modeler: make all datamaps selected in global cgen tab
    
    (cherry picked from commit 5346def3d1f2b362ea42e81973fcd25fa0f13c28)
---
 RELEASE-NOTES.txt                                  |  3 +++
 .../modeler/editor/GeneratorsTabController.java    | 23 ++++++++++++++++++----
 2 files changed, 22 insertions(+), 4 deletions(-)

diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index a71fbe4..eda8a6c 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -12,6 +12,9 @@ Release: 4.1.B3
 Date:
 ----------------------------------
 
+Changes/New Features:
+CAY-2592 Modeler: make all datamaps selected in global cgen tab
+
 Bug Fixes:
 
 CAY-2417 Modeler: wrong title in attribute context menu
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/GeneratorsTabController.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/GeneratorsTabController.java
index 8219d2c..3f37978 100644
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/GeneratorsTabController.java
+++ 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/GeneratorsTabController.java
@@ -21,11 +21,13 @@ package org.apache.cayenne.modeler.editor;
 import java.awt.event.ItemEvent;
 import java.util.Collection;
 import java.util.HashSet;
+import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 
 import org.apache.cayenne.configuration.DataChannelDescriptor;
+import org.apache.cayenne.gen.CgenConfiguration;
 import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.modeler.ProjectController;
 import org.apache.cayenne.modeler.dialog.ErrorDebugDialog;
@@ -72,30 +74,43 @@ public abstract class GeneratorsTabController {
                 currPanel.getCheckConfig().setSelected(true);
             }
         });
+        if(selectedDataMaps.isEmpty() && type == CgenConfiguration.class) {
+            GeneratorsTab.TopGeneratorPanel topGeneratorPanel = 
view.getGenerationPanel();
+            topGeneratorPanel.getSelectAll().setSelected(true);
+            topGeneratorPanel.getGenerateAll().setEnabled(true);
+            for (Map.Entry<DataMap, GeneratorsPanel> entry : 
generatorsPanels.entrySet()) {
+                entry.getValue().getCheckConfig().setSelected(true);
+            }
+        }
     }
 
     private void initListenersForPanel(GeneratorsPanel panel) {
         panel.getCheckConfig().addItemListener(e -> {
             if(e.getStateChange() == ItemEvent.SELECTED) {
                 selectedDataMaps.add(panel.getDataMap());
+                if(selectedDataMaps.size() == generatorsPanels.size()) {
+                    view.getGenerationPanel().getSelectAll().setSelected(true);
+                }
             } else if(e.getStateChange() == ItemEvent.DESELECTED) {
                 selectedDataMaps.remove(panel.getDataMap());
+                view.getGenerationPanel().getSelectAll().setSelected(false);
             }
             setGenerateButtonDisabled();
         });
 
         panel.getToConfigButton().addActionListener(action -> 
showConfig(panel.getDataMap()));
 
-        view.getGenerationPanel().getSelectAll().addItemListener(e -> {
-            if(e.getStateChange() == ItemEvent.SELECTED) {
+        view.getGenerationPanel().getSelectAll().addActionListener(e -> {
+            boolean isSelected = 
view.getGenerationPanel().getSelectAll().isSelected();
+            if(isSelected) {
                 getGeneratorsPanels().forEach((key, value) -> {
                     if (value.getCheckConfig().isEnabled()) {
                         value.getCheckConfig().setSelected(true);
                     }
                 });
-            } else if(e.getStateChange() == ItemEvent.DESELECTED) {
+            } else {
                 getGeneratorsPanels().forEach((key, value) -> {
-                    if(value.getCheckConfig().isEnabled()) {
+                    if (value.getCheckConfig().isEnabled()) {
                         value.getCheckConfig().setSelected(false);
                     }
                 });

Reply via email to