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
The following commit(s) were added to refs/heads/master by this push: new 5b7aad7ba fixed issue with disable Generate btn in new project. Minor cleanup. new b43b7a451 Merge pull request #553 from Ivan-nikitko/CAY-2786_bugfix 5b7aad7ba is described below commit 5b7aad7ba694e8f3be5ce1b9c5fa2a0db8f2510a Author: Ivan Nikitka <70625960+ivan-niki...@users.noreply.github.com> AuthorDate: Mon Dec 12 14:14:05 2022 +0100 fixed issue with disable Generate btn in new project. Minor cleanup. --- .../editor/cgen/CodeGeneratorController.java | 5 ++- .../editor/cgen/GeneratorControllerPanel.java | 37 +++++++++++++++++----- .../apache/cayenne/modeler/util/TextAdapter.java | 4 --- 3 files changed, 31 insertions(+), 15 deletions(-) diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CodeGeneratorController.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CodeGeneratorController.java index d7598ee55..ff18b49f6 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CodeGeneratorController.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CodeGeneratorController.java @@ -247,8 +247,7 @@ public class CodeGeneratorController extends CayenneController implements ObjEnt "Delete cgenConfiguration", JOptionPane.YES_NO_OPTION ); - // result "0" mean selecting YES - if (result == 0) { + if (result == JOptionPane.OK_OPTION) { if (view.getConfigurationsComboBox().getItemCount() > 1) { cgenConfigList.removeByName(cgenConfiguration.getName()); view.getConfigurationsComboBox().removeItem(view.getConfigurationsComboBox().getSelectedItem()); @@ -262,7 +261,7 @@ public class CodeGeneratorController extends CayenneController implements ObjEnt } public void updateGenerateButton(){ - boolean isOutputPathValid = standardModeController.getView().getOutputFolder().isDataValid(); + boolean isOutputPathValid = standardModeController.getView().isDataValid(); view.getGenerateButton().setEnabled(!selectionModel.isModelEmpty()&& isOutputPathValid); } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/GeneratorControllerPanel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/GeneratorControllerPanel.java index 184898c36..9e3afc961 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/GeneratorControllerPanel.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/GeneratorControllerPanel.java @@ -41,6 +41,9 @@ public class GeneratorControllerPanel extends JPanel { protected JButton selectOutputFolder; protected ProjectController projectController; protected CodeGeneratorController codeGeneratorController; + private boolean isDataValid; + private final String INVALID_PATH_MSG = "An invalid path has been detected. It cannot be saved or used until it is corrected."; + private final String NEED_TO_SAVE_PROJECT_MSG= "You should save project to use relative path as an output directory."; public GeneratorControllerPanel(ProjectController projectController, CodeGeneratorController codeGeneratorController) { this.projectController = projectController; @@ -54,25 +57,39 @@ public class GeneratorControllerPanel extends JPanel { try { path = Paths.get(text); } catch (InvalidPathException e) { - isDataValid = false; - codeGeneratorController.updateGenerateButton(); - throw new ValidationException("An invalid path has been detected. It cannot be saved or used until it is corrected."); + updateGenerateButton(false); + throw new ValidationException(INVALID_PATH_MSG); } if (cgenByDataMap.getRootPath() == null && !path.isAbsolute()) { - isDataValid = false; - codeGeneratorController.updateGenerateButton(); - throw new ValidationException("You should save project to use relative path as an output directory."); + updateGenerateButton(false); + throw new ValidationException(NEED_TO_SAVE_PROJECT_MSG); } cgenByDataMap.updateOutputPath(path); - isDataValid = true; - codeGeneratorController.updateGenerateButton(); + updateGenerateButton(true); checkConfigDirty(); } } + + @Override + public void setText(String text) { + super.setText(text); + try { + Paths.get(text); + } catch (InvalidPathException e) { + updateGenerateButton(false); + throw new ValidationException(INVALID_PATH_MSG); + } + updateGenerateButton(true); + } }; this.selectOutputFolder = new JButton(".."); } + private void updateGenerateButton(boolean isDataValid){ + this.isDataValid = isDataValid; + codeGeneratorController.updateGenerateButton(); + } + public TextAdapter getOutputFolder() { return outputFolder; } @@ -88,4 +105,8 @@ public class GeneratorControllerPanel extends JPanel { protected CgenConfiguration getCgenConfig() { return codeGeneratorController.getCgenConfiguration(); } + + public boolean isDataValid() { + return isDataValid; + } } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/TextAdapter.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/TextAdapter.java index d6fbaecda..53177955d 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/TextAdapter.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/TextAdapter.java @@ -49,7 +49,6 @@ public abstract class TextAdapter { protected UndoableEditListener undoableListener; protected JTextComponent textComponent; - protected boolean isDataValid; public TextAdapter(JTextField textField) { this(textField, true, false, true); @@ -173,7 +172,4 @@ public abstract class TextAdapter { textComponent.setToolTipText(defaultToolTip); } - public boolean isDataValid() { - return isDataValid; - } }