You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by ab...@apache.org on 2019/07/08 08:35:07 UTC
[cayenne] branch STABLE-4.1 updated: CAY-2591 Modeler: project
becomes dirty after click on dbImport or cgen tab
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 587a53e CAY-2591 Modeler: project becomes dirty after click on dbImport or cgen tab
587a53e is described below
commit 587a53ea6cfa260e55dca47c6114ecdcb777d08b
Author: Arseni Bulatski <an...@gmail.com>
AuthorDate: Mon Jul 8 11:24:57 2019 +0300
CAY-2591 Modeler: project becomes dirty after click on dbImport or cgen tab
(cherry picked from commit df3f1dbb7471e465edfde404fb5af8c8d6a4ff4b)
---
RELEASE-NOTES.txt | 1 +
.../modeler/editor/dbimport/DbImportView.java | 11 +++++-
.../dbimport/ReverseEngineeringConfigPanel.java | 41 ++++++++++++++++------
3 files changed, 42 insertions(+), 11 deletions(-)
diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index ecdaba7..a71fbe4 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -21,6 +21,7 @@ CAY-2580 Cgen: Can't use custom templates for client mode
CAY-2582 Double insert of manyToMany relationship mapped to Set
CAY-2584 Crypto: can't use ColumnSelect with encrypted columns
CAY-2586 Char can't be materialized to EnumType in some cases
+CAY-2591 Modeler: project becomes dirty after click on dbImport or cgen tab
CAY-2594 DbImport: AutoAdapter resolving inside an import operation hangs up the op on Hana DB
CAY-2595 ObjAttributes are not sorted in alphabetical ordering on save
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportView.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportView.java
index f0fc44e..995816b 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportView.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportView.java
@@ -64,8 +64,11 @@ public class DbImportView extends JPanel {
private ProjectController projectController;
+ private boolean initFromModel;
+
public DbImportView(ProjectController projectController) {
this.projectController = projectController;
+ this.initFromModel = false;
initFormElements();
buildForm();
draggableTreePanel.getSourceTree().repaint();
@@ -183,7 +186,7 @@ public class DbImportView extends JPanel {
((ColorTreeRenderer) draggableTreePanel.getSourceTree().getCellRenderer()).
setReverseEngineeringTree(reverseEngineeringTree);
- configPanel = new ReverseEngineeringConfigPanel(projectController);
+ configPanel = new ReverseEngineeringConfigPanel(projectController, this);
configPanel.setLayout(new FlowLayout(FlowLayout.LEFT));
configPanel.setVisible(false);
}
@@ -192,6 +195,7 @@ public class DbImportView extends JPanel {
DataMap map = projectController.getCurrentDataMap();
treePanel.getReverseEngineeringTree().stopEditing();
if (map != null) {
+ initFromModel = true;
treeToolbar.unlockButtons();
ReverseEngineering reverseEngineering = DbImportView.this.projectController.getApplication()
.getMetaData().get(map, ReverseEngineering.class);
@@ -210,6 +214,7 @@ public class DbImportView extends JPanel {
draggableTreePanel.getMoveButton().setEnabled(false);
draggableTreePanel.getMoveInvertButton().setEnabled(false);
}
+ initFromModel = false;
}
public boolean isSkipRelationshipsLoading() {
@@ -268,4 +273,8 @@ public class DbImportView extends JPanel {
public JButton getLoadDbSchemaButton() {
return loadDbSchemaButton;
}
+
+ public boolean isInitFromModel() {
+ return initFromModel;
+ }
}
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/ReverseEngineeringConfigPanel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/ReverseEngineeringConfigPanel.java
index dc40cff..e148c0e 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/ReverseEngineeringConfigPanel.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/ReverseEngineeringConfigPanel.java
@@ -56,8 +56,11 @@ public class ReverseEngineeringConfigPanel extends JPanel {
private ProjectController projectController;
- ReverseEngineeringConfigPanel(ProjectController projectController) {
+ private DbImportView dbImportView;
+
+ ReverseEngineeringConfigPanel(ProjectController projectController, DbImportView dbImportView) {
this.projectController = projectController;
+ this.dbImportView = dbImportView;
initFormElements();
initListeners();
buildView();
@@ -120,7 +123,9 @@ public class ReverseEngineeringConfigPanel extends JPanel {
meaningfulPk = new TextAdapter(meaningfulPkField) {
protected void updateModel(String text) {
getReverseEngineeringBySelectedMap().setMeaningfulPkTables(text);
- projectController.setDirty(true);
+ if(!dbImportView.isInitFromModel()) {
+ projectController.setDirty(true);
+ }
}
};
@@ -130,7 +135,9 @@ public class ReverseEngineeringConfigPanel extends JPanel {
stripFromTableNames = new TextAdapter(stripFromTableNamesField) {
protected void updateModel(String text) {
getReverseEngineeringBySelectedMap().setStripFromTableNames(text);
- projectController.setDirty(true);
+ if(!dbImportView.isInitFromModel()) {
+ projectController.setDirty(true);
+ }
}
};
@@ -156,34 +163,48 @@ public class ReverseEngineeringConfigPanel extends JPanel {
private void initListeners() {
skipRelationshipsLoading.addActionListener(e -> {
getReverseEngineeringBySelectedMap().setSkipRelationshipsLoading(skipRelationshipsLoading.isSelected());
- projectController.setDirty(true);
+ if(!dbImportView.isInitFromModel()) {
+ projectController.setDirty(true);
+ }
});
skipPrimaryKeyLoading.addActionListener(e -> {
getReverseEngineeringBySelectedMap().setSkipPrimaryKeyLoading(skipPrimaryKeyLoading.isSelected());
- projectController.setDirty(true);
+ if(!dbImportView.isInitFromModel()) {
+ projectController.setDirty(true);
+ }
});
forceDataMapCatalog.addActionListener(e -> {
getReverseEngineeringBySelectedMap().setForceDataMapCatalog(forceDataMapCatalog.isSelected());
- projectController.setDirty(true);
+ if(!dbImportView.isInitFromModel()) {
+ projectController.setDirty(true);
+ }
});
forceDataMapSchema.addActionListener(e -> {
getReverseEngineeringBySelectedMap().setForceDataMapSchema(forceDataMapSchema.isSelected());
- projectController.setDirty(true);
+ if(!dbImportView.isInitFromModel()) {
+ projectController.setDirty(true);
+ }
});
usePrimitives.addActionListener(e -> {
getReverseEngineeringBySelectedMap().setUsePrimitives(usePrimitives.isSelected());
- projectController.setDirty(true);
+ if(!dbImportView.isInitFromModel()) {
+ projectController.setDirty(true);
+ }
});
useJava7Types.addActionListener(e -> {
getReverseEngineeringBySelectedMap().setUseJava7Types(useJava7Types.isSelected());
- projectController.setDirty(true);
+ if(!dbImportView.isInitFromModel()) {
+ projectController.setDirty(true);
+ }
});
strategyCombo.addActionListener(e -> {
String strategy = (String) ReverseEngineeringConfigPanel.this.getStrategyCombo().getSelectedItem();
checkStrategy(strategy);
getReverseEngineeringBySelectedMap().setNamingStrategy(strategy);
NameGeneratorPreferences.getInstance().addToLastUsedStrategies(strategy);
- projectController.setDirty(true);
+ if(!dbImportView.isInitFromModel()) {
+ projectController.setDirty(true);
+ }
});
}