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 df3f1db CAY-2591 Modeler: project becomes dirty after click on dbImport or cgen tab df3f1db is described below commit df3f1dbb7471e465edfde404fb5af8c8d6a4ff4b Author: Arseni Bulatski <ancars...@gmail.com> AuthorDate: Mon Jul 8 11:24:57 2019 +0300 CAY-2591 Modeler: project becomes dirty after click on dbImport or cgen tab --- 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 d48c1ae..73e6cf1 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -68,6 +68,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-2588 IdRowReader: ArrayIndexOutOfBoundsException +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 73aa1b1..953c4d3 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 0700716..cc45118 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); + } }); }