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

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

commit 5346def3d1f2b362ea42e81973fcd25fa0f13c28
Author: Arseni Bulatski <[email protected]>
AuthorDate: Mon Jul 8 13:57:58 2019 +0300

    CAY-2592 Modeler: make all datamaps selected in global cgen tab
---
 RELEASE-NOTES.txt                                  |  1 +
 .../modeler/editor/GeneratorsTabController.java    | 23 ++++++++++++++++++----
 2 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index 73e6cf1..2c34fda 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -40,6 +40,7 @@ CAY-2579 Review and possibly relax usage of readonly flag of 
ObjRelationship
 CAY-2585 Rename scalarQuery and params methods in SQLSelect
 CAY-2589 - Allow optionally using a local query cache that is separate from 
the shared query cache.
 CAY-2590 Add method to set query timeout to queries
+CAY-2592 Modeler: make all datamaps selected in global cgen tab
 
 Bug Fixes:
 
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 b5039d5..d3665cd 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