You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by nt...@apache.org on 2020/10/01 08:41:16 UTC

[cayenne] branch STABLE-4.1 updated: CAY-2681 Modeler: All selected checkboxes cause project to become dirty at initialization

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

ntimofeev 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 5c07bb3  CAY-2681 Modeler: All selected checkboxes cause project to become dirty at initialization
5c07bb3 is described below

commit 5c07bb33430b45265823f06df049c1d36e1f2cef
Author: Nikita Timofeev <st...@gmail.com>
AuthorDate: Thu Oct 1 11:41:05 2020 +0300

    CAY-2681 Modeler: All selected checkboxes cause project to become dirty at initialization
---
 RELEASE-NOTES.txt                                  |  1 +
 .../cayenne/swing/components/JCayenneCheckBox.java | 23 +++++++++++++++++++++-
 2 files changed, 23 insertions(+), 1 deletion(-)

diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index 1ffcae3..9542257 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -16,6 +16,7 @@ Bug Fixes:
 
 CAY-2670 CommitLog does not include FKs for deleted objects with one-way relationships
 CAY-2679 Unstable ordering of relationships in the .map.xml file
+CAY-2681 Modeler: All selected checkboxes cause project to become dirty at initialization
 
 ----------------------------------
 Release: 4.1
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/swing/components/JCayenneCheckBox.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/swing/components/JCayenneCheckBox.java
index 1adcf25..b452a35 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/swing/components/JCayenneCheckBox.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/swing/components/JCayenneCheckBox.java
@@ -21,15 +21,36 @@ package org.apache.cayenne.swing.components;
 
 import org.apache.cayenne.modeler.undo.JCheckBoxUndoListener;
 
-import javax.swing.*;
 import java.awt.event.ActionListener;
+import java.awt.event.ItemListener;
+import javax.swing.JCheckBox;
 
 public class JCayenneCheckBox extends JCheckBox {
 
     private ActionListener actionListener;
+    private boolean modelUpdateDisabled;
 
     public JCayenneCheckBox() {
         this.actionListener = new JCheckBoxUndoListener();
         this.addActionListener(this.actionListener);
     }
+
+    @Override
+    public void setSelected(boolean b) {
+        modelUpdateDisabled = true;
+        try {
+            super.setSelected(b);
+        } finally {
+            modelUpdateDisabled = false;
+        }
+    }
+
+    @Override
+    public void addItemListener(ItemListener l) {
+        super.addItemListener(e -> {
+            if(!modelUpdateDisabled) {
+                l.itemStateChanged(e);
+            }
+        });
+    }
 }
\ No newline at end of file