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:56:02 UTC
[cayenne] 02/02: 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 master
in repository https://gitbox.apache.org/repos/asf/cayenne.git
commit 2625c45d978c6303c2d3506df950fe93e1aee437
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 e8b706b..c9ad278 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -32,6 +32,7 @@ CAY-2591 Modeler: project becomes dirty after click on dbImport or cgen tab
CAY-2671 QualifierTranslator fails to translate expressions with compound PKs/FKs
CAY-2675 A one-to-one relationship with meaningful PK can be nullified in the nested context
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.2.M1
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