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 <stari...@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